{"version":3,"file":"main.js","mappings":"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EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,IAAI;EACd,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,GAAG;EACb,QAAQ,EAAE,QAAQ;EAClB,QAAQ,EAAE,QAAQ;EAClB,QAAQ,EAAE,QAAQ;EAClB,QAAQ,EAAE,QAAQ;EAClB,QAAQ,EAAE,QAAQ;EAClB,QAAQ,EAAE,QAAQ;EAClB,QAAQ,EAAE,QAAQ;EAClB,QAAQ,EAAE,QAAQ;EAClB,QAAQ,EAAE,QAAQ;EAClB,QAAQ,E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;EACA;EACA;EACAA,uDAAS;AACX,CAAC,EATWA,eAAe,KAAfA,eAAe;AAUpB,IAAKC,eAaX;AAbD,WAAYA,eAAe;EACzB;EACA;EACA;EACAA,qDAAQ;EACR;EACA;EACA;EACAA,mEAAe;EACf;EACA;EACA;EACAA,mEAAe;AACjB,CAAC,EAbWA,eAAe,KAAfA,eAAe;AAcpB,IAAKC,WASX;AATD,WAAYA,WAAW;EACrB;EACA;EACA;EACAA,qDAAY;EACZ;EACA;EACA;EACAA,qDAAY;AACd,CAAC,EATWA,WAAW,KAAXA,WAAW;AAUhB,IAAKC,YASX;AATD,WAAYA,YAAY;EACtB;EACA;EACA;EACAA,mDAAU;EACV;EACA;EACA;EACAA,+CAAQ;AACV,CAAC,EATWA,YAAY,KAAZA,YAAY;AAUjB,IAAKC,SAqBX;AArBD,WAAYA,SAAS;EACnB;EACA;EACA;EACAA,2CAAS;EACT;EACA;EACA;EACAA,+CAAW;EACX;EACA;EACA;EACAA,qDAAc;EACd;EACA;EACA;EACAA,6CAAU;EACV;EACA;EACA;EACAA,+CAAW;AACb,CAAC,EArBWA,SAAS,KAATA,SAAS;AAsBd,IAAKC,SAyBX;AAzBD,WAAYA,SAAS;EACnB;EACA;EACA;EACAA,+CAAW;EACX;EACA;EACA;EACAA,6CAAU;EACV;EACA;EACA;EACAA,yCAAQ;EACR;EACA;EACA;EACAA,yCAAQ;EACR;EACA;EACA;EACAA,6CAAU;EACV;EACA;EACA;EACAA,+CAAW;AACb,CAAC,EAzBWA,SAAS,KAATA,SAAS;AA2Bd,IAAKC,cAqBX;AArBD,WAAYA,cAAc;EACxB;EACA;EACA;EACAA,+DAAc;EACd;EACA;EACA;EACAA,yDAAW;EACX;EACA;EACA;EACAA,6DAAa;EACb;EACA;EACA;EACAA,6DAAa;EACb;EACA;EACA;EACAA,yDAAW;AACb,CAAC,EArBWA,cAAc,KAAdA,cAAc;AAsBnB,IAAKtmF,cAKX;AALD,WAAYA,cAAc;EACxBA,uDAAU;EACVA,6DAAS;EACTA,uDAAM;EACNA,6DAAS;AACX,CAAC,EALWA,cAAc,KAAdA,cAAc;AAMnB,IAAKumF,YASX;AATD,WAAYA,YAAY;EACtB;EACA;EACA;EACAA,iDAAS;EACT;EACA;EACA;EACAA,mDAAU;AACZ,CAAC,EATWA,YAAY,KAAZA,YAAY;AAUjB,IAAKC,WAaX;AAbD,WAAYA,WAAW;EACrB;EACA;EACA;EACAA,yDAAc;EACd;EACA;EACA;EACAA,qDAAY;EACZ;EACA;EACA;EACAA,iDAAU;AACZ,CAAC,EAbWA,WAAW,KAAXA,WAAW;AAchB,IAAKC,WAyBX;AAzBD,WAAYA,WAAW;EACrB;EACA;EACA;EACAA,iDAAU;EACV;EACA;EACA;EACAA,mDAAW;EACX;EACA;EACA;EACAA,6CAAQ;EACR;EACA;EACA;EACAA,+CAAS;EACT;EACA;EACA;EACAA,mDAAW;EACX;EACA;EACA;EACAA,+DAAiB;AACnB,CAAC,EAzBWA,WAAW,KAAXA,WAAW;AA0BhB,IAAKC,QAqBX;AArBD,WAAYA,QAAQ;EAClB;EACA;EACA;EACAA,+CAAY;EACZ;EACA;EACA;EACAA,yCAAS;EACT;EACA;EACA;EACAA,uCAAQ;EACR;EACA;EACA;EACAA,iDAAa;EACb;EACA;EACA;EACAA,2DAAkB;AACpB,CAAC,EArBWA,QAAQ,KAARA,QAAQ;AAsBb,IAAKC,YASX;AATD,WAAYA,YAAY;EACtB;EACA;EACA;EACAA,iDAAS;EACT;EACA;EACA;EACAA,uDAAY;AACd,CAAC,EATWA,YAAY,KAAZA,YAAY;AAUjB,IAAKC,aAyBX;AAzBD,WAAYA,aAAa;EACvB;EACA;EACA;EACAA,qDAAU;EACV;EACA;EACA;EACAA,qDAAU;EACV;EACA;EACA;EACAA,uDAAW;EACX;EACA;EACA;EACAA,2DAAa;EACb;EACA;EACA;EACAA,iDAAQ;EACR;EACA;EACA;EACAA,mDAAS;AACX,CAAC,EAzBWA,aAAa,KAAbA,aAAa;AA0BlB,IAAKC,eASX;AATD,WAAYA,eAAe;EACzB;EACA;EACA;EACAA,iEAAc;EACd;EACA;EACA;EACAA,yDAAU;AACZ,CAAC,EATWA,eAAe,KAAfA,eAAe;AAUpB,IAAKC,SASX;AATD,WAAYA,SAAS;EACnB;EACA;EACA;EACAA,iDAAY;EACZ;EACA;EACA;EACAA,2DAAiB;AACnB,CAAC,EATWA,SAAS,KAATA,SAAS;AAWd,IAAKC,YAYX;AAZD,WAAYA,YAAY;EACtBA,iDAAK;EACLA,iDAAK;EACLA,uDAAQ;EACRA,+CAAI;EACJA,mEAAc;EACdA,6DAAW;EACXA,mFAAsB;EACtBA,qDAAO;EACPA,mDAAM;EACNA,mDAAM;EACNA,kDAAK;AACP,CAAC,EAZWA,YAAY,KAAZA,YAAY;AAajB,IAAKzzD,UAMX;AAND,WAAYA,UAAU;EACpBA,6CAAK;EACLA,iDAAO;EACPA,uDAAU;EACVA,qDAAS;EACTA,uDAAU;AACZ,CAAC,EANWA,UAAU,KAAVA,UAAU;AAOf,IAAKzV,UAGX;AAHD,WAAYA,UAAU;EACpBA,+CAAU;EACVA,6CAAS;AACX,CAAC,EAHWA,UAAU,KAAVA,UAAU;AAIf,IAAKmpE,OAIX;AAJD,WAAYA,OAAO;EACjBA,yCAAU;EACVA,qCAAQ;EACRA,uCAAS;AACX,CAAC,EAJWA,OAAO,KAAPA,OAAO;AAKZ,IAAKzzD,UA6BX;AA7BD,WAAYA,UAAU;EACpB;EACA;EACA;EACAA,yCAAO;EACP;EACA;EACA;EACAA,yCAAO;EACP;EACA;EACA;EACAA,2CAAQ;EACR;EACA;EACA;EACAA,yCAAO;EACP;EACA;EACA;EACAA,yCAAO;EACP;EACA;EACA;EACAA,2CAAQ;EACR;EACA;EACA;EACAA,2CAAQ;AACV,CAAC,EA7BWA,UAAU,KAAVA,UAAU;AA8Bf,IAAK0zD,aAiBX;AAjBD,WAAYA,aAAa;EACvB;EACA;EACA;EACAA,mDAAS;EACT;EACA;EACA;EACAA,6DAAc;EACd;EACA;EACA;EACAA,uDAAW;EACX;EACA;EACA;EACAA,uDAAW;AACb,CAAC,EAjBWA,aAAa,KAAbA,aAAa;AAkBlB,IAAKC,kBAqBX;AArBD,WAAYA,kBAAkB;EAC5B;EACA;EACA;EACAA,iEAAW;EACX;EACA;EACA;EACAA,6FAAyB;EACzB;EACA;EACA;EACAA,iGAA2B;EAC3B;EACA;EACA;EACAA,qGAA6B;EAC7B;EACA;EACA;EACAA,yGAA+B;AACjC,CAAC,EArBWA,kBAAkB,KAAlBA,kBAAkB;AAuBvB,IAAKC,aAyBX;AAzBD,WAAYA,aAAa;EACvB;EACA;EACA;EACAA,6DAAc;EACd;EACA;EACA;EACAA,2DAAa;EACb;EACA;EACA;EACAA,2EAAqB;EACrB;EACA;EACA;EACAA,2DAAa;EACb;EACA;EACA;EACAA,6DAAc;EACd;EACA;EACA;EACAA,uDAAW;AACb,CAAC,EAzBWA,aAAa,KAAbA,aAAa;AA0BlB,IAAKC,cAyBX;AAzBD,WAAYA,cAAc;EACxB;EACA;EACA;EACAA,uEAAkB;EAClB;EACA;EACA;EACAA,+DAAc;EACd;EACA;EACA;EACAA,6DAAa;EACb;EACA;EACA;EACAA,6EAAqB;EACrB;EACA;EACA;EACAA,6DAAa;EACb;EACA;EACA;EACAA,yDAAW;AACb,CAAC,EAzBWA,cAAc,KAAdA,cAAc;AA0BnB,IAAKC,eAqBX;AArBD,WAAYA,eAAe;EACzB;EACA;EACA;EACAA,+DAAa;EACb;EACA;EACA;EACAA,+DAAa;EACb;EACA;EACA;EACAA,2DAAW;EACX;EACA;EACA;EACAA,yDAAU;EACV;EACA;EACA;EACAA,6DAAY;AACd,CAAC,EArBWA,eAAe,KAAfA,eAAe;AAuBpB,IAAKC,kBAUX;AAVD,WAAYA,kBAAkB;EAC5B;EACA;EACA;EACAA,uEAAc;EAEd;EACA;EACA;EACAA,qEAAa;AACf,CAAC,EAVWA,kBAAkB,KAAlBA,kBAAkB;AAYvB,IAAKC,YAyCX;AAzCD,WAAYA,YAAY;EACtB;EACA;EACA;EACAA,+DAAgB;EAChB;EACA;EACA;EACAA,mDAAU;EACV;EACA;EACA;EACAA,qDAAW;EACX;EACA;EACA;EACAA,uDAAY;EACZ;EACA;EACA;EACAA,mDAAU;EACV;EACA;EACA;EACAA,+DAAgB;EAChB;EACA;EACA;EACAA,iEAAiB;EACjB;EACA;EACA;EACAA,mEAAkB;EAClB;EACA;EACA;EACAA,yDAAa;EACb;EACA;EACA;EACAA,oDAAW;A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A;AACS;AACH;AACW;AACA;AACmB;AACzB;AAC6B;AACI;AACH;AACxC;AAC4B;AACM;AACH;AACM;AACZ;AACqB;AACN;AAC9B;AACe;AACK;AACjB;AAC+B;AAChB;AAC5B;AACwB;AACb;AACD;AACrB;AAC+D;AACvB;AACiB;AACA;AACT;AACgB;AACL;AACtB;AAC+B;AACd;AACmB;AACjB;AACH;AACQ;AACxC;AACA;AACoB;AACG;AACH;AACA;AACc;AACd;AACmB;AAC1C;AACsF;AACR;AACA;AACvD;AAC2C;AACpB;AACqB;AACpD;AACG;AACY;AACiB;AACN;AACA;AACd;AACyC;AACjC;AACT;AACqD;AAC9C;AACM;AACjB;AACuB;AACS;AACzC;AAC+C;AACH;AACa;AAC1C;AACC;AACG;AACM;AAC4B;AACZ;AACZ;AACN;AACW;AACiD;AACI;AACvD;AACiB;AACR;AACiB;AACN;AACpB;AACM;AAClB;AACwC;AACQ;AAC1C;AACe;AACpB;AACgB;AACZ;AACd;AACuB;AACzB;AACO;AACwB;AACiB;AACb;AACI;AACyC;AACxC;AACS;AAC9B;AAChB;AACE;AACwB;AAC6B;AACzD;AACvB;AACiC;AACrB;AAC6C;AAChB;AACX;AAC6C;AAC5B;AACjB;AACiD;AACzE;AACT;AAC+C;AACkB;AACtC;AACI;AACE;;;AAE1F,MAAM0zH,SAAS,GAAG,CAChB/I,0EAAY,EACZE,yEAAc,EACd8C,yEAAU,EACV7C,6DAAU,EACVC,yEAAc,EACdC,iFAAgB,EAChBC,6DAAU,EACVC,6DAAU,EACVC,uEAAa,EACbC,oEAAY,EACZC,+EAAa,EACbC,+EAAa,EACbG,sGAAe,EACfC,0GAAkB,EAClBE,2FAAgB,EAChBM,uGAAoB,EACpBJ,8FAAiB,EACjBC,oGAAmB,EACnBC,wFAAe,EACfC,6GAAsB,EACtBJ,iGAAkB,EAClBM,yEAAU,EACVwG,wGAAqB,EACrBvG,wFAAe,EACfC,6FAAgB,EAChBC,4EAAW,EACXC,2GAAoB,EACpB6B,sEAAkB,EAClBvB,mHAAqB,EACrBC,4FAAe,EACfC,6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ACA;AACyC;AACP;AACvB;AACnB;AACE;AACsD;AACZ;AAC1D;AACA;AAC2B;AACI;AACJ;AACA;AACmB;AACnB;AACP;AAC4F;AACX;AACA;AACI;AAC9E;AAC+B;AACJ;AACC;AACV;AACa;AACtB;AAChB;AACuC;AACR;AACA;AACnB;AACqD;AACtC;AACf;AACqC;AACJ;AACvD;AAC2C;AACvB;AACI;AACJ;AACY;AACG;AACkB;AACA;AACZ;AACZ;AACmC;AACe;AAC1C;AACI;AACqE;AAClC;AACuC;AAC9D;AACT;AACyB;AACD;AACnB;AACxB;AACb;AACmD;AACzB;AACJ;AACgB;AACvB;AACf;AACiB;AACJ;AACkC;AACF;AACuB;AAC6B;AACvD;AAChB;AACvB;AACpB;AACgG;AACvC;AAC/B;AACyB;AAC/B;AACH;AACpB;AACoB;AAExB;AACiF;AAC5C;AACmE;AAC/C;AACrB;AAClB;AACG;AACQ;AACsB;AACZ;AACyB;AAC/D;AAC0B;AACa;AACd;AACoB;AAChB;AACyB;AAC0B;AACmC;AACnE;AACJ;AAChB;AACF;AACsC;AAC5C;AACC;AACoB;AACX;AACqC;AAC7C;AACZ;AACA;AACA;AAC6E;AACJ;AAG1C;AACiB;AACK;AACnB;AACsB;AACwC;AACnD;AAC2C;AACpF;AACuD;AAGW;AAC7C;AAC7B;AAC6D;AACiB;AAC3E;;AAG3F,MAAO3tP,WAAW;EADxBv0C;IAEE,eAAU,GAAkB,CAC1B;MACEk7B,KAAK,EAAE,sCAAsC;MAC7CgP,IAAI,EAAE,kBAAkB;MACxBzlC,QAAQ,EAAE,CACR;QACEy2B,KAAK,EAAE,oCAAoC;QAC3CgP,IAAI,EAAE,kBAAkB;QACxBxlC,IAAI,EAAE,GAAG;QACTstB,IAAI,EAAEgpQ,sFAAiB;QACvB9pQ,OAAO,EAAE,kBAAkB;QAC3B+qB,UAAU,EAAEjf,mGAAyBs7D;OACtC,EACD;QACEp9D,KAAK,EAAE,kCAAkC;QACzCgP,IAAI,EAAE,gBAAgB;QACtBxlC,IAAI,EAAE,GAAG;QACTstB,IAAI,EAAE8jQ,4JAAgC;QACtC5kQ,OAAO,EAAE,6BAA6B;QACtC+qB,UAAU,EAAEjf,mGAAyBs7D;OACtC,EACD;QACEp9D,KAAK,EAAE,kCAAkC;QACzCgP,IAAI,EAAE,qBAAqB;QAC3BxlC,IAAI,EAAE,GAAG;QACTstB,IAAI,EAAE2oQ,kGAAoB;QAC1BzpQ,OAAO,EAAE,iBAAiB;QAC1B+qB,UAAU,EAAEjf,mGAAyBs7D;OACtC,EACD;QACEp9D,KAAK,EAAE,iCAAiC;QACxCgP,IAAI,EAAE,qBAAqB;QAC3BxlC,IAAI,EAAE,GAAG;QACTstB,IAAI,EAAEuoQ,8FAAmB;QACzBrpQ,OAAO,EAAE,gBAAgB;QACzB+qB,UAAU,EAAEjf,mGAAyBs7D;OACtC,EACD;QACEp9D,KAAK,EAAE,8CAA8C;QACrDgP,IAAI,EAAE,kBAAkB;QACxBxlC,IAAI,EAAE,GAAG;QACTstB,IAAI,EAAEqtQ,iGAAuB;QAC7BnuQ,OAAO,EAAE,oBAAoB;QAC7B+qB,UAAU,EAAEjf,mGAAyBs7D;OACtC,EACD;QACEp9D,KAAK,EAAE,4CAA4C;QACnDgP,IAAI,EAAE,aAAa;QACnBxlC,IAAI,EAAE,GAAG;QACTstB,IAAI,EAAE6oQ,iJAA8B;QACpC3pQ,OAAO,EAAE,2BAA2B;QACpC+qB,UAAU,EAAEjf,mGAAyBs7D;OACtC,EACD;QACEp9D,KAAK,EAAE,mCAAmC;QAC1CgP,IAAI,EAAE,oBAAoB;QAC1BxlC,IAAI,EAAE,GAAG;QACTstB,IAAI,EAAEovQ,6GAAqB;QAC3BlwQ,OAAO,EAAE,kBAAkB;QAC3B+qB,UAAU,EAAEjf,mGAAyBs7D;OACtC,EACD;QACEp9D,KAAK,EAAE,+BAA+B;QACtCgP,IAAI,EAAE,iBAAiB;QACvBxlC,IAAI,EAAE,GAAG;QACTstB,IAAI,EAAEyoQ,6FAAiB;QACvBvpQ,OAAO,EAAE,cAAc;QACvB+qB,UAAU,EAAEjf,mGAAyBs7D;OACtC,EACD;QACEp9D,KAAK,EAAE,qCAAqC;QAC5CgP,IAAI,EAAE,mBAAmB;QACzBxlC,IAAI,EAAE,GAAG;QACTstB,IAAI,EAAE+oQ,wHAAuB;QAC7B7pQ,OAAO,EAAE,oBAAoB;QAC7B+qB,UAAU,EAAEjf,mGAAyBs7D;OACtC;KAEJ,EACD;MACEp9D,KAAK,EAAE,+BAA+B;MACtCgP,IAAI,EAAE,WAAW;MACjBzlC,QAAQ,EAAE,CACR;QACEy2B,KAAK,EAAE,sCAAsC;QAC7CgP,IAAI,EAAE,gBAAgB;QACtBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,gCAAgC;UACvCgP,IAAI,EAAE,cAAc;UACpBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,oCAAoC;YAC3Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,uBAAuB;YAC7BlY,IAAI,EAAEyoP,mHAAsB;YAC5BvpP,OAAO,EAAE,0BAA0B;YACnC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,+BAA+B;YACtCx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,iBAAiB;YACvBlY,IAAI,EAAEuoP,oGAAiB;YACvBrpP,OAAO,EAAE,qBAAqB;YAC9B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,2CAA2C;YAClDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,eAAe;YACrBlY,IAAI,EAAE89O,0IAA6B;YACnC5+O,OAAO,EAAE,iCAAiC;YAC1C+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,mCAAmC;YAC1Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,kBAAkB;YACxBlY,IAAI,EAAEskP,gHAAqB;YAC3BplP,OAAO,EAAE,yBAAyB;YAClC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,gDAAgD;YACvDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,kBAAkB;YACxBlY,IAAI,EAAE2oP,kLAAkC;YACxCzpP,OAAO,EAAE,yBAAyB;YAClC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,oCAAoC;UAC3CgP,IAAI,EAAE,mBAAmB;UACzBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,uCAAuC;YAC9Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,gBAAgB;YACtBlY,IAAI,EAAEgjK,mIAAyB;YAC/B9jK,OAAO,EAAE,6BAA6B;YACtC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,+BAA+B;YACtCx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,mBAAmB;YACzBlY,IAAI,EAAE8iK,yGAAiB;YACvB5jK,OAAO,EAAE,qBAAqB;YAC9B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,mCAAmC;YAC1Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,oBAAoB;YAC1BlY,IAAI,EAAEuiK,qHAAqB;YAC3BrjK,OAAO,EAAE,yBAAyB;YAClC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,sCAAsC;YAC7Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,4BAA4B;YAClClY,IAAI,EAAEkjK,8HAAwB;YAC9BhkK,OAAO,EAAE,4BAA4B;YACrC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,mCAAmC;YAC1Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,YAAY;YAClBlY,IAAI,EAAE0iK,4IAA4B;YAClCxjK,OAAO,EAAE,gCAAgC;YACzC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,wCAAwC;YAC/Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,iBAAiB;YACvBlY,IAAI,EAAE4iK,wIAA0B;YAChC1jK,OAAO,EAAE,8BAA8B;YACvC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,0CAA0C;YACjDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,iBAAiB;YACvBlY,IAAI,EAAEojK,0JAA4B;YAClClkK,OAAO,EAAE,gCAAgC;YACzC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,wCAAwC;UAC/CgP,IAAI,EAAE,sBAAsB;UAC5BzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,gCAAgC;YACvCgP,IAAI,EAAE,aAAa;YACnBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAE2jQ,2GAAkB;YACxBzkQ,OAAO,EAAE,sBAAsB;YAC/B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,wCAAwC;YAC/CgP,IAAI,EAAE,mBAAmB;YACzBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAE0rL,+IAA0B;YAChCxsL,OAAO,EAAE,8BAA8B;YACvC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,qCAAqC;YAC5CgP,IAAI,EAAE,mBAAmB;YACzBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAE8iQ,gIAAuB;YAC7B5jQ,OAAO,EAAE,2BAA2B;YACpC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,6CAA6C;YACpDgP,IAAI,EAAE,eAAe;YACrBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAE0iM,+IAAoB;YAC1BxjM,OAAO,EAAE,iCAAiC;YAC1C+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,uCAAuC;YAC9CgP,IAAI,EAAE,eAAe;YACrBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEkzL,kIAAyB;YAC/Bh0L,OAAO,EAAE,6BAA6B;YACtC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,gCAAgC;UACvCgP,IAAI,EAAE,oBAAoB;UAC1BzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,oCAAoC;YAC3CgP,IAAI,EAAE,cAAc;YACpBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAE2tK,yHAAsB;YAC5BzuK,OAAO,EAAE,0BAA0B;YACnC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,+BAA+B;YACtCgP,IAAI,EAAE,iBAAiB;YACvBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAE8tK,qGAAiB;YACvB5uK,OAAO,EAAE,qBAAqB;YAC9B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ,EACD;QACEp9D,KAAK,EAAE,qCAAqC;QAC5CgP,IAAI,EAAE,iBAAiB;QACvBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,oCAAoC;UAC3C3iB,IAAI,EAAE,wBAAwB;UAC9B2xB,IAAI,EAAE,wBAAwB;UAC9BzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,2CAA2C;YAClDgP,IAAI,EAAE,YAAY;YAClBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAE2gB,wGAAkB;YACxBzhB,OAAO,EAAE,iCAAiC;YAC1C+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,oCAAoC;UAC3CgP,IAAI,EAAE,aAAa;UACnBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,wCAAwC;YAC/Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,iBAAiB;YACvBlY,IAAI,EAAEy/L,kGAAkB;YACxBvgM,OAAO,EAAE,iCAAiC;YAC1C+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,0CAA0C;UACjDgP,IAAI,EAAE,iBAAiB;UACvBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,2CAA2C;YAClDgP,IAAI,EAAE,cAAc;YACpBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEmiB,gHAAyB;YAC/BjjB,OAAO,EAAE,iCAAiC;YAC1C+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EAED;UACEp9D,KAAK,EAAE,uCAAuC;UAC9CgP,IAAI,EAAE,wBAAwB;UAC9BzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,2CAA2C;YAClDgP,IAAI,EAAE,uBAAuB;YAC7BxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEmqL,yJAA6B;YACnCjrL,OAAO,EAAE,iCAAiC;YAC1C+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,2CAA2C;YAClDgP,IAAI,EAAE,oBAAoB;YAC1BxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEomL,4JAA8B;YACpClnL,OAAO,EAAE,iCAAiC;YAC1C+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,4CAA4C;YACnDgP,IAAI,EAAE,+BAA+B;YACrCxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAE8gL,uLAAmC;YACzC5hL,OAAO,EAAE,kCAAkC;YAC3C+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,oCAAoC;UAC3CgP,IAAI,EAAE,WAAW;UACjBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,oCAAoC;YAC3CgP,IAAI,EAAE,iBAAiB;YACvBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAE4tK,yHAAsB;YAC5B1uK,OAAO,EAAE,0BAA0B;YACnC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,yCAAyC;UAChDgP,IAAI,EAAE,iBAAiB;UACvBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,yCAAyC;YAChDgP,IAAI,EAAE,cAAc;YACpBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEugK,wIAA2B;YACjCrhK,OAAO,EAAE,yBAAyB;YAClC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ,EACD;QACEp9D,KAAK,EAAE,mCAAmC;QAC1CgP,IAAI,EAAE,cAAc;QACpBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,0CAA0C;UACjDx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,aAAa;UACnBlY,IAAI,EAAE22L,+JAA4B;UAClCz3L,OAAO,EAAE,gCAAgC;UACzC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,kCAAkC;UACzCx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,oBAAoB;UAC1BlY,IAAI,EAAEszL,uHAAqB;UAC3Bp0L,OAAO,EAAE,wBAAwB;UACjC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,0CAA0C;UACjDx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,4BAA4B;UAClClY,IAAI,EAAEu1L,oHAAoB;UAC1Br2L,OAAO,EAAE,wCAAwC;UACjD+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,2CAA2C;UAClDx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,4BAA4B;UAClClY,IAAI,EAAEg2L,wMAAuC;UAC7C92L,OAAO,EAAE,2CAA2C;UACpD+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,4CAA4C;UACnDx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,4BAA4B;UAClClY,IAAI,EAAEq1L,iKAA8B;UACpCn2L,OAAO,EAAE,kCAAkC;UAC3C+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC;OAEJ,EACD;QACEp9D,KAAK,EAAE,2CAA2C;QAClDgP,IAAI,EAAE,cAAc;QACpBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,sCAAsC;UAC7CgP,IAAI,EAAE,cAAc;UACpBxlC,IAAI,EAAE,GAAG;UACTstB,IAAI,EAAEyyP,+HAAwB;UAC9BvzP,OAAO,EAAE,4BAA4B;UACrC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,wCAAwC;UAC/CgP,IAAI,EAAE,iBAAiB;UACvBxlC,IAAI,EAAE,GAAG;UACTstB,IAAI,EAAE0yP,qIAA0B;UAChCxzP,OAAO,EAAE,4BAA4B;UACrC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC;OAEJ,EACD;QACEp9D,KAAK,EAAE,uCAAuC;QAC9CgP,IAAI,EAAE,aAAa;QACnBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,4CAA4C;UACnDgP,IAAI,EAAE,mBAAmB;UACzBxlC,IAAI,EAAE,GAAG;UACTstB,IAAI,EAAE+tL,4HAA0B;UAChC7uL,OAAO,EAAE,+BAA+B;UACxC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,yCAAyC;UAChDgP,IAAI,EAAE,2BAA2B;UACjCxlC,IAAI,EAAE,GAAG;UACTstB,IAAI,EAAE0tL,8HAAqB;UAC3BxuL,OAAO,EAAE,+BAA+B;UACxC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,yCAAyC;UAChDgP,IAAI,EAAE,2BAA2B;UACjCxlC,IAAI,EAAE,GAAG;UACTstB,IAAI,EAAE4tL,kJAA2B;UACjC1uL,OAAO,EAAE,+BAA+B;UACxC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,wCAAwC;UAC/CgP,IAAI,EAAE,2BAA2B;UACjCxlC,IAAI,EAAE,GAAG;UACTstB,IAAI,EAAE8tL,8IAA0B;UAChC5uL,OAAO,EAAE,8BAA8B;UACvC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,8CAA8C;UACrDgP,IAAI,EAAE,uBAAuB;UAC7BxlC,IAAI,EAAE,GAAG;UACTstB,IAAI,EAAEmuL,kKAAgC;UACtCjvL,OAAO,EAAE,oCAAoC;UAC7C+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,0CAA0C;UACjDgP,IAAI,EAAE,uBAAuB;UAC7BxlC,IAAI,EAAE,GAAG;UACTstB,IAAI,EAAEquL,sHAAwB;UAC9BnvL,OAAO,EAAE,gCAAgC;UACzC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,2CAA2C;UAClDgP,IAAI,EAAE,uBAAuB;UAC7BxlC,IAAI,EAAE,GAAG;UACTstB,IAAI,EAAE0uL,gHAAsB;UAC5BxvL,OAAO,EAAE,qCAAqC;UAC9C+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC;OAEJ,EACD;QACEp9D,KAAK,EAAE,0CAA0C;QACjDgP,IAAI,EAAE,wBAAwB;QAC9BzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,qCAAqC;UAC5CgP,IAAI,EAAE,uBAAuB;UAC7BxlC,IAAI,EAAE,GAAG;UACTstB,IAAI,EAAE44P,iHAAoB;UAC1B15P,OAAO,EAAE,2BAA2B;UACpC+qB,UAAU,EAAEjf,mGAAyB;UACrC2K,aAAa,EAAE;SAChB,EACD;UACEzM,KAAK,EAAE,yCAAyC;UAChDgP,IAAI,EAAE,kCAAkC;UACxCxlC,IAAI,EAAE,GAAG;UACTstB,IAAI,EAAEyzP,0HAAuB;UAC7Bv0P,OAAO,EAAE,+BAA+B;UACxC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,yCAAyC;UAChDgP,IAAI,EAAE,qBAAqB;UAC3BxlC,IAAI,EAAE,GAAG;UACTstB,IAAI,EAAEg8P,0HAAuB;UAC7B98P,OAAO,EAAE,+BAA+B;UACxC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,2CAA2C;UAClDgP,IAAI,EAAE,qBAAqB;UAC3BxlC,IAAI,EAAE,GAAG;UACTstB,IAAI,EAAEizP,4HAAyB;UAC/B/zP,OAAO,EAAE,iCAAiC;UAC1C+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,wCAAwC;UAC/CgP,IAAI,EAAE,qBAAqB;UAC3BxlC,IAAI,EAAE,GAAG;UACTstB,IAAI,EAAEw1P,2GAAoB;UAC1Bt2P,OAAO,EAAE,4BAA4B;UACrC+qB,UAAU,EAAEjf,mGAAyB;UACrC2K,aAAa,EAAE;SAChB,EACD;UACEzM,KAAK,EAAE,oCAAoC;UAC3Cx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,mBAAmB;UACzBlY,IAAI,EAAEqiB,yGAAkB;UACxBnjB,OAAO,EAAE,0BAA0B;UACnC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC;OAEJ,EACD;QACEp9D,KAAK,EAAE,sCAAsC;QAC7CgP,IAAI,EAAE,eAAe;QACrBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,qCAAqC;UAC5CgP,IAAI,EAAE,eAAe;UACrBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,4CAA4C;YACnDgP,IAAI,EAAE,kBAAkB;YACxBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEmsP,+HAA0B;YAChCjtP,OAAO,EAAE,2BAA2B;YACpC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,wCAAwC;UAC/CgP,IAAI,EAAE,eAAe;UACrBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,mCAAmC;YAC1CgP,IAAI,EAAE,kBAAkB;YACxBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAE8vP,uHAAqB;YAC3B5wP,OAAO,EAAE,yBAAyB;YAClC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,0CAA0C;YACjDgP,IAAI,EAAE,kBAAkB;YACxBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAE+vP,gIAAwB;YAC9B7wP,OAAO,EAAE,gCAAgC;YACzC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,qCAAqC;UAC5CgP,IAAI,EAAE,eAAe;UACrBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,kDAAkD;YACzDgP,IAAI,EAAE,kBAAkB;YACxBxlC,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEq/K,qKAA+B;YACrCngL,OAAO,EAAE,2BAA2B;YACpC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,oDAAoD;YAC3Dx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,iBAAiB;YACvBlY,IAAI,EAAE8/K,iKAA8B;YACpC5gL,OAAO,EAAE,sCAAsC;YAC/C+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ;KAEJ,EAED;MACEp9D,KAAK,EAAE,6CAA6C;MACpDgP,IAAI,EAAE,eAAe;MACrBzlC,QAAQ,EAAE,CACR;QACEy2B,KAAK,EAAE,qDAAqD;QAC5DgP,IAAI,EAAE,gBAAgB;QACtBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,qDAAqD;UAC5DgP,IAAI,EAAE,mBAAmB;UACzBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,sCAAsC;YAC7Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEi6G,qIAAwB;YAC9B/6G,OAAO,EAAE,wBAAwB;YACjC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,wCAAwC;YAC/Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEy5G,0HAA0B;YAChCv6G,OAAO,EAAE,0BAA0B;YACnC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,oCAAoC;YAC3Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEuhH,6HAAsB;YAC5BriH,OAAO,EAAE,sBAAsB;YAC/B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,2CAA2C;YAClDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE+3G,mIAA6B;YACnC74G,OAAO,EAAE,6BAA6B;YACtC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,uCAAuC;YAC9Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEu3G,yIAAyB;YAC/Br4G,OAAO,EAAE,yBAAyB;YAClC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,yCAAyC;YAChDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE21G,iJAA2B;YACjCz2G,OAAO,EAAE,2BAA2B;YACpC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ,EACD;QACEp9D,KAAK,EAAE,0CAA0C;QACjDgP,IAAI,EAAE,sBAAsB;QAC5BzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,0CAA0C;UACjDgP,IAAI,EAAE,mBAAmB;UACzBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,2CAA2C;YAClDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEyxG,iIAAuB;YAC7B97F,aAAa,EAAE,CAAC;YAChBzW,OAAO,EAAE,6BAA6B;YACtC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,0CAA0C;YACjDx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAEk6G,kHAAwB;YAC9Bh7G,OAAO,EAAE,6CAA6C;YACtD+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,qDAAqD;YAC5Dx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAEw4G,wKAAiC;YACvCt5G,OAAO,EAAE,uCAAuC;YAChD+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,yCAAyC;YAChDx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAEq0G,iIAAuB;YAC7Bn1G,OAAO,EAAE,6BAA6B;YACtC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ,EACD;QACEp9D,KAAK,EAAE,wCAAwC;QAC/C;QACAgP,IAAI,EAAE,mBAAmB;QACzBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,wCAAwC;UAC/CgP,IAAI,EAAE,mBAAmB;UACzBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,8DAA8D;YACrEx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAEmpG,kNAA0C;YAChDjqG,OAAO,EAAE,gDAAgD;YACzD+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,sDAAsD;YAC7Dx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAEm2G,uMAAwC;YAC9Cj3G,OAAO,EAAE,4EAA4E;YACrF+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,sDAAsD;YAC7Dx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAEs2G,uMAAwC;YAC9Cp3G,OAAO,EAAE,4EAA4E;YACrF+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,gEAAgE;YACvEx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAE61G,2MAAyC;YAC/C32G,OAAO,EAAE,sFAAsF;YAC/F+qB,UAAU,EAAEjf,mGAAyBqU;WACtC;SAEJ;OAEJ,EACD;QACEnW,KAAK,EAAE,yCAAyC;QAChDgP,IAAI,EAAE,wBAAwB;QAC9BzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,yCAAyC;UAChDgP,IAAI,EAAE,mBAAmB;UACzBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,wCAAwC;YAC/Cx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAEo8G,0HAAsB;YAC5Bl9G,OAAO,EAAE,0BAA0B;YACnC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,uCAAuC;YAC9Cx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAE07G,wHAAwB;YAC9Bx8G,OAAO,EAAE,6CAA6C;YACtD+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,iDAAiD;YACxDx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAE26G,4GAAoB;YAC1Bz7G,OAAO,EAAE,yCAAyC;YAClD+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,gDAAgD;YACvDx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAEq7G,4GAAoB;YAC1Bn8G,OAAO,EAAE,yCAAyC;YAClD+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,kDAAkD;YACzDx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAEs7G,4GAAoB;YAC1Bp8G,OAAO,EAAE,yCAAyC;YAClD+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,sEAAsE;YAC7Ex2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAE27G,yLAA6C;YACnDz8G,OAAO,EAAE,kEAAkE;YAC3E+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,yDAAyD;YAChEx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAEy7G,qLAA2C;YACjDv8G,OAAO,EAAE,gEAAgE;YACzE+qB,UAAU,EAAEjf,mGAAyBqU;WACtC;UACD;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;YACEnW,KAAK,EAAE,gDAAgD;YACvDx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAE87G,qKAAqC;YAC3C58G,OAAO,EAAE,0DAA0D;YACnE+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,wCAAwC;YAC/Cx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAE67G,2IAA6B;YACnC38G,OAAO,EAAE,kDAAkD;YAC3D+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,kDAAkD;YACzDx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAE+7G,sLAA0C;YAChD78G,OAAO,EAAE,+DAA+D;YACxE+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,0CAA0C;YACjDx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAE47G,4JAAkC;YACxC18G,OAAO,EAAE,uDAAuD;YAChE+qB,UAAU,EAAEjf,mGAAyBqU;WACtC;SAEJ;OAEJ;KAEJ,EACD;MACEnW,KAAK,EAAE,sCAAsC;MAC7CgP,IAAI,EAAE,cAAc;MACpBzlC,QAAQ,EAAE,CACR;QACEy2B,KAAK,EAAE,8CAA8C;QACrDgP,IAAI,EAAE,gBAAgB;QACtBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,8CAA8C;UACrDgP,IAAI,EAAE,cAAc;UACpBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,mCAAmC;YAC1C;YACAx2B,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEwzJ,kGAAiB;YACvBt0J,OAAO,EAAE,eAAe;YACxB+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,mCAAmC;YAC1C;YACAx2B,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAE0zJ,kGAAiB;YACvBx0J,OAAO,EAAE,eAAe;YACxB+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,yCAAyC;YAChD;YACAx2B,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEszJ,6HAAuB;YAC7Bp0J,OAAO,EAAE,qBAAqB;YAC9B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,0CAA0C;YACjD;YACAx2B,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEozJ,iIAAwB;YAC9Bl0J,OAAO,EAAE,sBAAsB;YAC/B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,wCAAwC;YAC/C;YACAx2B,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEm2J,6HAAuB;YAC7Bj3J,OAAO,EAAE,qBAAqB;YAC9B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,6CAA6C;YACpD;YACAx2B,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEg3J,gJAA2B;YACjC93J,OAAO,EAAE,yBAAyB;YAClC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,yCAAyC;YAChD;YACAx2B,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEy0J,6HAAuB;YAC7Bv1J,OAAO,EAAE,2BAA2B;YACpC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ,EACD;QACEp9D,KAAK,EAAE,0CAA0C;QACjD3iB,IAAI,EAAE,2BAA2B;QACjC2xB,IAAI,EAAE,gBAAgB;QACtBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,0CAA0C;UACjDgP,IAAI,EAAE,mBAAmB;UACzBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,yCAAyC;YAChDx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAE8/J,6HAAuB;YAC7B5gK,OAAO,EAAE,2BAA2B;YACpC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ,EACD;QACEp9D,KAAK,EAAE,yCAAyC;QAChDgP,IAAI,EAAE,mBAAmB;QACzBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,yCAAyC;UAChDgP,IAAI,EAAE,mBAAmB;UACzBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,yCAAyC;YAChDx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAE+0J,sHAAuB;YAC7B71J,OAAO,EAAE,yBAAyB;YAClC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,eAAe;YACtBx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAE80J,wGAAkB;YACxB51J,OAAO,EAAE,sCAAsC;YAC/C+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ;KAEJ,EACD;MACEp9D,KAAK,EAAE,iCAAiC;MACxCgP,IAAI,EAAE,YAAY;MAClBzlC,QAAQ,EAAE,CACR;QACEy2B,KAAK,EAAE,2CAA2C;QAClDgP,IAAI,EAAE,gBAAgB;QACtBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,wCAAwC;UAC/CgP,IAAI,EAAE,mBAAmB;UACzBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,8CAA8C;YACrDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEqxH,uKAA+B;YACrCnyH,OAAO,EAAE,4BAA4B;YACrC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,8CAA8C;YACrDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEmxH,4KAAgC;YACtCjyH,OAAO,EAAE,6BAA6B;YACtC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,sCAAsC;YAC7Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE6wH,mKAA8B;YACpC3xH,OAAO,EAAE,2BAA2B;YACpC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,+BAA+B;YACtCx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEgxH,4GAAiB;YACvB9xH,OAAO,EAAE,cAAc;YACvB+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,0CAA0C;YACjDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE0vH,uJAA2B;YACjCxwH,OAAO,EAAE,wBAAwB;YACjC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,uCAAuC;YAC9Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE+xH,gIAAsB;YAC5B7yH,OAAO,EAAE,mBAAmB;YAC5B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,iCAAiC;UACxCgP,IAAI,EAAE,mBAAmB;UACzBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,iCAAiC;YACxCx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRvC,aAAa,EAAE,CAAC;YAChB3V,IAAI,EAAE8tH,yHAAoB;YAC1B5uH,OAAO,EAAE,iBAAiB;YAC1B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,mCAAmC;YAC1Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRvC,aAAa,EAAE,CAAC;YAChB3V,IAAI,EAAE8tH,yHAAoB;YAC1B5uH,OAAO,EAAE,iBAAiB;YAC1B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,iCAAiC;YACxCx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRvC,aAAa,EAAE,CAAC;YAChB3V,IAAI,EAAE8tH,yHAAoB;YAC1B5uH,OAAO,EAAE,iBAAiB;YAC1B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,uCAAuC;YAC9Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRvC,aAAa,EAAE,CAAC;YAChB3V,IAAI,EAAE8tH,yHAAoB;YAC1B5uH,OAAO,EAAE,iBAAiB;YAC1B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,6CAA6C;YACpDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRvC,aAAa,EAAE,EAAE;YACjB3V,IAAI,EAAE8tH,yHAAoB;YAC1B5uH,OAAO,EAAE,iBAAiB;YAC1B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,+CAA+C;YACtDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRvC,aAAa,EAAE,EAAE;YACjB3V,IAAI,EAAE8tH,yHAAoB;YAC1B5uH,OAAO,EAAE,iBAAiB;YAC1B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,wCAAwC;UAC/CgP,IAAI,EAAE,mBAAmB;UACzBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,+BAA+B;YACtCx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEm6H,oIAAqB;YAC3Bj7H,OAAO,EAAE,kBAAkB;YAC3B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,+BAA+B;YACtCx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEi6H,gIAAoB;YAC1B/6H,OAAO,EAAE,iBAAiB;YAC1B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,+BAA+B;YACtCx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEq6H,4IAAuB;YAC7Bn7H,OAAO,EAAE,oBAAoB;YAC7B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,gEAAgE;UACvEx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,EAAE;UACRlY,IAAI,EAAEyxH,+IAAyB;UAC/BvyH,OAAO,EAAE,sBAAsB;UAC/B+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,yCAAyC;UAChDgP,IAAI,EAAE,mBAAmB;UACzBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,sCAAsC;YAC7Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEy6H,iKAA4B;YAClCv7H,OAAO,EAAE,yBAAyB;YAClC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,oCAAoC;YAC3Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE27H,iKAA4B;YAClCz8H,OAAO,EAAE,yBAAyB;YAClC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,+BAA+B;YACtCx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEi8H,qJAAyB;YAC/B/8H,OAAO,EAAE,sBAAsB;YAC/B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,mCAAmC;YAC1Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE+6H,yIAAsB;YAC5B77H,OAAO,EAAE,mBAAmB;YAC5B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,yDAAyD;YAChEx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEy7H,4KAA8B;YACpCv8H,OAAO,EAAE,2BAA2B;YACpC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,wCAAwC;YAC/Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEu8H,2LAAiC;YACvCr9H,OAAO,EAAE,8BAA8B;YACvC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,2CAA2C;YAClDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE26H,iJAAwB;YAC9Bz7H,OAAO,EAAE,qBAAqB;YAC9B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,uCAAuC;YAC9Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEu7H,sJAAyB;YAC/Br8H,OAAO,EAAE,sBAAsB;YAC/B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,qDAAqD;YAC5Dx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEq7H,2NAAwC;YAC9Cn8H,OAAO,EAAE,qCAAqC;YAC9C+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,yCAAyC;YAChDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE67H,yLAAiC;YACvC38H,OAAO,EAAE,8BAA8B;YACvC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,wDAAwD;YAC/Dx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEm7H,gOAA0C;YAChDj8H,OAAO,EAAE,uCAAuC;YAChD+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,sCAAsC;YAC7Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE66H,kKAA4B;YAClC37H,OAAO,EAAE,yBAAyB;YAClC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,qCAAqC;YAC5Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEi7H,yJAAyB;YAC/B/7H,OAAO,EAAE,sBAAsB;YAC/B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,8CAA8C;YACrDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEu6H,kLAAgC;YACtCr7H,OAAO,EAAE,6BAA6B;YACtC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,0CAA0C;YACjDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE+7H,iLAA+B;YACrC78H,OAAO,EAAE,4BAA4B;YACrC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,yCAAyC;YAChDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEm8H,8JAA2B;YACjCj9H,OAAO,EAAE,wBAAwB;YACjC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,mCAAmC;YAC1Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEq8H,sIAAqB;YAC3Bn9H,OAAO,EAAE,kBAAkB;YAC3B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,qCAAqC;UAC5Cx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,EAAE;UACRlY,IAAI,EAAE+iH,wIAAuB;UAC7B7jH,OAAO,EAAE,oBAAoB;UAC7B+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,sCAAsC;UAC7Cx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,EAAE;UACRlY,IAAI,EAAE2xH,yHAAoB;UAC1BzyH,OAAO,EAAE,iBAAiB;UAC1B+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,mCAAmC;UAC1Cx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,EAAE;UACRlY,IAAI,EAAEqwH,+IAAwB;UAC9BnxH,OAAO,EAAE,qBAAqB;UAC9B+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,4CAA4C;UACnDx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,EAAE;UACRlY,IAAI,EAAEywH,+JAA4B;UAClCvxH,OAAO,EAAE,yBAAyB;UAClC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,qCAAqC;UAC5Cx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,EAAE;UACRlY,IAAI,EAAEu3H,0IAAwB;UAC9Br4H,OAAO,EAAE,qBAAqB;UAC9B+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC;OAEJ,EACD;QACEp9D,KAAK,EAAE,0CAA0C;QACjDgP,IAAI,EAAE,iBAAiB;QACvBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,uCAAuC;UAC9CgP,IAAI,EAAE,cAAc;UACpBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,uCAAuC;YAC9Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEy1H,sIAAyB;YAC/Bv2H,OAAO,EAAE,sBAAsB;YAC/B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,2CAA2C;UAClDx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,cAAc;UACpBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,sCAAsC;YAC7Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE2wH,wKAA+B;YACrCzxH,OAAO,EAAE,4BAA4B;YACrC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,6CAA6C;YACpDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE+2H,sKAAiC;YACvC73H,OAAO,EAAE,8BAA8B;YACvC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,8CAA8C;UACrDx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,cAAc;UACpBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,6CAA6C;YACpDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEwzH,6LAAsC;YAC5Ct0H,OAAO,EAAE,mCAAmC;YAC5C+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,uCAAuC;UAC9Cx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,EAAE;UACRlY,IAAI,EAAEs4H,mJAA+B;UACrCp5H,OAAO,EAAE,4BAA4B;UACrC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,2CAA2C;UAClDx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,mBAAmB;UACzBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,uCAAuC;YAC9Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEgwH,4HAAoB;YAC1B9wH,OAAO,EAAE,iBAAiB;YAC1B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,2DAA2D;YAClEx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE8vH,2JAA2B;YACjC5wH,OAAO,EAAE,iBAAiB;YAC1B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ,EACD;UACEp9D,KAAK,EAAE,6CAA6C;UACpDx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,EAAE;UACRlY,IAAI,EAAE45H,mKAA+B;UACrC16H,OAAO,EAAE,gCAAgC;UACzC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,qDAAqD;UAC5Dx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,EAAE;UACRlY,IAAI,EAAE+zH,wJAAmC;UACzC70H,OAAO,EAAE,oCAAoC;UAC7C+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,sCAAsC;UAC7Cx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,mBAAmB;UACzBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,4CAA4C;YACnDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRvC,aAAa,EAAE,CAAC;YAChB3V,IAAI,EAAE+4H,0NAA4C;YAClD75H,OAAO,EAAE,6CAA6C;YACtD+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,mCAAmC;YAC1Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRvC,aAAa,EAAE,CAAC;YAChB3V,IAAI,EAAE+4H,0NAA4C;YAClD75H,OAAO,EAAE,6CAA6C;YACtD+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,iCAAiC;YACxCx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRvC,aAAa,EAAE,CAAC;YAChB3V,IAAI,EAAE+4H,0NAA4C;YAClD75H,OAAO,EAAE,6CAA6C;YACtD+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,uCAAuC;YAC9Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRvC,aAAa,EAAE,CAAC;YAChB3V,IAAI,EAAE+4H,0NAA4C;YAClD75H,OAAO,EAAE,gCAAgC;YACzC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,6CAA6C;YACpDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRvC,aAAa,EAAE,EAAE;YACjB3V,IAAI,EAAE+4H,0NAA4C;YAClD75H,OAAO,EAAE,gCAAgC;YACzC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,+CAA+C;YACtDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRvC,aAAa,EAAE,EAAE;YACjB3V,IAAI,EAAE+4H,0NAA4C;YAClD75H,OAAO,EAAE,iDAAiD;YAC1D+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ,EACD;QACEp9D,KAAK,EAAE,0CAA0C;QACjDgP,IAAI,EAAE,gBAAgB;QACtBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,0CAA0C;UACjDgP,IAAI,EAAE,gBAAgB;UACtBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,qDAAqD;YAC5Dx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE2iH,2HAAsB;YAC5BzjH,OAAO,EAAE,6CAA6C;YACtD+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,qDAAqD;YAC5Dx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE2hH,yIAA0B;YAChCziH,OAAO,EAAE,2BAA2B;YACpC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,8CAA8C;YACrDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE+hH,+IAA4B;YAClC7iH,OAAO,EAAE,6BAA6B;YACtC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ,EACD;QACEp9D,KAAK,EAAE,kCAAkC;QACzCgP,IAAI,EAAE,wBAAwB;QAC9BzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,kCAAkC;UACzCgP,IAAI,EAAE,wBAAwB;UAC9BzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,uCAAuC;YAC9Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEwiI,wGAAkB;YACxBtjI,OAAO,EAAE,mBAAmB;YAC5B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,kDAAkD;YACzDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE48H,4HAAwB;YAC9B19H,OAAO,EAAE,6DAA6D;YACtE+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,qCAAqC;YAC5Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEw8H,sHAAsB;YAC5Bt9H,OAAO,EAAE,2DAA2D;YACpE+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,mDAAmD;YAC1Dx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEkwH,mJAAyB;YAC/BhxH,OAAO,EAAE,sBAAsB;YAC/B+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,8CAA8C;YACrDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE08H,qIAA2B;YACjCx9H,OAAO,EAAE,gEAAgE;YACzE+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,kDAAkD;YACzDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEy8H,8HAAwB;YAC9Bv9H,OAAO,EAAE,yDAAyD;YAClE+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,wCAAwC;YAC/Cx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAE28H,mHAAqB;YAC3Bz9H,OAAO,EAAE,0DAA0D;YACnE+qB,UAAU,EAAEjf,mGAAyBqU;WACtC,EACD;YACEnW,KAAK,EAAE,gDAAgD;YACvDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,EAAE;YACRlY,IAAI,EAAEs+H,oJAA0B;YAChCp/H,OAAO,EAAE,uBAAuB;YAChC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ;KAEJ,EACD;MACEp9D,KAAK,EAAE,sCAAsC;MAC7CgP,IAAI,EAAE,aAAa;MACnBzlC,QAAQ,EAAE,CACR;QACEy2B,KAAK,EAAE,8CAA8C;QACrDgP,IAAI,EAAE,gBAAgB;QACtBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,oCAAoC;UAC3Cx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,kBAAkB;UACxBlY,IAAI,EAAEyrJ,6HAAsB;UAC5BvsJ,OAAO,EAAE,qBAAqB;UAC9B+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,mCAAmC;UAC1Cx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,YAAY;UAClBlY,IAAI,EAAEkrJ,yGAAiB;UACvBhsJ,OAAO,EAAE,gBAAgB;UACzB+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,qCAAqC;UAC5Cx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,aAAa;UACnBlY,IAAI,EAAE+jI,oIAAuB;UAC7B7kI,OAAO,EAAE,sBAAsB;UAC/B+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,oCAAoC;UAC3Cx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,YAAY;UAClBlY,IAAI,EAAEiqI,6GAAkB;UACxB/qI,OAAO,EAAE,iBAAiB;UAC1B+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,yCAAyC;UAChDx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,iBAAiB;UACvBlY,IAAI,EAAE2sI,uJAA2B;UACjCztI,OAAO,EAAE,0BAA0B;UACnC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,qCAAqC;UAC5Cx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,iBAAiB;UACvBlY,IAAI,EAAEmrI,oIAAuB;UAC7BjsI,OAAO,EAAE,sBAAsB;UAC/B+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC;OAEJ,EACD;QACEp9D,KAAK,EAAE,2CAA2C;QAClDgP,IAAI,EAAE,gBAAgB;QACtB3xB,IAAI,EAAE,4BAA4B;QAClC9T,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,2CAA2C;UAClDgP,IAAI,EAAE,gBAAgB;UACtBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,4CAA4C;YACnDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,iBAAiB;YACvBlY,IAAI,EAAEwtI,4JAA8B;YACpCtuI,OAAO,EAAE,6BAA6B;YACtC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,yCAAyC;YAChDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,iBAAiB;YACvBlY,IAAI,EAAEyiJ,0HAAuB;YAC7BvjJ,OAAO,EAAE,4BAA4B;YACrC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ,EACD;QACEp9D,KAAK,EAAE,oCAAoC;QAC3CgP,IAAI,EAAE,wBAAwB;QAC9BzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,0CAA0C;UACjDx2B,IAAI,EAAE,GAAG;UACTwlC,IAAI,EAAE,iBAAiB;UACvBlY,IAAI,EAAEomJ,gIAAwB;UAC9BlnJ,OAAO,EAAE,2BAA2B;UACpC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC,EACD;UACEp9D,KAAK,EAAE,gDAAgD;UACvDx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAEyrI,6HAAuB;UAC7BvsI,OAAO,EAAE,4CAA4C;UACrD+qB,UAAU,EAAEjf,mGAAyBqU;SACtC,EACD;UACEnW,KAAK,EAAE,2DAA2D;UAClEx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAE8lJ,wJAAkC;UACxC5mJ,OAAO,EAAE,qDAAqD;UAC9D+qB,UAAU,EAAEjf,mGAAyBqU;SACtC,EACD;UACEnW,KAAK,EAAE,+CAA+C;UACtDx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAEynJ,2IAA6B;UACnCvoJ,OAAO,EAAE,0CAA0C;UACnD+qB,UAAU,EAAEjf,mGAAyBqU;SACtC,EACD;UACEnW,KAAK,EAAE,8CAA8C;UACrDx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAEulJ,iKAAmC;UACzCrmJ,OAAO,EAAE,yDAAyD;UAClE+qB,UAAU,EAAEjf,mGAAyBqU;SACtC,EACD;UACEnW,KAAK,EAAE,gDAAgD;UACvDx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAE2lJ,8IAA8B;UACpCzmJ,OAAO,EAAE,oDAAoD;UAC7D+qB,UAAU,EAAEjf,mGAAyBqU;SACtC,EACD;UACEnW,KAAK,EAAE,oDAAoD;UAC3Dx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAE0lJ,oKAAoC;UAC1CxmJ,OAAO,EAAE,0DAA0D;UACnE+qB,UAAU,EAAEjf,mGAAyBqU;SACtC,EACD;UACEnW,KAAK,EAAE,gEAAgE;UACvEx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAEqlJ,4MAAgD;UACtDnmJ,OAAO,EAAE,sEAAsE;UAC/E+qB,UAAU,EAAEjf,mGAAyBqU;SACtC,EACD;UACEnW,KAAK,EAAE,+CAA+C;UACtDx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAEolJ,oMAA8C;UACpDlmJ,OAAO,EAAE,oEAAoE;UAC7E+qB,UAAU,EAAEjf,mGAAyBqU;SACtC,EACD;UACEnW,KAAK,EAAE,8CAA8C;UACrDx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAEmlJ,yJAAiC;UACvCjmJ,OAAO,EAAE,uDAAuD;UAChE+qB,UAAU,EAAEjf,mGAAyBqU;SACtC,EAED;UACEnW,KAAK,EAAE,2DAA2D;UAClEx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAEslJ,uKAAqC;UAC3CpmJ,OAAO,EAAE,2DAA2D;UACpE+qB,UAAU,EAAEjf,mGAAyBqU;SACtC;QAED;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;UACEnW,KAAK,EAAE,0DAA0D;UACjEx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAEwlJ,kLAAwC;UAC9CtmJ,OAAO,EAAE,+DAA+D;UACxE+qB,UAAU,EAAEjf,mGAAyBqU;SACtC,EACD;UACEnW,KAAK,EAAE,sDAAsD;UAC7Dx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAEklJ,qIAA2B;UACjChmJ,OAAO,EAAE,iDAAiD;UAC1D+qB,UAAU,EAAEjf,mGAAyBqU;SACtC,EACD;UACEnW,KAAK,EAAE,6DAA6D;UACpEx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAEklJ,qIAA2B;UACjChmJ,OAAO,EAAE,iDAAiD;UAC1D+qB,UAAU,EAAEjf,mGAAyBqU;SACtC;OAEJ,EACD;QACEnW,KAAK,EAAE,iDAAiD;QACxDgP,IAAI,EAAE,aAAa;QACnBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,kDAAkD;UACzDx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAE6qJ,mKAA8B;UACpC3rJ,OAAO,EAAE,mCAAmC;UAC5C+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC;OAEJ,EACD;QACEp9D,KAAK,EAAE,4CAA4C;QACnDgP,IAAI,EAAE,eAAe;QACrBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,2CAA2C;UAClDx2B,IAAI,EAAE,GAAG;UACT;UACAstB,IAAI,EAAEyuI,4JAA6B;UACnCvvI,OAAO,EAAE,4BAA4B;UACrC+qB,UAAU,EAAEjf,mGAAyBs7D;SACtC;OAEJ,EACD;QACEp9D,KAAK,EAAE,iDAAiD;QACxDgP,IAAI,EAAE,qBAAqB;QAC3BzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,iDAAiD;UACxDgP,IAAI,EAAE,qBAAqB;UAC3BzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,iDAAiD;YACxDx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,qBAAqB;YAC3BlY,IAAI,EAAE4kJ,kLAA8B;YACpC1lJ,OAAO,EAAE,mCAAmC;YAC5C+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,yDAAyD;YAChEx2B,IAAI,EAAE,GAAG;YACTwlC,IAAI,EAAE,eAAe;YACrBlY,IAAI,EAAEglJ,qNAAsC;YAC5C9lJ,OAAO,EAAE,2CAA2C;YACpD+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ;KAEJ,EACD;MACEp9D,KAAK,EAAE,uCAAuC;MAC9CgP,IAAI,EAAE,gBAAgB;MACtBzlC,QAAQ,EAAE,CACR;QACEy2B,KAAK,EAAE,8CAA8C;QACrDgP,IAAI,EAAE,gBAAgB;QACtBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,8CAA8C;UACrDgP,IAAI,EAAE,gBAAgB;UACtBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,uCAAuC;YAC9C;YACAx2B,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEivJ,sIAAyB;YAC/B/vJ,OAAO,EAAE,2BAA2B;YACpC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,mCAAmC;YAC1C;YACAx2B,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEqvJ,sHAAqB;YAC3BnwJ,OAAO,EAAE,uBAAuB;YAChC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,4CAA4C;YACnD;YACAx2B,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAE2uJ,6JAA8B;YACpCzvJ,OAAO,EAAE,gCAAgC;YACzC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,0CAA0C;YACjD;YACAx2B,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEguJ,qJAA4B;YAClC9uJ,OAAO,EAAE,8BAA8B;YACvC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,0CAA0C;YACjD;YACAx2B,IAAI,EAAE,GAAG;YACTstB,IAAI,EAAEuvJ,qJAA4B;YAClCrwJ,OAAO,EAAE,0BAA0B;YACnC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ,EACD;QACEp9D,KAAK,EAAE,4CAA4C;QACnD3iB,IAAI,EAAE,gCAAgC;QACtC2xB,IAAI,EAAE,gBAAgB;QACtBzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,4CAA4C;UACnDgP,IAAI,EAAE,gBAAgB;UACtBzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,gDAAgD;YACvDx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAEmsJ,yMAAwC;YAC9CjtJ,OAAO,EAAE,0CAA0C;YACnD+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC,EACD;YACEp9D,KAAK,EAAE,4CAA4C;YACnDx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAEkzJ,kIAAwB;YAC9Bh0J,OAAO,EAAE,gCAAgC;YACzC+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ,EACD;QACEp9D,KAAK,EAAE,0CAA0C;QACjDgP,IAAI,EAAE,wBAAwB;QAC9BzlC,QAAQ,EAAE,CACR;UACEy2B,KAAK,EAAE,0CAA0C;UACjDgP,IAAI,EAAE,wBAAwB;UAC9BzlC,QAAQ,EAAE,CACR;YACEy2B,KAAK,EAAE,qCAAqC;YAC5Cx2B,IAAI,EAAE,GAAG;YACT;YACAstB,IAAI,EAAEiuJ,sIAA2B;YACjC/uJ,OAAO,EAAE,iCAAiC;YAC1C+qB,UAAU,EAAEjf,mGAAyBs7D;WACtC;SAEJ;OAEJ;KAEJ,EAED;MACEp9D,KAAK,EAAE,iCAAiC;MACxCgP,IAAI,EAAE,eAAe;MACrBzlC,QAAQ,EAAE,CACR;QACEy2B,KAAK,EAAE,+BAA+B;QACtCgP,IAAI,EAAE,eAAe;QACrBxlC,IAAI,EAAE,GAAG;QACTstB,IAAI,EAAE8vQ,6FAAiB;QACvB5wQ,OAAO,EAAE,cAAc;QACvB+qB,UAAU,EAAEjf,mGAAyBs7D;OACtC,EACD;QACEp9D,KAAK,EAAE,mCAAmC;QAC1CgP,IAAI,EAAE,uBAAuB;QAC7BxlC,IAAI,EAAE,GAAG;QACTstB,IAAI,EAAEywQ,6FAAiB;QACvBvxQ,OAAO,EAAE,uBAAuB;QAChC+qB,UAAU,EAAEjf,mGAAyBs7D;OACtC,EACD;QACEp9D,KAAK,EAAE,wCAAwC;QAC/CgP,IAAI,EAAE,kBAAkB;QACxBxlC,IAAI,EAAE,GAAG;QACTstB,IAAI,EAAEqvQ,8GAA0B;QAChCnwQ,OAAO,EAAE,uBAAuB;QAChC+qB,UAAU,EAAE;OACb,EACD;QACE/gB,KAAK,EAAE,qCAAqC;QAC5CgP,IAAI,EAAE,kBAAkB;QACxBxlC,IAAI,EAAE,GAAG;QACTstB,IAAI,EAAEiwQ,kIAA0B;QAChC/wQ,OAAO,EAAE,uBAAuB;QAChC+qB,UAAU,EAAEjf,mGAAyBs7D;OACtC;KAEJ,CACF;;;AAzhEU/jD,WAAW;mBAAXA,WAAW;AAAA;AAAXA,WAAW;SAAXA,WAAW;EAAA/wC,SAAX+wC,WAAW;AAAA;;;;;;;;;;;;;;;;;;;;;;ACpM6C;AACoD;AACL;AACzE;;;;AASrC,MAAOmuP,mBAAoB,SAAQtxP,mIAAoC;EAE3EpxC,YAAsB6tB,eAAgC,EAAYlW,EAAqB;IACrF,KAAK,CAACkW,eAAe,EAAElW,EAAE,CAAC;IADN,oBAAe,GAAfkW,eAAe;IAA6B,OAAE,GAAFlW,EAAE;EAEpE;EACMuD,QAAQ;IAAA;MAAA;IAAA;MACZ,KAAI,CAACgW,OAAO,GAAG,cAAc;MAC7B,KAAI,CAACqN,QAAQ,GAAG,SAAS;MACzB,KAAI,CAACS,KAAK,GAAG,KAAI,CAACkT,SAAS,CAAC,0CAA0C,CAAC;MACvE,oCAAgB;IAAC;EACnB;EACA8U,UAAU;IACR,IAAI,CAACpyB,KAAK,CAAC2zE,SAAS,GAAG1gE,IAAI,CAAC4E,SAAS,CAAC,IAAI,CAACk2P,YAAY,CAAC;IACxD,IAAI,CAAC/tQ,KAAK,CAACwwP,SAAS,GAAG,IAAI,CAACud,YAAY,CAACvd,SAAS;EACpD;EACAp9I,QAAQ;IACN,IAAI;MACF,IAAI,CAAC,IAAI,CAACh8E,QAAQ,EAAE;QAClB,IAAI,IAAI,CAACv7C,OAAO,EAAE,EAAE;UAClB,IAAI,CAACw7C,WAAW,EAAE;UAClB,IAAI,CAACv+B,GAAG,CAACkS,SAAS,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,CAACsS,SAAS,CAAC,2CAA2C,CAAC,CAAC;UAC3F,IAAI,CAAC8Z,QAAQ,GAAG,IAAI;UACpB,IAAI,CAACE,OAAO,GAAG,KAAK;UACpB,IAAI,IAAI,CAAClC,QAAQ,IAAI,CAAC,IAAI,CAAClyB,EAAE,EAAE;YAC7B,IAAI,CAACqa,iBAAiB,CACnB/uC,MAAM,CAAC,IAAI,CAAC8tB,OAAO,GAAG,WAAW,EAAE,IAAI,CAACyD,oBAAoB,EAAE,CAAC,CAC/DxC,IAAI,CAAC5E,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CACnClS,SAAS,CACPyf,GAAG,IAAK,IAAI,CAACwsB,iBAAiB,CAACxsB,GAAG,CAAC,EACnCI,KAAK,IAAK,IAAI,CAACqsB,gBAAgB,CAACrsB,KAAK,CAAC,CACxC;WACJ,MAAM;YACL,IAAI,CAACoS,iBAAiB,CACnBka,MAAM,CAAC,IAAI,CAACn7B,OAAO,EAAE,IAAI,CAACyD,oBAAoB,EAAE,CAAC,CACjDxC,IAAI,CAAC5E,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CACnClS,SAAS,CACPitB,QAAQ,IAAK,IAAI,CAACgf,iBAAiB,EAAE,EACrCpsB,KAAK,IAAK,IAAI,CAACqsB,gBAAgB,CAACrsB,KAAK,CAAC,CACxC;;SAEN,MAAM;UACL,IAAI,CAAClS,eAAe,CAAC62B,UAAU,CAACnyB,IAAI,CAAC,IAAI,CAACoyB,SAAS,CAAC;;OAEvD,MAAM;QACL,IAAI,CAAC92B,eAAe,CAAC62B,UAAU,CAACnyB,IAAI,CAAC,IAAI,CAACoyB,SAAS,CAAC;;KAEvD,CAAC,OAAOvmC,CAAC,EAAE;MACV,IAAI,CAACguC,gBAAgB,CAAChuC,CAAC,CAAC;;EAE5B;;AAjDWskR,mBAAoB;mBAApBA,mBAAmB;AAAA;AAAnBA,mBAAoB;QAApBA,mBAAmB;EAAAxiS;EAAAgL,WAAAA,wEAAAA;EAAAxD;EAAAC;EAAAC;EAAAJ;IAAA;MCZhCxF,4DAAAA,sBAS8B;MAD5BA,wDAAAA;QAAA,OAAgBrB,YAAQ;MAAA,EAAC;QAAA,OACTA,cAAU;MAAA,EADD;MAE3BqB,0DAAAA,EAAe;;;MATbA,wDAAAA,wBAAmB;;;;;;;;;;;;;;;;;;;;;ACDmF;AAElG,MAAO4gS,iBAAkB,SAAQ/gQ,uGAAU;EAI/C7hC;IACE,KAAK,EAAE;IACP,IAAI,CAAColR,SAAS,GAAG,EAAE;IACnB,IAAI,CAACA,SAAS,GAAG,EAAE;IACnB,IAAI,CAAC78K,SAAS,GAAG,EAAE;EACrB;;;;;;;;;;;;;;;;;;;;;;ACVkF;AAC2B;AAC7D;;;;;;;;ICExCvmG,4DAAAA,aAAqD;IACrCA,oDAAAA,GAA4C;;IAAAA,0DAAAA,EAAO;IACjEA,4DAAAA,WAAM;IACJA,oDAAAA,GACF;;IAAAA,0DAAAA,EAAO;;;;;IAHOA,uDAAAA,GAA4C;IAA5CA,gEAAAA,MAAAA,yDAAAA,0CAA4C;IAExDA,uDAAAA,GACF;IADEA,gEAAAA,MAAAA,yDAAAA,+CACF;;;;;IAKAA,4DAAAA,WAAmB;IACjBA,oDAAAA,GACF;;IAAAA,0DAAAA,EAAO;;;;;IADLA,uDAAAA,GACF;IADEA,gEAAAA,MAAAA,yDAAAA,+CACF;;;;;IAJFA,4DAAAA,cAAkE;IAClDA,oDAAAA,GAA4C;;IAAAA,0DAAAA,EAAO;IACjEA,wDAAAA,0FAEO;IACTA,0DAAAA,EAAM;;;;;IAJUA,uDAAAA,GAA4C;IAA5CA,gEAAAA,MAAAA,yDAAAA,0CAA4C;IACnDA,uDAAAA,GAAU;IAAVA,wDAAAA,qBAAU;;;;;IAXvBA,4DAAAA,aAAmC;IAE/BA,wDAAAA,iFAKM;IAENA,wDAAAA,iFAKM;IACRA,0DAAAA,EAAM;;;;;IAbiBA,uDAAAA,GAAU;IAAVA,wDAAAA,qBAAU;IAOeA,uDAAAA,GAAkB;IAAlBA,wDAAAA,yBAAkB;;;;;IAVtEA,4DAAAA,aAA2D;IACzDA,wDAAAA,2EAgBM;IACRA,0DAAAA,EAAM;;;;;IAlBeA,wDAAAA,4BAAwB;IACpBA,uDAAAA,GAAU;IAAVA,wDAAAA,qBAAU;;;;;IAFrCA,qEAAAA,GAA4D;IAC1DA,wDAAAA,qEAkBM;IACRA,mEAAAA,EAAe;;;;IAnBkCA,uDAAAA,GAAU;IAAVA,wDAAAA,qBAAU;;;ADQvD,MAAO8gS,kBAAmB,SAAQD,4FAAuB;EAI7D7iS,YAAYgf,OAAsB,EAAE+jR,YAA+B,EAAYt1Q,aAA4B,EAAYua,WAAwB;IAC7I,KAAK,CAAChpB,OAAO,EAAE+jR,YAAY,EAAEt1Q,aAAa,EAAEua,WAAW,CAAC;IADqB,kBAAa,GAAbva,aAAa;IAA2B,gBAAW,GAAXua,WAAW;IAH3H,SAAI,GAAG,EAAE;IAEhB,YAAO,GAA0B,EAAE;EAGnC;EAEUg7P,SAAS,CAAChxQ,IAAS;IAC3B,IAAI,CAACA,IAAI,GAAGA,IAAI;EAClB;;AAVW8wQ,kBAAmB;mBAAnBA,kBAAkB;AAAA;AAAlBA,kBAAmB;QAAnBA,kBAAkB;EAAA5iS;EAAAqH;IAAA22O;EAAA;EAAAhzO,WAAAA,wEAAAA;EAAAxD;EAAAC;EAAAC;EAAAJ;IAAA;MCV/BxF,4DAAAA,aAA2B;MACzBA,wDAAAA,wEAoBe;MACjBA,0DAAAA,EAAM;;;MArB6BA,uDAAAA,GAAY;MAAZA,wDAAAA,wBAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAe;AACnB;AACkB;AAGlB;;;;;;ICAjCA,qEAAAA,GAAwC;IACtCA,oDAAAA,GACF;;IAAAA,mEAAAA,EAAe;;;;IADbA,uDAAAA,GACF;IADEA,gEAAAA,MAAAA,yDAAAA,qCACF;;;;;IACAA,qEAAAA,GAAsC;IACpCA,oDAAAA,GACF;IAAAA,mEAAAA,EAAe;;;;IADbA,uDAAAA,GACF;IADEA,gEAAAA,mCACF;;;;;IACAA,qEAAAA,GAA2D;IACzDA,oDAAAA,GACF;IAAAA,mEAAAA,EAAe;;;;IADbA,uDAAAA,GACF;IADEA,gEAAAA,mCACF;;;;;IAXJA,4DAAAA,aAAiD;IACxBA,oDAAAA,GAAqB;IAAAA,0DAAAA,EAAM;IAClDA,4DAAAA,aAAwB;IACtBA,wDAAAA,8EAEe;IACfA,wDAAAA,8EAEe;IACfA,wDAAAA,8EAEe;IACjBA,0DAAAA,EAAM;;;;IAXiBA,uDAAAA,GAAqB;IAArBA,+DAAAA,wBAAqB;IAE3BA,uDAAAA,GAAuB;IAAvBA,wDAAAA,kCAAuB;IAGvBA,uDAAAA,GAAqB;IAArBA,wDAAAA,gCAAqB;IAGrBA,uDAAAA,GAA0C;IAA1CA,wDAAAA,4DAA0C;;;;;IAK7DA,4DAAAA,cAA+B;IAAAA,uDAAAA,QAAmC;IAAAA,0DAAAA,EAAM;;;;IAAtCA,uDAAAA,GAA2B;IAA3BA,oEAAAA,8BAA2B;;;;;IASzDA,qEAAAA,GAAwC;IACtCA,oDAAAA,GACF;;IAAAA,mEAAAA,EAAe;;;;IADbA,uDAAAA,GACF;IADEA,gEAAAA,MAAAA,yDAAAA,sCACF;;;;;IACAA,qEAAAA,GAAsC;IACpCA,oDAAAA,GACF;IAAAA,mEAAAA,EAAe;;;;IADbA,uDAAAA,GACF;IADEA,gEAAAA,oCACF;;;;;IACAA,qEAAAA,GAA2D;IACzDA,oDAAAA,GACF;IAAAA,mEAAAA,EAAe;;;;IADbA,uDAAAA,GACF;IADEA,gEAAAA,oCACF;;;;;IAfNA,4DAAAA,iBAAsD;IAE3CA,oDAAAA,GAAsB;IAAAA,0DAAAA,EAAQ;IAEvCA,uDAAAA,cAAkB;IAClBA,4DAAAA,cAA4B;IAExBA,wDAAAA,iFAEe;IACfA,wDAAAA,iFAEe;IACfA,wDAAAA,iFAEe;IACjBA,0DAAAA,EAAQ;;;;IAdDA,uDAAAA,GAAsB;IAAtBA,+DAAAA,yBAAsB;IAKZA,uDAAAA,GAAuB;IAAvBA,wDAAAA,kCAAuB;IAGvBA,uDAAAA,GAAqB;IAArBA,wDAAAA,gCAAqB;IAGrBA,uDAAAA,GAA0C;IAA1CA,wDAAAA,4DAA0C;;;ADnB7D,MAAOihS,kBAAkB;EAW7BjjS,YAAoBg0J,UAAsB;IAAtB,eAAU,GAAVA,UAAU;IAV9B,kBAAa,GAAG,IAAI5mI,yCAAO,EAAQ;IAO1B,SAAI,GAAmE,QAAQ;IAC/E,cAAS,GAAY,IAAI;EAEW;EAE7ClS,QAAQ;IACN,IAAI,IAAI,CAAC0rD,IAAI,EAAE;MACb,IAAI,CAACigN,IAAI,EAAE;MACX,IAAI,CAACqc,SAAS,EAAE;;EAEpB;EAEQA,SAAS;IACf,IAAI,CAAC,IAAI,CAACzjQ,MAAM,EAAE;MAChB;;IAGF,IAAI,CAACA,MAAM,CACRtN,IAAI,CACHs3C,4DAAY,CAAC,GAAG,CAAC,EACjBx1B,mDAAG,CAAEjwC,KAAK,IAAI;MACZ,IAAIA,KAAK,EAAE;QACT,IAAI,CAAC6iR,IAAI,EAAE;;IAEf,CAAC,CAAC,CACH,CACA10P,IAAI,CAAC5E,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CACnClS,SAAS,EAAE;EAChB;EAEQ2mQ,IAAI;IACV,IAAI,CAAC57O,SAAS,GAAG,IAAI;IACrB,MAAM8B,MAAM,GAAG,IAAI,CAACo2P,WAAW,EAAE;IACjC,IAAI,CAACnvI,UAAU,CACZ9/H,GAAG,CAAC,GAAG,IAAI,CAAC0yC,IAAI,EAAE,EAAE;MAAE75B;IAAM,CAAE,CAAC,CAC/B5a,IAAI,CAACk9D,wDAAQ,CAAC,MAAO,IAAI,CAACpkD,SAAS,GAAG,KAAM,CAAC,CAAC,CAC9C9Y,IAAI,CAAC5E,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CACnClS,SAAS,CAAE8R,IAAe,IAAI;MAC7B,IAAI,CAACA,IAAI,GAAGA,IAAI;IAClB,CAAC,CAAC;EACN;EAEAmxQ,WAAW;IACT,IAAI,CAAC,IAAI,CAACl1Q,OAAO,EAAE;MACjB;;IAEF,IAAI8e,MAAM,GAAG,IAAIu0D,4DAAU,EAAE;IAC7B,IAAI,CAACrzE,OAAO,CAAC7pB,OAAO,CAAEk0B,CAAC,IAAMyU,MAAM,GAAGA,MAAM,CAACiT,MAAM,CAAC1nB,CAAC,CAACkN,IAAI,EAAElN,CAAC,CAACqN,KAAK,CAAE,CAAC;IACtE,OAAOoH,MAAM;EACf;EAEAxuB,WAAW;IACT,IAAI,IAAI,CAAC6T,aAAa,EAAE;MACtB,IAAI,CAACA,aAAa,CAACG,IAAI,EAAE;MACzB,IAAI,CAACH,aAAa,CAACmG,QAAQ,EAAE;;IAE/B,IAAI,CAACtK,OAAO,GAAGjoB,SAAS;IACxB,IAAI,CAACgsB,IAAI,GAAGhsB,SAAS;EACvB;;AAlEWi9R,kBAAkB;mBAAlBA,kBAAkB;AAAA;AAAlBA,kBAAkB;QAAlBA,kBAAkB;EAAA/iS;EAAAqH;IAAA67R;IAAAl5P;IAAA08B;IAAAnnC;IAAAxR;IAAA+D;IAAA8b;IAAA7C;EAAA;EAAAvjC;EAAAC;EAAAC;EAAAJ;IAAA;MCb/BxF,4DAAAA,aAA6C;MAGvCA,wDAAAA,sDAaM;MACNA,wDAAAA,sDAAwE;MAC1EA,0DAAAA,EAAM;MACNA,wDAAAA,6DAkBS;MACXA,0DAAAA,EAAM;;;MAtCHA,wDAAAA,2BAAsB;MAGEA,uDAAAA,GAAwB;MAAxBA,wDAAAA,oCAAwB;MAc5BA,uDAAAA,GAAU;MAAVA,wDAAAA,kBAAU;MAEJA,uDAAAA,GAAyB;MAAzBA,wDAAAA,qCAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACnBuB;AAC7B;AACkC;AAClC;AAC6D;AAIhD;AAChC;;;;;;;;;ICT/BA,4DAAAA,2BAWiB;IAFfA,wDAAAA;MAAAA,2DAAAA;MAAA;MAAA,OAAeA,yDAAAA,uBAAe;IAAA,EAAC;IAGjCA,0DAAAA,EAAoB;;;;IAVlBA,wDAAAA,oBAAY;;;ADcR,MAAOqhS,2BAA4B,SAAQR,4FAAuB;EAOtE7iS,YAAYgf,OAAsB,EAAE+jR,YAA+B,EAAYt1Q,aAA4B,EAAYua,WAAwB;IAC7I,KAAK,CAAChpB,OAAO,EAAE+jR,YAAY,EAAEt1Q,aAAa,EAAEua,WAAW,CAAC;IADqB,kBAAa,GAAbva,aAAa;IAA2B,gBAAW,GAAXua,WAAW;IANlI,kBAAa,GAAG,IAAI5a,yCAAO,EAAQ;IAC1B,UAAK,GAAoB,EAAE;IAG3B,kBAAa,GAAW,OAAO;IAC9B,aAAQ,GAAG,IAAIxsB,uDAAY,EAAE;EAGvC;EAEAsa,QAAQ;IACN,KAAK,CAACA,QAAQ,EAAE;IAChB,IAAI,CAAC8D,OAAO,CAAC05J,OAAO,CAACvmJ,IAAI,CAAC9E,wDAAQ,EAAE,EAAEE,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CAAClS,SAAS,CAAC,CAAC,CAACoS,IAAI,EAAEC,IAAI,CAAC,KAAI;MAC9F,IAAIA,IAAI,IAAIA,IAAI,CAACm3P,WAAW,EAAEzkR,MAAM,GAAG,CAAC,IAAI4iC,IAAI,CAAC4E,SAAS,CAACna,IAAI,EAAEpuB,KAAK,CAAC,KAAK2jC,IAAI,CAAC4E,SAAS,CAACla,IAAI,EAAEruB,KAAK,CAAC,EAAE;QACvG,MAAMo/R,aAAa,GAAGhxQ,IAAI,EAAEpuB,KAAK,CAAC2hB,IAAI,CAAE0I,CAAC,IAAKA,CAAC,CAACrc,GAAG,KAAK,IAAI,CAACA,GAAG,CAAC;QACjE,IAAIoxR,aAAa,IAAI,IAAI,CAAC9uO,IAAI,EAAE3hC,QAAQ,CAAC,IAAI,CAAC3gB,GAAG,CAAC,EAAE;UAClD,IAAI,CAACsiD,IAAI,CAAC3hC,QAAQ,CAAC,IAAI,CAAC3gB,GAAG,CAAC,EAAEoO,QAAQ,CAAC,CAACgjR,aAAa,CAACt/R,KAAK,CAAC,CAAC;;;IAGnE,CAAC,CAAC;EACJ;EACAu/R,qBAAqB;IACnB,MAAMC,YAAY,GAAG,IAAI,CAACxkR,OAAO,CAACuvH,aAAa,CAAC32G,QAAQ,EAAE;IAC1D,IAAI4rQ,YAAY,IAAIA,YAAY,CAACt/R,KAAK,EAAEe,MAAM,EAAE;MAC9C,MAAMq+R,aAAa,GAAGE,YAAY,CAACt/R,KAAK,CAACsN,MAAM,CAAE+c,CAAC,IAAKA,CAAC,CAACrc,GAAG,KAAK,IAAI,CAACA,GAAG,CAAC;MAC1E,IAAIoxR,aAAa,IAAI,IAAI,CAAC9uO,IAAI,EAAE3hC,QAAQ,CAAC,IAAI,CAAC3gB,GAAG,CAAC,EAAE;QAClD,MAAMlO,KAAK,GAAGs/R,aAAa,EAAEx/R,GAAG,CAAEyqB,CAAC,IAAKA,CAAC,CAACvqB,KAAK,CAAC;QAChD,IAAI,CAACwwD,IAAI,CAAC3hC,QAAQ,CAAC,IAAI,CAAC3gB,GAAG,CAAC,EAAEoO,QAAQ,CAACtc,KAAK,CAAC;;;EAGnD;EAEUy/R,uBAAuB,CAACjyR,MAAoB;IACpD,MAAMkyR,aAAa,GAAG;MAAE,GAAGlyR;IAAM,CAAE;IACnCkyR,aAAa,CAACx/R,KAAK,GAAGsN,MAAM,CAACtN,KAAK;IAClC,OAAOw/R,aAAa;EACtB;EAEUC,cAAc,CAACnyR,MAAoB;IAC3C,IAAI,CAACtN,KAAK,CAACE,OAAO,CAAEL,IAAI,IAAI;MAC1BA,IAAI,CAACsuD,QAAQ,GAAG7gD,MAAM,CAACtN,KAAK,CAAC0tB,IAAI,CAAEhnB,UAAU,IAAKA,UAAU,CAACsH,GAAG,KAAK,IAAI,CAACA,GAAG,IAAItH,UAAU,CAAC5G,KAAK,KAAKD,IAAI,CAAC2xB,EAAE,CAAC;IAChH,CAAC,CAAC;EACJ;EAEUoR,SAAS,CAACt1B,MAAoB;IACtC,IAAI;MACF,IAAI,CAAC,IAAI,CAACoyR,MAAM,EAAE;QAChB,IAAI,CAACC,cAAc,CAACtxQ,IAAI,CAAC,IAAI,CAAC;QAC9B,IAAI,CAAC,IAAI,CAAChB,QAAQ,IAAI,IAAI,CAACL,OAAO,EAAE;UAClC,IAAI,CAAC6xQ,YAAY,CACdprQ,OAAO,CAAC,IAAI,CAACzG,OAAO,CAAC,CACrBiB,IAAI,CAACk9D,wDAAQ,CAAC,MAAM,IAAI,CAACw0M,cAAc,CAACtxQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACrDJ,IAAI,CAAC5E,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CACnClS,SAAS,CACP/b,MAAa,IAAI;YAChB,IAAIA,MAAM,IAAIA,MAAM,CAACc,MAAM,GAAG,CAAC,EAAE;cAC/B,IAAI,CAACkpB,QAAQ,GAAGhqB,MAAY;cAC5B,IAAI,CAACo/R,qBAAqB,EAAE;cAC5B,IAAI,CAACP,SAAS,CAAC7+R,MAAM,CAAC;;UAE1B,CAAC,EACA47B,KAAK,IAAK9G,OAAO,CAACC,GAAG,CAAC,eAAe,GAAG6G,KAAK,CAAC,CAChD;SACJ,MAAM;UACL,IAAI,CAACtS,aAAa,CACfiK,mBAAmB,CAAC,IAAI,CAACpG,UAAU,EAAE,IAAI,CAACC,QAAQ,CAAC,CACnDY,IAAI,CAACk9D,wDAAQ,CAAC,MAAM,IAAI,CAACw0M,cAAc,CAACtxQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACrDJ,IAAI,CAAC5E,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CACnClS,SAAS,CACP/b,MAAM,IAAI;YACT,IAAKA,MAAa,IAAKA,MAAa,CAACc,MAAM,GAAG,CAAC,EAAE;cAC/C,IAAI,CAACkpB,QAAQ,GAAGhqB,MAAY;cAC5B,IAAI,CAACo/R,qBAAqB,EAAE;cAC5B,IAAI,CAACP,SAAS,CAAC7+R,MAAM,CAAC;;UAE1B,CAAC,EACA47B,KAAK,IAAK9G,OAAO,CAACC,GAAG,CAAC,eAAe,GAAG6G,KAAK,CAAC,CAChD;;;KAGR,CAAC,OAAO3hB,CAAC,EAAE;MACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;EAElB;EAEAs2O,OAAO,CAAC1wP,KAAU;IAChB,IAAI,CAAC6U,QAAQ,CAAClX,IAAI,CAACqC,KAAK,CAAC;IACzB,IAAIA,KAAK,CAACquD,QAAQ,EAAE;MAClB,IAAI,CAACrzC,OAAO,CAACgwH,SAAS,CAAC,IAAI,CAACz2H,IAAI,EAAE,CACd;QAChBrG,GAAG,EAAE,IAAI,CAACA,GAAG;QACblO,KAAK,EAAEA,KAAK,CAAC0xB,EAAE;QACfwF,KAAK,EAAEl3B,KAAK,CAACq0B,KAAK;QAClB42G,UAAU,EAAE,IAAI,CAAC/zG;OAClB,CACF,CAAC;KACH,MAAM;MACL,IAAI,CAAClc,OAAO,CAAC2rQ,YAAY,CAAC,IAAI,CAACpyQ,IAAI,EAAE,IAAI,CAACrG,GAAG,EAAE,CAAClO,KAAK,CAAC0xB,EAAE,CAAC,EAAE,OAAO,EAAC,IAAI,CAAC;;EAE5E;EAEUstQ,SAAS,CAAChxQ,IAAS;IAC3B,IAAI,CAAC9tB,KAAK,GAAG,EAAE;IACf,IAAI8tB,IAAI,IAAIA,IAAI,CAAC/sB,MAAM,EAAE;MACvB,MAAMwtD,GAAG,GAAU,IAAI,CAAC+B,IAAI,CAAC3hC,QAAQ,CAAC,IAAI,CAAC3gB,GAAG,CAAC,EAAElO,KAAK;MACtDguB,IAAI,CAAC5tB,OAAO,CAAEmqB,CAAC,IAAI;QACjB,IAAIkkC,GAAG,CAAC9pD,QAAQ,CAAC4lB,CAAC,CAACmH,EAAE,CAAC,EAAE;UACtBnH,CAAC,CAAC8jC,QAAQ,GAAG,IAAI;;MAErB,CAAC,CAAC;MACF,IAAI,CAACnuD,KAAK,GAAe8tB,IAAI,CAACluB,GAAG,CAAEkyB,CAAM,KAAoB;QAAEqC,KAAK,EAAErC,CAAC,CAAC,IAAI,CAACo8B,aAAa,CAAC;QAAE18B,EAAE,EAAEM,CAAC,CAACN,EAAE;QAAE28B,QAAQ,EAAEr8B,CAAC,CAACq8B;MAAQ,CAAE,EAAC;;EAElI;EAEA9zC,WAAW;IACT,KAAK,CAACA,WAAW,EAAE;IACnB,IAAI,IAAI,CAAC6T,aAAa,EAAE;MACtB,IAAI,CAACA,aAAa,CAACG,IAAI,EAAE;MACzB,IAAI,CAACH,aAAa,CAACmG,QAAQ,EAAE;;IAE/B,IAAI,CAACr0B,KAAK,GAAG8B,SAAS;IACtB,IAAI,CAACmoB,QAAQ,GAAGnoB,SAAS;IACzB,IAAI,CAACwuD,IAAI,GAAGxuD,SAAS;EACvB;;AA5HWq9R,2BAA4B;mBAA5BA,2BAA2B;AAAA;AAA3BA,2BAA4B;QAA5BA,2BAA2B;EAAAnjS;EAAAqH;IAAArD;IAAAswD;IAAApC;EAAA;EAAA3qD;IAAAoR;EAAA;EAAA3N,WAAAA,wEAAAA;EAAAxD;EAAAC;EAAAC;EAAAJ;IAAA;MChBxCxF,wDAAAA,2FAYoB;;;MAXjBA,wDAAAA,kBAAU;;;;;;;;;;;;;;;;;;;;;;;;;;ACD8D;AAEtB;AAGmB;AACuC;AACf;;;;;;AAuB1F,MAAO8hS,oBAAqB,SAAQjB,gFAAuB;EAe/D7iS,YACEgf,OAAsB,EACtB+jR,YAA+B,EACrBt1Q,aAA4B,EAC9Bs2Q,OAAuB,EACrB/7P,WAAwB;IAElC,KAAK,CAAChpB,OAAO,EAAE+jR,YAAY,EAAEt1Q,aAAa,EAAEua,WAAW,CAAC;IAJ9C,kBAAa,GAAbva,aAAa;IACf,YAAO,GAAPs2Q,OAAO;IACL,gBAAW,GAAX/7P,WAAW;IAnBd,qBAAgB,GAAa,CAAC,MAAM,CAAC;IACrC,cAAS,GAAG,MAAM;IAClB,gBAAW,GAAG,CAAC,MAAM,CAAC;IACtB,gBAAW,GAAYg8P,WAAW;IAClC,gBAAW,GAAG,IAAI;IAClB,cAAS,GAAc,KAAK;IAC5B,YAAO,GAAG,IAAI;IAEd,UAAK,GAAG,CAAC;IAClB,WAAM,GAAa,EAAE;IACZ,gBAAW,GAAU,EAAE;IACvB,aAAQ,GAAU,EAAE;EAW7B;EACAt6R,WAAW,CAACC,OAAsB;IAChC,IAAIA,OAAO,CAAC,UAAU,CAAC,CAAC+b,YAAY,EAAE;MACpC,IAAI,CAACs9Q,SAAS,CAAC,IAAI,CAAC70Q,QAAQ,CAAC;;EAEjC;EACU60Q,SAAS,CAAChxQ,IAAS;IAC3B,IAAI,CAACumP,MAAM,GAAG,EAAE;IAChB,IAAI,CAAC0rB,WAAW,GAAG,EAAE;IACrB,IAAIj0R,KAAK,CAACiB,OAAO,CAAC+gB,IAAI,CAAC,EAAE;MACvB,KAAK,MAAMyD,QAAQ,IAAIzD,IAAI,EAAE;QAC3B,IAAI,IAAI,CAACumP,MAAM,CAACnyP,OAAO,CAACqP,QAAQ,CAAC,IAAI,CAACyuQ,SAAS,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;UACxD,IAAI,CAAC3rB,MAAM,CAACjzQ,IAAI,CAACmwB,QAAQ,CAAC,IAAI,CAACyuQ,SAAS,CAAC,CAAC;;;MAI9C,KAAK,IAAI7+R,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAAC8+R,gBAAgB,CAACl/R,MAAM,EAAEI,CAAC,EAAE,EAAE;QACrD,MAAM++R,oBAAoB,GAAG,IAAI,CAACC,WAAW,CAACh/R,CAAC,CAAC;QAChD,MAAMi/R,SAAS,GAAG;UAChBtyQ,IAAI,EAAEA,IAAI,CAACluB,GAAG,CAAEkyB,CAAC,IAAKA,CAAC,CAAC,IAAI,CAACmuQ,gBAAgB,CAAC9+R,CAAC,CAAC,CAAC,CAAC;UAClD25B,KAAK,EAAEolQ,oBAAoB;UAC3BG,WAAW,EAAE;SACd;QACD,IAAI,CAACN,WAAW,CAAC3+R,IAAI,CAACg/R,SAAS,CAAC;;KAEnC,MAAM;MACL,MAAMA,SAAS,GAAG;QAChBtyQ,IAAI,EAAE,EAAE;QACRgN,KAAK,EAAE,OAAO;QACdulQ,WAAW,EAAE;OACd;MACD,IAAI,CAACN,WAAW,CAAC3+R,IAAI,CAACg/R,SAAS,CAAC;;EAEpC;EAEUE,UAAU;IAClB,IAAI,CAACC,qBAAqB,EAAE;EAC9B;EAEAA,qBAAqB;IACnB,IAAI,CAACC,YAAY,GAAG;MAClBC,QAAQ,EAAE;QACRnwR,IAAI,EAAE,OAAO;QACbowR,SAAS,EAAE,KAAK;QAChBC,eAAe,EAAE,WAAW;QAC5BC,cAAc,EAAE,KAAK;QACrBC,aAAa,EAAE,EAAE;QACjBC,cAAc,EAAE,WAAW;QAC3BC,YAAY,EAAE;OACf;MACD76P,UAAU,EAAE,IAAI;MAChB86P,MAAM,EAAE;QACNC,KAAK,EAAE,CACL;UACEC,SAAS,EAAE;YACTC,KAAK,EAAE,kBAAkB;YACzBC,aAAa,EAAE;WAChB;UACDC,OAAO,EAAE,IAAI,CAACA,OAAO;UACrBC,KAAK,EAAE;YACLC,WAAW,EAAE,IAAI;YACjBC,QAAQ,EAAE,EAAE;YACZC,UAAU,EAAE,WAAW;YACvB7rL,QAAQ,EAAE,CAAC96E,KAAK,EAAE1Y,KAAK,EAAEiyP,MAAM,KAAI;cACjC,IAAI7wN,KAAK,CAAC1oB,KAAY,CAAC,EAAE;gBACvB,OAAOA,KAAK;;cAEd,OAAO,IAAI,CAAC+kQ,OAAO,CAACvsO,eAAe,CAACx4B,KAAY,CAAC;YACnD;;SAEH,CACF;QACD4mQ,KAAK,EAAE,CACL;UACER,SAAS,EAAE;YACTC,KAAK,EAAE,kBAAkB;YACzBC,aAAa,EAAE;WAChB;UACDC,OAAO,EAAE,IAAI,CAACA,OAAO;UACrBC,KAAK,EAAE;YACLC,WAAW,EAAE,KAAK;YAClBC,QAAQ,EAAE,EAAE;YACZC,UAAU,EAAE,WAAW;YACvB7rL,QAAQ,EAAE,CAAC96E,KAAK,EAAE1Y,KAAK,EAAEiyP,MAAM,KAAI;cACjC,IAAI7wN,KAAK,CAAC1oB,KAAY,CAAC,EAAE;gBACvB,OAAOA,KAAK;;cAGd,IAAI,IAAI,CAACilQ,WAAW,CAACxwR,KAAK,CAAEjB,CAAC,IAAK,CAACA,CAAC,CAAC,MAAM,CAAC,CAACvN,MAAM,CAAC,EAAE;gBACpD;;cAEF+5B,KAAK,GAAIA,KAAgB,GAAG,IAAI,CAAC6mQ,KAAK;cACtC,OAAO,IAAI,CAAC9B,OAAO,CAACvsO,eAAe,CAACx4B,KAAY,CAAC;YACnD;;SAEH;OAEJ;MACDk5O,MAAM,EAAE;QACNzzN,OAAO,EAAE,KAAK;QACd71C,QAAQ,EAAE;OACX;MACDk3R,OAAO,EAAE;QACPvtB,MAAM,EAAE;UACNwtB,MAAM,EAAGr2R,IAAI,IAAK;;;KAGvB;EACH;;AAnIWo0R,oBAAqB;mBAArBA,oBAAoB;AAAA;AAApBA,oBAAqB;QAArBA,oBAAoB;EAAA5jS;EAAAqH;IAAA48R;IAAAD;IAAAG;IAAAL;IAAAgC;IAAAC;IAAAV;IAAAb;IAAAmB;IAAA5B;IAAA91Q;EAAA;EAAAjjB,WAAAA,wEAAAA,EAAAA,kEAAAA;EAAAxD;EAAAC;EAAAC;EAAAJ;IAAA;MAlB7BxF,4DAAAA,aAE2I;MACzIA,oDAAAA,GACA;MAAAA,4DAAAA,aAAsB;MACpBA,uDAAAA,gBAQmC;MACrCA,0DAAAA,EAAM;;;MAXNA,uDAAAA,GACA;MADAA,gEAAAA,qBACA;MAIIA,uDAAAA,GAAwB;MAAxBA,wDAAAA,6BAAwB;;;;;;AAgJlC,MAAMgiS,WAAW,GAAG,CAClB;EACEkC,eAAe,EAAE,SAAS;EAC1BC,WAAW,EAAE,SAAS;EACtBC,oBAAoB,EAAE,SAAS;EAC/BC,gBAAgB,EAAE,MAAM;EACxBC,yBAAyB,EAAE,MAAM;EACjCC,qBAAqB,EAAE;CACxB,EACD;EACE;EACAL,eAAe,EAAE,oBAAoB;EACrCC,WAAW,EAAE,kBAAkB;EAC/BC,oBAAoB,EAAE,kBAAkB;EACxCC,gBAAgB,EAAE,MAAM;EACxBC,yBAAyB,EAAE,MAAM;EACjCC,qBAAqB,EAAE;CACxB,EACD;EACE;EACAL,eAAe,EAAE,mBAAmB;EACpCC,WAAW,EAAE,KAAK;EAClBC,oBAAoB,EAAE,qBAAqB;EAC3CC,gBAAgB,EAAE,MAAM;EACxBC,yBAAyB,EAAE,MAAM;EACjCC,qBAAqB,EAAE;CACxB,EACD;EACE;EACAL,eAAe,EAAE,uBAAuB;EACxCC,WAAW,EAAE,qBAAqB;EAClCC,oBAAoB,EAAE,qBAAqB;EAC3CC,gBAAgB,EAAE,MAAM;EACxBC,yBAAyB,EAAE,MAAM;EACjCC,qBAAqB,EAAE;CACxB,CACF;;;;;;;;;;;;;;;;;;;;;ACvM+C;AAEG;AAC6C;;;;;;;;IAUlFvkS,uDAAAA,gBASU;;;;IAPFA,wDAAAA,2BAAmB;;;AAanC,MAAOykS,iBAAkB,SAAQD,4DAAc;EAKnDxmS,YAAYg0J,UAAsB,EAAE+vI,OAAuB;IACzD,KAAK,CAAC/vI,UAAU,EAAE+vI,OAAO,CAAC;IALnB,eAAU,GAAG,MAAM;IACnB,eAAU,GAAG,OAAO;IACtB,SAAI,GAAc,KAAK;EAI9B;EAEU1pR,IAAI;IACZ,KAAK,CAACA,IAAI,EAAE;IACZ,IAAI,CAAC+0D,OAAO,CAAC8oM,MAAM,CAACtpQ,QAAQ,GAAG,QAAQ;IACvC,IAAI,CAACwgE,OAAO,CAAC8oM,MAAM,CAACK,MAAM,CAACxwM,OAAO,GAAG,EAAE;EACzC;EAEU67N,MAAM,CAAC5xQ,IAAW;IAC1B,IAAI,IAAI,CAAC00Q,YAAY,CAACzhS,MAAM,GAAG,CAAC,EAAE;MAChC,MAAMg/R,WAAW,GAAG,CAAC,GAAG,IAAI,CAACA,WAAW,CAAC;MACzCA,WAAW,CAAC7/R,OAAO,CAAC0rJ,OAAO,IAAIA,OAAO,CAAC99H,IAAI,CAAC/sB,MAAM,GAAG,CAAC,CAAC;MACvD+sB,IAAI,CAAC5tB,OAAO,CAAEqxB,QAAoB,IAAI;QACjCA,QAAuB,CAACrxB,OAAO,CAACL,IAAI,IAAG;UACtC,IAAI,IAAI,CAACw0Q,MAAM,CAACnyP,OAAO,CAACriB,IAAI,CAAC,IAAI,CAAC4iS,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;YACrD,IAAI,CAACpuB,MAAM,CAACjzQ,IAAI,CAACvB,IAAI,CAAC,IAAI,CAAC4iS,UAAU,CAAC,CAAC;;QAE3C,CAAC,CAAC;QAEF,KAAK,IAAIthS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGowB,QAAQ,CAACxwB,MAAM,EAAEI,CAAC,EAAE,EAAE;UACxC4+R,WAAW,CAAC5+R,CAAC,CAAC,CAAC2sB,IAAI,CAAC1sB,IAAI,CAACmwB,QAAQ,CAACpwB,CAAC,CAAC,CAAC,IAAI,CAACuhS,UAAU,CAAC,CAAC;;MAE1D,CAAC,CACF;MACD,IAAI,CAAC3C,WAAW,GAAG,CAAC,GAAGA,WAAW,CAAC;KACpC,MAAM;MACLjyQ,IAAI,CAAC5tB,OAAO,CAACL,IAAI,IAAG;QAClB,IAAI,IAAI,CAACw0Q,MAAM,CAACnyP,OAAO,CAACriB,IAAI,CAAC,IAAI,CAAC4iS,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;UACrD,IAAI,CAACpuB,MAAM,CAACjzQ,IAAI,CAACvB,IAAI,CAAC,IAAI,CAAC4iS,UAAU,CAAC,CAAC;;MAE3C,CAAC,CAAC;MACF,IAAI,CAAC1C,WAAW,CAAC,CAAC,CAAC,CAACjyQ,IAAI,GAAGA,IAAI,CAACluB,GAAG,CAACkyB,CAAC,IAAIA,CAAC,CAAC,IAAI,CAAC4wQ,UAAU,CAAC,CAAC;;EAEhE;;AAxCWH,iBAAkB;mBAAlBA,iBAAiB;AAAA;AAAjBA,iBAAkB;QAAlBA,iBAAiB;EAAAvmS;EAAAqH;IAAAo/R;IAAAC;EAAA;EAAA17R,WAAAA,wEAAAA;EAAAxD;EAAAC;EAAAC;EAAAJ;IAAA;MApBxBxF,4DAAAA,aAA4H;MAEpHA,oDAAAA,GACJ;MAAAA,0DAAAA,EAAM;MACNA,4DAAAA,aAAsB;MAClBA,wDAAAA,2DASU;MACdA,0DAAAA,EAAM;;;MAbFA,uDAAAA,GACJ;MADIA,gEAAAA,qBACJ;MAEaA,uDAAAA,GAAgB;MAAhBA,wDAAAA,wBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACduD;AAEhC;AACd;AACa;AAEb;AACgD;;;;AAO1F,MAAgBwkS,cAAc;EAqDlCxmS,YAAgCg0J,UAAsB,EAAY+vI,OAAuB;IAAzD,eAAU,GAAV/vI,UAAU;IAAwB,YAAO,GAAP+vI,OAAO;IAlDhE,cAAS,GAAG,IAAI;IAKhB,UAAK,GAAG,CAAC;IACT,aAAQ,GAAG,IAAI;IACf,aAAQ,GAAG,IAAI;IACf,WAAM,GAAG,KAAK;IACd,iBAAY,GAAa,EAAE;IAE3B,mBAAc,GAAG,KAAK;IACtB,iBAAY,GAAG,KAAK;IAEpB,cAAS,GAAG,IAAI;IAChB,WAAM,GAAY,CACzB;MACE;MACAmC,eAAe,EAAE,oBAAoB;MACrCC,WAAW,EAAE,kBAAkB;MAC/BC,oBAAoB,EAAE,kBAAkB;MACxCC,gBAAgB,EAAE,MAAM;MACxBC,yBAAyB,EAAE,MAAM;MACjCC,qBAAqB,EAAE;KACxB,EACD;MACE;MACAL,eAAe,EAAE,SAAS;MAC1BC,WAAW,EAAE,SAAS;MACtBC,oBAAoB,EAAE,SAAS;MAC/BC,gBAAgB,EAAE,MAAM;MACxBC,yBAAyB,EAAE,MAAM;MACjCC,qBAAqB,EAAE;KACxB,EACD;MACE;MACAL,eAAe,EAAE,mBAAmB;MACpCC,WAAW,EAAE,KAAK;MAClBC,oBAAoB,EAAE,qBAAqB;MAC3CC,gBAAgB,EAAE,MAAM;MACxBC,yBAAyB,EAAE,MAAM;MACjCC,qBAAqB,EAAE;KACxB,CACF;IACM,YAAO,GAAG,CAACM,8DAAW,CAAC;IACvB,gBAAW,GAAqB,CAAC;MAAE70Q,IAAI,EAAE;IAAE,CAAE,CAAC;IAC9C,aAAQ,GAAkB,EAAE;IAC5B,WAAM,GAAY,EAAE;EAGiE;EAMlF3X,IAAI;IACZ,IAAI,CAAC+0D,OAAO,GAAG;MACb2oE,QAAQ,EAAE;QACR+uJ,GAAG,EAAE;UACHvC,WAAW,EAAE;;OAEhB;MACDI,QAAQ,EAAE;QACR/qO,OAAO,EAAE,IAAI,CAACmtO,cAAc;QAC5BvyR,IAAI,EAAE,OAAO;QACbowR,SAAS,EAAE,KAAK;QAChBC,eAAe,EAAE,WAAW;QAC5BC,cAAc,EAAE,KAAK;QACrBC,aAAa,EAAE,EAAE;QACjBC,cAAc,EAAE,WAAW;QAC3BC,YAAY,EAAE;OACf;MACD76P,UAAU,EAAE,IAAI;MAChB86P,MAAM,EAAE;QACNC,KAAK,EAAE,CACL;UACEC,SAAS,EAAE;YACTC,KAAK,EAAE,kBAAkB;YACzBC,aAAa,EAAE;WAChB;UACDC,OAAO,EAAE,IAAI,CAACyB,QAAQ;UACtBxB,KAAK,EAAE;YACLC,WAAW,EAAE,IAAI;YACjBC,QAAQ,EAAE,EAAE;YACZC,UAAU,EAAE,WAAW;YACvB7rL,QAAQ,EAAE,CAAC96E,KAAK,EAAE1Y,KAAK,EAAEiyP,MAAM,KAAI;cACjC,IAAI7wN,KAAK,CAAC1oB,KAAY,CAAC,EAAE;gBACvB,OAAOA,KAAK;;cAEd,OAAO,IAAI,CAAC+kQ,OAAO,CAACvsO,eAAe,CAACx4B,KAAY,CAAC;YACnD;;SAEH,CACF;QACD4mQ,KAAK,EAAE,CACL;UACER,SAAS,EAAE;YACTC,KAAK,EAAE,kBAAkB;YACzBC,aAAa,EAAE;WAChB;UACDC,OAAO,EAAE,IAAI,CAAC0B,QAAQ;UACtBzB,KAAK,EAAE;YACLC,WAAW,EAAE,IAAI;YACjBC,QAAQ,EAAE,EAAE;YACZC,UAAU,EAAE,WAAW;YACvB7rL,QAAQ,EAAE,CAAC96E,KAAK,EAAE1Y,KAAK,EAAEiyP,MAAM,KAAI;cACjC,IAAI7wN,KAAK,CAAC1oB,KAAY,CAAC,EAAE;gBACvB,OAAOA,KAAK;;cAGd,IAAI,IAAI,CAACilQ,WAAW,CAACxwR,KAAK,CAAEjB,CAAC,IAAK,CAACA,CAAC,CAACwf,IAAI,CAAC/sB,MAAM,CAAC,EAAE;gBACjD;;cAEF+5B,KAAK,GAAIA,KAAgB,GAAG,IAAI,CAAC6mQ,KAAK;cACtC,OAAO,IAAI,CAACqB,SAAS,KAAK,IAAI,IAAIloQ,KAAK,GAAG,CAAC,KAAK,CAAC,GAAGh5B,SAAS,GAAG,IAAI,CAAC+9R,OAAO,CAACvsO,eAAe,CAACx4B,KAAY,CAAC;YAC5G;;SAEH;OAEJ;MACDk5O,MAAM,EAAE;QACNzzN,OAAO,EAAE,IAAI,CAACyzN,MAAM;QACpBtpQ,QAAQ,EAAE,QAAQ;QAClB2pQ,MAAM,EAAE;UACNmtB,QAAQ,EAAE,EAAE;UACZC,UAAU,EAAE;;OAEf;MACDG,OAAO,EAAE;QACPvtB,MAAM,EAAE;UACNwtB,MAAM,EAAGr2R,IAAI,IAAI;YACf,OAAO,IAAI,CAACy3R,YAAY,GAAGz3R,IAAI,CAAC1L,KAAK,GAAG,EAAE;UAC5C,CAAC;UACD2hS,UAAU,EAAE,WAAW;UACvBD,QAAQ,EAAE;;;KAGf;IAED,KAAK,IAAIrgS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,IAAI,CAACqhS,YAAY,CAACzhS,MAAM,EAAEI,CAAC,EAAE,EAAE;MACjD,IAAI,CAAC4+R,WAAW,CAAC5+R,CAAC,CAAC,GAAG;QAAE2sB,IAAI,EAAE,EAAE;QAAEgN,KAAK,EAAE,IAAI,CAAC0nQ,YAAY,CAACrhS,CAAC;MAAC,CAAE;;EAEnE;EAEA6V,QAAQ;IACN,IAAI,CAACb,IAAI,EAAE;IACX,IAAI,IAAI,CAAC6W,OAAO,IAAI,CAAC,IAAI,CAACc,IAAI,EAAE;MAC9B,IAAI,CAAC60P,IAAI,EAAE;MACX,IAAI,CAACqc,SAAS,EAAE;KACjB,MAAM,IAAI,IAAI,CAAClxQ,IAAI,EAAE;MACpB,IAAI,CAACiZ,SAAS,GAAG,KAAK;MACtB,IAAI,CAAC24P,MAAM,CAAC,IAAI,CAAC5xQ,IAAI,CAAC;;EAE1B;EAEQkxQ,SAAS;IACf,IAAI,CAAC,IAAI,CAACzjQ,MAAM,EAAE;MAChB;;IAGF,IAAI,CAAC2nQ,kBAAkB,GAAG,IAAI,CAAC3nQ,MAAM,CAClCtN,IAAI,CACHs3C,4DAAY,CAAC,GAAG,CAAC,EACjBx1B,mDAAG,CAAEjwC,KAAK,IAAI;MACZ,IAAIA,KAAK,EAAE;QACT,IAAI,CAAC6iR,IAAI,EAAE;;IAEf,CAAC,CAAC,CACH,CACA3mQ,SAAS,EAAE;EAChB;EAEQ2mQ,IAAI;IACV,IAAI,CAACtO,MAAM,CAACtzQ,MAAM,GAAG,CAAC;IACtB,IAAI,CAACkpB,QAAQ,CAAClpB,MAAM,GAAG,CAAC;IACxB,MAAM8nC,MAAM,GAAG,IAAI,CAACo2P,WAAW,EAAE;IACjC,IAAI,CAACkE,gBAAgB,GAAG,IAAI,CAACrzI,UAAU,CACpC9/H,GAAG,CAAC,GAAG,IAAI,CAAChD,OAAO,EAAE,EAAE;MAAE6b;IAAM,CAAE,CAAC,CAClC5a,IAAI,CAACk9D,wDAAQ,CAAC,MAAO,IAAI,CAACpkD,SAAS,GAAG,KAAM,CAAC,CAAC,CAC9C/qB,SAAS,CAAE8R,IAAW,IAAI;MACzB,IAAI,CAAC4xQ,MAAM,CAAC5xQ,IAAI,CAAC;IACnB,CAAC,CAAC;EACN;EAEAmxQ,WAAW;IACT,IAAI,CAAC,IAAI,CAACl1Q,OAAO,EAAE;MACjB;;IAEF,IAAI8e,MAAM,GAAG,IAAIu0D,4DAAU,EAAE;IAC7B,IAAI,CAACrzE,OAAO,CAAC7pB,OAAO,CAAEk0B,CAAC,IAAMyU,MAAM,GAAGA,MAAM,CAACiT,MAAM,CAAC1nB,CAAC,CAACkN,IAAI,EAAElN,CAAC,CAACqN,KAAK,CAAE,CAAC;IACtE,OAAOoH,MAAM;EACf;EAEAxuB,WAAW;IACT,IAAI,IAAI,CAAC8oR,gBAAgB,EAAE;MACzB,IAAI,CAACA,gBAAgB,CAACrvP,WAAW,EAAE;;IAErC,IAAI,IAAI,CAACovP,kBAAkB,EAAE;MAC3B,IAAI,CAACA,kBAAkB,CAACpvP,WAAW,EAAE;;EAEzC;EAEAtuC,WAAW,CAACC,OAAsB;IAChC,IAAIA,OAAO,CAAC,cAAc,CAAC,IAAI,CAACA,OAAO,CAAC,cAAc,CAAC,CAAC29R,aAAa,EAAE,EAAE;MACvE,IAAI,CAACrD,WAAW,CAAC7/R,OAAO,CAAC,CAAC0rJ,OAAO,EAAEzqJ,CAAC,KAAMyqJ,OAAO,CAAC9wH,KAAK,GAAGr1B,OAAO,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC,CAACtE,CAAC,CAAE,CAAC;;IAExG,IAAIsE,OAAO,CAAC,MAAM,CAAC,IAAI,CAACA,OAAO,CAAC,MAAM,CAAC,CAAC29R,aAAa,EAAE,EAAE;MACvD,IAAI,CAAC/uB,MAAM,CAACtzQ,MAAM,GAAG,CAAC;MACtB,IAAI,CAACkpB,QAAQ,CAAClpB,MAAM,GAAG,CAAC;MACxB,IAAI,CAACgmC,SAAS,GAAG,KAAK;MACtB,IAAIthC,OAAO,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,EAAE;QACnC,IAAI,CAACi6R,MAAM,CAACj6R,OAAO,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,CAAC;;;EAGlD;;AA1NoB68R,cAAc;mBAAdA,cAAc;AAAA;AAAdA,cAAc;QAAdA,cAAc;EAAAj/R;IAAA0jC;IAAAjZ;IAAAd;IAAAqN;IAAArD;IAAA2qQ;IAAAmB;IAAAC;IAAA/uB;IAAAwuB;IAAAz4Q;IAAA84Q;IAAAI;IAAA1nQ;IAAAynQ;IAAAK;EAAA;EAAAr8R,WAAAA,kEAAAA;AAAA;;;;;;;;;;;;;;;;;;;;;ACbY;AAEG;AAC6C;;;;;;;;IAUlFlJ,uDAAAA,gBASU;;;;IAPFA,wDAAAA,2BAAmB;;;AAanC,MAAOwlS,sBAAuB,SAAQhB,4DAAc;EAKxDxmS,YAAYg0J,UAAsB,EAAE+vI,OAAuB;IACzD,KAAK,CAAC/vI,UAAU,EAAE+vI,OAAO,CAAC;IALnB,eAAU,GAAG,MAAM;IACnB,eAAU,GAAG,OAAO;IACtB,SAAI,GAAc,UAAU;EAInC;EAEU1pR,IAAI;IACZ,KAAK,CAACA,IAAI,EAAE;IACZ,IAAI,CAAC+0D,OAAO,CAAC8oM,MAAM,CAACtpQ,QAAQ,GAAG,OAAO;IACtC,IAAI,CAACwgE,OAAO,CAAC81N,MAAM,GAAGl/R,SAAS;IAC/B,IAAI,CAACopE,OAAO,CAAC02N,OAAO,CAACvtB,MAAM,CAACkvB,SAAS,GAAG,CAAC;IACzC,IAAI,CAACr4N,OAAO,CAAC02N,OAAO,CAACvtB,MAAM,CAACmvB,SAAS,GAAG,OAAO;EACjD;EAEU9D,MAAM,CAAC5xQ,IAAW;IAC1B,IAAIhiB,KAAK,CAACiB,OAAO,CAAC+gB,IAAI,CAAC,EAAE;MACvB,KAAK,MAAMyD,QAAQ,IAAIzD,IAAI,EAAE;QAC3B,IAAI,IAAI,CAACumP,MAAM,CAACnyP,OAAO,CAACqP,QAAQ,CAAC,IAAI,CAACkxQ,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;UACzD,IAAI,CAACpuB,MAAM,CAACjzQ,IAAI,CAACmwB,QAAQ,CAAC,IAAI,CAACkxQ,UAAU,CAAC,CAAC;;;MAI/C,IAAI,CAACx4Q,QAAQ,GAAG6D,IAAI,CAACluB,GAAG,CAACkyB,CAAC,IAAIA,CAAC,CAAC,IAAI,CAAC4wQ,UAAU,CAAC,CAAC;KAClD,MAAM;MACL,MAAM92I,OAAO,GAAkB;QAC7B99H,IAAI,EAAE,EAAE;QACRuyQ,WAAW,EAAE;OACd;MACD,IAAI,CAACN,WAAW,CAAC3+R,IAAI,CAACwqJ,OAAO,CAAC;;EAElC;;AAjCW03I,sBAAuB;mBAAvBA,sBAAsB;AAAA;AAAtBA,sBAAuB;QAAvBA,sBAAsB;EAAAtnS;EAAAqH;IAAAo/R;IAAAC;EAAA;EAAA17R,WAAAA,wEAAAA;EAAAxD;EAAAC;EAAAC;EAAAJ;IAAA;MApB7BxF,4DAAAA,aAA2H;MAEnHA,oDAAAA,GACJ;MAAAA,0DAAAA,EAAM;MACNA,4DAAAA,aAAuB;MACnBA,wDAAAA,gEASU;MACdA,0DAAAA,EAAM;;;MAbFA,uDAAAA,GACJ;MADIA,gEAAAA,qBACJ;MAEaA,uDAAAA,GAAgB;MAAhBA,wDAAAA,wBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbW;AAEC;AAC6C;;;;;;;;IAUlFA,uDAAAA,gBASU;;;;IAPFA,wDAAAA,2BAAmB;;;AAanC,MAAO2lS,kBAAmB,SAAQnB,4DAAc;EAKpDxmS,YAAYg0J,UAAsB,EAAE+vI,OAAuB;IACzD,KAAK,CAAC/vI,UAAU,EAAE+vI,OAAO,CAAC;IALnB,eAAU,GAAW,MAAM;IAC3B,eAAU,GAAW,OAAO;IAC9B,SAAI,GAAc,MAAM;EAI/B;EAEU1pR,IAAI;IACZ,KAAK,CAACA,IAAI,EAAE;IACZ,IAAI,CAAC+0D,OAAO,CAAC8oM,MAAM,CAACtpQ,QAAQ,GAAG,QAAQ;IACvC,IAAI,CAACwgE,OAAO,CAAC8oM,MAAM,CAACK,MAAM,CAACxwM,OAAO,GAAG,EAAE;EACzC;EAEU67N,MAAM,CAAC5xQ,IAAW;IAC1B,IAAI,IAAI,CAAC00Q,YAAY,CAACzhS,MAAM,GAAG,CAAC,EAAE;MAChC,MAAMg/R,WAAW,GAAG,CAAC,GAAG,IAAI,CAACA,WAAW,CAAC;MACzCA,WAAW,CAAC7/R,OAAO,CAAC0rJ,OAAO,IAAIA,OAAO,CAAC99H,IAAI,CAAC/sB,MAAM,GAAG,CAAC,CAAC;MACvD+sB,IAAI,CAAC5tB,OAAO,CAAEqxB,QAAoB,IAAI;QACnCA,QAAuB,CAACrxB,OAAO,CAACL,IAAI,IAAG;UACtC,IAAI,IAAI,CAACw0Q,MAAM,CAACnyP,OAAO,CAACriB,IAAI,CAAC,IAAI,CAAC4iS,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;YACrD,IAAI,CAACpuB,MAAM,CAACjzQ,IAAI,CAACvB,IAAI,CAAC,IAAI,CAAC4iS,UAAU,CAAC,CAAC;;QAE3C,CAAC,CAAC;QAEF,KAAK,IAAIthS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGowB,QAAQ,CAACxwB,MAAM,EAAEI,CAAC,EAAE,EAAE;UACxC4+R,WAAW,CAAC5+R,CAAC,CAAC,CAAC2sB,IAAI,CAAC1sB,IAAI,CAACmwB,QAAQ,CAACpwB,CAAC,CAAC,CAAC,IAAI,CAACuhS,UAAU,CAAC,CAAC;;MAE1D,CAAC,CACA;MACD,IAAI,CAAC3C,WAAW,GAAG,CAAC,GAAGA,WAAW,CAAC;KACpC,MAAM;MACLjyQ,IAAI,CAAC5tB,OAAO,CAACL,IAAI,IAAG;QAClB,IAAI,IAAI,CAACw0Q,MAAM,CAACnyP,OAAO,CAACriB,IAAI,CAAC,IAAI,CAAC4iS,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;UACrD,IAAI,CAACpuB,MAAM,CAACjzQ,IAAI,CAACvB,IAAI,CAAC,IAAI,CAAC4iS,UAAU,CAAC,CAAC;;MAE3C,CAAC,CAAC;MACF,IAAI,CAAC1C,WAAW,CAAC,CAAC,CAAC,CAACjyQ,IAAI,GAAGA,IAAI,CAACluB,GAAG,CAACkyB,CAAC,IAAIA,CAAC,CAAC,IAAI,CAAC4wQ,UAAU,CAAC,CAAC;;EAEhE;;AAxCWe,kBAAmB;mBAAnBA,kBAAkB;AAAA;AAAlBA,kBAAmB;QAAnBA,kBAAkB;EAAAznS;EAAAqH;IAAAo/R;IAAAC;EAAA;EAAA17R,WAAAA,wEAAAA;EAAAxD;EAAAC;EAAAC;EAAAJ;IAAA;MApBzBxF,4DAAAA,aAA6H;MAErHA,oDAAAA,GACJ;MAAAA,0DAAAA,EAAM;MACNA,4DAAAA,aAAsB;MAClBA,wDAAAA,4DASU;MACdA,0DAAAA,EAAM;;;MAbFA,uDAAAA,GACJ;MADIA,gEAAAA,qBACJ;MAEaA,uDAAAA,GAAgB;MAAhBA,wDAAAA,wBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbS;AAEG;AAC6C;;;;;;;;IAUxFA,uDAAAA,gBASU;;;;IAPFA,wDAAAA,2BAAmB;;;AAa7B,MAAO4lS,iBAAkB,SAAQpB,4DAAc;EAKnDxmS,YAAYg0J,UAAsB,EAAE+vI,OAAuB;IACzD,KAAK,CAAC/vI,UAAU,EAAE+vI,OAAO,CAAC;IALnB,eAAU,GAAW,MAAM;IAC3B,eAAU,GAAW,OAAO;IAC9B,SAAI,GAAc,KAAK;EAI9B;EAEU1pR,IAAI;IACZ,KAAK,CAACA,IAAI,EAAE;IACZ,IAAI,CAAC+0D,OAAO,CAAC8oM,MAAM,CAACtpQ,QAAQ,GAAG,OAAO;IACtC,IAAI,CAACwgE,OAAO,CAAC81N,MAAM,GAAGl/R,SAAS;IAC/B,IAAI,CAACopE,OAAO,CAAC02N,OAAO,CAACvtB,MAAM,CAACkvB,SAAS,GAAG,CAAC;IACzC,IAAI,CAACr4N,OAAO,CAAC02N,OAAO,CAACvtB,MAAM,CAACmvB,SAAS,GAAG,OAAO;EACjD;EAEU9D,MAAM,CAAC5xQ,IAAW;IAC1BA,IAAI,CAAC5tB,OAAO,CAACqxB,QAAQ,IAAG;MACtB,IAAI,IAAI,CAAC8iP,MAAM,CAACnyP,OAAO,CAACqP,QAAQ,CAAC,IAAI,CAACkxQ,UAAU,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;QACzD,IAAI,CAACpuB,MAAM,CAACjzQ,IAAI,CAACmwB,QAAQ,CAAC,IAAI,CAACkxQ,UAAU,CAAC,CAAC;;IAE/C,CAAC,CAAC;IAEF,IAAI,CAACx4Q,QAAQ,GAAG6D,IAAI,CAACluB,GAAG,CAACkyB,CAAC,IAAIA,CAAC,CAAC,IAAI,CAAC4wQ,UAAU,CAAC,CAAC;EACnD;;AAzBWgB,iBAAkB;mBAAlBA,iBAAiB;AAAA;AAAjBA,iBAAkB;QAAlBA,iBAAiB;EAAA1nS;EAAAqH;IAAAo/R;IAAAC;EAAA;EAAA17R,WAAAA,wEAAAA;EAAAxD;EAAAC;EAAAC;EAAAJ;IAAA;MApB1BxF,4DAAAA,aAA2H;MAEvHA,oDAAAA,GACF;MAAAA,0DAAAA,EAAM;MACNA,4DAAAA,aAAsB;MACpBA,wDAAAA,2DASU;MACZA,0DAAAA,EAAM;;;MAbJA,uDAAAA,GACF;MADEA,gEAAAA,qBACF;MAEWA,uDAAAA,GAAgB;MAAhBA,wDAAAA,wBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACbkE;AACrC;AACC;AAEpB;AACV;AACkD;AACY;;;;;;;;;;;ICN3FA,4DAAAA,UAAwC;IACtCA,uDAAAA,qBAQc;;IAChBA,0DAAAA,EAAM;;;;IANFA,uDAAAA,GAAc;IAAdA,wDAAAA,sBAAc;;;;;IAOlBA,4DAAAA,UAAiC;IAC/BA,uDAAAA,qBAAsH;IACxHA,0DAAAA,EAAM;;;;IAD0BA,uDAAAA,GAAc;IAAdA,wDAAAA,sBAAc;;;;;IAI9CA,4DAAAA,UAAkB;IAChBA,uDAAAA,qBAQc;;IAChBA,0DAAAA,EAAM;;;;IANFA,uDAAAA,GAAc;IAAdA,wDAAAA,sBAAc;;;;;IAOlBA,4DAAAA,UAAiC;IAC/BA,uDAAAA,qBAAoH;IACtHA,0DAAAA,EAAM;;;;IADwBA,uDAAAA,GAAc;IAAdA,wDAAAA,sBAAc;;;;;;IAG9CA,4DAAAA,aAAgD;IACxCA,oDAAAA,GAAoF;;IAAAA,0DAAAA,EAAO;IACjGA,4DAAAA,sBAAsH;IAAxGA,wDAAAA;MAAAA,2DAAAA;MAAA;MAAA8lS;MAAA,OAA2D9lS,yDAAAA,qBAAa;IAAA,EAAC;IAA+BA,oDAAAA,GAEpH;;IAAAA,0DAAAA,EAAe;;;;IAHXA,uDAAAA,GAAoF;IAApFA,+DAAAA,CAAAA,yDAAAA,2EAAoF;IACFA,uDAAAA,GAA6B;IAA7BA,wDAAAA,qCAA6B;IAACA,uDAAAA,GAEpH;IAFoHA,+DAAAA,CAAAA,yDAAAA,2EAEpH;;;ADtBA,MAAO+lS,yBAA0B,SAAQF,uEAAmB;EAShE7nS,YAAYgf,OAAsB,EAAU2/D,EAAsB;IAChE,KAAK,CAAC3/D,OAAO,CAAC;IAD4B,OAAE,GAAF2/D,EAAE;IAP9C,cAAS,GAAY,KAAK;IAG1B,qBAAgB,GAAY,KAAK;IAExB,mBAAc,GAAY,KAAK;IAC/B,gBAAW,GAAY,KAAK;IAGnC,IAAI,CAACjxD,GAAG,GAAGiV,6GAAe,CAACzV,6FAAiB,CAAC;IAC7C,IAAI,CAAC3U,IAAI,GAAG,qBAAqB;EACnC;EAEA2C,QAAQ;IACN,IAAI,CAAC8sR,UAAU,EAAE;IACjB,KAAK,CAAC9sR,QAAQ,EAAE;IAEhB,IAAI,CAAC8D,OAAO,CAAC4vH,UAAU,CAACz8G,IAAI,CAAC5E,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CAAClS,SAAS,CAAEqO,CAAC,IAAI;MAC1E,IAAIA,CAAC,IAAI,IAAI,CAACimC,IAAI,EAAE;QAClB,IAAI,CAACA,IAAI,CAAC3hC,QAAQ,CAAC,WAAW,CAAC,CAACvS,QAAQ,CAACiO,CAAC,EAAE;UAAEotJ,SAAS,EAAE;QAAK,CAAE,CAAC;QACjE,IAAI,CAAC38J,OAAO,CAACqxB,SAAS,GAAG9hB,CAAC;QAC1B,IAAI,CAACy9G,SAAS,GAAG,IAAI;;IAEzB,CAAC,CAAC;IACF,IAAI,CAAChtH,OAAO,CAAC8vH,QAAQ,CAAC38G,IAAI,CAAC5E,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CAAClS,SAAS,CAAEqO,CAAC,IAAI;MACxE,IAAIA,CAAC,IAAI,IAAI,CAACimC,IAAI,EAAE;QAClB,IAAI,CAACA,IAAI,CAAC3hC,QAAQ,CAAC,SAAS,CAAC,CAACvS,QAAQ,CAACiO,CAAC,EAAE;UAAEotJ,SAAS,EAAE;QAAK,CAAE,CAAC;QAC/D,IAAI,CAAC38J,OAAO,CAACsxB,OAAO,GAAG/hB,CAAC;QACxB,IAAI,CAACy9G,SAAS,GAAG,IAAI;;IAEzB,CAAC,CAAC;IAEF,IAAI,CAACx3E,IAAI,CACNtgC,GAAG,CAAC,WAAW,CAAC,CAChBjU,YAAY,CAACkS,IAAI,CAAC5E,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CAChDlS,SAAS,CAAEmJ,CAAC,IAAI;MACf,IAAIA,CAAC,EAAE,IAAI,CAACotP,WAAW,EAAE;IAC3B,CAAC,CAAC;IACJ,IAAI,CAACjiN,IAAI,CACNtgC,GAAG,CAAC,SAAS,CAAC,CACdjU,YAAY,CAACkS,IAAI,CAAC5E,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CAChDlS,SAAS,CAAEmJ,CAAC,IAAI;MACf,IAAIA,CAAC,EAAE,IAAI,CAACotP,WAAW,EAAE;IAC3B,CAAC,CAAC;IACJ,IAAI,CAACjiN,IAAI,CACNtgC,GAAG,CAAC,WAAW,CAAC,CAChBjU,YAAY,CAACkS,IAAI,CAAC5E,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CAChDlS,SAAS,CAAEmJ,CAAC,IAAI;MACf,IAAIA,CAAC,EAAE,IAAI,CAACotP,WAAW,EAAE;IAC3B,CAAC,CAAC;IACJ,IAAI,CAACjiN,IAAI,CACNtgC,GAAG,CAAC,SAAS,CAAC,CACdjU,YAAY,CAACkS,IAAI,CAAC5E,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CAChDlS,SAAS,CAAEmJ,CAAC,IAAI;MACf,IAAIA,CAAC,EAAE,IAAI,CAACotP,WAAW,EAAE;IAC3B,CAAC,CAAC;EACN;EAEAuxB,UAAU;IACR,IAAI,CAACxzO,IAAI,GAAG,IAAI,CAACmqB,EAAE,CAACzwD,KAAK,CAAC;MACxBg4E,SAAS,EAAE,IAAI,CAAClnF,OAAO,CAACqxB,SAAS;MACjC81D,OAAO,EAAE,IAAI,CAACnnF,OAAO,CAACsxB,OAAO;MAC7Bq3K,SAAS,EAAE,IAAI,CAAC3oM,OAAO,CAACkxN,SAAS;MACjCtoB,OAAO,EAAE,IAAI,CAAC5oM,OAAO,CAACoxN,OAAO;MAC7B3/L,WAAW,EAAE,IAAI,CAACzxB,OAAO,CAACyxB;KAC3B,CAAC;EACJ;EAEQw3P,oBAAoB,CAAC93R,IAAI;IAC/B,MAAM6Y,IAAI,GAAG7Y,IAAI,CAACq4G,WAAW,EAAE;IAC/B,MAAMpjG,KAAK,GAAG,CAACjV,IAAI,CAACo4G,QAAQ,EAAE,GAAG,CAAC,EAAE7zF,QAAQ,EAAE,CAACwzQ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IAC/D,MAAMlkR,GAAG,GAAG7T,IAAI,CAACk4G,OAAO,EAAE,CAAC3zF,QAAQ,EAAE,CAACwzQ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;IACtD,OAAO,GAAGl/Q,IAAI,IAAI5D,KAAK,IAAIpB,GAAG,EAAE;EAClC;EAEAyyP,WAAW;IACT,MAAMnmQ,CAAC,GAAGrB,mCAAM,EAAE;IAClB,MAAM0X,KAAK,GAAGrW,CAAC,CAACD,MAAM,CAAC,IAAI,CAAC,CAACD,MAAM,CAAC,YAAY,CAAC;IACjD,MAAM24G,SAAS,GAAGz4G,CAAC,CAACD,MAAM,CAAC,IAAI,CAAC,CAACqW,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAACtW,MAAM,CAAC,YAAY,CAAC;IACzE,MAAMyiB,QAAQ,GAAG,IAAI,CAAC2hC,IAAI,CAAC3hC,QAAQ;IAEnC,IAAI,CAAC,IAAI,CAACy4P,WAAW,IAAIz4P,QAAQ,CAAC,WAAW,CAAC,CAAC7uB,KAAK,IAAI6uB,QAAQ,CAAC,SAAS,CAAC,CAAC7uB,KAAK,EAAE;MACjF,MAAMmkS,kBAAkB,GAAG,IAAI,CAACF,oBAAoB,CAAC,IAAIz0Q,IAAI,CAACX,QAAQ,CAAC,WAAW,CAAC,CAAC7uB,KAAK,CAAC,CAAC;MAC3F,MAAMokS,gBAAgB,GAAG,IAAI,CAACH,oBAAoB,CAAC,IAAIz0Q,IAAI,CAACX,QAAQ,CAAC,SAAS,CAAC,CAAC7uB,KAAK,CAAC,CAAC;MAEvF,IAAImkS,kBAAkB,GAAGxhR,KAAK,IAAIwhR,kBAAkB,GAAGp/K,SAAS,IAAIq/K,gBAAgB,GAAGzhR,KAAK,IAAIyhR,gBAAgB,GAAGr/K,SAAS,EAAE;QAC5H,IAAI,CAACr7F,GAAG,CAAC4H,UAAU,CAAC,+DAA+D,EAAE,YAAY,CAAC;QAClGzC,QAAQ,CAAC,WAAW,CAAC,CAACvS,QAAQ,CAAC,IAAIkT,IAAI,EAAE,EAAE;UAAEmoJ,SAAS,EAAE;QAAK,CAAE,CAAC;QAChE9oJ,QAAQ,CAAC,SAAS,CAAC,CAACvS,QAAQ,CAAC,IAAIkT,IAAI,EAAE,EAAE;UAAEmoJ,SAAS,EAAE;QAAK,CAAE,CAAC;;;IAIlE,MAAM0sH,aAAa,GAAG,IAAI,CAACC,gBAAgB,CAACz1Q,QAAQ,CAAC,WAAW,CAAC,CAAC7uB,KAAK,EAAE,IAAI,CAACgb,OAAO,CAACyxB,WAAW,GAAG5d,QAAQ,CAAC,WAAW,CAAC,CAAC7uB,KAAK,GAAG,OAAO,CAAC;IAC1I,MAAMukS,WAAW,GAAG,IAAI,CAACD,gBAAgB,CAACz1Q,QAAQ,CAAC,SAAS,CAAC,CAAC7uB,KAAK,EAAE,IAAI,CAACgb,OAAO,CAACyxB,WAAW,GAAG5d,QAAQ,CAAC,SAAS,CAAC,CAAC7uB,KAAK,GAAG,OAAO,CAAC;IAEpI,IAAI,CAACgb,OAAO,CAACqxB,SAAS,GAAGxd,QAAQ,CAAC,WAAW,CAAC,CAAC7uB,KAAK;IACpD,IAAI,CAACgb,OAAO,CAACsxB,OAAO,GAAGzd,QAAQ,CAAC,SAAS,CAAC,CAAC7uB,KAAK;IAChD,IAAI,CAACgb,OAAO,CAACoxN,OAAO,GAAGv9M,QAAQ,CAAC,SAAS,CAAC,CAAC7uB,KAAK;IAChD,IAAI,CAACgb,OAAO,CAACkxN,SAAS,GAAGr9M,QAAQ,CAAC,WAAW,CAAC,CAAC7uB,KAAK;IACpD,IAAI,CAACgb,OAAO,CAAC4vH,UAAU,CAACr8G,IAAI,CAAC,IAAI,CAACvT,OAAO,CAACqxB,SAAS,CAAC;IACpD,IAAI,CAACrxB,OAAO,CAAC8vH,QAAQ,CAACv8G,IAAI,CAAC,IAAI,CAACvT,OAAO,CAACsxB,OAAO,CAAC;IAEhD,IAAI,GAAG+3P,aAAa,EAAE,KAAK,cAAc,IAAI,GAAGE,WAAW,EAAE,KAAK,cAAc,EAAE;MAChF,IAAI,CAACvpR,OAAO,CAACwpR,mBAAmB,CAAC,IAAI,CAACjwR,IAAI,EAAE8vR,aAAa,EAAEE,WAAW,EAAE,IAAI,CAACvpR,OAAO,CAACyxB,WAAW,CAAC;;EAErG;EAEU3J,SAAS,CAACt1B,MAAoB,GAAS;EAEzC82R,gBAAgB,CAACn4R,IAAY,EAAE4X,IAAY;IACjD,MAAM0gR,QAAQ,GAAG,IAAIj1Q,IAAI,CAACrjB,IAAI,CAAC;IAC/B,MAAM,CAACsa,KAAK,EAAEE,OAAO,CAAC,GAAG5C,IAAI,CAC1B2M,QAAQ,EAAE,CACVvgB,KAAK,CAAC,GAAG,CAAC,CACVrQ,GAAG,CAAEyqB,CAAS,IAAKy5B,QAAQ,CAACz5B,CAAC,CAAC,CAAC;IAElCk6Q,QAAQ,CAACl1O,QAAQ,CAAC9oC,KAAK,EAAEE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;IACvC,OAAO89Q,QAAQ;EACjB;;AAxHWV,yBAA0B;mBAA1BA,yBAAyB;AAAA;AAAzBA,yBAA0B;QAA1BA,yBAAyB;EAAA7nS;EAAAqH;IAAAmhS;IAAApd;EAAA;EAAApgR,WAAAA,wEAAAA;EAAAxD;EAAAC;EAAAC;EAAAJ;IAAA;MCftCxF,4DAAAA,aAA2C;MAEvCA,wDAAAA,6DAUM;MACNA,wDAAAA,6DAEM;MACRA,0DAAAA,EAAM;MACNA,4DAAAA,UAAK;MACHA,wDAAAA,6DAUM;MACNA,wDAAAA,6DAEM;MACRA,0DAAAA,EAAM;MACNA,wDAAAA,6DAKM;MACRA,0DAAAA,EAAM;;;MAvCDA,wDAAAA,uBAAkB;MAEbA,uDAAAA,GAAgC;MAAhCA,wDAAAA,4CAAgC;MAWhCA,uDAAAA,GAAyB;MAAzBA,wDAAAA,iCAAyB;MAKzBA,uDAAAA,GAAU;MAAVA,wDAAAA,kBAAU;MAWVA,uDAAAA,GAAyB;MAAzBA,wDAAAA,iCAAyB;MAI3BA,uDAAAA,GAAoB;MAApBA,wDAAAA,4BAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChCoC;AACD;AACA;AAGV;AAEb;;;;;;;ICLpCA,4DAAAA,YAAuC;IACrCA,oDAAAA,GACF;;IAAAA,0DAAAA,EAAQ;;;;IADNA,uDAAAA,GACF;IADEA,gEAAAA,MAAAA,yDAAAA,2BACF;;;;;IACAA,4DAAAA,YAAyC;IACvCA,oDAAAA,GACF;IAAAA,0DAAAA,EAAQ;;;;IADNA,uDAAAA,GACF;IADEA,gEAAAA,yBACF;;;;;IACAA,4DAAAA,YAAsE;IACpEA,oDAAAA,GACF;IAAAA,0DAAAA,EAAQ;;;;IADNA,uDAAAA,GACF;IADEA,gEAAAA,yBACF;;;;;;IATFA,4DAAAA,aAAiD;IAC/CA,wDAAAA,6EAEQ;IACRA,wDAAAA,6EAEQ;IACRA,wDAAAA,6EAEQ;IACRA,4DAAAA,aAAgD;IAAxBA,wDAAAA;MAAA;MAAA;MAAA;MAAA,OAASA,yDAAAA,wBAAa;IAAA,EAAC;IAACA,oDAAAA,aAAC;IAAAA,0DAAAA,EAAM;;;;;IAT/CA,uDAAAA,GAA6B;IAA7BA,wDAAAA,2CAA6B;IAG7BA,uDAAAA,GAA+B;IAA/BA,wDAAAA,6CAA+B;IAG/BA,uDAAAA,GAA4D;IAA5DA,wDAAAA,oFAA4D;;;;;;IATxEA,4DAAAA,aAA0D;IAC5BA,wDAAAA;MAAAA,2DAAAA;MAAA;MAAA,OAASA,yDAAAA,mBAAU;IAAA,EAAC;IAACA,oDAAAA,QAAC;IAAAA,0DAAAA,EAAM;IACxDA,wDAAAA,mEAWM;IACRA,0DAAAA,EAAM;;;;IAZmCA,uDAAAA,GAAQ;IAARA,wDAAAA,yBAAQ;;;ADa3C,MAAO4mS,yBAA0B,SAAQf,uEAAmB;EAIhE7nS,YAAYgf,OAAsB;IAChC,KAAK,CAACA,OAAO,CAAC;IAHN,uBAAkB,GAAG,IAAIpe,uDAAY,EAAW;IAIxD,IAAI,CAAC2X,IAAI,GAAG,qBAAqB;EACnC;EAEUuuB,SAAS,CAACt1B,MAAoB;IACtC,IAAI,CAACtN,KAAK,GAAGsN,MAAM,CAACtN,KAAK,CAACsN,MAAM,CAAEzN,IAAI,IAAK,CAAC4kS,2EAA+B,CAAC5kS,IAAI,CAACmO,GAAG,CAAC,CAAC;IACtF,IAAI,CAAC22R,kBAAkB,CAAClnS,IAAI,CAAC,IAAI,CAACuC,KAAK,CAACe,MAAM,GAAG,CAAC,CAAC;EACrD;EAEAyvP,OAAO,CAAC3wP,IAAsB;IAC5B,IAAI,CAACib,OAAO,CAAC2rQ,YAAY,CAAC,IAAI,CAACpyQ,IAAI,EAAExU,IAAI,CAACmO,GAAG,EAAE,CAACnO,IAAI,CAACC,KAAK,CAAC,EAAED,IAAI,CAACkxJ,SAAS,EAAE,IAAI,CAAC;IAClF,IAAI,CAAC/wJ,KAAK,GAAG,IAAI,CAACA,KAAK,CAACsN,MAAM,CAAEnM,CAAC,IAAK,EAAEA,CAAC,CAAC6M,GAAG,KAAKnO,IAAI,CAACmO,GAAG,KAAK7M,CAAC,CAAC4vJ,SAAS,KAAK,QAAQ,IAAI5vJ,CAAC,CAAC4vJ,SAAS,KAAK,MAAM,IAAI5vJ,CAAC,CAACrB,KAAK,KAAKD,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC;IAC9I,IAAI,CAAC6kS,kBAAkB,CAAClnS,IAAI,CAAC,IAAI,CAACuC,KAAK,CAACe,MAAM,GAAG,CAAC,CAAC;EACrD;EAEA6jS,WAAW,CAAC9kS,KAAa;IACvB,IAAI,CAACA,KAAK,IAAIA,KAAK,KAAK,IAAI,EAAE;MAC5B,OAAO,KAAK;;IAEd,OAAOiL,0CAAM,CAACjL,KAAK,EAAE,qBAAqB,EAAE,IAAI,CAAC,CAACyM,OAAO,EAAE,IAAIxB,0CAAM,CAACjL,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAACyM,OAAO,EAAE;EAC5G;EAEAs4R,QAAQ;IACN,IAAI,CAAC7kS,KAAK,CAACE,OAAO,CAAEmqB,CAAC,IAAI;MACvB,IAAI,CAACvP,OAAO,CAAC2rQ,YAAY,CAAC,IAAI,CAACpyQ,IAAI,EAAEgW,CAAC,CAACrc,GAAG,EAAE,CAACqc,CAAC,CAACvqB,KAAK,CAAC,EAAEuqB,CAAC,CAAC0mI,SAAS,EAAE,IAAI,CAAC;IAC3E,CAAC,CAAC;IACF,IAAI,CAAC/wJ,KAAK,GAAG,EAAE;IACf,IAAI,CAAC2kS,kBAAkB,CAAClnS,IAAI,CAAC,KAAK,CAAC;EACrC;EAEAqnS,aAAa,CAAChlS,KAAa;IACzB,OAAO,CAAC0jD,KAAK,CAAC3sB,MAAM,CAAC/2B,KAAK,CAAC,CAAC;EAC9B;EAEAi2R,QAAQ;IACN,OAAO,IAAI,CAAC/1R,KAAK,IAAI,IAAI,CAACA,KAAK,CAACe,MAAM,GAAG,CAAC;EAC5C;;AAzCW2jS,yBAA0B;mBAA1BA,yBAAyB;AAAA;AAAzBA,yBAA0B;QAA1BA,yBAAyB;EAAA1oS;EAAAuH;IAAAohS;EAAA;EAAA39R,WAAAA,wEAAAA;EAAAxD;EAAAC;EAAAC;EAAAJ;IAAA;MCftCxF,wDAAAA,6DAcM;;;MAdmBA,wDAAAA,2CAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACEuC;AAExD;AACwB;AAGZ;AACE;AAGsD;AACV;;;;;;AAQ3F,MAAOisI,mBAAoB,SAAQ45J,uEAAmB;EAiC1D7nS,YAAYgf,OAAsB,EAAUgpB,WAAwB;IAClE,KAAK,CAAChpB,OAAO,CAAC;IAD4B,gBAAW,GAAXgpB,WAAW;IA9BvD,kBAAa,GAAG,IAAIkhB,iDAAe,CAAU,KAAK,CAAC;IAG1C,yBAAoB,GAAa,EAAE;IACnC,uBAAkB,GAAY,KAAK;IAGnC,oBAAe,GAAW,IAAI;IAC9B,qBAAgB,GAAG,EAAE;IAIrB,mBAAc,GAAU,EAAE;IAQ1B,YAAO,GAAG,IAAI;IACd,cAAS,GAAG,IAAI;IAChB,cAAS,GAAG,IAAI;IAChB,cAAS,GAAG,IAAI;IACf,aAAQ,GAAsB,IAAItoD,uDAAY,EAAO;IACrD,cAAS,GAAsB,IAAIA,uDAAY,EAAO;IAItD,kBAAa,GAAsB,IAAIA,uDAAY,EAAO;EAGpE;EAEAsa,QAAQ;IACN,KAAK,CAACA,QAAQ,EAAE;IAChB,IAAI,CAAC8sB,WAAW,CAACkO,iBAAiB;EACpC;EAEM96B,eAAe;IAAA;IAAA;MACnB,KAAI,CAAC6tR,KAAK,CAAC/3Q,OAAO,GAAG,KAAI,CAACA,OAAO;MACjC,KAAI,CAACg4Q,gBAAgB,EAAE;MACvB,KAAI,CAACD,KAAK,CAAC/tR,QAAQ,EAAE;IAAC;EACxB;EAEAqD,WAAW;IACT,IAAI,CAAC4qR,iBAAiB,EAAE;IACxB,KAAK,CAAC5qR,WAAW,EAAE;EACrB;EAEAmwB,aAAa,CAAC1c,IAAS;IACrB,IAAI,IAAI,CAACo3Q,WAAW,EAAE;MACpB,IAAI,CAAC3yB,WAAW,CAAC,CAACzkP,IAAI,CAAC,CAAC;MACxB,IAAI,CAACo3Q,WAAW,EAAE;;EAEtB;EACO3yB,WAAW,CAACzkP,IAAW;IAC5B,IAAI,CAACA,IAAI,EAAE;IACX,IAAIA,IAAI,IAAI,CAACA,IAAI,CAAC/sB,MAAM,IAAI,CAAC,IAAI,CAACokS,SAAS,EAAE;MAC3C,IAAI,CAACh1Q,aAAa,CAAC1yB,IAAI,CAACqwB,IAAI,CAAC;MAC7B,IAAI,CAAC,IAAI,CAACq3Q,SAAS,IAAI,CAAC,IAAI,CAACC,iBAAiB,EAAE;MAChD,MAAM93R,MAAM,GAAG,IAAI,CAACwN,OAAO,CAACuvH,aAAa,CAAC32G,QAAQ,EAAE;MACpDpmB,MAAM,CAACtN,KAAK,CAACE,OAAO,CAAEmqB,CAAC,IAAI;QACzB,IAAIA,CAAC,CAACrc,GAAG,KAAK,IAAI,CAACA,GAAG,IAAI8f,IAAI,IAAIA,IAAI,CAAC,IAAI,CAACu3Q,eAAe,CAAC,KAAKh7Q,CAAC,CAACvqB,KAAK,EAAE;UACxE,IAAI,CAACgb,OAAO,CAAC2rQ,YAAY,CAAC,IAAI,CAACpyQ,IAAI,EAAE,IAAI,CAACrG,GAAG,EAAE,CAACqc,CAAC,CAACvqB,KAAK,CAAC,EAAE,OAAO,CAAC;;MAEtE,CAAC,CAAC;MACF,MAAMiqB,OAAO,GAAG,CAAC;QAAE/b,GAAG,EAAE,IAAI,CAACA,GAAG;QAAElO,KAAK,EAAEguB,IAAI,CAAC,IAAI,CAACu3Q,eAAe,CAAC;QAAEruQ,KAAK,EAAE,IAAI,CAACsuQ,gBAAgB,GAAGx3Q,IAAI,CAAC,IAAI,CAACs3Q,iBAAiB;MAAC,CAAE,CAAC;MACnI,IAAI,IAAI,CAACp3R,GAAG,EAAE;QACZ,IAAI,CAAC8M,OAAO,CAACgwH,SAAS,CAAC,IAAI,CAACz2H,IAAI,EAAE0V,OAA6B,CAAC;;;IAGpE,IAAI+D,IAAI,CAAC/sB,MAAM,KAAK,CAAC,EAAE;MACrB,MAAMuM,MAAM,GAAG,IAAI,CAACwN,OAAO,CAACuvH,aAAa,CAAC32G,QAAQ,EAAE;MACpDpmB,MAAM,CAACtN,KAAK,CAACE,OAAO,CAAEmqB,CAAC,IAAI;QACzB,IAAIA,CAAC,CAACrc,GAAG,KAAK,IAAI,CAACA,GAAG,EAAE,IAAI,CAAC8M,OAAO,CAAC2rQ,YAAY,CAAC,IAAI,CAACpyQ,IAAI,EAAE,IAAI,CAACrG,GAAG,EAAE,CAACqc,CAAC,CAACvqB,KAAK,CAAC,EAAE,OAAO,CAAC;MAC5F,CAAC,CAAC;MACF;KACD,MAAM,IAAIguB,IAAI,CAAC/sB,MAAM,GAAG,CAAC,EAAE;MAC1B,IAAI,CAACovB,aAAa,CAAC1yB,IAAI,CAACqwB,IAAI,CAAC;MAC7B,IAAI,CAAC,IAAI,CAACq3Q,SAAS,IAAI,CAAC,IAAI,CAACC,iBAAiB,EAAE;MAChD,MAAM93R,MAAM,GAAG,IAAI,CAACwN,OAAO,CAACuvH,aAAa,CAAC32G,QAAQ,EAAE;MACpDpmB,MAAM,CAACtN,KAAK,CAACE,OAAO,CAAEmqB,CAAC,IAAI;QACzB,IAAIA,CAAC,CAACrc,GAAG,KAAK,IAAI,CAACA,GAAG,IAAI8f,IAAI,IAAIA,IAAI,EAAE/sB,MAAM,GAAG,CAAC,IAAI,CAAC+sB,IAAI,CAACJ,IAAI,CAAEpf,CAAC,IAAKA,CAAC,CAAC,IAAI,CAAC+2R,eAAe,CAAC,KAAKh7Q,CAAC,CAACvqB,KAAK,CAAC,EAAE;UAC5G,MAAMylS,yBAAyB,GAAGz3Q,IAAI,CAAC/sB,MAAM,GAAG,CAAC;UACjD,IAAI,CAAC+Z,OAAO,CAAC2rQ,YAAY,CAAC,IAAI,CAACpyQ,IAAI,EAAE,IAAI,CAACrG,GAAG,EAAE,CAACqc,CAAC,CAACvqB,KAAK,CAAC,EAAE,OAAO,EAAEylS,yBAAyB,CAAC;;MAEjG,CAAC,CAAC;MACF,MAAMx7Q,OAAO,GAAG+D,IAAI,CAACluB,GAAG,CACrBC,IAAI,KACe;QAChBmO,GAAG,EAAE,IAAI,CAACA,GAAG;QACblO,KAAK,EAAED,IAAI,CAAC,IAAI,CAACwlS,eAAe,CAAC;QACjCruQ,KAAK,EAAE,IAAI,CAACsuQ,gBAAgB,GAAGzlS,IAAI,CAAC,IAAI,CAACulS,iBAAiB;OAC3D,EACJ;MACD,IAAI,IAAI,CAACp3R,GAAG,EAAE;QACZ,IAAI,CAAC8M,OAAO,CAACgwH,SAAS,CAAC,IAAI,CAACz2H,IAAI,EAAE0V,OAAO,CAAC;;;EAGhD;EACAy7Q,aAAa;IACX,IAAI,CAACx/R,UAAU,GAAG,EAAE;IACpB,MAAMsH,MAAM,GAAG,IAAI,CAACwN,OAAO,CAACuvH,aAAa,CAAC32G,QAAQ,EAAE;IACpD,IAAIpmB,MAAM,EAAEtN,KAAK,EACfsN,MAAM,CAACtN,KAAK,CAACE,OAAO,CAAEmqB,CAAC,IAAI;MACzB,IACEA,CAAC,CAACrc,GAAG,KAAK,WAAW,IACrBqc,CAAC,CAACrc,GAAG,KAAK,SAAS,IACnBqc,CAAC,CAACrc,GAAG,KAAK,aAAa,IACvBqc,CAAC,CAACrc,GAAG,KAAK,WAAW,IACrBqc,CAAC,CAACrc,GAAG,KAAK,aAAa,IACvBqc,CAAC,CAACrc,GAAG,KAAK,WAAW,IACrBqc,CAAC,CAACrc,GAAG,KAAK,SAAS,EACnB;QACA,IAAI,CAAC,IAAI,CAAChI,UAAU,EAAE,IAAI,CAACA,UAAU,GAAGqkB,CAAC,CAAC2M,KAAK,CAAC,KAC3C,IAAI,CAAChxB,UAAU,IAAI,GAAG,GAAGqkB,CAAC,CAAC2M,KAAK;;IAEzC,CAAC,CAAC;EACN;EACUmvP,WAAW,CAACp8P,OAAoB;IACxC,IAAI,CAACA,OAAO,GAAG,EAAE;IACjB,IAAI,CAACy7Q,aAAa,EAAE;IACpBz7Q,OAAO,CAAC7pB,OAAO,CAAEmqB,CAAC,IAAI;MACpB,IAAIA,CAAC,CAACiX,IAAI,KAAK,WAAW,EAAE,IAAI,CAACvX,OAAO,CAAC3oB,IAAI,CAAa;QAAEy3B,IAAI,EAAE,GAAG;QAAE+L,KAAK,EAAE,aAAa;QAAEnD,KAAK,EAAEpX,CAAC,CAACoX,KAAK;QAAED,QAAQ,EAAE;MAAK,CAAE,CAAC,CAAC,KAC3H,IAAInX,CAAC,CAACiX,IAAI,KAAK,SAAS,EAAE,IAAI,CAACvX,OAAO,CAAC3oB,IAAI,CAAa;QAAEy3B,IAAI,EAAE,GAAG;QAAE+L,KAAK,EAAE,aAAa;QAAEnD,KAAK,EAAEpX,CAAC,CAACoX,KAAK;QAAED,QAAQ,EAAE;MAAK,CAAE,CAAC,CAAC,KAC9H,IAAInX,CAAC,CAACiX,IAAI,KAAK,aAAa,EAAE,IAAI,CAACvX,OAAO,CAAC3oB,IAAI,CAAa;QAAEy3B,IAAI,EAAE,GAAG;QAAE+L,KAAK,EAAE,WAAW;QAAEnD,KAAK,EAAEpX,CAAC,CAACoX,KAAK;QAAED,QAAQ,EAAE;MAAK,CAAE,CAAC,CAAC,KAChI,IAAInX,CAAC,CAACiX,IAAI,KAAK,WAAW,EAAE,IAAI,CAACvX,OAAO,CAAC3oB,IAAI,CAAa;QAAEy3B,IAAI,EAAE,GAAG;QAAE+L,KAAK,EAAE,WAAW;QAAEnD,KAAK,EAAEpX,CAAC,CAACoX,KAAK;QAAED,QAAQ,EAAE;MAAK,CAAE,CAAC,CAAC,KAC9H,IAAInX,CAAC,CAACiX,IAAI,CAAC78B,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAACslB,OAAO,CAAC3oB,IAAI,CAAa;QAAEy3B,IAAI,EAAE,GAAG;QAAE+L,KAAK,EAAEva,CAAC,CAACiX,IAAI;QAAEG,KAAK,EAAEpX,CAAC,CAACoX,KAAK;QAAED,QAAQ,EAAE;MAAU,CAAE,CAAC,CAAC,KAC9H,IAAI,CAACzX,OAAO,CAAC3oB,IAAI,CAAa;QAAEy3B,IAAI,EAAE,GAAG;QAAE+L,KAAK,EAAEva,CAAC,CAACiX,IAAI;QAAEG,KAAK,EAAEpX,CAAC,CAACoX,KAAK;QAAED,QAAQ,EAAE;MAAI,CAAE,CAAC;IAClG,CAAC,CAAC;EACJ;EACUoB,SAAS,CAAC7Y,OAAqB;IACvC,IAAI,CAACo8P,WAAW,CAAC,CAAC,GAAG9C,0EAA8B,CAACt5P,OAAO,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC27Q,aAAa,CAACr3Q,IAAI,CAAC,IAAI,CAAC;EAC/B;EAEQ42Q,iBAAiB;IACvB,MAAM3/P,WAAW,GAAG,IAAI,CAACy/P,KAAK,CAACp6Q,KAAK,EAAErd,MAAM,EAAEyc,OAAO;IACrD,MAAM47Q,aAAa,GAAG,IAAI,CAAC7qR,OAAO,CAAC8qR,kBAAkB,EAAEjkR,IAAI,CAAE0I,CAAC,IAAKA,CAAC,CAAChW,IAAI,KAAK,IAAI,CAACA,IAAI,CAAC;IACxF,IAAIixB,WAAW,EAAEvkC,MAAM,GAAG,CAAC,EAAE;MAC3B,IAAI4kS,aAAa,EAAEA,aAAa,CAAC57Q,OAAO,GAAGub,WAAW,CAAC,KAClD,IAAI,CAACxqB,OAAO,CAAC8qR,kBAAkB,CAACxkS,IAAI,CAAC;QAAEiT,IAAI,EAAE,IAAI,CAACA,IAAI;QAAE0V,OAAO,EAAEub;MAAW,CAAE,CAAC;KACrF,MAAM;MACL,MAAMljB,KAAK,GAAG,IAAI,CAACtH,OAAO,CAAC8qR,kBAAkB,EAAEx2P,SAAS,CAAE/kB,CAAC,IAAKA,CAAC,CAAChW,IAAI,KAAK,IAAI,CAACA,IAAI,CAAC;MACrF,IAAI+N,KAAK,KAAK,CAAC,CAAC,EAAE,IAAI,CAACtH,OAAO,CAAC8qR,kBAAkB,CAACvkS,MAAM,CAAC+gB,KAAK,EAAE,CAAC,CAAC;;EAEtE;EACA4iR,gBAAgB;IACd,MAAMW,aAAa,GAAG,IAAI,CAAC7qR,OAAO,CAAC8qR,kBAAkB,EAAEjkR,IAAI,CAAE0I,CAAC,IAAKA,CAAC,CAAChW,IAAI,KAAK,IAAI,CAACA,IAAI,CAAC;IACxF,IAAIsxR,aAAa,EAAE57Q,OAAO,EAAEhpB,MAAM,GAAG,CAAC,EAAE;MACtC,MAAM4nN,aAAa,GAAG,IAAI,CAACo8E,KAAK,CAAC/5Q,IAAI,CAAC,eAAe,CAAC;MACtD29L,aAAa,CAACr7M,MAAM,CAAC;QACnBwc,KAAK,EAAE,KAAK;QACZC,OAAO,EAAE47Q,aAAa,CAAC57Q;OACxB,CAAC;;EAEN;;AAhKWggH,mBAAoB;mBAApBA,mBAAmB;AAAA;AAAnBA,mBAAoB;QAApBA,mBAAmB;EAAA/tI;EAAA6B;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MCrBhCC,4DAAAA,kBAyBe;MAHbA,wDAAAA;QAAA,OAAiBrB,yBAAqB;MAAA,EAAC;QAAA,OACrBA,uBAAmB;MAAA,EADE;QAAA,OAEtBA,uBAAmB;MAAA,EAFG;MAIzCqB,0DAAAA,EAAQ;;;MAxBNA,wDAAAA,oBAAe;;;;;;;;;;;;;;;;;;;;;;;;;ACA4B;AAEK;AACQ;AACjB;;;AAGnC,MAAgB6lS,mBAAmB;EAKvC7nS,YAAgCgf,OAAsB;IAAtB,YAAO,GAAPA,OAAO;IAF7B,WAAM,GAAG,KAAK;IACxB,kBAAa,GAAG,IAAIoO,yCAAO,EAAQ;EACuB;EAW1DlS,QAAQ;IACN,IAAI,CAACgoR,SAAS,EAAE;IAChB,IAAI,CAACsB,UAAU,EAAE;EACnB;EAEUA,UAAU,IAAW;EAErBb,cAAc,CAACnyR,MAAoB,GAAU;EAE/C0xR,SAAS;IACf,IAAI,CAAClkR,OAAO,CAAC05J,OAAO,CACnBvmJ,IAAI,CAAC5E,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CACnClS,SAAS,CACP1O,MAAoB,IAAI;MACvB,IAAI,CAACmyR,cAAc,CAACnyR,MAAM,CAAC;MAC3B,IACE,CAAC,IAAI,CAACoyR,MAAM,IACZpyR,MAAM,CAACk4Q,WAAW,CAACzkR,MAAM,GAAG,CAAC,IAC7BuM,MAAM,CAACk4Q,WAAW,CAAC,CAAC,CAAC,KAAK,IAAI,CAACx3Q,GAAG,EAClC;QACA,IACE,CAAC,IAAI,CAACutB,MAAM,IACX,IAAI,CAACA,MAAM,CAAC,IAAI,CAACsqQ,UAAU,EAAEv4R,MAAM,CAAC,IACnC,IAAI,CAACw4R,uBAAuB,CAACx4R,MAAM,CAAE,IACvC,IAAI,CAACy4R,gBAAgB,CAACz4R,MAAM,CAAC,EAC7B;UACA,IAAI,CAAC04R,yBAAyB,CAAC14R,MAAM,CAAC;;;MAI1C,IAAI,CAACu4R,UAAU,GAAGv4R,MAAM;IAC1B,CAAC,CACF;EACH;EAEQ04R,yBAAyB,CAAC14R,MAAoB;IACpD,MAAMkyR,aAAa,GAAG,IAAI,CAACD,uBAAuB,CAACjyR,MAAM,CAAC;IAC1D,IAAI,CAACs1B,SAAS,CAAC48P,aAAa,CAAC;IAC7B,IAAI,CAACE,MAAM,GAAG,IAAI;EACpB;EAEUH,uBAAuB,CAACjyR,MAAoB;IACpD,MAAMkyR,aAAa,GAAG;MAAE,GAAGlyR;IAAM,CAAE;IACnCkyR,aAAa,CAACx/R,KAAK,GAAGsN,MAAM,CAACtN,KAAK,CAACsN,MAAM,CAACnM,CAAC,IAAIA,CAAC,CAAC6M,GAAG,KAAK,IAAI,CAACA,GAAG,CAAC;IAClE,OAAOwxR,aAAa;EACtB;EAEQuG,gBAAgB,CAACz4R,MAAoB;IAC3C,OAAOA,MAAM,CAACk4Q,WAAW,CAAC93P,IAAI,CAACoE,CAAC,IAAI2yQ,0EAA8B,CAAC3yQ,CAAC,CAAC,IAAI,CAAC,CAAC;EAC7E;EAEQg0Q,uBAAuB,CAACx4R,MAAoB;IAClD,OACE,CAAC,IAAI,CAAC24R,WAAW,IACjB,IAAI,CAACA,WAAW,CAACv4Q,IAAI,CAACoE,CAAC,IAAIxkB,MAAM,CAACk4Q,WAAW,CAACtjQ,OAAO,CAAC4P,CAAC,CAAC,IAAI,CAAC,CAAC;EAElE;EAEAzX,WAAW;IACT,IAAG,IAAI,CAAC6T,aAAa,EACrB,IAAI,CAACA,aAAa,CAACG,IAAI,EAAE;IACzB,IAAI,CAACH,aAAa,CAACmG,QAAQ,EAAE;EAC/B;;AA9EoBsvQ,mBAAmB;mBAAnBA,mBAAmB;AAAA;AAAnBA,mBAAmB;QAAnBA,mBAAmB;EAAAtgS;IAAAgR;IAAArG;IAAAgf;IAAAqN;IAAArD;IAAAivQ;IAAA1qQ;IAAA2qQ;EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;ACTO;AAEc;AAEd;AACE;AACR;AACiF;AAClF;;;;AAGnC,MAAgBvH,uBAAwB,SAAQgF,uEAAmB;EAgBvE7nS,YACEgf,OAAsB,EACZ+jR,YAA+B,EAC/Bt1Q,aAA4B,EAC5Bua,WAAwB;IAElC,KAAK,CAAChpB,OAAO,CAAC;IAJJ,iBAAY,GAAZ+jR,YAAY;IACZ,kBAAa,GAAbt1Q,aAAa;IACb,gBAAW,GAAXua,WAAW;IAnBb,mBAAc,GAAG,IAAIkhB,iDAAe,CAAU,KAAK,CAAC;IAI9D,YAAO,GAAY,KAAK;IAUxB,gBAAW,GAAU,EAAE;EAQvB;EArBA,IAAWmhP,QAAQ;IACjB,OAAO,IAAI,CAACxG,cAAc,CAACroQ,YAAY,EAAE;EAC3C;EAsBU6uP,WAAW,CAACp8P,OAAqB;IACzC,IAAIs8P,WAAW,GAAGhD,mEAAuB,CAACt5P,OAAO,CAAC;IAClD,IAAIwV,QAAQ,GAAG,EAAE;IACjB8mP,WAAW,CAACt8P,OAAO,CAAC7pB,OAAO,CAACmqB,CAAC,IAAG;MAC9B,IAAIA,CAAC,CAACiX,IAAI,KAAK,WAAW,EACxB/B,QAAQ,CAACn+B,IAAI,CAAa;QAAEy3B,IAAI,EAAE,GAAG;QAAE+L,KAAK,EAAE,aAAa;QAAEnD,KAAK,EAAEpX,CAAC,CAACoX,KAAK;QAAED,QAAQ,EAAE;MAAK,CAAE,CAAC,CAAC,KAEhG,IAAInX,CAAC,CAACiX,IAAI,KAAK,SAAS,EACtB/B,QAAQ,CAACn+B,IAAI,CAAa;QAAEy3B,IAAI,EAAE,GAAG;QAAE+L,KAAK,EAAE,aAAa;QAAEnD,KAAK,EAAEpX,CAAC,CAACoX,KAAK;QAAED,QAAQ,EAAE;MAAK,CAAE,CAAC,CAAC,KAEhG,IAAInX,CAAC,CAACiX,IAAI,KAAK,aAAa,EAC1B/B,QAAQ,CAACn+B,IAAI,CAAa;QAAEy3B,IAAI,EAAE,GAAG;QAAE+L,KAAK,EAAE,WAAW;QAAEnD,KAAK,EAAEpX,CAAC,CAACoX,KAAK;QAAED,QAAQ,EAAE;MAAK,CAAE,CAAC,CAAC,KAE9F,IAAInX,CAAC,CAACiX,IAAI,KAAK,WAAW,EACxB/B,QAAQ,CAACn+B,IAAI,CAAa;QAAEy3B,IAAI,EAAE,GAAG;QAAE+L,KAAK,EAAE,WAAW;QAAEnD,KAAK,EAAEpX,CAAC,CAACoX,KAAK;QAAED,QAAQ,EAAE;MAAK,CAAE,CAAC,CAAC,KAE9F,IAAInX,CAAC,CAACiX,IAAI,CAAC78B,QAAQ,CAAC,KAAK,CAAC,EACxB86B,QAAQ,CAACn+B,IAAI,CAAa;QAAEy3B,IAAI,EAAE,GAAG;QAAE+L,KAAK,EAAEva,CAAC,CAACiX,IAAI;QAAEG,KAAK,EAAEpX,CAAC,CAACoX,KAAK;QAAED,QAAQ,EAAE;MAAU,CAAE,CAAC,CAAC,KAE9FjC,QAAQ,CAACn+B,IAAI,CAAa;QAAEy3B,IAAI,EAAE,GAAG;QAAE+L,KAAK,EAAEva,CAAC,CAACiX,IAAI;QAAEG,KAAK,EAAEpX,CAAC,CAACoX,KAAK;QAAED,QAAQ,EAAE;MAAI,CAAE,CAAC;IACnG,CAAC,CAAC;IACFjC,QAAQ,CAACr/B,OAAO,CAACmqB,CAAC,IAAG;MAAGA,CAAC,CAACya,IAAI,GAAG,IAAI;IAAC,CAAC,CAAC;IACxC,OAAOvF,QAAQ;EACjB;EACUqD,SAAS,CAACt1B,MAAoB;IACtC,IAAI,CAAC,IAAI,CAAC0f,OAAO,EAAE;IACnB,IAAI,CAAC,IAAI,CAACipC,OAAO,EAAE;MACjB,IAAI,CAACA,OAAO,GAAG,IAAI;MACnB,IAAI,CAAC0pO,cAAc,CAACtxQ,IAAI,CAAC,IAAI,CAAC;MAC9B,MAAM+3Q,KAAK,GAAG,IAAI,CAACjgB,WAAW,CAAC74Q,MAAM,CAAC;MACtC,IAAI,IAAI,CAAC0f,OAAO,EAAE;QAChB,IAAI,CAAC6xQ,YAAY,CACdt5P,aAAa,CAAC,IAAI,CAACvY,OAAO,EAAEo5Q,KAAK,CAAC,CAClCn4Q,IAAI,CAACk9D,wDAAQ,CAAC,MAAM,IAAI,CAACw0M,cAAc,CAACtxQ,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CACrDJ,IAAI,CAAC5E,yDAAS,CAAC,IAAI,CAAC6E,aAAa,CAAC,CAAC,CACnClS,SAAS,CACR/b,MAAM,IAAG;UACP,IAAI,CAACg2D,OAAO,GAAG,KAAK;UACpB,IAAI,CAAC6oO,SAAS,CAAC7+R,MAAM,CAAC;QACxB,CAAC,EACD47B,KAAK,IAAG;UAAG,IAAI,CAACo6B,OAAO,GAAG,KAAK;UAAElhC,OAAO,CAACC,GAAG,CAAC,eAAe,GAAG6G,KAAK,CAAC;QAAE,CAAC,CACzE;;;EAGT;;AAtEoB8iQ,uBAAwB;mBAAxBA,uBAAuB;AAAA;AAAvBA,uBAAwB;QAAxBA,uBAAuB;EAAAt7R;IAAA2pB;IAAAI;IAAAC;IAAA64Q;IAAAnG;EAAA;EAAA/4R,WAAAA,wEAAAA;AAAA;;;;;;;;;;;;;;;;;;;ACLtC,MAAMq/R,0BAA0B,GAAG,WAAW;AAC9C,MAAMC,wBAAwB,GAAG,SAAS;AAC1C,MAAMC,uBAAuB,GAAG,aAAa;AAC7C,MAAM9B,sBAAsB,GAAa,CAAC4B,0BAA0B,EAAEC,wBAAwB,EAAEC,uBAAuB,CAAC;AAQzH,MAAgBljB,YAAY;EACzB,OAAOiD,UAAU,CAACh5Q,MAAoB;IAC3C,OAAgC;MAC9Byc,OAAO,EAAEs5P,YAAY,CAACoiB,iBAAiB,CAACn4R,MAAM;KAC/C;EACH;EAEO,OAAOm4R,iBAAiB,CAACn4R,MAAoB;IAClD,MAAMk5R,WAAW,GAAGl5R,MAAM,CAACtN,KAAK,CAACsN,MAAM,CAAEwkB,CAAC,IAAK2yQ,sBAAsB,CAACviR,OAAO,CAAC4P,CAAC,CAAC9jB,GAAG,CAAC,IAAI,CAAC,CAAC;IAE1F,MAAMy4R,cAAc,GAAGD,WAAW,CAAC5mS,GAAG,CAAE0O,CAAM,KAAgB;MAAEgzB,IAAI,EAAEhzB,CAAC,CAACN,GAAG;MAAEyzB,KAAK,EAAEnzB,CAAC,CAACxO;IAAK,CAAE,EAAC;IAC9F,MAAM4mS,YAAY,GAAGp5R,MAAM,CAACtN,KAAK,CAACsN,MAAM,CAAEwkB,CAAC,IAAK2yQ,sBAAsB,CAACviR,OAAO,CAAC4P,CAAC,CAAC9jB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7F,MAAM24R,eAAe,GAAGtjB,YAAY,CAAC1sO,OAAO,CAAC+vP,YAAY,EAAG50Q,CAAC,IAAKA,CAAC,CAAC9jB,GAAG,CAAC,CAACpO,GAAG,CAAEoqB,KAAiB,IAAI;MACjG,IAAIA,KAAK,CAAC+mI,SAAS,KAAK,SAAS,IAAI/mI,KAAK,CAAC48Q,OAAO,CAAC7lS,MAAM,GAAG,CAAC,EAAE;QAC7D,MAAMgD,KAAK,CAAC,8CAA8C,CAAC;;MAE7D,IAAIjE,KAAK;MACT,IAAIkqB,KAAK,CAAC+mI,SAAS,KAAKjvJ,SAAS,IAAIkoB,KAAK,CAAC+mI,SAAS,KAAK,OAAO,EAAE;QAChEjxJ,KAAK,GAAGkqB,KAAK,CAAC48Q,OAAO,CAAChnS,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,KAAK,CAAC;OAChD,MAAM,IAAIkqB,KAAK,CAAC+mI,SAAS,KAAK,cAAc,EAAE;QAC7CjxJ,KAAK,GAAGkqB,KAAK,CAAC48Q,OAAO,CAAChnS,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACC,KAAK,CAAC,CAAC8N,IAAI,CAAC,GAAG,CAAC;OAC1D,MAAM,IAAIoc,KAAK,CAAC+mI,SAAS,KAAK,SAAS,IAAI/mI,KAAK,CAAC48Q,OAAO,IAAI58Q,KAAK,CAAC48Q,OAAO,CAAC7lS,MAAM,EAAE;QACjFjB,KAAK,GAAG,IAAI;OACb,MAAM,IAAI,CAACkqB,KAAK,CAAC+mI,SAAS,KAAK,QAAQ,IAAI/mI,KAAK,CAAC+mI,SAAS,KAAK,MAAM,KAAK/mI,KAAK,CAAC48Q,OAAO,IAAI58Q,KAAK,CAAC48Q,OAAO,CAAC7lS,MAAM,EAAE;QAChHjB,KAAK,GAAGkqB,KAAK,CAAC48Q,OAAO,CAAC,CAAC,CAAC,CAAC9mS,KAAK;;MAEhC,OAAkB;QAChBwhC,IAAI,EAAEtX,KAAK,CAAChc,GAAG;QACfyzB,KAAK,EAAE3hC;OACR;IACH,CAAC,CAAC;IACF,OAAO2mS,cAAc,CAACpmS,MAAM,CAACsmS,eAAe,CAAC,CAACr5R,MAAM,CAAE20D,CAAC,IAAKA,CAAC,CAACxgC,KAAK,KAAK3/B,SAAS,CAAC;EACpF;EAEO,OAAO+kS,uBAAuB,CAACv5R,MAAoB,EAAE0gC,SAA2B;IACrF,MAAMw4P,WAAW,GAAGl5R,MAAM,CAACtN,KAAK,CAACsN,MAAM,CAAEwkB,CAAC,IAAK2yQ,sBAAsB,CAACviR,OAAO,CAAC4P,CAAC,CAAC9jB,GAAG,CAAC,IAAI,CAAC,CAAC;IAE1F,MAAMy4R,cAAc,GAAGD,WAAW,CAAC5mS,GAAG,CAAE0O,CAAmB,KAAgB;MAAEgzB,IAAI,EAAEhzB,CAAC,CAACy8H,UAAU;MAAEtpG,KAAK,EAAEnzB,CAAC,CAACxO;IAAK,CAAE,EAAC;IAClH,MAAM4mS,YAAY,GAAGp5R,MAAM,CAACtN,KAAK,CAACsN,MAAM,CAAEwkB,CAAC,IAAK2yQ,sBAAsB,CAACviR,OAAO,CAAC4P,CAAC,CAAC9jB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7F,MAAM24R,eAAe,GAAGtjB,YAAY,CAAC1sO,OAAO,CAAC+vP,YAAY,EAAG50Q,CAAC,IAAKA,CAAC,CAACi5G,UAAU,CAAC,CAACnrI,GAAG,CAAEoqB,KAAiB,IAAI;MACxG,IAAIA,KAAK,CAAC+mI,SAAS,KAAK,SAAS,IAAI/mI,KAAK,CAAC48Q,OAAO,CAAC7lS,MAAM,GAAG,CAAC,EAAE;QAC7D,MAAMgD,KAAK,CAAC,8CAA8C,CAAC;;MAE7D,IAAIjE,KAAK;MACT,IAAIkqB,KAAK,CAAC+mI,SAAS,KAAKjvJ,SAAS,IAAIkoB,KAAK,CAAC+mI,SAAS,KAAK,OAAO,EAAE;QAChEjxJ,KAAK,GAAGkqB,KAAK,CAAC48Q,OAAO,CAAChnS,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACm3B,KAAK,CAAC,CAACppB,IAAI,CAAC,IAAI,CAAC;OAC3D,MAAM,IAAIoc,KAAK,CAAC+mI,SAAS,KAAK,cAAc,EAAE;QAC7CjxJ,KAAK,GAAGkqB,KAAK,CAAC48Q,OAAO,CAAChnS,GAAG,CAAEC,IAAI,IAAKA,IAAI,CAACm3B,KAAK,CAAC,CAACppB,IAAI,CAAC,IAAI,CAAC;OAC3D,MAAM,IAAIoc,KAAK,CAAC+mI,SAAS,KAAK,SAAS,IAAI/mI,KAAK,CAAC48Q,OAAO,IAAI58Q,KAAK,CAAC48Q,OAAO,CAAC7lS,MAAM,EAAE;QACjFjB,KAAK,GAAGkuC,SAAS,CAACoH,OAAO,CAAC,sBAAsB,CAAC;;MAEnD,OAAkB;QAChB9T,IAAI,EAAEtX,KAAK,CAAChc,GAAG;QACfyzB,KAAK,EAAE3hC;OACR;IACH,CAAC,CAAC;IACF,OAAO2mS,cAAc,CAClBpmS,MAAM,CAACsmS,eAAe,CAAC,CACvBr5R,MAAM,CAAE20D,CAAC,IAAKA,CAAC,CAACxgC,KAAK,KAAK3/B,SAAS,IAAImgE,CAAC,CAACxgC,KAAK,KAAK,KAAK,CAAC,CACzD7hC,GAAG,CAAEw0B,CAAC,KAAM;MAAEkN,IAAI,EAAElN,CAAC,CAACkN,IAAI;MAAEG,KAAK,EAAErN,CAAC,CAACqN,KAAK,KAAK,IAAI,GAAGuM,SAAS,CAACoH,OAAO,CAAC,sBAAsB,CAAC,GAAGhhB,CAAC,CAACqN,KAAK;MAAED,QAAQ,EAAE;IAAE,CAAE,CAAC,CAAC;EAChI;EAEO,OAAOmV,OAAO,CAAIq/C,UAAe,EAAEhoF,GAAqB;IAC7D;IACA,IAAI,CAACgoF,UAAU,EAAE;MACf,OAAO,IAAI;;IAGb,MAAMK,iBAAiB,GAAGL,UAAU,CAAClmF,MAAM,CAAC,CAACypE,QAAQ,EAAE9sE,OAAO,KAAI;MAChE,MAAMynF,SAAS,GAAGlmF,GAAG,CAACvB,OAAO,CAAC;MAC9B,IAAI,CAAC8sE,QAAQ,CAAC2a,SAAS,CAAC,EAAE;QACxB3a,QAAQ,CAAC2a,SAAS,CAAC,GAAG,CAACznF,OAAO,CAAC;OAChC,MAAM;QACL8sE,QAAQ,CAAC2a,SAAS,CAAC,CAAC9yF,IAAI,CAACqL,OAAO,CAAC;;MAEnC,OAAO8sE,QAAQ;IACjB,CAAC,EAAE,EAAE,CAAC;IAEN;IACA,OAAOn6E,MAAM,CAAC2O,IAAI,CAACsoF,iBAAiB,CAAC,CAACz2F,GAAG,CACtCoO,GAAG,KACQ;MACRA,GAAG;MACH44R,OAAO,EAAEvwM,iBAAiB,CAACroF,GAAG,CAAC;MAC/B+iJ,SAAS,EAAE16D,iBAAiB,CAACroF,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW;KACjD,EACJ;EACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxG6H;AAC7C;AACmC;AAC3C;AACzB;AACX;AACoE;AACnD;;;;;;;;;;;;;;ICM3ClQ,uDAAAA,6BAAoJ;;;;IAAzGA,wDAAAA,yCAAiC;;;;;;IAiBxEA,4DAAAA,qBAIkD;IAHhDA,wDAAAA;MAAAA,2DAAAA;MAAA;MAAA,OAASA,yDAAAA,6BAAqB;IAAA,EAAC;;IAGiBA,0DAAAA,EAAa;;;IAA7DA,wDAAAA,UAAAA,yDAAAA,kCAA+C;;;;;;IANnDA,4DAAAA,cAAqD;IACoBA,wDAAAA;MAAAA,2DAAAA;MAAA;MAAA,OAASA,yDAAAA,yBAAiB;IAAA,EAAC;;IAACA,0DAAAA,EAAa;IAChHA,wDAAAA,+EAI+D;IACjEA,0DAAAA,EAAM;;;;IANqBA,uDAAAA,GAA6C;IAA7CA,wDAAAA,UAAAA,yDAAAA,gCAA6C;IAGnEA,uDAAAA,GAAoD;IAApDA,wDAAAA,+GAAoD;;;;;;IAtBjEA,4DAAAA,aAAyD;IAGnDA,wDAAAA,uFAAoJ;IACpJA,0DAAAA,MAA0D;IAC1DA,4DAAAA,kBAAiC;IAC/BA,uDAAAA,wCAAsI;;IACxIA,0DAAAA,EAAU;IAEVA,4DAAAA,UAAK;IAKDA,wDAAAA;MAAAA,2DAAAA;MAAA;MAAA,OAAeA,yDAAAA,kCAA0B;IAAA,EAAC;;IAGpBA,0DAAAA,EAAa;IACrCA,wDAAAA,4DAOM;IACRA,0DAAAA,EAAM;IAGVA,0DAAAA,OAAmD;IACrDA,0DAAAA,EAAM;;;;IA3BqBA,uDAAAA,GAAoB;IAApBA,wDAAAA,+BAAoB;IAGkBA,uDAAAA,GAA+C;IAA/CA,wDAAAA,UAAAA,yDAAAA,kCAA+C;IAKtGA,uDAAAA,GAA+C;IAA/CA,wDAAAA,UAAAA,yDAAAA,mCAA+C;IAO3CA,uDAAAA,GAAoB;IAApBA,wDAAAA,+BAAoB;;;;;ADflC,MAAOgpS,eAAe;EAiB1BhrS,YACUu9B,aAAiC,EAClC0tQ,aAA4B,EAC3B3P,GAAsB,EACpBppP,SAA2B;IAH7B,kBAAa,GAAb3U,aAAa;IACd,kBAAa,GAAb0tQ,aAAa;IACZ,QAAG,GAAH3P,GAAG;IACD,cAAS,GAATppP,SAAS;IApBZ,mBAAc,GAAY,KAAK;IAC/B,eAAU,GAAY,IAAI;IAC1B,mBAAc,GAAY,IAAI;IAC9B,kBAAa,GAAY,IAAI;IAC7B,gBAAW,GAAG,IAAI;IAI3B,mBAAc,GAAY,KAAK;IAE/B,cAAS,GAAW,gCAAgC;EAWjD;EATHg5P,cAAc;IACZ,IAAI78R,MAAM,CAACK,UAAU,GAAG,GAAG,EAAE,IAAI,CAACy8R,UAAU,GAAG,KAAK;EACtD;EAQAjwR,QAAQ;IACN,IAAI,CAAC0jJ,QAAQ,EAAE;IACf,IAAIvwJ,MAAM,CAACK,UAAU,GAAG,GAAG,EAAE,IAAI,CAACy8R,UAAU,GAAG,KAAK;EACtD;EACA5sR,WAAW;IACT,IAAI,CAACgf,aAAa,GAAG,IAAI;IACzB,IAAI,CAAC0tQ,aAAa,GAAG,IAAI;IACzB,IAAI,CAACG,aAAa,GAAG,CAAC,IAAI,CAACA,aAAa;EAC1C;EAEAhwR,eAAe;IACb,IAAI,CAACxQ,UAAU,CAACi+R,kBAAkB,CAAC3oR,SAAS,CAAE6uE,MAAM,IAAI;MACtD,IAAI,CAACs8M,cAAc,GAAGt8M,MAAM;MAC5B,IAAI,CAACusM,GAAG,CAACr9P,aAAa,EAAE;IAC1B,CAAC,CAAC;IAEF,IAAI,CAACotQ,cAAc,GAAG,IAAI,CAACzgS,UAAU,CAACqvR,QAAQ,EAAE;IAChD,IAAI,CAACqB,GAAG,CAACr9P,aAAa,EAAE;EAC1B;EAEA3d,QAAQ,CAACpO,GAAW,EAAElO,KAAU,EAAE4mD,YAAqB,KAAK;IAC1D,IAAI,IAAI,CAACp7B,SAAS,EAAE;MAClB,IAAI,CAAC,IAAI,CAACA,SAAS,CAACqD,QAAQ,CAAC3gB,GAAG,CAAC,EAAE,IAAI,CAACsd,SAAS,CAACsD,UAAU,CAAC5gB,GAAG,EAAE,IAAIgF,8DAAkB,CAAClT,KAAK,CAAC,CAAC,CAAC,KAC5F,IAAI,CAACwrB,SAAS,CAACqD,QAAQ,CAAC3gB,GAAG,CAAC,CAACoO,QAAQ,CAACtc,KAAK,CAAC;;IAEnD,IAAI4mD,SAAS,IAAI,IAAI,CAACp7B,SAAS,IAAI,IAAI,CAACA,SAAS,CAACqD,QAAQ,CAAC3gB,GAAG,CAAC,EAAE,IAAI,CAACsd,SAAS,CAACqD,QAAQ,CAAC3gB,GAAG,CAAC,CAACooB,aAAa,CAACtO,+DAAmB,CAAC;EAClI;EACAs/Q,aAAa;IACX,IAAI,CAACH,UAAU,GAAG,CAAC,IAAI,CAACA,UAAU;IAClC,IAAI,IAAI,CAACA,UAAU,EAAE,IAAI,CAACI,SAAS,GAAG,gCAAgC,CAAC,KAClE,IAAI,CAACA,SAAS,GAAG,iCAAiC;EACzD;EACA3sI,QAAQ;IACN,MAAMtvG,QAAQ,GAAQ,EAAE;IACxB,IAAI,CAAC9/B,SAAS,GAAG,IAAIzD,4DAAgB,CAACujC,QAAQ,CAAC;IAC/C,IAAI,CAAChvC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;IAClC,IAAI,CAAC2qR,aAAa,CAACO,eAAe,EAAE;EACtC;EACAC,eAAe;IACb,MAAMj6R,MAAM,GAAG,IAAI,CAACy5R,aAAa,CAAC18J,aAAa,CAAC32G,QAAQ,EAAE;IAC1DpmB,MAAM,CAAC4zQ,SAAS,GAAG,IAAI,CAAC6lB,aAAa,CAAC7lB,SAAS;IAC/C,IAAI,CAAC7nP,aAAa,CACf56B,IAAI,CACH+/R,mFAAmB,EACnB;MACEtmP,YAAY,EAAE,aAAa;MAC3BumP,YAAY,EAAEnxR;KACf,EACD;MACE0tB,mBAAmB,EAAE,KAAK;MAC1BD,SAAS,EAAE,IAAI;MACfE,aAAa,EAAE;KAChB,CACF,CACAhN,IAAI,CAAC7E,qDAAI,CAAC,CAAC,CAAC,CAAC,CACbpN,SAAS,CAAC,MAAK;MACd,IAAI,CAAC+qR,aAAa,CAACO,eAAe,EAAE;IACtC,CAAC,CAAC;EACN;EACAE,kBAAkB,CAACzpS,MAAM;IACvB,IAAI,CAAC0pS,oBAAoB,GAAG1pS,MAAM;IAClC,IAAI,CAACmpS,aAAa,GAAGnpS,MAAM;IAC3B,IAAIA,MAAM,EAAE,IAAI,CAACgpS,aAAa,CAACW,eAAe,CAAC3pS,MAAM,CAAC,CAAC,KAClD;MACH,MAAMuP,MAAM,GAAG,IAAI,CAACy5R,aAAa,CAAC18J,aAAa,CAAC32G,QAAQ,EAAE;MAC1DpmB,MAAM,CAACtN,KAAK,GAAGsN,MAAM,CAACtN,KAAK,CAACqB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;MACxC,IAAI,CAAC0lS,aAAa,CAAC18J,aAAa,CAACh8G,IAAI,CAAC/gB,MAAM,CAAC;;EAEjD;EACAq6R,mBAAmB;IACjB,IAAI,IAAI,CAACF,oBAAoB,CAACj2Q,EAAE,IAAI,IAAI,CAAC01Q,aAAa,EAAE;MACtD,IAAI,CAAC9qR,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC;MAClC,IAAI,CAAC2qR,aAAa,CAACa,kBAAkB,CAAC,IAAI,CAACH,oBAAoB,CAACj2Q,EAAE,CAAC;MACnE,IAAI,CAAC01Q,aAAa,GAAG,CAAC,IAAI,CAACA,aAAa;MACxCt8R,UAAU,CAAC,MAAK;QACd,IAAI,CAAC0gB,SAAS,CAACjP,WAAW,EAAE;QAC5B,IAAI,CAACiP,SAAS,CAACuF,gBAAgB,EAAE;MACnC,CAAC,EAAE,GAAG,CAAC;;EAEX;;AAtGWi2Q,eAAe;mBAAfA,eAAe;AAAA;AAAfA,eAAe;QAAfA,eAAe;EAAA9qS;EAAA6B;IAAA;;;;;;;;;;;eAAfpB,0BAAsB;MAAA;;;;;;;;;;;;;;;;;MCbnCqB,4DAAAA,aAAiB;MAGkBA,wDAAAA;QAAA,OAASrB,mBAAe;MAAA,EAAC;MACpDqB,uDAAAA,WAI8C;;;MAChDA,0DAAAA,EAAM;MACNA,wDAAAA,qDA8BM;MACRA,0DAAAA,EAAM;MACNA,4DAAAA,aAA0B;MACxBA,0DAAAA,GAAmD;MACrDA,0DAAAA,EAAM;;;MA1CmBA,uDAAAA,GAAgC;MAAhCA,yDAAAA,+BAAgC;MAKnDA,uDAAAA,GAA8C;MAA9CA,yDAAAA,6CAA8C;MAD9CA,wDAAAA,6BAAAA,yDAAAA,mCAAAA,yDAAAA,iCAAuG;MAIrGA,uDAAAA,GAAgB;MAAhBA,wDAAAA,wBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACTmB;AACM;AACiC;AACA;AACoB;AACxC;AAC8B;AACD;AACW;AAChE;AAC0D;AACA;AAC7B;AACM;AACE;AACQ;AACV;AACN;AACG;;;AAE1E,MAAMo/B,UAAU,GAAG,CACjB4pQ,8DAAe,EACflH,+FAAoB,EACpB71J,+FAAmB,EACnB85J,mHAAyB,EACzBa,mHAAyB,EACzBmD,6GAA2B,EAC3B1I,6GAA2B,EAC3BJ,gFAAkB,EAClBwD,uFAAiB,EACjBkB,yFAAkB,EAClBH,iGAAsB,EACtBI,uFAAiB,EACjB9E,iFAAkB,EAClBJ,oFAAmB,CACpB;AAMK,MAAOtyK,kBAAkB;AAAlBA,kBAAkB;mBAAlBA,kBAAkB;AAAA;AAAlBA,kBAAkB;QAAlBA;AAAkB;AAAlBA,kBAAkB;YAFnB/kH,0DAAY,EAAED,wDAAW,EAAE21B,gEAAmB,EAAEV,kHAAoB,EAAE,EAAEgB,yGAAgB,EAAEutF,qDAAY,EADvFA,qDAAY;AAAA;;uHAG1BwB,kBAAkB;IAAAvkH,eApB7Bm/R,8DAAe,EACflH,+FAAoB,EACpB71J,+FAAmB,EACnB85J,mHAAyB,EACzBa,mHAAyB,EACzBmD,6GAA2B,EAC3B1I,6GAA2B,EAC3BJ,gFAAkB,EAClBwD,uFAAiB,EACjBkB,yFAAkB,EAClBH,iGAAsB,EACtBI,uFAAiB,EACjB9E,iFAAkB,EAClBJ,oFAAmB;IAAA52R,UAKTT,0DAAY,EAAED,wDAAW,EAAE21B,gEAAmB,EAAE,4GAAwBM,yGAAgB,EAAEutF,qDAAY;IAAA7iH,UAlBhHi/R,8DAAe,EACflH,+FAAoB,EACpB71J,+FAAmB,EACnB85J,mHAAyB,EACzBa,mHAAyB,EACzBmD,6GAA2B,EAC3B1I,6GAA2B,EAC3BJ,gFAAkB,EAClBwD,uFAAiB,EACjBkB,yFAAkB,EAClBH,iGAAsB,EACtBI,uFAAiB,EACjB9E,iFAAkB,EAClBJ,oFAAmB,EAIM9zK,qDAAY;EAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;ACvCY;AACqF;AAKf;AACzC;AACZ;AACkB;AAChD;AACiB;;;;AAYjD,MAAOsf,aAAa;EA6CxBluI,YACYyiD,YAA+B,EACjCtQ,iBAAoC,EACpCzkB,GAAsB,EACtBwkB,SAA2B;IAHzB,iBAAY,GAAZuQ,YAAY;IACd,sBAAiB,GAAjBtQ,iBAAiB;IACjB,QAAG,GAAHzkB,GAAG;IACH,cAAS,GAATwkB,SAAS;IAhDnB,YAAO,GAAGuvD,0FAAM;IAET,cAAS,GAAS,IAAIjuE,IAAI,EAAE;IAC5B,YAAO,GAAS,IAAIA,IAAI,EAAE;IAC1B,YAAO,GAAG,OAAO;IACjB,cAAS,GAAG,OAAO;IAGnB,qBAAgB,GAAwB,EAAE;IACjD,eAAU,GAA0B,IAAI01B,iDAAe,CAAO,IAAI,CAAC;IACnE,aAAQ,GAA0B,IAAIA,iDAAe,CAAO,IAAI,CAAC;IAC1D,wBAAmB,GAAG,IAAIA,iDAAe,CAAe,IAAI,CAAC;IACpE,gBAAW,GAAY,KAAK;IAErB,kBAAa,GAAG,IAAIA,iDAAe,CAA6B;MACrE8iP,MAAM,EAAE,YAAY;MACpBtiB,WAAW,EAAEif,kEAAsB;MACnCzkS,KAAK,EAAE,CACa;QAChBgO,GAAG,EAAEq4R,sEAA0B;QAC/BrvQ,KAAK,EAAE,IAAI,CAACgX,SAAS,CAACoH,OAAO,CAAC,2BAA2B,CAAC;QAC1D21F,UAAU,EAAE,IAAI,CAAC/8F,SAAS,CAACoH,OAAO,CAAC,2BAA2B,CAAC;QAC/Dt1C,KAAK,EAAE,IAAI,CAACqsC,SAAS;QACrB47P,YAAY,EAAE;OACf,EACiB;QAChB/5R,GAAG,EAAEs4R,oEAAwB;QAC7BtvQ,KAAK,EAAE,IAAI,CAACgX,SAAS,CAACoH,OAAO,CAAC,4BAA4B,CAAC;QAC3D21F,UAAU,EAAE,IAAI,CAAC/8F,SAAS,CAACoH,OAAO,CAAC,4BAA4B,CAAC;QAChEt1C,KAAK,EAAE,IAAI,CAACssC,OAAO;QACnB27P,YAAY,EAAE;OACf,EACiB;QAChB/5R,GAAG,EAAEu4R,mEAAuB;QAC5BvvQ,KAAK,EAAE,IAAI,CAACgX,SAAS,CAACoH,OAAO,CAAC,qCAAqC,CAAC;QACpE21F,UAAU,EAAE,IAAI,CAAC/8F,SAAS,CAACoH,OAAO,CAAC,qCAAqC,CAAC;QACzEt1C,KAAK,EAAE,KAAK;QACZioS,YAAY,EAAE;OACf;KAEJ,CAAC;IAEF,uBAAkB,GAAwB,EAAE;EAOzC;EAEH1tR,WAAW;IACT,IAAI,CAAC4zB,iBAAiB,GAAGnsC,SAAS;EACpC;EACA,IAAW0yK,OAAO;IAChB,MAAMlnK,MAAM,GAAG,IAAI,CAAC+8H,aAAa,CAAC32G,QAAQ,EAAE;IAC5C,IAAI7zB,IAAI,GAAGyN,MAAM,CAACtN,KAAK,CAAC2hB,IAAI,CAAE+sE,CAAC,IAAKA,CAAC,CAAC1gF,GAAG,KAAKq4R,sEAA0B,CAAC;IACzE,IAAIxmS,IAAI,IAAI,CAACA,IAAI,CAACC,KAAK,EAAED,IAAI,CAACC,KAAK,GAAG,IAAI,CAACqsC,SAAS;IACpD,IAAIyjI,KAAK,GAAGtiK,MAAM,CAACtN,KAAK,CAAC2hB,IAAI,CAAE+sE,CAAC,IAAKA,CAAC,CAAC1gF,GAAG,KAAKs4R,oEAAwB,CAAC;IACxE,IAAI12H,KAAK,IAAI,CAACA,KAAK,CAAC9vK,KAAK,EAAE8vK,KAAK,CAAC9vK,KAAK,GAAG,IAAI,CAACssC,OAAO;IACrD,IAAI,CAACi+F,aAAa,CAACh8G,IAAI,CAAC/gB,MAAM,CAAC;IAE/B,OAAO,IAAI,CAAC+8H,aAAa,CAAC/yG,YAAY,EAAE;EAC1C;EAEOmvP,YAAY,CAACqhB,MAAc,EAAE95R,GAAW,EAAEzQ,MAAa,EAAEwzJ,SAAqB,EAAEw0I,yBAAmC;IACxH,MAAMj4R,MAAM,GAAG,IAAI,CAAC+8H,aAAa,CAAC32G,QAAQ,EAAE;IAC5C,MAAM1zB,KAAK,GAAGsN,MAAM,CAACtN,KAAK,CAACsN,MAAM,CAC9BzN,IAAI,IAAK,EAAEA,IAAI,CAACmO,GAAG,KAAKA,GAAG,KAAK+iJ,SAAS,KAAK,QAAQ,IAAIA,SAAS,KAAK,MAAM,IAAIxzJ,MAAM,CAACmwB,IAAI,CAAE5tB,KAAK,IAAKA,KAAK,KAAKD,IAAI,CAACC,KAAK,CAAC,CAAC,CAAC,CAClI;IAED,IAAI,CAACyyQ,WAAW,CAACvyQ,KAAK,EAAE8nS,MAAM,EAAE,CAAC95R,GAAG,CAAC,EAAEu3R,yBAAyB,CAAC;IACjE,IAAIA,yBAAyB,EAAE,IAAI,CAAChgB,mBAAmB,CAACl3P,IAAI,CAAC/gB,MAAM,CAAC;IACpE,IAAI,CAACixC,YAAY,CAAC1D,iBAAiB,CAACvtC,MAAM,EAAE,IAAI,CAAC63F,OAAO,CAACqC,kBAAkB,CAAC;EAC9E;EAEOsjC,SAAS,CAACg9J,MAAc,EAAE9nS,KAAyB;IACxD,MAAMsN,MAAM,GAAG,IAAI,CAAC+8H,aAAa,CAAC32G,QAAQ,EAAE;IAC5C1zB,KAAK,CAACE,OAAO,CAAEmqB,CAAC,IAAI;MAClB,IAAI,CAACA,CAAC,CAAC0mI,SAAS,KAAK,QAAQ,IAAI1mI,CAAC,CAAC0mI,SAAS,KAAK,MAAM,IAAI1mI,CAAC,CAAC0mI,SAAS,KAAK,OAAO,KAAK1mI,CAAC,CAACvqB,KAAK,EAAE;QAC9F,IAAID,IAAI,GAAGyN,MAAM,CAACtN,KAAK,CAAC2hB,IAAI,CAAE+sE,CAAC,IAAKA,CAAC,CAAC1gF,GAAG,KAAKqc,CAAC,CAACrc,GAAG,CAAC;QACpD,IAAInO,IAAI,EAAE;UACRA,IAAI,CAACC,KAAK,GAAGuqB,CAAC,CAACvqB,KAAK;;QAEtB,IAAI,CAACuqI,aAAa,CAACh8G,IAAI,CAAC/gB,MAAM,CAAC;;IAEnC,CAAC,CAAC;IACF,MAAMgpD,QAAQ,GAAGt2D,KAAK,CAACsN,MAAM,CAAEzN,IAAI,IAAK,CAACyN,MAAM,CAACtN,KAAK,CAAC0tB,IAAI,CAAEghE,CAAC,IAAKA,CAAC,CAAC1gF,GAAG,KAAKnO,IAAI,CAACmO,GAAG,IAAI0gF,CAAC,CAAC5uF,KAAK,KAAKD,IAAI,CAACC,KAAK,CAAC,CAAC;IAChH,IAAI,CAACyyQ,WAAW,CACdjlQ,MAAM,CAACtN,KAAK,CAACK,MAAM,CAACi2D,QAAQ,CAAC,EAC7BwxO,MAAM,EACNxxO,QAAQ,CAAC12D,GAAG,CAAEuB,CAAC,IAAKA,CAAC,CAAC6M,GAAG,CAAC,CAC3B;IACD,IAAI,CAACu3Q,mBAAmB,CAACl3P,IAAI,CAAC/gB,MAAM,CAAC;IACrC,IAAI,CAACixC,YAAY,CAAC1D,iBAAiB,CAACvtC,MAAM,EAAE,IAAI,CAAC63F,OAAO,CAACqC,kBAAkB,CAAC;EAC9E;EACO88L,mBAAmB,CAACwD,MAAc,EAAEE,UAAe,EAAEC,QAAa,EAAE17P,WAAoB;IAC7F,MAAMj/B,MAAM,GAAG,IAAI,CAAC+8H,aAAa,CAAC32G,QAAQ,EAAE;IAC5C,IACEs0Q,UAAU,EAAEx3Q,QAAQ,EAAE,KAAKljB,MAAM,EAAEtN,KAAK,EAAE2hB,IAAI,CAAEyS,CAAC,IAAKA,CAAC,CAACpmB,GAAG,KAAK,WAAW,CAAC,EAAElO,KAAK,EAAE0wB,QAAQ,EAAE,IAC/Fy3Q,QAAQ,EAAEz3Q,QAAQ,EAAE,KAAK,IAAI,CAAC03Q,SAAS,EAAEloS,KAAK,EAAE2hB,IAAI,CAAEyS,CAAC,IAAKA,CAAC,CAACpmB,GAAG,KAAK,SAAS,CAAC,EAAElO,KAAK,EAAE0wB,QAAQ,EAAE,IACnG+b,WAAW,KAAKj/B,MAAM,EAAEtN,KAAK,EAAE2hB,IAAI,CAAEyS,CAAC,IAAKA,CAAC,CAACpmB,GAAG,KAAK,aAAa,CAAC,EAAElO,KAAK,EAC1E;MACA8K,UAAU,CAAC,MAAK;QACd,IAAI,CAAC26Q,mBAAmB,CAACl3P,IAAI,CAAC/gB,MAAM,CAAC;MACvC,CAAC,EAAE,GAAG,CAAC;;IAGT,MAAMq2D,KAAK,GAAGr2D,MAAM,CAACtN,KAAK,CAAC2hB,IAAI,CAAE9hB,IAAI,IAAKA,IAAI,CAACmO,GAAG,KAAKq4R,sEAA0B,CAAC;IAClF1iO,KAAK,CAAC7jE,KAAK,GAAGkoS,UAAU;IAExB,MAAMpkO,GAAG,GAAGt2D,MAAM,CAACtN,KAAK,CAAC2hB,IAAI,CAAE9hB,IAAI,IAAKA,IAAI,CAACmO,GAAG,KAAKs4R,oEAAwB,CAAC;IAC9E1iO,GAAG,CAAC9jE,KAAK,GAAGmoS,QAAQ;IAEpB,MAAME,eAAe,GAAG76R,MAAM,CAACtN,KAAK,CAAC2hB,IAAI,CAAE9hB,IAAI,IAAKA,IAAI,CAACmO,GAAG,KAAKu4R,mEAAuB,CAAC;IACzF4B,eAAe,CAACroS,KAAK,GAAGysC,WAAW;IAEnC,IAAI,CAACgmO,WAAW,CAACjlQ,MAAM,CAACtN,KAAK,EAAE8nS,MAAM,EAAErD,kEAAsB,CAAC;EAChE;EAEQlyB,WAAW,CAACvyQ,KAAyB,EAAE8nS,MAAc,EAAEtiB,WAAqB,EAAE+f,yBAAyB,GAAG,IAAI;IACpH,IAAI,CAAC/f,WAAW,CAACzkR,MAAM,EAAE;MACvB;;IAEF,MAAMuM,MAAM,GAAG,IAAI,CAAC+8H,aAAa,CAAC32G,QAAQ,EAAE;IAC5CpmB,MAAM,CAACw6R,MAAM,GAAGA,MAAM;IACtBx6R,MAAM,CAACk4Q,WAAW,GAAGA,WAAW,CAACl4Q,MAAM,CAAEwkB,CAAC,IAAK0zP,WAAW,CAACtjQ,OAAO,CAAC4P,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3ExkB,MAAM,CAACtN,KAAK,GAAGA,KAAK;IACpB,IAAI,CAACkoS,SAAS,GAAG9oS,MAAM,CAACC,MAAM,CAAC,EAAE,EAAEiO,MAAM,CAAC;IAC1C,IAAIi4R,yBAAyB,EAAE;MAC7B,IAAI,CAACl7J,aAAa,CAACh8G,IAAI,CAAC/gB,MAAM,CAAC;;EAEnC;EACA;EACAg6R,eAAe;IACb,IAAI,CAACr5P,iBAAiB,CACnBxa,OAAO,CAAC,2BAA2B,GAAG,IAAI,CAACytP,SAAS,CAAC,CACrDjzP,IAAI,CAAC7E,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbpN,SAAS,CACPqO,CAAsB,IAAI;MACzB,MAAM7a,GAAG,GAAG,IAAIkvR,6EAAiB,EAAE;MACnC,IAAI,CAAC0J,gBAAgB,GAAG/9Q,CAAC;IAC3B,CAAC,EACAwR,KAAK,IAAI;MACR9G,OAAO,CAACkyB,OAAO,CAACprB,KAAK,CAAC;IACxB,CAAC,CACF;EACL;EACA;EACA6rQ,eAAe,CAAC3pS,MAAW;IACzB,MAAMuwC,GAAG,GAAG3K,IAAI,CAACC,KAAK,CAAC7lC,MAAM,CAACsmG,SAAS,CAAC;IACxC,IAAI,CAACgmC,aAAa,CAACh8G,IAAI,CAACigB,GAAG,CAAC;EAC9B;EACA;EACAs5P,kBAAkB,CAACh0Q,EAAU;IAC3B,IAAI,CAACpK,GAAG,CAAC4H,UAAU,CACjB,IAAI,CAAC4c,SAAS,CAACoH,OAAO,CAAC,mCAAmC,CAAC,EAC3D,IAAI,CAACpH,SAAS,CAACoH,OAAO,CAAC,0BAA0B,CAAC,EAClD1sB,wGAAkB,EAClB,MAAK;MACH,IAAI,CAACulB,iBAAiB,CACnBtS,MAAM,CAAC,yBAAyB,EAAE/H,EAAE,CAAC,CACrC3F,IAAI,CAAC7E,oDAAI,CAAC,CAAC,CAAC,CAAC,CACbpN,SAAS,CACPqO,CAAsB,IAAI;QACzB,MAAM/c,MAAM,GAAG,IAAI,CAAC+8H,aAAa,CAAC32G,QAAQ,EAAE;QAC5CpmB,MAAM,CAACtN,KAAK,GAAGsN,MAAM,CAACtN,KAAK,CAACqB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QACxC,IAAI,CAACgpI,aAAa,CAACh8G,IAAI,CAAC/gB,MAAM,CAAC;QAC/B,IAAI,CAACg6R,eAAe,EAAE;MACxB,CAAC,EACAzrQ,KAAK,IAAI;QACR9G,OAAO,CAACkyB,OAAO,CAACprB,KAAK,CAAC;MACxB,CAAC,CACF;IACL,CAAC,CACF;EACH;;AAjLWmuG,aAAa;mBAAbA,aAAa;AAAA;AAAbA,aAAa;SAAbA,aAAa;EAAA1qI,SAAb0qI,aAAa;EAAA3+E,YAFZ;AAAM;;;;;;;;;;;;;;;;;;;;;;;ACpBuD;AAEzB;AAGA;;;;;;;;;;;ICLhDvtD,4DAAAA,2BASe;IAFfA,wDAAAA;MAAAA,2DAAAA;MAAA;MAAA,OAAeA,yDAAAA,wBAAiB,IAAI,CAAC;IAAA,EAAC;IAGxCA,0DAAAA,EAAoB;;;;IATlBA,wDAAAA,oBAAY;;;;;;IAYNA,4DAAAA,mBAMoC;IAHpBA,wDAAAA;MAAAA,2DAAAA;MAAA;MAAA;MAAA,OAAeA,yDAAAA,iCAAoB;IAAA,EAAC;IAIpDA,0DAAAA,EAAY;;;;;IANIA,wDAAAA,oBAAiB;;;;;;IAOjCA,4DAAAA,oBAKiC;IAFpBA,wDAAAA;MAAAA,2DAAAA;MAAA;MAAA;MAAA,OAAeA,yDAAAA,iCAAoB;IAAA,EAAC;IAGjDA,0DAAAA,EAAY;;;;;IALCA,wDAAAA,oBAAiB;;;;;;IAM9BA,4DAAAA,uBAIoC;IADpBA,wDAAAA;MAAAA,2DAAAA;MAAA;MAAA;MAAA,OAAeA,yDAAAA,iCAAoB;IAAA,EAAC;IAEpDA,0DAAAA,EAAe;;;;;IAJCA,wDAAAA,sBAAc;;;;;;IAM9BA,4DAAAA,qBAS8C;IAFlCA,wDAAAA;MAAAA,2DAAAA;MAAA;MAAA;MAAA,OAAeA,yDAAAA,iCAAoB;IAAA,EAAC;IAGhDA,0DAAAA,EAAa;;;;;IATDA,wDAAAA,oBAAiB;;;;;IAzBrCA,4DAAAA,UAAgC;IAExBA,wDAAAA,uFAOY;IACZA,wDAAAA,uFAMY;IACZA,wDAAAA,6FAKe;IAEfA,wDAAAA,yFAUa;IACjBA,0DAAAA,EAAM;;;;IAlCAA,uDAAAA,GAAsB;IAAtBA,wDAAAA,8BAAsB;IACZA,uDAAAA,GAAsB;IAAtBA,wDAAAA,0BAAsB;IAQtBA,uDAAAA,GAAoB;IAApBA,wDAAAA,wBAAoB;IAOjBA,uDAAAA,GAAuB;IAAvBA,wDAAAA,2BAAuB;IAOzBA,uDAAAA,GAAqB;IAArBA,wDAAAA,yBAAqB;;;;;IApC1CA,4DAAAA,UAAkB;IAChBA,wDAAAA,iGAUkB;IACpBA,wDAAAA,qEAoCQ;IACRA,0DAAAA,EAAM;;;;IAhDgBA,uDAAAA,GAAiC;IAAjCA,wDAAAA,4CAAiC;IAWjCA,uDAAAA,GAAQ;IAARA,wDAAAA,yBAAQ;;;ADCxB,MAAO+pS,2BAA4B,SAAQlE,mFAAmB;EAYlE7nS,YAAYgf,OAAsB;IAChC,KAAK,CAACA,OAAO,CAAC;IAXhB,UAAK,GAAwB,EAAE;IAMtB,kBAAa,GAAW,OAAO;IAC/B,mBAAc,GAAW,IAAI;IAC7B,iBAAY,GAAY,KAAK;EAItC;EAEUykR,uBAAuB,CAACjyR,MAAoB;IACpD,MAAMkyR,aAAa,GAAG;MAAE,GAAGlyR;IAAM,CAAE;IACnCkyR,aAAa,CAACx/R,KAAK,GAAGsN,MAAM,CAACtN,KAAK;IAClC,OAAOw/R,aAAa;EACtB;EAEUC,cAAc,CAACnyR,MAAoB;IAC3C,IAAI,CAACtN,KAAK,CAACE,OAAO,CAACL,IAAI,IAAG;MACxBA,IAAI,CAACa,OAAO,GAAG4M,MAAM,CAACtN,KAAK,CAAC0tB,IAAI,CAC9BhnB,UAAU,IACRA,UAAU,CAACsH,GAAG,KAAK,IAAI,CAACA,GAAG,KAAK,IAAI,CAAC+iJ,SAAS,KAAK,QAAQ,IAAI,IAAI,CAACA,SAAS,KAAK,MAAM,IAAIrqJ,UAAU,CAAC5G,KAAK,KAAKD,IAAI,CAAC4hC,KAAK,CAAC,CAC/H;MACD,IAAI,CAAC5hC,IAAI,CAACa,OAAO,EAAE;QACjB,IAAI,IAAI,CAACqwJ,SAAS,KAAK,SAAS,IAAI,IAAI,CAACzgG,IAAI,CAAC3hC,QAAQ,CAAC,IAAI,CAAC3gB,GAAG,CAAC,CAAClO,KAAK,EACpE,IAAI,CAACwwD,IAAI,CAAC3hC,QAAQ,CAAC,IAAI,CAAC3gB,GAAG,CAAC,CAACoO,QAAQ,CAACvc,IAAI,CAACa,OAAO,CAAC;QACrD;QACA;QACA,IAAI,CAAC,IAAI,CAACqwJ,SAAS,KAAK,QAAQ,IAAI,IAAI,CAACA,SAAS,KAAK,MAAM,KAAK,IAAI,CAACzgG,IAAI,CAAC3hC,QAAQ,CAAC,IAAI,CAAC3gB,GAAG,CAAC,CAAClO,KAAK,EAClG,IAAI,CAACwwD,IAAI,CAAC3hC,QAAQ,CAAC,IAAI,CAAC3gB,GAAG,CAAC,CAACoO,QAAQ,CAACvc,IAAI,CAAC4hC,KAAK,CAAC;;IAEvD,CAAC,CAAC;EACJ;EAEA+uN,OAAO,CAAC1wP,KAAU,EAAED,IAAS;IAC3B,IAAI,IAAI,CAACkxJ,SAAS,KAAK,aAAa,EAAE;MACpC,IAAIjxJ,KAAK,EAAE;QACT,IAAI,CAACgb,OAAO,CAACgwH,SAAS,CAAC,IAAI,CAACz2H,IAAI,EAAE,CACd;UAChBrG,GAAG,EAAE,IAAI,CAACA,GAAG;UACblO,KAAK,EAAEA,KAAK,CAAC0xB,EAAE;UACfwF,KAAK,EAAEl3B,KAAK,CAACq0B,KAAK;UAClB42G,UAAU,EAAE,IAAI,CAAC/zG,KAAK;UACtB+5H,SAAS,EAAE,IAAI,CAACA,SAAS;UACzBrwJ,OAAO,EAAC;SACT,CACF,CAAC;;;IAIN,IAAI,IAAI,CAACqwJ,SAAS,KAAK,SAAS,EAAE;MAChClxJ,IAAI,CAACa,OAAO,GAAGZ,KAAK,CAACY,OAAO;MAC5B,IAAIZ,KAAK,EAAE;QACT,IAAI,CAACgb,OAAO,CAACgwH,SAAS,CAAC,IAAI,CAACz2H,IAAI,EAAE,CACd;UAChBrG,GAAG,EAAE,IAAI,CAACA,GAAG;UACblO,KAAK,EAAEA,KAAK;UACZk3B,KAAK,EAAEn3B,IAAI,CAACyhC,IAAI;UAChBypG,UAAU,EAAE,IAAI,CAAC/zG,KAAK;UACtBt2B,OAAO,EAAE,KAAK;UACdqwJ,SAAS,EAAE,IAAI,CAACA;SACjB,CACF,CAAC;QACFlxJ,IAAI,CAAC4hC,KAAK,GAAG3hC,KAAK;OACnB,MAAM;QACL,IAAI,CAACgb,OAAO,CAAC2rQ,YAAY,CAAC,IAAI,CAACpyQ,IAAI,EAAE,IAAI,CAACrG,GAAG,EAAE,CAACnO,IAAI,CAAC4hC,KAAK,CAAC,EAAE,IAAI,CAACsvH,SAAS,CAAC;;;IAGhF,IAAI,IAAI,CAACA,SAAS,KAAK,MAAM,IAAI,IAAI,CAACA,SAAS,KAAK,QAAQ,IAAI,IAAI,CAACA,SAAS,KAAK,OAAO,EAAE;MAC1F,IAAIjxJ,KAAK,EAAE;QACTD,IAAI,CAAC4hC,KAAK,GAAG,IAAI,CAACsvH,SAAS,KAAK,OAAO,GAAGjxJ,KAAK,CAAC,IAAI,CAACmuD,cAAc,CAAC,GAAGnuD,KAAK;QAC5E,IAAI,CAACgb,OAAO,CAACgwH,SAAS,CAAC,IAAI,CAACz2H,IAAI,EAAE,CACd;UAChBrG,GAAG,EAAE,IAAI,CAACA,GAAG;UACblO,KAAK,EAAE,IAAI,CAACixJ,SAAS,KAAK,OAAO,GAAGjxJ,KAAK,CAAC,IAAI,CAACmuD,cAAc,CAAC,GAAGnuD,KAAK;UACtEk3B,KAAK,EAAEn3B,IAAI,CAACyhC,IAAI;UAChBypG,UAAU,EAAE,IAAI,CAAC/zG,KAAK;UACtBt2B,OAAO,EAAE,KAAK;UACdqwJ,SAAS,EAAE,IAAI,CAACA,SAAS,KAAK,OAAO,GAAG,QAAQ,GAAG,IAAI,CAACA;SACzD,CACF,CAAC;OACH,MACI;QACH,IAAI,CAACj2I,OAAO,CAAC2rQ,YAAY,CAAC,IAAI,CAACpyQ,IAAI,EAAE,IAAI,CAACrG,GAAG,EAAE,CAACnO,IAAI,CAAC4hC,KAAK,CAAC,EAAE,IAAI,CAACsvH,SAAS,CAAC;;;EAGlF;EAEUnuH,SAAS,CAACt1B,MAAoB;IACtC,IAAI,CAACtN,KAAK,CAACE,OAAO,CAACL,IAAI,IAAG;MACxBA,IAAI,CAACa,OAAO,GAAG4M,MAAM,CAACtN,KAAK,CAAC0tB,IAAI,CAC9BhnB,UAAU,IACRA,UAAU,CAACsH,GAAG,KAAK,IAAI,CAACA,GAAG,IAAItH,UAAU,CAAC5G,KAAK,KAAKD,IAAI,CAAC4hC,KAAK,CACjE;IACH,CAAC,CAAC;EACJ;EAEA4mQ,YAAY,CAACjmR,KAAK,EAAEviB,IAAI;IACtB,OAAOA,IAAI,CAAC4hC,KAAK;EACnB;;AAxGWomQ,2BAA4B;mBAA5BA,2BAA2B;AAAA;AAA3BA,2BAA4B;QAA5BA,2BAA2B;EAAA7rS;EAAAqH;IAAArD;IAAA+wJ;IAAAzgG;IAAAtjC;IAAAI;IAAAC;IAAA6gC;IAAAD;IAAAq6O;EAAA;EAAAthS,WAAAA,wEAAAA;EAAAxD;EAAAC;EAAAC;EAAAJ;IAAA;MCbxCxF,wDAAAA,+DAiDM;;;MAjDAA,wDAAAA,kBAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA2E;AACmB;AACR;AACtB;AAC8C;AAChD;AACvB;AACyC;AACI;AACQ;AAEpE;;;;;;;;AAElC,MAAOijN,OAAO;AAOd,MAAO5iL,UAAU;EAAvBriC;IAcE,gBAAW,GAAY,KAAK;IAE5B,mBAAc,GAAY,IAAI;EAChC;;AAOM,MAAOoiC,yBAAyB;EAuBpCpiC,YACU83B,EAAsB,EACtBpK,GAAsB,EACtB++Q,GAAsB,EACtBl9P,UAAsB,EACtB4gL,IAAY,EACZnoL,WAAwB,EACxBuhB,aAA+B,EAC/BmjP,eAAgC,EAChCC,iBAAoC,EACpCzpQ,WAA2B;IAT3B,OAAE,GAAFpL,EAAE;IACF,QAAG,GAAHpK,GAAG;IACH,QAAG,GAAH++Q,GAAG;IACH,eAAU,GAAVl9P,UAAU;IACV,SAAI,GAAJ4gL,IAAI;IACJ,gBAAW,GAAXnoL,WAAW;IACX,kBAAa,GAAbuhB,aAAa;IACb,oBAAe,GAAfmjP,eAAe;IACf,sBAAiB,GAAjBC,iBAAiB;IACjB,gBAAW,GAAXzpQ,WAAW;IA3BZ,eAAU,GAAeZ,oGAAoB;IA8T/C,mCAA8B,GAAG,UAAUt+B,KAAa;MAC7D,OAAO,IAAI,CAAC2oS,iBAAiB,CAAC3gS,SAAS,CAAC,IAAI,CAAC6gS,qBAAqB,CAAC7gS,SAAS,CAAChI,KAAK,CAAC,CAAC;IACtF,CAAC;IACM,mBAAc,GAAG,UAAUA,KAAW;MAC3C,OAAO,IAAI,CAAC0oS,eAAe,CAAC1gS,SAAS,CAAChI,KAAK,CAAC;IAC9C,CAAC;IACM,oBAAe,GAAG,UAAUA,KAAW;MAC5C,OAAOiL,0CAAM,CAACjL,KAAK,CAAC0wB,QAAQ,EAAE,CAAC,CAACtkB,MAAM,CAAC,aAAa,CAAC;IACvD,CAAC;IACM,6BAAwB,GAAG,UAAUpM,KAAW;MACrD,MAAMmM,IAAI,GAAGlB,0CAAM,CAACjL,KAAK,CAAC,IAAIiL,0CAAM,EAAE;MACtC,OAAOkB,IAAI,CAAC28R,KAAK,EAAE;IACrB,CAAC;IACM,wBAAmB,GAAG,UAAU9oS,KAAW;MAChD,MAAMmM,IAAI,GAAGlB,0CAAM,CAACjL,KAAK,CAAC,IAAIiL,0CAAM,EAAE;MACtC,OAAOkB,IAAI,CAACusK,MAAM,EAAE,GAAG,CAAC;IAC1B,CAAC;IACM,uBAAkB,GAAG,UAAU14K,KAAW;MAC/C,MAAMmM,IAAI,GAAGlB,0CAAM,CAACjL,KAAK,CAAC,IAAIiL,0CAAM,EAAE;MACtC,OAAOkB,IAAI,CAACqsK,KAAK,EAAE;IACrB,CAAC;IACM,wBAAmB,GAAG,UAAUx4K,KAAW;MAChD,MAAMmM,IAAI,GAAGlB,0CAAM,CAACjL,KAAK,CAAC,IAAIiL,0CAAM,EAAE;MACtC,OAAOkB,IAAI,CAACqsK,KAAK,EAAE;IACrB,CAAC;IACM,mBAAc,GAAG,UAAUp3J,KAAa;MAC7C,IAAI2nR,UAAU,GAAG,CACf,IAAI,CAAC76P,SAAS,CAAC,4BAA4B,CAAC,EAC5C,IAAI,CAACA,SAAS,CAAC,0BAA0B,CAAC,EAC1C,IAAI,CAACA,SAAS,CAAC,2BAA2B,CAAC,EAC3C,IAAI,CAACA,SAAS,CAAC,2BAA2B,CAAC,EAC3C,IAAI,CAACA,SAAS,CAAC,6BAA6B,CAAC,EAC7C,IAAI,CAACA,SAAS,CAAC,gCAAgC,CAAC,EAChD,IAAI,CAACA,SAAS,CAAC,8BAA8B,CAAC,EAC9C,IAAI,CAACA,SAAS,CAAC,+BAA+B,CAAC,EAC/C,IAAI,CAACA,SAAS,CAAC,+BAA+B,CAAC,EAC/C,IAAI,CAACA,SAAS,CAAC,8BAA8B,CAAC,EAC9C,IAAI,CAACA,SAAS,CAAC,+BAA+B,CAAC,EAC/C,IAAI,CAACA,SAAS,CAAC,4BAA4B,CAAC,CAC7C;MACD,OAAO66P,UAAU,CAAC3nR,KAAK,GAAG,CAAC,CAAC;IAC9B,CAAC;IACM,gBAAW,GAAG,UAAU4nR,SAAiB,EAAEhyP,KAAa;MAC7D,IAAIA,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE;MACzB,OAAOgyP,SAAS,CAACvyQ,MAAM,CAACugB,KAAK,CAAC;IAChC,CAAC;IACM,kBAAa,GAAG,UAAUh3C,KAAa,EAAE22I,IAAY,EAAEsyJ,UAAkB,CAAC;MAC/E,IAAItyJ,IAAI,IAAI,CAAC,IAAIA,IAAI,GAAG,CAAC,EAAE;QACzB,OAAO32I,KAAK,CAAC0wB,QAAQ,EAAE;;MAEzB,IAAIimH,IAAI,GAAG,CAAC,EAAEA,IAAI,EAAE;MACpB,IAAI,CAACsyJ,OAAO,EAAEA,OAAO,GAAG,GAAG;MAC3B,IAAIC,CAAC,GAAW,EAAE;MAClB;MACA;MACA,IAAIC,EAAE,GAAG,EAAE;MACX,IAAIryQ,EAAE,GAAG,CAAC;MACV,IAAIje,GAAG,GAAG7Y,KAAK,GAAGipS,OAAO;MACzB,IAAIG,EAAE,GAAG,CAAC;MACV,IAAIzyQ,EAAE,GAAG,CAAC;MACV,QAAQggH,IAAI;QACV,KAAK,CAAC;UACJ7/G,EAAE,GAAG7T,IAAI,CAACu/B,KAAK,CAACxiD,KAAK,IAAIipS,OAAO,GAAG,GAAG,CAAC,CAAC;UACxCC,CAAC,GAAGpyQ,EAAE,CAACpG,QAAQ,EAAE;UACjB;QACF,KAAK,CAAC;UACJoG,EAAE,GAAG7T,IAAI,CAACu/B,KAAK,CAACxiD,KAAK,GAAGipS,OAAO,CAAC;UAChCtyQ,EAAE,GAAG9d,GAAG,GAAG,EAAE;UACbuwR,EAAE,GAAG,CAACvwR,GAAG,GAAG8d,EAAE,IAAI,EAAE;UACpBwyQ,EAAE,GAAG,EAAE;UACP,KAAK,IAAI9nS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,GAAGy1B,EAAE,CAACpG,QAAQ,EAAE,CAACzvB,MAAM,EAAEI,CAAC,EAAE,EAAE8nS,EAAE,IAAI,GAAG;UAC5DD,CAAC,GAAGC,EAAE,GAAGryQ,EAAE,CAACpG,QAAQ,EAAE;UACtB,IAAI04Q,EAAE,GAAG,EAAE,EAAEF,CAAC,IAAI,IAAI,GAAGE,EAAE,CAAC14Q,QAAQ,EAAE,CAAC,KAClCw4Q,CAAC,IAAI,GAAG,GAAGvyQ,EAAE,CAACjG,QAAQ,EAAE;UAC7B,IAAIiG,EAAE,GAAG,EAAE,EAAEuyQ,CAAC,IAAI,IAAI,GAAGvyQ,EAAE,CAACjG,QAAQ,EAAE,CAAC,KAClCw4Q,CAAC,IAAI,GAAG,GAAGvyQ,EAAE,CAACjG,QAAQ,EAAE;UAC7B;QACF,KAAK,CAAC;UACJiG,EAAE,GAAG32B,KAAK,GAAG,EAAE;UACfopS,EAAE,GAAG,CAACppS,KAAK,GAAG22B,EAAE,IAAI,EAAE;UAEtBwyQ,EAAE,GAAG,EAAE;UACP,KAAK,IAAI9nS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,CAAC,GAAG+nS,EAAE,CAAC14Q,QAAQ,EAAE,CAACzvB,MAAM,EAAEI,CAAC,EAAE,EAAE8nS,EAAE,IAAI,GAAG;UAC5DD,CAAC,GAAGC,EAAE,GAAGC,EAAE,CAAC14Q,QAAQ,EAAE;UACtB,IAAIiG,EAAE,GAAG,EAAE,EAAEuyQ,CAAC,IAAI,IAAI,GAAGvyQ,EAAE,CAACjG,QAAQ,EAAE,CAAC,KAClCw4Q,CAAC,IAAI,GAAG,GAAGvyQ,EAAE,CAACjG,QAAQ,EAAE;UAC7B;MAAM;MAEV,IAAI1wB,KAAK,GAAG,CAAC,EAAEkpS,CAAC,GAAG,GAAG,GAAGA,CAAC,CAACr7Q,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG;MACjD,OAAOq7Q,CAAC;IACV,CAAC;IAqXM,eAAU,GAAI9uR,CAAC,IAAI;MACxBA,CAAC,CAACivR,MAAM,CAACC,OAAO,CAAC,MAAM,IAAI,CAACC,iBAAiB,EAAE,EAAE,IAAI,CAACv+P,cAAc,CAACC,WAAW,EAAE,IAAI,CAAC9gB,QAAQ,CAAC;IAClG,CAAC;IACM,iBAAY,GAAI/P,CAAC,IAAI;MAC1B,IAAI,CAACA,CAAC,CAACivR,MAAM,CAACG,UAAU,EAAEpvR,CAAC,CAACivR,MAAM,CAACG,UAAU,GAAG,IAAI,CAACx+P,cAAc,CAACE,QAAQ;IAC9E,CAAC;IACM,eAAU,GAAI9wB,CAAC,IAAI;MACxB,IAAIqvR,OAAO,GAAGrvR,CAAC,CAACivR,MAAM,GAAGjvR,CAAC,CAACivR,MAAM,CAACK,gBAAgB,EAAE,GAAGtvR,CAAC,CAACsvR,gBAAgB,EAAE;MAC3E,IAAI,CAAC1+P,cAAc,CAACioO,QAAQ,GAAGw2B,OAAO;MACtC,IAAI,CAACz+P,cAAc,CAACE,QAAQ,GAAG,IAAI,CAACy+P,aAAa,CAAC,IAAI,CAAC3+P,cAAc,CAACE,QAAQ,CAAC;MAC/E,IAAI,CAACu9P,GAAG,CAACz9P,cAAc,CAAC,IAAI,CAAC9d,OAAO,CAAC/c,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC66B,cAAc,CAAC,CAAC9uB,SAAS,CAC/EqO,CAAC,IAAI;QACJ,IAAI,CAAC2U,WAAW,CAACgC,oBAAoB,CAAC3S,IAAI,CAAC,IAAI,CAACrB,OAAO,CAAC;QACxD,IAAI,CAACxD,GAAG,CAACkS,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,IAAI,CAACsS,SAAS,CAAC,wCAAwC,CAAC,CAAC;MAC7F,CAAC,EACAnS,KAAK,IACJ,IAAI,CAACrS,GAAG,CAAC4H,UAAU,CACjB,GAAG,IAAI,CAAC4c,SAAS,CAAC,sCAAsC,CAAC,KAAKhV,4GAAgC,CAAC6C,KAAK,CAAC,EAAE,EACvG,IAAI,CAACmS,SAAS,CAAC,sCAAsC,CAAC,CACvD,CACJ;IACH,CAAC;IArwBC,IAAI,CAAChhB,OAAO,GAAGqe,UAAU,CAACre,OAAO;IACjC,IAAI,CAACse,UAAU,GAAGD,UAAU,CAACC,UAAU;IACvC,IAAI,CAACrhB,QAAQ,GAAGohB,UAAU,CAACphB,QAAQ;IACnC,IAAI,CAACuiB,WAAW,GAAGnB,UAAU,CAACmB,WAAW;IACzC,IAAI,CAACzK,UAAU,GAAGsJ,UAAU,CAACtJ,UAAU;IACvC,IAAI,CAAC+I,cAAc,GAAGO,UAAU,CAACP,cAAc;IAC/C,IAAI,CAAC+hJ,eAAe,GAAGxhJ,UAAU,CAACwhJ,eAAe;IACjD,IAAI,CAAC68G,cAAc,GAAG,IAAI,CAACA,cAAc,CAAC/1R,IAAI,CAAC,IAAI,CAAC;IACpD,IAAI,CAACg2R,eAAe,GAAG,IAAI,CAACA,eAAe,CAACh2R,IAAI,CAAC,IAAI,CAAC;IACtD,IAAI,CAACi2R,wBAAwB,GAAG,IAAI,CAACA,wBAAwB,CAACj2R,IAAI,CAAC,IAAI,CAAC;IACxE,IAAI,CAACk2R,mBAAmB,GAAG,IAAI,CAACA,mBAAmB,CAACl2R,IAAI,CAAC,IAAI,CAAC;IAC9D,IAAI,CAACm2R,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAACn2R,IAAI,CAAC,IAAI,CAAC;IAC5D,IAAI,CAACo2R,aAAa,GAAG,IAAI,CAACA,aAAa,CAACp2R,IAAI,CAAC,IAAI,CAAC;IAClD,IAAI,CAACq2R,cAAc,GAAG,IAAI,CAACA,cAAc,CAACr2R,IAAI,CAAC,IAAI,CAAC;IACpD,IAAI,CAACs2R,WAAW,GAAG,IAAI,CAACA,WAAW,CAACt2R,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAACu2R,8BAA8B,GAAG,IAAI,CAACA,8BAA8B,CAACv2R,IAAI,CAAC,IAAI,CAAC;EACtF;EAvCA,IACIsW,QAAQ;IACV,OAAO,IAAI,CAACC,SAAS;EACvB;EACA,IAAID,QAAQ,CAACnqB,KAAY;IACvB,IAAI,CAACoqB,SAAS,GAAGpqB,KAAK;EACxB;EACAkuC,SAAS,CAACyY,GAAW;IACnB,OAAO,IAAI,CAACpB,aAAa,CAACjQ,OAAO,CAACqR,GAAG,CAAC;EACxC;EAgCAzvC,QAAQ;IACN,IAAIu6B,aAAa,GAAG,IAAI,CAACzN,WAAW,CAACyN,aAAa;IAClD,IAAI,CAAC44P,YAAY,EAAE;IACnB;EACF;;EACA9vR,WAAW;IACT,IAAI,CAAC6wD,OAAO,GAAGppE,SAAS;IACxB,IAAI,CAACsoS,QAAQ,GAAGtoS,SAAS;IACzB,IAAI,CAACuoS,MAAM,GAAGvoS,SAAS;IACvB,IAAI,CAACqnS,MAAM,GAAGrnS,SAAS;EACzB;EACAoV,eAAe,IAAU;EACzBmyR,iBAAiB;IACf,IAAI,IAAI,CAACh+P,UAAU,CAACa,cAAc,EAAE,OAAO,IAAI,CAACb,UAAU,CAACa,cAAc;IACzE,IAAI,IAAI,CAACnK,UAAU,KAAK,aAAa,IAAI,IAAI,CAAC/U,OAAO,CAAC/c,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,OAAO,mBAAmB;IAC7G,OAAO,IAAI,CAAC+c,OAAO,CAAC/c,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;EACnC;EACAq6R,WAAW,CAACnB,MAAW;IACrB,IAAI/mR,KAAK,GAAW,CAAC;IACrB,IAAImoR,MAAM,GAAG,EAAE;IACf,IAAI,IAAI,CAACxoQ,UAAU,KAAK,MAAM,EAAEwoQ,MAAM,GAAG,aAAa;IACtD,IACE,IAAI,CAACxoQ,UAAU,KAAK,KAAK,IACzB,IAAI,CAACA,UAAU,KAAK,KAAK,IACzB,IAAI,CAACA,UAAU,KAAK,KAAK,IACzB,IAAI,CAACA,UAAU,KAAK,KAAK,IACzB,IAAI,CAACA,UAAU,KAAK,MAAM,EAE1BwoQ,MAAM,GAAG,YAAY;IACvB,IAAIpB,MAAM,CAACqB,UAAU,IAAIrB,MAAM,CAACqB,UAAU,CAACC,SAAS,IAAItB,MAAM,CAACqB,UAAU,CAACC,SAAS,CAACzoS,IAAI,EAAE;MACxFmnS,MAAM,CAACqB,UAAU,CAACC,SAAS,CAACzoS,IAAI,CAAC9B,OAAO,CAAEmqB,CAAC,IAAI;QAC7CA,CAAC,CAACqgR,KAAK,GAAG,IAAI,CAAC5/P,cAAc,CAACC,WAAW;QACzC1gB,CAAC,CAAChW,IAAI,GAAGgW,CAAC,CAAChW,IAAI,CAACsZ,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC07Q,iBAAiB,EAAE,CAAC;QACzDh/Q,CAAC,CAACsgR,YAAY,GAAGtgR,CAAC,CAACsgR,YAAY,CAACh9Q,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC07Q,iBAAiB,EAAE,CAAC;MAC3E,CAAC,CAAC;;IAEJF,MAAM,CAACyB,WAAW,GAAG,IAAI,CAAC9/P,cAAc,CAACC,WAAW;IACpD,IAAIo+P,MAAM,CAACqB,UAAU,CAACK,SAAS,EAAE;MAC/B1B,MAAM,CAACqB,UAAU,CAACK,SAAS,CAAC7oS,IAAI,CAAC9B,OAAO,CAAEmqB,CAAC,IAAI;QAC7C,IAAIA,CAAC,CAAChW,IAAI,CAAC5P,QAAQ,CAAC,MAAM,CAAC,EAAE;UAC3B4lB,CAAC,CAAChW,IAAI,GAAGgW,CAAC,CAAChW,IAAI,CAACsZ,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC07Q,iBAAiB,EAAE,CAAC;UACzDh/Q,CAAC,CAACyD,IAAI,CAACy6O,SAAS,GAAGl+O,CAAC,CAACyD,IAAI,CAACy6O,SAAS,CAAC56O,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC07Q,iBAAiB,EAAE,CAAC;;MAEjF,CAAC,CAAC;;IAEJ,IAAIF,MAAM,IAAIA,MAAM,CAACqB,UAAU,IAAIrB,MAAM,CAACqB,UAAU,CAACM,WAAW,EAAE;MAChE,IAAI3B,MAAM,CAACqB,UAAU,CAACM,WAAW,CAAC9oS,IAAI,EAAE;QACtCmnS,MAAM,CAACqB,UAAU,CAACM,WAAW,CAAC9oS,IAAI,CAAC9B,OAAO,CAAEmqB,CAAC,IAAI;UAC/C,IAAIA,CAAC,CAAChW,IAAI,CAAC5P,QAAQ,CAAC,MAAM,CAAC,EAAE;YAC3B4lB,CAAC,CAAChW,IAAI,GAAGgW,CAAC,CAAChW,IAAI,CAACsZ,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC07Q,iBAAiB,EAAE,CAAC;YACzDh/Q,CAAC,CAACsgR,YAAY,GAAGtgR,CAAC,CAACsgR,YAAY,CAACh9Q,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC07Q,iBAAiB,EAAE,CAAC;YACzEh/Q,CAAC,CAACqgR,KAAK,GAAG,IAAI,CAAC5/P,cAAc,CAACC,WAAW,IAAI1gB,CAAC,CAACqgR,KAAK,CAACjmS,QAAQ,CAAC,OAAO,CAAC,GAAG,GAAG,GAAG,IAAI,CAACupC,SAAS,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC;;UAEnI,IAAI3jB,CAAC,CAAC0gR,SAAS,IAAI1gR,CAAC,CAAC0gR,SAAS,CAACC,cAAc,IAAI3gR,CAAC,CAAC0gR,SAAS,CAACC,cAAc,CAAChpS,IAAI,IAAIqoB,CAAC,CAAC0gR,SAAS,CAACC,cAAc,CAAChpS,IAAI,CAACjB,MAAM,GAAG,CAAC,EAAE;YAC9HspB,CAAC,CAAC0gR,SAAS,CAACC,cAAc,CAAChpS,IAAI,CAAC9B,OAAO,CAAE+mF,CAAC,IAAI;cAC5CA,CAAC,CAACgkN,YAAY,GAAGhkN,CAAC,CAACgkN,YAAY,CAACt9Q,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC07Q,iBAAiB,EAAE,CAAC;YAC3E,CAAC,CAAC;;UAEJh/Q,CAAC,CAACY,OAAO,CAACjpB,IAAI,CAAC9B,OAAO,CAAE4xB,CAAC,IAAI;YAC3B1P,KAAK,EAAE;YACP,IAAI8oR,UAAU,GAAW7gR,CAAC,CAAChW,IAAI;YAC/B,IACE62R,UAAU,CAACzmS,QAAQ,CAAC,GAAG,CAAC,KACvBymS,UAAU,CAACtnP,SAAS,CAACsnP,UAAU,CAACnqS,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,IAAImqS,UAAU,CAACtnP,SAAS,CAACsnP,UAAU,CAACnqS,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,CAAC,EACjH;cACA,IAAImqS,UAAU,CAACtnP,SAAS,CAACsnP,UAAU,CAACnqS,MAAM,GAAG,CAAC,CAAC,KAAK,QAAQ,EAAEmqS,UAAU,GAAGA,UAAU,CAACtnP,SAAS,CAAC,CAAC,EAAEsnP,UAAU,CAACnqS,MAAM,GAAG,CAAC,CAAC,CAAC,KACrHmqS,UAAU,GAAGA,UAAU,CAACtnP,SAAS,CAAC,CAAC,EAAEsnP,UAAU,CAACnqS,MAAM,GAAG,CAAC,CAAC;cAChEmqS,UAAU,GAAGA,UAAU,CAACv9Q,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;;YAE1C,IAAI48Q,MAAM,EAAEz4Q,CAAC,CAAC44Q,KAAK,GAAG,IAAI,CAAC18P,SAAS,CAAC,aAAau8P,MAAM,IAAI,IAAI,CAACxoQ,UAAU,IAAImpQ,UAAU,IAAIp5Q,CAAC,CAACzd,IAAI,EAAE,CAAC,CAAC,KAClGyd,CAAC,CAAC44Q,KAAK,GAAG,IAAI,CAAC18P,SAAS,CAAC,aAAa,IAAI,CAACjM,UAAU,IAAImpQ,UAAU,IAAIp5Q,CAAC,CAACzd,IAAI,EAAE,CAAC;UACvF,CAAC,CAAC;QACJ,CAAC,CAAC;;;EAGR;EACA82R,WAAW;IACT,IAAI,CAAC,IAAI,CAAChC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,aAAa,CAAC,EAAE;MAC9D,IAAIC,WAAW,GAAG,IAAIC,UAAU,CAACC,MAAM,CAACC,UAAU,CAACC,WAAW,EAAE;MAChEJ,WAAW,CAACj3R,IAAI,GAAG,aAAa;MAChCi3R,WAAW,CAACZ,KAAK,GAAG,IAAI,CAAC18P,SAAS,CAAC,kCAAkC,CAAC;MACtEs9P,WAAW,CAACK,WAAW,GAAG,IAAI,CAAC7nQ,WAAW,CAACyN,aAAa,CAACq6P,YAAY;MACrE,IAAI,CAACzC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAAC/pR,GAAG,CAACiqR,WAAW,CAAC;KAClD,MAAM,IAAI,CAACnC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,aAAa,CAAC,CAACM,WAAW,GAAG,IAAI,CAAC7nQ,WAAW,CAACyN,aAAa,CAACq6P,YAAY;IAC1H,IAAI,CAAC,IAAI,CAACzC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,aAAa,CAAC,EAAE;MAC9D,IAAIC,WAAW,GAAG,IAAIC,UAAU,CAACC,MAAM,CAACC,UAAU,CAACC,WAAW,EAAE;MAChEJ,WAAW,CAACj3R,IAAI,GAAG,aAAa;MAChCi3R,WAAW,CAACZ,KAAK,GAAG,IAAI,CAAC18P,SAAS,CAAC,iCAAiC,CAAC;MACrEs9P,WAAW,CAACK,WAAW,GAAG,IAAI,CAAC7nQ,WAAW,CAACyN,aAAa,CAACpd,KAAK;MAC9D,IAAI,CAACg1Q,MAAM,CAACqB,UAAU,CAACY,SAAS,CAAC/pR,GAAG,CAACiqR,WAAW,CAAC;KAClD,MAAM,IAAI,CAACnC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,aAAa,CAAC,CAACM,WAAW,GAAG,IAAI,CAAC7nQ,WAAW,CAACyN,aAAa,CAACpd,KAAK;IAEnH,IAAI,CAAC,IAAI,CAACg1Q,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,UAAU,CAAC,EAAE;MAC3D,IAAIC,WAAW,GAAG,IAAIC,UAAU,CAACC,MAAM,CAACC,UAAU,CAACC,WAAW,EAAE;MAChEJ,WAAW,CAACj3R,IAAI,GAAG,UAAU;MAC7Bi3R,WAAW,CAACZ,KAAK,GAAG,IAAI,CAAC18P,SAAS,CAAC,mCAAmC,CAAC;MACvEs9P,WAAW,CAACK,WAAW,GAAG,IAAI,CAAC7nQ,WAAW,CAACuU,eAAe;MAC1D,IAAI,CAAC8wP,MAAM,CAACqB,UAAU,CAACY,SAAS,CAAC/pR,GAAG,CAACiqR,WAAW,CAAC;KAClD,MAAM,IAAI,CAACnC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,UAAU,CAAC,CAACM,WAAW,GAAG,IAAI,CAAC7nQ,WAAW,CAACuU,eAAe;IAE5G,IAAIpsC,IAAI,GAAG,IAAI,CAACu8R,eAAe,CAAC1gS,SAAS,CAAC,IAAIwnB,IAAI,EAAE,CAAC;IACrD,IAAI,CAAC,IAAI,CAAC65Q,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,YAAY,CAAC,EAAE;MAC7D,IAAIC,WAAW,GAAG,IAAIC,UAAU,CAACC,MAAM,CAACC,UAAU,CAACC,WAAW,EAAE;MAChEJ,WAAW,CAACj3R,IAAI,GAAG,YAAY;MAC/Bi3R,WAAW,CAACZ,KAAK,GAAG,IAAI,CAAC18P,SAAS,CAAC,iCAAiC,CAAC;MAErEs9P,WAAW,CAACK,WAAW,GAAG,IAAI,CAAClD,iBAAiB,CAAC3gS,SAAS,CAACmE,IAAI,CAAC;MAChE,IAAI,CAACk9R,MAAM,CAACqB,UAAU,CAACY,SAAS,CAAC/pR,GAAG,CAACiqR,WAAW,CAAC;KAClD,MAAM,IAAI,CAACnC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,YAAY,CAAC,CAACM,WAAW,GAAG,IAAI,CAAClD,iBAAiB,CAAC3gS,SAAS,CAACmE,IAAI,CAAC;IACpH,IAAI,CAAC,IAAI,CAACk9R,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,WAAW,CAAC,EAAE;MAC5D,IAAIC,WAAW,GAAG,IAAIC,UAAU,CAACC,MAAM,CAACC,UAAU,CAACC,WAAW,EAAE;MAChEJ,WAAW,CAACj3R,IAAI,GAAG,WAAW;MAC9Bi3R,WAAW,CAACZ,KAAK,GAAG,IAAI,CAAC18P,SAAS,CAAC,gCAAgC,CAAC;MACpE,IAAI,IAAI,CAAC3C,UAAU,CAACc,SAAS,EAAEm/P,WAAW,CAACK,WAAW,GAAG5gS,0CAAM,CAAC,IAAI,CAACsgC,UAAU,CAACc,SAAS,CAAC,CAAChgC,MAAM,CAAC,IAAI,CAAC,CAACD,MAAM,CAAC,YAAY,CAAC;MAC5H,IAAI,CAACi9R,MAAM,CAACqB,UAAU,CAACY,SAAS,CAAC/pR,GAAG,CAACiqR,WAAW,CAAC;KAClD,MAAM,IAAI,CAACnC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,WAAW,CAAC,CAACM,WAAW,GAAG5gS,0CAAM,CAAC,IAAI,CAACsgC,UAAU,CAACc,SAAS,CAAC,CAAChgC,MAAM,CAAC,IAAI,CAAC,CAACD,MAAM,CAAC,YAAY,CAAC;IAChJ,IAAI,CAAC,IAAI,CAACi9R,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,SAAS,CAAC,EAAE;MAC1D,IAAIC,WAAW,GAAG,IAAIC,UAAU,CAACC,MAAM,CAACC,UAAU,CAACC,WAAW,EAAE;MAChEJ,WAAW,CAACj3R,IAAI,GAAG,SAAS;MAC5Bi3R,WAAW,CAACZ,KAAK,GAAG,IAAI,CAAC18P,SAAS,CAAC,8BAA8B,CAAC;MAClE,IAAI,IAAI,CAAC3C,UAAU,CAACe,OAAO,EAAEk/P,WAAW,CAACK,WAAW,GAAG5gS,0CAAM,CAAC,IAAI,CAACsgC,UAAU,CAACe,OAAO,CAAC,CAACjgC,MAAM,CAAC,IAAI,CAAC,CAACD,MAAM,CAAC,YAAY,CAAC;MACxH,IAAI,CAACi9R,MAAM,CAACqB,UAAU,CAACY,SAAS,CAAC/pR,GAAG,CAACiqR,WAAW,CAAC;KAClD,MAAM,IAAI,CAACnC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,SAAS,CAAC,CAACM,WAAW,GAAG5gS,0CAAM,CAAC,IAAI,CAACsgC,UAAU,CAACe,OAAO,CAAC,CAACjgC,MAAM,CAAC,IAAI,CAAC,CAACD,MAAM,CAAC,YAAY,CAAC;IAE5I,IAAI,CAAC,IAAI,CAACi9R,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,eAAe,CAAC,EAAE;MAChE,IAAIC,WAAW,GAAG,IAAIC,UAAU,CAACC,MAAM,CAACC,UAAU,CAACC,WAAW,EAAE;MAChEJ,WAAW,CAACj3R,IAAI,GAAG,eAAe;MAClCi3R,WAAW,CAACZ,KAAK,GAAG,IAAI,CAAC18P,SAAS,CAAC,gCAAgC,CAAC;MACpE,IAAI,IAAI,CAAC3C,UAAU,CAACc,SAAS,EAAEm/P,WAAW,CAACK,WAAW,GAAG5gS,0CAAM,CAAC,IAAI,CAACsgC,UAAU,CAACc,SAAS,CAAC,CAAChgC,MAAM,CAAC,IAAI,CAAC,CAACD,MAAM,CAAC,OAAO,CAAC;MACvH,IAAI,CAACi9R,MAAM,CAACqB,UAAU,CAACY,SAAS,CAAC/pR,GAAG,CAACiqR,WAAW,CAAC;KAClD,MAAM;MACL,IAAI,CAACnC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,eAAe,CAAC,CAACM,WAAW,GAAG5gS,0CAAM,CAAC,IAAI,CAACsgC,UAAU,CAACc,SAAS,CAAC,CAAChgC,MAAM,CAAC,IAAI,CAAC,CAACD,MAAM,CAAC,OAAO,CAAC;;IAG1I,IAAI,CAAC,IAAI,CAACi9R,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,aAAa,CAAC,EAAE;MAC9D,IAAIC,WAAW,GAAG,IAAIC,UAAU,CAACC,MAAM,CAACC,UAAU,CAACC,WAAW,EAAE;MAChEJ,WAAW,CAACj3R,IAAI,GAAG,aAAa;MAChCi3R,WAAW,CAACZ,KAAK,GAAG,IAAI,CAAC18P,SAAS,CAAC,8BAA8B,CAAC;MAClE,IAAI,IAAI,CAAC3C,UAAU,CAACe,OAAO,EAAEk/P,WAAW,CAACK,WAAW,GAAG5gS,0CAAM,CAAC,IAAI,CAACsgC,UAAU,CAACe,OAAO,CAAC,CAACjgC,MAAM,CAAC,IAAI,CAAC,CAACD,MAAM,CAAC,OAAO,CAAC;MACnH,IAAI,CAACi9R,MAAM,CAACqB,UAAU,CAACY,SAAS,CAAC/pR,GAAG,CAACiqR,WAAW,CAAC;KAClD,MAAM;MACL,IAAI,CAACnC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,aAAa,CAAC,CAACM,WAAW,GAAG5gS,0CAAM,CAAC,IAAI,CAACsgC,UAAU,CAACe,OAAO,CAAC,CAACjgC,MAAM,CAAC,IAAI,CAAC,CAACD,MAAM,CAAC,OAAO,CAAC;;IAGtI,IAAI,CAAC,IAAI,CAACi9R,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,aAAa,CAAC,EAAE;MAC9D,IAAIC,WAAW,GAAG,IAAIC,UAAU,CAACC,MAAM,CAACC,UAAU,CAACC,WAAW,EAAE;MAChEJ,WAAW,CAACj3R,IAAI,GAAG,aAAa;MAChCi3R,WAAW,CAACZ,KAAK,GAAG,IAAI,CAAC18P,SAAS,CAAC,kCAAkC,CAAC;MACtE,IAAI,IAAI,CAAC3C,UAAU,CAACgB,WAAW,EAAEi/P,WAAW,CAACK,WAAW,GAAG,IAAI,CAACtgQ,UAAU,CAACgB,WAAW,CAAC7b,QAAQ,EAAE;MACjG,IAAI,CAAC24Q,MAAM,CAACqB,UAAU,CAACY,SAAS,CAAC/pR,GAAG,CAACiqR,WAAW,CAAC;KAClD,MACC,IAAI,CAACnC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,aAAa,CAAC,CAACM,WAAW,GAAG,IAAI,CAACtgQ,UAAU,CAACgB,WAAW,GAC/F,IAAI,CAAChB,UAAU,CAACgB,WAAW,CAAC7b,QAAQ,EAAE,GACtC,EAAE;IAER,IAAI,CAAC,IAAI,CAAC24Q,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,WAAW,CAAC,EAAE;MAC5D,IAAIC,WAAW,GAAG,IAAIC,UAAU,CAACC,MAAM,CAACC,UAAU,CAACC,WAAW,EAAE;MAChEJ,WAAW,CAACj3R,IAAI,GAAG,WAAW;MAC9Bi3R,WAAW,CAACZ,KAAK,GAAG,IAAI,CAAC18P,SAAS,CAAC,gCAAgC,CAAC;MACpE,IAAI,IAAI,CAAC3C,UAAU,CAACiB,SAAS,EAAEg/P,WAAW,CAACK,WAAW,GAAG,IAAI,CAACtgQ,UAAU,CAACiB,SAAS,CAAC9b,QAAQ,EAAE;MAC7F,IAAI,CAAC24Q,MAAM,CAACqB,UAAU,CAACY,SAAS,CAAC/pR,GAAG,CAACiqR,WAAW,CAAC;KAClD,MACC,IAAI,CAACnC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,WAAW,CAAC,CAACM,WAAW,GAAG,IAAI,CAACtgQ,UAAU,CAACiB,SAAS,GAAG,IAAI,CAACjB,UAAU,CAACiB,SAAS,CAAC9b,QAAQ,EAAE,GAAG,EAAE;IAC7I,IAAI,CAAC,IAAI,CAAC24Q,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,YAAY,CAAC,EAAE;MAC7D,IAAIC,WAAW,GAAG,IAAIC,UAAU,CAACC,MAAM,CAACC,UAAU,CAACC,WAAW,EAAE;MAChEJ,WAAW,CAACj3R,IAAI,GAAG,YAAY;MAC/Bi3R,WAAW,CAACZ,KAAK,GAAG,IAAI,CAAC18P,SAAS,CAAC,iCAAiC,CAAC;MAErEs9P,WAAW,CAACK,WAAW,GAAG,IAAI,CAACtgQ,UAAU,CAACrlC,UAAU;MACpD,IAAI,CAACmjS,MAAM,CAACqB,UAAU,CAACY,SAAS,CAAC/pR,GAAG,CAACiqR,WAAW,CAAC;KAClD,MAAM,IAAI,CAACnC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,YAAY,CAAC,CAACM,WAAW,GAAG,IAAI,CAACtgQ,UAAU,CAACrlC,UAAU;IACxG,IAAI,CAAC,IAAI,CAACmjS,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,aAAa,CAAC,EAAE;MAC9D,IAAIC,WAAW,GAAG,IAAIC,UAAU,CAACC,MAAM,CAACC,UAAU,CAACC,WAAW,EAAE;MAChEJ,WAAW,CAACj3R,IAAI,GAAG,aAAa;MAChCi3R,WAAW,CAACZ,KAAK,GAAG,IAAI,CAAC18P,SAAS,CAAC,kCAAkC,CAAC;MAEtEs9P,WAAW,CAACK,WAAW,GAAG,IAAI,CAACtgQ,UAAU,CAACkB,WAAW;MACrD,IAAI,CAAC48P,MAAM,CAACqB,UAAU,CAACY,SAAS,CAAC/pR,GAAG,CAACiqR,WAAW,CAAC;KAClD,MAAM,IAAI,CAACnC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAAC,aAAa,CAAC,CAACM,WAAW,GAAG,IAAI,CAACtgQ,UAAU,CAACkB,WAAW;IAE1G,IAAI,IAAI,CAACsgJ,eAAe,EAAE;MACxBztL,MAAM,CAAC2O,IAAI,CAAC,IAAI,CAAC8+K,eAAe,CAAC,CAAC3sL,OAAO,CAAE8N,GAAG,IAAI;QAChD,IAAI,CAAC,IAAI,CAACm7R,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAACr9R,GAAG,CAAC,EAAE;UACpD,IAAIs9R,WAAW,GAAG,IAAIC,UAAU,CAACC,MAAM,CAACC,UAAU,CAACC,WAAW,EAAE;UAChEJ,WAAW,CAACj3R,IAAI,GAAGrG,GAAG;UAEtBs9R,WAAW,CAACK,WAAW,GAAG,IAAI,CAAC9+G,eAAe,CAAC7+K,GAAG,CAAC;UACnD,IAAI,CAACm7R,MAAM,CAACqB,UAAU,CAACY,SAAS,CAAC/pR,GAAG,CAACiqR,WAAW,CAAC;SAClD,MAAM,IAAI,CAACnC,MAAM,CAACqB,UAAU,CAACY,SAAS,CAACC,SAAS,CAACr9R,GAAG,CAAC,CAAC29R,WAAW,GAAG,IAAI,CAAC9+G,eAAe,CAAC7+K,GAAG,CAAC;MAChG,CAAC,CAAC;;EAEN;EACAm8R,YAAY;IACV,IAAI,CAAC0B,WAAW,EAAE;IAClB,IAAI,IAAI,CAACvgQ,UAAU,KAAKlN,oGAAoB,IAAI,IAAI,CAACkN,UAAU,KAAKlN,qGAAqB,EAAE;MACzF,IAAI,CAAC0tQ,iBAAiB,EAAE;MACxB,IAAI,CAAC3C,MAAM,GAAG,IAAIoC,UAAU,CAACC,MAAM,CAACO,SAAS,EAAE;MAC/C,IAAI,CAAC5C,MAAM,CAACqB,UAAU,CAACK,SAAS,CAAC32O,KAAK,EAAE;MACxC,IAAI,IAAI,CAACppB,cAAc,CAACE,QAAQ,IAAI,IAAI,CAACM,UAAU,KAAKlN,qGAAqB,EAC3E,IAAI,CAAC+qQ,MAAM,CAAC6C,QAAQ,CAClB,kBAAkB,IAAI,CAAClhQ,cAAc,CAACG,cAAc,CAACh7B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAACw5R,aAAa,CACtF,CAAC,IAAI,CAACp+P,UAAU,CAACoB,aAAa,GAAG,IAAI,CAAC3B,cAAc,CAACE,QAAQ,GAAG,IAAI,CAACK,UAAU,CAACoB,aAAa,CAC9F,EAAE,CACJ;MACH,IAAI,CAAC,IAAI,CAAC08P,MAAM,CAACG,UAAU,EAAE,IAAI,CAACH,MAAM,CAACG,UAAU,GAAG,IAAI,CAACx+P,cAAc,CAACE,QAAQ,CAAC,KAC9E,IAAI,IAAI,CAACK,UAAU,CAACoB,aAAa,EAAE,IAAI,CAAC08P,MAAM,CAACG,UAAU,GAAG,IAAI,CAACx+P,cAAc,CAACE,QAAQ;MAC7F,IAAI,CAACmgQ,WAAW,EAAE;MAClB,IAAI,CAAChC,MAAM,CAACqB,UAAU,CAACM,WAAW,CAAC52O,KAAK,EAAE;MAC1C,IAAI,CAACi1O,MAAM,CAACqB,UAAU,CAACyB,SAAS,CAAC/3O,KAAK,EAAE;MACxC,IAAI,CAACi1O,MAAM,CAACqB,UAAU,CAACC,SAAS,CAACv2O,KAAK,EAAE;MAExC,IAAI,CAACi1O,MAAM,CAACC,OAAO,CAAC,IAAI,CAACC,iBAAiB,EAAE,EAAE,IAAI,CAACv+P,cAAc,CAACC,WAAW,EAAE,IAAI,CAAC9gB,QAAQ,CAAC;MAC7F,IAAI,CAACk/Q,MAAM,CAACqB,UAAU,CAAC0B,WAAW,EAAE;MACpC,IAAI,CAAC5B,WAAW,CAAC,IAAI,CAACnB,MAAM,CAAC;MAC7B,IAAI,CAACiB,QAAQ,CAACjB,MAAM,GAAG,IAAI,CAACA,MAAM;MAClCv+R,UAAU,CAAC,MAAM,IAAI,CAACw/R,QAAQ,CAAC+B,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC;KAC3D,MAAM,IAAI,IAAI,CAAC7gQ,UAAU,KAAKlN,kGAAkB,EAAE;MACjD,IAAI,CAAC+qQ,MAAM,GAAG,IAAIoC,UAAU,CAACC,MAAM,CAACO,SAAS,EAAE;MAC/C,IAAI,CAAC5C,MAAM,CAACqB,UAAU,CAACK,SAAS,CAAC32O,KAAK,EAAE;MACxC,IAAI,IAAI,CAACppB,cAAc,CAACE,QAAQ,EAC9B,IAAI,CAACm+P,MAAM,CAAC6C,QAAQ,CAClB,kBAAkB,IAAI,CAAClhQ,cAAc,CAACG,cAAc,CAACh7B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAACw5R,aAAa,CAAC,IAAI,CAAC3+P,cAAc,CAACE,QAAQ,CAAC,EAAE,CACzH;MACH,IAAI,CAAC,IAAI,CAACm+P,MAAM,CAACG,UAAU,EAAE;QAC3B,IAAI,CAAC9/Q,GAAG,CAAC4H,UAAU,CAAC,IAAI,CAAC4c,SAAS,CAAC,4CAA4C,CAAC,EAAE,IAAI,CAACA,SAAS,CAAC,mCAAmC,CAAC,CAAC;QACtI,IAAI,CAAChP,WAAW,CAAC6pB,SAAS,CAAC,IAAI,CAACj1B,EAAE,CAAC8tB,QAAQ,CAAC9tB,EAAE,CAAC;OAChD,MAAM;QACL,IAAI,CAACu3Q,WAAW,EAAE;QAClB,IAAI,CAAChC,MAAM,CAACqB,UAAU,CAACM,WAAW,CAAC52O,KAAK,EAAE;QAC1C,IAAI,CAACi1O,MAAM,CAACqB,UAAU,CAACyB,SAAS,CAAC/3O,KAAK,EAAE;QACxC,IAAI,CAACi1O,MAAM,CAACqB,UAAU,CAACC,SAAS,CAACv2O,KAAK,EAAE;QACxC,IAAI,CAACi1O,MAAM,CAACC,OAAO,CAAC,IAAI,CAACC,iBAAiB,EAAE,EAAE,IAAI,CAACv+P,cAAc,CAACC,WAAW,EAAE,IAAI,CAAC9gB,QAAQ,CAAC;QAC7F,IAAI,CAACk/Q,MAAM,CAACqB,UAAU,CAAC0B,WAAW,EAAE;QACpC,IAAI,CAAC5B,WAAW,CAAC,IAAI,CAACnB,MAAM,CAAC;QAC7B,IAAI,CAACkB,MAAM,GAAG,IAAIkB,UAAU,CAACa,MAAM,CAACC,SAAS,CAAC,IAAI,CAACnhO,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC;QAC/E,IAAI,CAACm/N,MAAM,CAAClB,MAAM,GAAG,IAAI,CAACA,MAAM;QAChCv+R,UAAU,CAAC,MAAM,IAAI,CAACy/R,MAAM,CAAC8B,UAAU,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC;;KAE3D,MAAM,IAAI,IAAI,CAAC7gQ,UAAU,KAAKlN,gGAAgB,EAAE;MAC/CxzB,UAAU,CAAC,MAAM,IAAI,CAAC0hS,UAAU,EAAE,EAAE,GAAG,CAAC;KACzC,MAAM,IAAI,IAAI,CAAChhQ,UAAU,KAAKlN,qGAAqB,EAAE;MACpD,IAAI,CAAC+qQ,MAAM,GAAG,IAAIoC,UAAU,CAACC,MAAM,CAACO,SAAS,EAAE;MAC/C,IAAI,CAAC5C,MAAM,CAACqB,UAAU,CAACK,SAAS,CAAC32O,KAAK,EAAE;MACxC,IAAI,IAAI,CAACppB,cAAc,CAACE,QAAQ,EAC9B,IAAI,CAACm+P,MAAM,CAAC6C,QAAQ,CAClB,kBAAkB,IAAI,CAAClhQ,cAAc,CAACG,cAAc,CAACh7B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAACw5R,aAAa,CAAC,IAAI,CAAC3+P,cAAc,CAACE,QAAQ,CAAC,EAAE,CACzH;MACH,IAAI,IAAI,CAACm+P,MAAM,CAACG,UAAU,EAAE;QAC1B,IAAI,CAACiD,UAAU,CAAC,IAAI,CAACpD,MAAM,CAAC;;;EAGlC;EACOmD,UAAU;IACf,MAAME,GAAG,GAAG,IAAIjB,UAAU,CAACC,MAAM,CAACO,SAAS,EAAE;IAC7C,IAAI,CAAC5C,MAAM,GAAGqD,GAAG;IACjB,IAAI,CAACrD,MAAM,CAACqB,UAAU,CAACK,SAAS,CAAC32O,KAAK,EAAE;IACxC,IAAI,CAACi1O,MAAM,CAAC6C,QAAQ,CAAC,kBAAkB,IAAI,CAAClhQ,cAAc,CAACG,cAAc,CAACh7B,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAACw5R,aAAa,CAAC,IAAI,CAAC3+P,cAAc,CAACE,QAAQ,CAAC,EAAE,CAAC;IAC9I,IAAI,CAAC,IAAI,CAACm+P,MAAM,CAACG,UAAU,EACzB,IAAI,CAAC9/Q,GAAG,CAAC4H,UAAU,CAAC,IAAI,CAAC4c,SAAS,CAAC,4CAA4C,CAAC,EAAE,IAAI,CAACA,SAAS,CAAC,mCAAmC,CAAC,CAAC,CAAC,KACpI;MACH,IAAI,CAACm9P,WAAW,EAAE;MAClB,IAAI,CAAChC,MAAM,CAACqB,UAAU,CAACM,WAAW,CAAC52O,KAAK,EAAE;MAC1C,IAAI,CAACi1O,MAAM,CAACqB,UAAU,CAACyB,SAAS,CAAC/3O,KAAK,EAAE;MACxC,IAAI,CAACi1O,MAAM,CAACqB,UAAU,CAACC,SAAS,CAACv2O,KAAK,EAAE;MACxC,IAAI,CAACi1O,MAAM,CAACC,OAAO,CAAC,IAAI,CAACC,iBAAiB,EAAE,EAAE,IAAI,CAACv+P,cAAc,CAACC,WAAW,EAAE,IAAI,CAAC9gB,QAAQ,CAAC;MAC7F,IAAI,CAACk/Q,MAAM,CAACqB,UAAU,CAAC0B,WAAW,EAAE;MACpC,IAAI,CAAC5B,WAAW,CAAC,IAAI,CAACnB,MAAM,CAAC;MAC7B,IAAI,CAACA,MAAM,CAACsD,WAAW,CAAC,MAAMD,GAAG,CAAC/gQ,KAAK,CAAC,KAAK,CAAC,CAAC;;IAEjD7gC,UAAU,CAAC,MAAM,IAAI,CAACo0B,WAAW,CAAC6pB,SAAS,CAAC,IAAI,CAACj1B,EAAE,CAAC8tB,QAAQ,CAAC9tB,EAAE,CAAC,EAAE,GAAG,CAAC;EACxE;EA4FAi4Q,WAAW;IACTN,UAAU,CAACC,MAAM,CAACC,UAAU,CAACiB,YAAY,CAACC,WAAW,CACnD,cAAc,EACd,eAAe,EACf,eAAe,EACf,IAAI,CAAC3+P,SAAS,CAAC,0CAA0C,CAAC,EAC1D,EAAE,EACF7gC,MAAM,EACN,EAAE,EACF,CAAC0pB,MAAM,EAAEA,MAAM,EAAEA,MAAM,CAAC,EACxB,CAAC,qBAAqB,CAAC,EACvB,CAAC,2BAA2B,CAAC,EAC7B,IAAI,CAACkzQ,aAAa,CACnB;IACDwB,UAAU,CAACC,MAAM,CAACC,UAAU,CAACiB,YAAY,CAACC,WAAW,CACnD,cAAc,EACd,eAAe,EACf,eAAe,EACf,IAAI,CAAC3+P,SAAS,CAAC,0CAA0C,CAAC,EAC1D,EAAE,EACF7gC,MAAM,EACN,EAAE,EACF,CAAC0pB,MAAM,EAAEA,MAAM,CAAC,EAChB,CAAC,aAAa,CAAC,EACf,CAAC,qBAAqB,CAAC,EACvB,IAAI,CAACkzQ,aAAa,CACnB;IACDwB,UAAU,CAACC,MAAM,CAACC,UAAU,CAACiB,YAAY,CAACC,WAAW,CACnD,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,IAAI,CAAC3+P,SAAS,CAAC,mDAAmD,CAAC,EACnE,EAAE,EACF7gC,MAAM,EACN,EAAE,EACF,CAACmiB,IAAI,CAAC,EACN,CAAC,MAAM,CAAC,EACR,CAAC,OAAO,CAAC,EACT,IAAI,CAACo6Q,cAAc,CACpB;IACD6B,UAAU,CAACC,MAAM,CAACC,UAAU,CAACiB,YAAY,CAACC,WAAW,CACnD,cAAc,EACd,iBAAiB,EACjB,iBAAiB,EACjB,IAAI,CAAC3+P,SAAS,CAAC,mDAAmD,CAAC,EACnE,EAAE,EACF7gC,MAAM,EACN,EAAE,EACF,CAACmiB,IAAI,CAAC,EACN,CAAC,MAAM,CAAC,EACR,CAAC,OAAO,CAAC,EACT,IAAI,CAACq6Q,eAAe,CACrB;IACD4B,UAAU,CAACC,MAAM,CAACC,UAAU,CAACiB,YAAY,CAACC,WAAW,CACnD,cAAc,EACd,0BAA0B,EAC1B,0BAA0B,EAC1B,IAAI,CAAC3+P,SAAS,CAAC,2CAA2C,CAAC,EAC3D,EAAE,EACFnX,MAAM,EACN,EAAE,EACF,CAACvH,IAAI,CAAC,EACN,CAAC,MAAM,CAAC,EACR,CAAC,OAAO,CAAC,EACT,IAAI,CAACs6Q,wBAAwB,CAC9B;IACD2B,UAAU,CAACC,MAAM,CAACC,UAAU,CAACiB,YAAY,CAACC,WAAW,CACnD,cAAc,EACd,qBAAqB,EACrB,qBAAqB,EACrB,IAAI,CAAC3+P,SAAS,CAAC,iCAAiC,CAAC,EACjD,EAAE,EACFnX,MAAM,EACN,EAAE,EACF,CAACvH,IAAI,CAAC,EACN,CAAC,MAAM,CAAC,EACR,CAAC,OAAO,CAAC,EACT,IAAI,CAACu6Q,mBAAmB,CACzB;IACD0B,UAAU,CAACC,MAAM,CAACC,UAAU,CAACiB,YAAY,CAACC,WAAW,CACnD,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,IAAI,CAAC3+P,SAAS,CAAC,gCAAgC,CAAC,EAChD,EAAE,EACFnX,MAAM,EACN,EAAE,EACF,CAACvH,IAAI,CAAC,EACN,CAAC,MAAM,CAAC,EACR,CAAC,OAAO,CAAC,EACT,IAAI,CAACw6Q,kBAAkB,CACxB;IACDyB,UAAU,CAACC,MAAM,CAACC,UAAU,CAACiB,YAAY,CAACC,WAAW,CACnD,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,IAAI,CAAC3+P,SAAS,CAAC,mCAAmC,CAAC,EACnD,EAAE,EACF7gC,MAAM,EACN,EAAE,EACF,CAAC0pB,MAAM,CAAC,EACR,CAAC,OAAO,CAAC,EACT,CAAC,KAAK,CAAC,EACP,IAAI,CAACmzQ,cAAc,CACpB;IACDuB,UAAU,CAACC,MAAM,CAACC,UAAU,CAACiB,YAAY,CAACC,WAAW,CACnD,cAAc,EACd,aAAa,EACb,aAAa,EACb,IAAI,CAAC3+P,SAAS,CAAC,qCAAqC,CAAC,EACrD,EAAE,EACF7gC,MAAM,EACN,EAAE,EACF,CAACA,MAAM,EAAE0pB,MAAM,CAAC,EAChB,CAAC,YAAY,CAAC,EACd,CAAC,YAAY,CAAC,EACd,IAAI,CAACozQ,WAAW,CACjB;IACDsB,UAAU,CAACC,MAAM,CAACC,UAAU,CAACiB,YAAY,CAACC,WAAW,CACnD,cAAc,EACd,gCAAgC,EAChC,gCAAgC,EAChC,IAAI,CAAC3+P,SAAS,CAAC,iDAAiD,CAAC,EACjE,EAAE,EACF7gC,MAAM,EACN,EAAE,EACF,CAAC0pB,MAAM,CAAC,EACR,CAAC,OAAO,CAAC,EACT,CAAC,OAAO,CAAC,EACT,IAAI,CAACqzQ,8BAA8B,CACpC;EACH;EACA4B,iBAAiB;IACf,IAAI,CAAC5gO,OAAO,GAAG,IAAIqgO,UAAU,CAACqB,QAAQ,CAACC,kBAAkB,EAAE;IAC3D,IAAI,CAAC3hO,OAAO,CAACgP,UAAU,CAAC4yN,cAAc,GAAG,KAAK;IAC9C,IAAI,CAAC5hO,OAAO,CAAC6hO,OAAO,CAACC,gBAAgB,GAAG,IAAI;IAC5C,IAAI,CAAC9hO,OAAO,CAACgP,UAAU,CAAC+yN,gBAAgB,GAAG,IAAI;IAC/C,IAAI,CAAC/hO,OAAO,CAAC6hO,OAAO,CAACG,eAAe,GAAG,IAAI;IAC3C,IAAI,CAAChiO,OAAO,CAAC6hO,OAAO,CAACI,gBAAgB,GAAG5B,UAAU,CAACa,MAAM,CAACgB,mBAAmB,CAACC,OAAO;IACrF,IAAI,CAACniO,OAAO,CAAC6hO,OAAO,CAACp9C,eAAe,GAAG,KAAK;IAC5C,IAAI,CAACzkL,OAAO,CAACgP,UAAU,CAACozN,cAAc,GAAG/B,UAAU,CAACC,MAAM,CAAC+B,MAAM,CAACC,iBAAiB,CAAC5tC,KAAK;IACzF2rC,UAAU,CAACkC,IAAI,CAACC,YAAY,CAACC,eAAe,CAACC,gBAAgB,GAAG,8BAA8B;IAC9FrC,UAAU,CAACkC,IAAI,CAACC,YAAY,CAACC,eAAe,CAACE,mBAAmB,CAAC,qCAAqC,EAAE,IAAI,EAAE,OAAO,CAAC;IACtH,IAAI;MACF,IAAI;QACFtC,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,yDAAyD,EAAE,WAAW,CAAC;OAC9H,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,gCAAgC,EAAE,WAAW,CAAC;OACrG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,iCAAiC,EAAE,WAAW,CAAC;OACtG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,6BAA6B,EAAE,MAAM,CAAC;OAC7F,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,iCAAiC,EAAE,QAAQ,CAAC;OACnG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,+BAA+B,EAAE,SAAS,CAAC;OAClG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,iCAAiC,EAAE,WAAW,CAAC;OACtG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,8BAA8B,EAAE,OAAO,CAAC;OAC/F,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,gCAAgC,EAAE,SAAS,CAAC;OACnG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,gCAAgC,EAAE,SAAS,CAAC;OACnG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,+BAA+B,EAAE,QAAQ,CAAC;OACjG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,iCAAiC,EAAE,UAAU,CAAC;OACrG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,iCAAiC,EAAE,OAAO,CAAC;OAClG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,qCAAqC,EAAE,cAAc,CAAC;OAC7G,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,iCAAiC,EAAE,UAAU,CAAC;OACrG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,oCAAoC,EAAE,aAAa,CAAC;OAC3G,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,8BAA8B,EAAE,OAAO,CAAC;OAC/F,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,gCAAgC,EAAE,SAAS,CAAC;OACnG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,mCAAmC,EAAE,YAAY,CAAC;OACzG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,mCAAmC,EAAE,YAAY,CAAC;OACzG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,iCAAiC,EAAE,UAAU,CAAC;OACrG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,gCAAgC,EAAE,SAAS,CAAC;OACnG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,kCAAkC,EAAE,WAAW,CAAC;OACvG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,8BAA8B,EAAE,OAAO,CAAC;OAC/F,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,iCAAiC,EAAE,UAAU,CAAC;OACrG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,iCAAiC,EAAE,UAAU,CAAC;OACrG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,uCAAuC,EAAE,gBAAgB,CAAC;OACjH,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,iCAAiC,EAAE,UAAU,CAAC;OACrG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,sCAAsC,EAAE,eAAe,CAAC;OAC/G,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,uCAAuC,EAAE,gBAAgB,CAAC;OACjH,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,wCAAwC,EAAE,iBAAiB,CAAC;OACnH,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,4CAA4C,EAAE,qBAAqB,CAAC;OAC3H,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,iCAAiC,EAAE,UAAU,CAAC;OACrG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,iCAAiC,EAAE,UAAU,CAAC;OACrG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,iCAAiC,EAAE,UAAU,CAAC;OACrG,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,+CAA+C,EAAE,wBAAwB,CAAC;OACjI,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,6CAA6C,EAAE,sBAAsB,CAAC;OAC7H,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,4CAA4C,EAAE,qBAAqB,CAAC;OAC3H,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,0CAA0C,EAAE,mBAAmB,CAAC;OACvH,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,wCAAwC,EAAE,kBAAkB,CAAC;OACpH,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,uCAAuC,EAAE,gBAAgB,CAAC;OACjH,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,8CAA8C,EAAE,uBAAuB,CAAC;OAC/H,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,4CAA4C,EAAE,qBAAqB,CAAC;OAC3H,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;MAEhB,IAAI;QACFqxR,UAAU,CAACkC,IAAI,CAACK,iBAAiB,CAACC,mBAAmB,CAAC,2CAA2C,EAAE,oBAAoB,CAAC;OACzH,CAAC,OAAO7zR,CAAC,EAAE;QACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;KAEjB,CAAC,OAAOA,CAAC,EAAE;MACV6a,OAAO,CAACC,GAAG,CAAC9a,CAAC,CAAC;;IAEhB,IAAI,CAACkwR,QAAQ,GAAG,IAAImB,UAAU,CAACqB,QAAQ,CAACoB,WAAW,CAAC,IAAI,CAAC9iO,OAAO,EAAE,aAAa,EAAE,KAAK,CAAC;IACvF,IAAI,CAACk/N,QAAQ,CAAC6D,YAAY,GAAG,IAAI,CAAC1B,UAAU;IAC5C,IAAI,CAACnC,QAAQ,CAAC8D,cAAc,GAAG,IAAI,CAACC,YAAY;EAClD;EAwBA1E,aAAa,CAACxnO,CAAS;IACrBA,CAAC,GAAGA,CAAC,CAACt0C,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAACA,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAC7C,OAAOs0C,CAAC,GAAG,MAAM;EACnB;;AA5yBW/jC,yBAAyB;mBAAzBA,yBAAyB;AAAA;AAAzBA,yBAAyB;QAAzBA,yBAAyB;EAAAliC;EAAAqH;IAAAynC;IAAAQ;IAAAte;IAAA+U;IAAAyK;IAAAqgJ;IAAA5iK;EAAA;EAAAjjB,WAAAA,gEAAAA,CAFzB,CAACw7E,0GAAe,EAAEE,8GAAiB,EAAEa,sHAAqB,CAAC;EAAA//E;EAAAC;EAAAC;EAAAJ;IAAA;MC1CxExF,4DAAAA,aAAmB;MAEfA,uDAAAA,aAAwB;MAC1BA,0DAAAA,EAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFuC;AACF;AAC0C;AACO;AACK;AACH;AACD;;;AAC/F,MAAMo/B,UAAU,GAAI,CAACgB,oFAAyB,CAAC;AAYzC,MAAOmrF,sBAAsB;AAAtBA,sBAAsB;mBAAtBA,sBAAsB;AAAA;AAAtBA,sBAAsB;QAAtBA;AAAsB;AAAtBA,sBAAsB;aAFpB,CAAClrF,qEAAU,CAAC;EAAAv2B,UANbT,yDAAY,EAClBD,uDAAW,EACX61B,uGAAW,EACX6pD,6GAAa,EACbzqD,kHAAoB,EAAE,EACtBgB,yGAAgB;AAAA;;sHAGXksF,sBAAsB;IAAA1hH,eAZdu2B,oFAAyB;IAAAt2B,UAIhCT,yDAAY,EAClBD,uDAAW,EACX61B,uGAAW,EACX6pD,6GAAa,8GAEbzpD,yGAAgB;IAAAt1B,UATHq2B,oFAAyB;EAAA;AAAA;;;;;;;;;;;;;;;ACR9C;AACA;AACA;AACO,MAAMqvD,WAAW,GAAG;EACzB6gN,UAAU,EAAE,KAAK;EACjBC,QAAQ,EAAE,KAAK;EACfphN,OAAO,EAAE,IAAI;EACbkR,QAAQ,EAAE,QAAQ;EAClBxQ,UAAU,EAAG,gBAAgB;EAC7BC,SAAS,EAAG;CACb;AACD;;;;;;;AAOA;;;;;;;;;;;;;;;;;;;AClBkB;AAC6B;AAGF;AACY;AAEzD,IAAIL,6EAAsB,EAAE;EAC1B+gN,6DAAc,EAAE;;AAGlBC,sEAAAA,EAAwB,CACrBC,eAAe,CAAC/8K,sDAAS,CAAC,CAC1BrnD,KAAK,CAAEr6D,GAAG,IAAKglB,OAAO,CAAC8G,KAAK,CAAC9rB,GAAG,CAAC,CAAC;;;;;;;;;;ACbrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACnSA","sources":["./projects/ngx-treeview/src/lib/dropdown-menu.directive.ts","./projects/ngx-treeview/src/lib/dropdown-toggle.directive.ts","./projects/ngx-treeview/src/lib/dropdown-treeview.component.ts","./projects/ngx-treeview/src/lib/dropdown-treeview.component.html","./projects/ngx-treeview/src/lib/dropdown.directive.ts","./projects/ngx-treeview/src/lib/index.ts","./projects/ngx-treeview/src/lib/treeview-config.ts","./projects/ngx-treeview/src/lib/treeview-event-parser.ts","./projects/ngx-treeview/src/lib/treeview-helper.ts","./projects/ngx-treeview/src/lib/treeview-i18n.ts","./projects/ngx-treeview/src/lib/treeview-item.component.ts","./projects/ngx-treeview/src/lib/treeview-item.component.html","./projects/ngx-treeview/src/lib/treeview-item.ts","./projects/ngx-treeview/src/lib/treeview.component.ts","./projects/ngx-treeview/src/lib/treeview.component.html","./projects/ngx-treeview/src/lib/treeview.module.ts","./projects/ngx-treeview/src/lib/treeview.pipe.ts","./projects/persian-date-picker/src/lib/calendar-nav/calendar-nav.component.ts","./projects/persian-date-picker/src/lib/calendar-nav/calendar-nav.component.html","./projects/persian-date-picker/src/lib/common/services/dom-appender/dom-appender.service.ts","./projects/persian-date-picker/src/lib/common/services/utils/utils.service.ts","./projects/persian-date-picker/src/lib/common/types/calendar-mode-enum.ts","./projects/persian-date-picker/src/lib/common/types/calendar-value-enum.ts","./projects/persian-date-picker/src/lib/date-picker.module.ts","./projects/persian-date-picker/src/lib/date-picker/date-picker-directive.service.ts","./projects/persian-date-picker/src/lib/date-picker/date-picker.component.ts","./projects/persian-date-picker/src/lib/date-picker/date-picker.component.html","./projects/persian-date-picker/src/lib/date-picker/date-picker.directive.ts","./projects/persian-date-picker/src/lib/date-picker/date-picker.service.ts","./projects/persian-date-picker/src/lib/day-calendar/day-calendar.component.ts","./projects/persian-date-picker/src/lib/day-calendar/day-calendar.component.html","./projects/persian-date-picker/src/lib/day-calendar/day-calendar.service.ts","./projects/persian-date-picker/src/lib/day-time-calendar/day-time-calendar.component.ts","./projects/persian-date-picker/src/lib/day-time-calendar/day-time-calendar.component.html","./projects/persian-date-picker/src/lib/day-time-calendar/day-time-calendar.service.ts","./projects/persian-date-picker/src/lib/index.ts","./projects/persian-date-picker/src/lib/month-calendar/month-calendar.component.ts","./projects/persian-date-picker/src/lib/month-calendar/month-calendar.component.html","./projects/persian-date-picker/src/lib/month-calendar/month-calendar.service.ts","./projects/persian-date-picker/src/lib/time-select/time-select.component.ts","./projects/persian-date-picker/src/lib/time-select/time-select.component.html","./projects/persian-date-picker/src/lib/time-select/time-select.service.ts","./projects/persian-date-picker/src/public-api.ts","./projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component.ts","./projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component.html","./projects/sepidz-web-framework-data-grid/src/lib/editable-grid/popup.anchor-target.directive.ts","./projects/sepidz-web-framework-data-grid/src/lib/editabletreelist/editabeltreelist.component.ts","./projects/sepidz-web-framework-data-grid/src/lib/editabletreelist/editabeltreelist.component.html","./projects/sepidz-web-framework-data-grid/src/lib/grid.module.ts","./projects/sepidz-web-framework-data-grid/src/lib/kgrid.component.ts","./projects/sepidz-web-framework-data-grid/src/lib/kgrid.component.html","./projects/sepidz-web-framework-data-grid/src/lib/report-kind.ts","./projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component.ts","./projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component.html","./projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component.ts","./projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component.html","./projects/sepidz-web-framework-data-grid/src/lib/sepidz-message.service.ts","./projects/sepidz-web-framework-shell/src/lib/@theme/components/header/backup/backUp.component.ts","./projects/sepidz-web-framework-shell/src/lib/@theme/components/header/backup/backUp.component.html","./projects/sepidz-web-framework-shell/src/lib/@theme/components/header/callinfo/callinfo.component.ts","./projects/sepidz-web-framework-shell/src/lib/@theme/components/header/callinfo/callinfo.component.html","./projects/sepidz-web-framework-shell/src/lib/@theme/components/header/delino-newOrder-notification/delino-notification.component.ts","./projects/sepidz-web-framework-shell/src/lib/@theme/components/header/delino-newOrder-notification/delino-notification.component.html","./projects/sepidz-web-framework-shell/src/lib/@theme/components/header/header.component.ts","./projects/sepidz-web-framework-shell/src/lib/@theme/components/header/header.component.html","./projects/sepidz-web-framework-shell/src/lib/@theme/components/header/importandexport/importexport.component.ts","./projects/sepidz-web-framework-shell/src/lib/@theme/components/header/importandexport/importexport.component.html","./projects/sepidz-web-framework-shell/src/lib/@theme/components/header/importandexport/importexport.model.ts","./projects/sepidz-web-framework-shell/src/lib/@theme/components/header/update-web-app/update-web-app.component.ts","./projects/sepidz-web-framework-shell/src/lib/@theme/components/header/update-web-app/update-web-app.component.html","./projects/sepidz-web-framework-shell/src/lib/@theme/pipes/capitalize.pipe.ts","./projects/sepidz-web-framework-shell/src/lib/@theme/pipes/index.ts","./projects/sepidz-web-framework-shell/src/lib/@theme/pipes/number-with-commas.pipe.ts","./projects/sepidz-web-framework-shell/src/lib/@theme/pipes/plural.pipe.ts","./projects/sepidz-web-framework-shell/src/lib/@theme/pipes/round.pipe.ts","./projects/sepidz-web-framework-shell/src/lib/@theme/pipes/timing.pipe.ts","./projects/sepidz-web-framework-shell/src/lib/@theme/theme.module.ts","./projects/sepidz-web-framework-shell/src/lib/current-branch/current-branch-form/current-branch-form.component.ts","./projects/sepidz-web-framework-shell/src/lib/current-branch/current-branch-form/current-branch-form.component.html","./projects/sepidz-web-framework-shell/src/lib/current-branch/current-branch-form/current-branch.module.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/base/SsgMaskDirective.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-control.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-service.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/base/currency-mask.directive.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/base/form-can-deactivate.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/base/min.max.directive.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/button/button.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/button/button.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/checkbox-list/checkbox-list.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/checkbox-list/checkbox-list.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/checkbox-new/checkbox.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/checkbox-new/checkbox.template.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/date/date-picker.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/date/date-picker.template.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/form/custom-validitor.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/form/dynamic-form.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/form/dynamic-form.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/form/form-control-model.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/form/form-control-model.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/form/validate-juri-name-factory.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/index.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/input/input.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/input/input.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/input/inputdata.model.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/lookup-tree/lookup-tree.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/lookup-tree/lookup-tree.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/lookup/lookup.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/lookup/lookup.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/config.service.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/console.service.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/id.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/items-list.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/ng-dropdown-panel.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/ng-option-highlight.directive.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/ng-option.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/ng-select.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/ng-select.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/ng-select.module.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/ng-select.types.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/ng-templates.directive.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/search-helper.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/selection-model.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/value-utils.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/virtual-scroll.service.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/ng-select/window.service.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/popover/ssg-popover.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/radiobox/radiobox.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/radiobox/radiobox.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/resizable/angular-resize-element.directive.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/resizable/angular-resize-element.enum.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/resizable/angular-resize-element.module.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu-injector.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu-trigger.directive.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu.module.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu.service.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-submenu-trigger.directive.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/menu.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/selector/selector.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/selector/selector.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/sepidz-color-picker/sepidz-color-picker.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/sepidz-color-picker/sepidz-color-picker.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/sepidzmenu/menu.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/sepidzmenu/menu.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/swichbox/swichbox.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/swichbox/swichbox.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/tag-input/tag-input.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/tag-input/tag-input.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/template-input/template-input.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/template-input/template-input.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/textarea/textarea.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/textarea/textarea.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/timepicker/time-picker.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/timepicker/time-picker.template.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/tooltip/index.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/tooltip/options.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/tooltip/tooltip.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/tooltip/tooltip.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/controls/tooltip/tooltip.directive.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/tooltip/tooltip.module.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/validators/hexadecimal-validator.ts","./projects/sepidz-web-framework-shell/src/lib/shared/controls/validators/validation.ts","./projects/sepidz-web-framework-shell/src/lib/shared/directives/auto-focus.directive.ts","./projects/sepidz-web-framework-shell/src/lib/shared/directives/focus-invalid-input.directive.ts","./projects/sepidz-web-framework-shell/src/lib/shared/directives/has-permission.directive.ts","./projects/sepidz-web-framework-shell/src/lib/shared/directives/incell-tab.directive.ts","./projects/sepidz-web-framework-shell/src/lib/shared/shared.module.ts","./projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service.ts","./projects/sepidz-web-framework-shell/src/lib/shared/splash-form/SplashScreenService.ts","./projects/sepidz-web-framework-shell/src/lib/shared/splash-form/splash-form.component.ts","./projects/sepidz-web-framework-shell/src/lib/shared/splash-form/splash-form.component.html","./projects/sepidz-web-framework-shell/src/lib/shared/splash-form/splash-form.module.ts","./projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model.ts","./projects/sepidz-web-framework-shell/src/lib/tabular/tabset/tabset.component.ts","./projects/sepidz-web-framework-shell/src/lib/tabular/tabset/tabset.component.html","./projects/sepidz-web-framework-shell/src/lib/tabular/tabset/tabset.module.ts","./projects/sepidz-web-framework-shell/src/lib/tabular/tabular.component.ts","./projects/sepidz-web-framework-shell/src/lib/tabular/tabular.module.ts","./projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service .ts","./projects/sepidz-web-framework/src/lib/@core/core.module.ts","./projects/sepidz-web-framework/src/lib/@core/module-import-guard.ts","./projects/sepidz-web-framework/src/lib/@core/utils/helpers.ts","./projects/sepidz-web-framework/src/lib/@core/utils/index.ts","./projects/sepidz-web-framework/src/lib/@core/utils/layout.service.ts","./projects/sepidz-web-framework/src/lib/@core/utils/player.service.ts","./projects/sepidz-web-framework/src/lib/can-deactivate/can-deactivate.guard.ts","./projects/sepidz-web-framework/src/lib/can-deactivate/component-can-deactivate.ts","./projects/sepidz-web-framework/src/lib/interceptors/auth.interceptor.ts","./projects/sepidz-web-framework/src/lib/interceptors/cache-interceptor.ts","./projects/sepidz-web-framework/src/lib/interceptors/encrypt-decrypt/encrypt-decrypt-interceptor.ts","./projects/sepidz-web-framework/src/lib/interceptors/encrypt-decrypt/encrypt-decrypt.service.ts","./projects/sepidz-web-framework/src/lib/interceptors/extensions.ts","./projects/sepidz-web-framework/src/lib/interceptors/http-error-response-interceptor.ts","./projects/sepidz-web-framework/src/lib/interceptors/request-cache.service.ts","./projects/sepidz-web-framework/src/lib/models/branch.model.ts","./projects/sepidz-web-framework/src/lib/models/city.model.ts","./projects/sepidz-web-framework/src/lib/models/clearablecache.model.ts","./projects/sepidz-web-framework/src/lib/models/common.model.ts","./projects/sepidz-web-framework/src/lib/models/datatransfer.model.ts","./projects/sepidz-web-framework/src/lib/models/detailledger.model.ts","./projects/sepidz-web-framework/src/lib/models/detailledgerkind.model.ts","./projects/sepidz-web-framework/src/lib/models/dialog.enum.ts","./projects/sepidz-web-framework/src/lib/models/entity-base.model.ts","./projects/sepidz-web-framework/src/lib/models/entity-list-action.ts","./projects/sepidz-web-framework/src/lib/models/enums.ts","./projects/sepidz-web-framework/src/lib/models/fiscal-year.model.ts","./projects/sepidz-web-framework/src/lib/models/form-base-control.model.ts","./projects/sepidz-web-framework/src/lib/models/form-control.model.ts","./projects/sepidz-web-framework/src/lib/models/generalLedger.model.ts","./projects/sepidz-web-framework/src/lib/models/groupledger.model.ts","./projects/sepidz-web-framework/src/lib/models/index.ts","./projects/sepidz-web-framework/src/lib/models/license-information.model.ts","./projects/sepidz-web-framework/src/lib/models/lookup.model.ts","./projects/sepidz-web-framework/src/lib/models/missetup.model.ts","./projects/sepidz-web-framework/src/lib/models/ngxMenuItem.ts","./projects/sepidz-web-framework/src/lib/models/notification.model.ts","./projects/sepidz-web-framework/src/lib/models/parameters.model.ts","./projects/sepidz-web-framework/src/lib/models/peopleInfo.model.ts","./projects/sepidz-web-framework/src/lib/models/permission.model.ts","./projects/sepidz-web-framework/src/lib/models/province.model.ts","./projects/sepidz-web-framework/src/lib/models/report-file-save.model.ts","./projects/sepidz-web-framework/src/lib/models/role.model.ts","./projects/sepidz-web-framework/src/lib/models/ssg-toastr-config.ts","./projects/sepidz-web-framework/src/lib/models/user-edit.model.ts","./projects/sepidz-web-framework/src/lib/models/user-login.model.ts","./projects/sepidz-web-framework/src/lib/models/user.model.ts","./projects/sepidz-web-framework/src/lib/models/usersetting.model.ts","./projects/sepidz-web-framework/src/lib/pipes/filter.pipe.ts","./projects/sepidz-web-framework/src/lib/pipes/group-by.pipe.ts","./projects/sepidz-web-framework/src/lib/pipes/mapobject.pipe.ts","./projects/sepidz-web-framework/src/lib/pipes/persian-date.pipe.ts","./projects/sepidz-web-framework/src/lib/pipes/persian-number.pipe.ts","./projects/sepidz-web-framework/src/lib/pipes/thousand-separator.pipe.ts","./projects/sepidz-web-framework/src/lib/pipes/translate-enum.pipe.ts","./projects/sepidz-web-framework/src/lib/services/LoadingScreenService.ts","./projects/sepidz-web-framework/src/lib/services/account.service.ts","./projects/sepidz-web-framework/src/lib/services/alert.service.ts","./projects/sepidz-web-framework/src/lib/services/analytics.service.ts","./projects/sepidz-web-framework/src/lib/services/animations.ts","./projects/sepidz-web-framework/src/lib/services/app-translation.service.ts","./projects/sepidz-web-framework/src/lib/services/auth-guard.service.ts","./projects/sepidz-web-framework/src/lib/services/auth.service.ts","./projects/sepidz-web-framework/src/lib/services/clickoutside.directive.ts","./projects/sepidz-web-framework/src/lib/services/common.service.ts","./projects/sepidz-web-framework/src/lib/services/configuration.service.ts","./projects/sepidz-web-framework/src/lib/services/correctyeke.service.ts","./projects/sepidz-web-framework/src/lib/services/db-keys.ts","./projects/sepidz-web-framework/src/lib/services/dragable.directive.ts","./projects/sepidz-web-framework/src/lib/services/encr-decr.service.ts","./projects/sepidz-web-framework/src/lib/services/error-dialog/error-dialog.component.ts","./projects/sepidz-web-framework/src/lib/services/error-dialog/error-dialog.component.html","./projects/sepidz-web-framework/src/lib/services/error-dialog/error-dialog.module.ts","./projects/sepidz-web-framework/src/lib/services/error-dialog/error-dialog.service.ts","./projects/sepidz-web-framework/src/lib/services/http-common.service.ts","./projects/sepidz-web-framework/src/lib/services/index.ts","./projects/sepidz-web-framework/src/lib/services/indexed-db.service.ts","./projects/sepidz-web-framework/src/lib/services/jwt-helper.ts","./projects/sepidz-web-framework/src/lib/services/local-store-manager.service.ts","./projects/sepidz-web-framework/src/lib/services/lookup.service.ts","./projects/sepidz-web-framework/src/lib/services/missetup.service.ts","./projects/sepidz-web-framework/src/lib/services/monthe-name.service.ts","./projects/sepidz-web-framework/src/lib/services/notification.service.ts","./projects/sepidz-web-framework/src/lib/services/persian.service.ts","./projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal-holder.component.ts","./projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal-options.ts","./projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal-wrapper.component.ts","./projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.component.ts","./projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.module.ts","./projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service.ts","./projects/sepidz-web-framework/src/lib/services/show-toastr.service.ts","./projects/sepidz-web-framework/src/lib/services/toaster/overlay/overlay-container.ts","./projects/sepidz-web-framework/src/lib/services/toaster/overlay/overlay-ref.ts","./projects/sepidz-web-framework/src/lib/services/toaster/overlay/overlay.ts","./projects/sepidz-web-framework/src/lib/services/toaster/portal/dom-portal-host.ts","./projects/sepidz-web-framework/src/lib/services/toaster/portal/portal.ts","./projects/sepidz-web-framework/src/lib/services/toaster/public_api.ts","./projects/sepidz-web-framework/src/lib/services/toaster/toastr/toast-noanimation.component.ts","./projects/sepidz-web-framework/src/lib/services/toaster/toastr/toast-ref.ts","./projects/sepidz-web-framework/src/lib/services/toaster/toastr/toast.component.ts","./projects/sepidz-web-framework/src/lib/services/toaster/toastr/toast.directive.ts","./projects/sepidz-web-framework/src/lib/services/toaster/toastr/toastr-config.ts","./projects/sepidz-web-framework/src/lib/services/toaster/toastr/toastr.module.ts","./projects/sepidz-web-framework/src/lib/services/toaster/toastr/toastr.service.ts","./projects/sepidz-web-framework/src/lib/services/token.service.ts","./projects/sepidz-web-framework/src/lib/services/utilities.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/auth/auth.module.ts","./src/app/auth/components/auth-block/auth-block.component.ts","./src/app/auth/components/auth.component.ts","./src/app/auth/components/index.ts","./src/app/auth/components/login/login.component.ts","./src/app/auth/components/login/login.component.html","./src/app/auth/components/logout/logout.component.ts","./src/app/auth/components/logout/logout.component.html","./src/app/auth/index.ts","./src/app/backoffice/acc/acc-close-profitand-loss-accounts/acc-close-profitand-loss-accounts-form/acc-close-profitand-loss-accounts-form.component.ts","./src/app/backoffice/acc/acc-close-profitand-loss-accounts/acc-close-profitand-loss-accounts-form/acc-close-profitand-loss-accounts-form.component.html","./src/app/backoffice/acc/acc-close-profitand-loss-accounts/acc-close-profitand-loss-accounts-list/acc-close-profitand-loss-accounts-list.component.ts","./src/app/backoffice/acc/acc-close-profitand-loss-accounts/acc-close-profitand-loss-accounts-list/acc-close-profitand-loss-accounts-list.component.html","./src/app/backoffice/acc/acc-close-profitand-loss-accounts/acc-close-profitand-loss-accounts.module.ts","./src/app/backoffice/acc/acc-voucher-detail-comment/acc-voucher-detail-comment.component.ts","./src/app/backoffice/acc/acc-voucher-detail-comment/acc-voucher-detail-comment.component.html","./src/app/backoffice/acc/acc-voucher-detail-comment/acc-voucher-detail-comment.module.ts","./src/app/backoffice/acc/accvoucher/acc-voucher-detail-filter/acc-voucher-detail-filter.component.ts","./src/app/backoffice/acc/accvoucher/acc-voucher-detail-filter/acc-voucher-detail-filter.component.html","./src/app/backoffice/acc/accvoucher/acc-voucher-header-import-excel/acc-voucher-header-import-excel-form.component.ts","./src/app/backoffice/acc/accvoucher/acc-voucher-header-import-excel/acc-voucher-header-import-excel-form.component.html","./src/app/backoffice/acc/accvoucher/accvoucher-detail/accvoucher-detail.component.ts","./src/app/backoffice/acc/accvoucher/accvoucher-detail/accvoucher-detail.component.html","./src/app/backoffice/acc/accvoucher/accvoucher-form/accvoucher-form.component.ts","./src/app/backoffice/acc/accvoucher/accvoucher-form/accvoucher-form.component.html","./src/app/backoffice/acc/accvoucher/accvoucher-list/accvoucher-list.component.ts","./src/app/backoffice/acc/accvoucher/accvoucher-list/accvoucher-list.component.html","./src/app/backoffice/acc/accvoucher/accvoucher-modal-list/accvoucher-modal-list.component.ts","./src/app/backoffice/acc/accvoucher/accvoucher-modal-list/accvoucher-modal-list.component.html","./src/app/backoffice/acc/accvoucher/accvoucher.module.ts","./src/app/backoffice/acc/accvoucherkind/accvoucherkind-form/accvoucherkind-form.component.ts","./src/app/backoffice/acc/accvoucherkind/accvoucherkind-form/accvoucherkind-form.component.html","./src/app/backoffice/acc/accvoucherkind/accvoucherkind-list/accvoucherkind-list.component.ts","./src/app/backoffice/acc/accvoucherkind/accvoucherkind-list/AccVoucherKInd-list.component.html","./src/app/backoffice/acc/accvoucherkind/accvoucherkind.module.ts","./src/app/backoffice/acc/control-contrary-nature-account/control-contrary-nature-account-list/control-contrary-nature-account-list.component.ts","./src/app/backoffice/acc/control-contrary-nature-account/control-contrary-nature-account-list/control-contrary-nature-account-list.component.html","./src/app/backoffice/acc/control-contrary-nature-account/control-contrary-nature-account.module.ts","./src/app/backoffice/acc/create-closing-journal-voucher/create-closing-journal-voucher-form/create-closing-journal-voucher-form.component.ts","./src/app/backoffice/acc/create-closing-journal-voucher/create-closing-journal-voucher-form/create-closing-journal-voucher-form.component.html","./src/app/backoffice/acc/create-closing-journal-voucher/create-closing-journal-voucher-list/create-closing-journal-voucher-list.component.ts","./src/app/backoffice/acc/create-closing-journal-voucher/create-closing-journal-voucher-list/create-closing-journal-voucher-list.component.html","./src/app/backoffice/acc/create-closing-journal-voucher/create-closing-journal-voucher.module.ts","./src/app/backoffice/acc/create-opening-journal-voucher/create-opening-journal-voucher-form/create-opening-journal-voucher-form.component.ts","./src/app/backoffice/acc/create-opening-journal-voucher/create-opening-journal-voucher-form/create-opening-journal-voucher-form.component.html","./src/app/backoffice/acc/create-opening-journal-voucher/create-opening-journal-voucher-list/create-opening-journal-voucher-list.component.ts","./src/app/backoffice/acc/create-opening-journal-voucher/create-opening-journal-voucher-list/create-opening-journal-voucher-list.component.html","./src/app/backoffice/acc/create-opening-journal-voucher/create-opening-journal-voucher.module.ts","./src/app/backoffice/acc/detailledger/detail-ledger-import-excel/detail-ledger-import-excel-form.component.ts","./src/app/backoffice/acc/detailledger/detail-ledger-import-excel/detail-ledger-import-excel-form.component.html","./src/app/backoffice/acc/detailledger/detailledger-form/detailledger-form.component.ts","./src/app/backoffice/acc/detailledger/detailledger-form/detailledger-form.component.html","./src/app/backoffice/acc/detailledger/detailledger-list/detailledger-list.component.ts","./src/app/backoffice/acc/detailledger/detailledger-list/detailledger-list.component.html","./src/app/backoffice/acc/detailledger/detailledger.module.ts","./src/app/backoffice/acc/detailledgerkind/detail-ledger-kind-import-excel/detail-ledger-kind-import-excel-form.component.ts","./src/app/backoffice/acc/detailledgerkind/detail-ledger-kind-import-excel/detail-ledger-kind-import-excel-form.component.html","./src/app/backoffice/acc/detailledgerkind/detailledgerkind-form.component.ts","./src/app/backoffice/acc/detailledgerkind/detailledgerkind-form.component.html","./src/app/backoffice/acc/detailledgerkind/detailledgerkind-list.component.ts","./src/app/backoffice/acc/detailledgerkind/detailledgerkind-list.component.html","./src/app/backoffice/acc/detailledgerkind/detailledgerkind.module.ts","./src/app/backoffice/acc/general-ledger-voucher/general-ledger-voucher-form/general-ledger-voucher-form.component.ts","./src/app/backoffice/acc/general-ledger-voucher/general-ledger-voucher-form/general-ledger-voucher-form.component.html","./src/app/backoffice/acc/general-ledger-voucher/general-ledger-voucher-list/general-ledger-voucher-list.component.ts","./src/app/backoffice/acc/general-ledger-voucher/general-ledger-voucher-list/general-ledger-voucher-list.component.html","./src/app/backoffice/acc/general-ledger-voucher/general-ledger-voucher.module.ts","./src/app/backoffice/acc/generalledger/general-ledger-import-excel/general-ledger-import-excel-form.component.ts","./src/app/backoffice/acc/generalledger/general-ledger-import-excel/general-ledger-import-excel-form.component.html","./src/app/backoffice/acc/generalledger/generalledger-form.component.ts","./src/app/backoffice/acc/generalledger/generalledger-form.component.html","./src/app/backoffice/acc/generalledger/generalledger-list.component.ts","./src/app/backoffice/acc/generalledger/generalLedger-list.component.html","./src/app/backoffice/acc/generalledger/generalledger.module.ts","./src/app/backoffice/acc/groupledger/group-ledger-import-excel/group-ledger-import-excel-form.component.ts","./src/app/backoffice/acc/groupledger/group-ledger-import-excel/group-ledger-import-excel-form.component.html","./src/app/backoffice/acc/groupledger/groupledger-form/groupledger-form.component.ts","./src/app/backoffice/acc/groupledger/groupledger-form/groupledger-form.component.html","./src/app/backoffice/acc/groupledger/groupledger-list/groupledger-list.component.ts","./src/app/backoffice/acc/groupledger/groupledger-list/groupledger-list.component.html","./src/app/backoffice/acc/groupledger/groupledger.module.ts","./src/app/backoffice/acc/models/accvoucherkind.model.ts","./src/app/backoffice/acc/models/voucherInfo.model.ts","./src/app/backoffice/acc/movement-voucher/movement-voucher.component.ts","./src/app/backoffice/acc/movement-voucher/movement-voucher.component.html","./src/app/backoffice/acc/movement-voucher/movement-voucher.module.ts","./src/app/backoffice/acc/report/aa-balce4/acc-balance-4.component.ts","./src/app/backoffice/acc/report/aa-balce4/acc-balance-4.component.html","./src/app/backoffice/acc/report/aa-balce6/acc-balance-6.component.ts","./src/app/backoffice/acc/report/aa-balce6/acc-balance-6.component.html","./src/app/backoffice/acc/report/aa-balce8/acc-balance-8.component.ts","./src/app/backoffice/acc/report/aa-balce8/acc-balance-8.component.html","./src/app/backoffice/acc/report/account-report.module.ts","./src/app/backoffice/acc/report/account-review/account-review.component.ts","./src/app/backoffice/acc/report/account-review/account-review.component.html","./src/app/backoffice/acc/report/account-review/account-review.module.ts","./src/app/backoffice/acc/report/balance-sheet-compare-prev-year-generalledger-filterd-by-detailLedger/balance-sheet-compare-prev-year-generalledger-filterd-by-detailLedger.component.ts","./src/app/backoffice/acc/report/balance-sheet-compare-prev-year-generalledger-filterd-by-detailLedger/balance-sheet-compare-prev-year-generalledger-filterd-by-detailLedger.component.html","./src/app/backoffice/acc/report/balance-sheet-compare-prev-year-subledger-filterd-by-detailLedger/balance-sheet-compare-prev-year-subledger-filterd-by-detailLedger.component.ts","./src/app/backoffice/acc/report/balance-sheet-compare-prev-year-subledger-filterd-by-detailLedger/balance-sheet-compare-prev-year-subledger-filterd-by-detailLedger.component.html","./src/app/backoffice/acc/report/balance-sheet-compare-with-prev-year/balance-sheet-compare-with-prev-year.component.ts","./src/app/backoffice/acc/report/balance-sheet-compare-with-prev-year/balance-sheet-compare-with-prev-year.component.html","./src/app/backoffice/acc/report/balance-sheet/acc-balance-sheet.component.ts","./src/app/backoffice/acc/report/balance-sheet/acc-balance-sheet.component.html","./src/app/backoffice/acc/report/detail-ledeger-subledger-balanc-sheet/detail-ledeger-subledger-balanc-sheet.component.ts","./src/app/backoffice/acc/report/detail-ledeger-subledger-balanc-sheet/detail-ledeger-subledger-balanc-sheet.component.html","./src/app/backoffice/acc/report/general-ledger-daily-voucher-document/general-ledger-daily-voucher-document.component.ts","./src/app/backoffice/acc/report/general-ledger-daily-voucher-document/general-ledger-daily-voucher-document.component.html","./src/app/backoffice/acc/report/general-ledger-daily-voucher/general-ledger-daily-voucher.component.ts","./src/app/backoffice/acc/report/general-ledger-daily-voucher/general-ledger-daily-voucher.component.html","./src/app/backoffice/acc/report/general-ledger-voucher-document/general-ledger-voucher-document.component.ts","./src/app/backoffice/acc/report/general-ledger-voucher-document/general-ledger-voucher-document.component.html","./src/app/backoffice/acc/report/general-ledger-voucher/general-ledger-voucher.component.ts","./src/app/backoffice/acc/report/general-ledger-voucher/general-ledger-voucher.component.html","./src/app/backoffice/acc/subledger/sub-ledger-import-excel/sub-ledger-import-excel-form.component.ts","./src/app/backoffice/acc/subledger/sub-ledger-import-excel/sub-ledger-import-excel-form.component.html","./src/app/backoffice/acc/subledger/subledger-form/subledger-form.component.ts","./src/app/backoffice/acc/subledger/subledger-form/subledger-form.component.html","./src/app/backoffice/acc/subledger/subledger-list/subledger-list.component.ts","./src/app/backoffice/acc/subledger/subledger-list/subledger-list.component.html","./src/app/backoffice/acc/subledger/subledger.module.ts","./src/app/backoffice/acc/voucher-approve/voucher-approve.component.ts","./src/app/backoffice/acc/voucher-approve/voucher-approve.component.html","./src/app/backoffice/acc/voucher-approve/voucher-approve.module.ts","./src/app/backoffice/hrm/acc-voucher/hrm-acc-voucher-code/hrm-acc-voucher-code-form.component.ts","./src/app/backoffice/hrm/acc-voucher/hrm-acc-voucher-code/hrm-acc-voucher-code-form.component.html","./src/app/backoffice/hrm/acc-voucher/hrm-acc-voucher-code/hrm-acc-voucher-code.component.ts","./src/app/backoffice/hrm/acc-voucher/hrm-acc-voucher-code/hrm-acc-voucher-code.component.html","./src/app/backoffice/hrm/acc-voucher/hrm-acc-voucher-header/hrm-acc-voucher-header.component.ts","./src/app/backoffice/hrm/acc-voucher/hrm-acc-voucher-header/hrm-acc-voucher-header.component.html","./src/app/backoffice/hrm/acc-voucher/hrm-acc-voucher.module.ts","./src/app/backoffice/hrm/acc-voucher/hrm-acc-voucher/hrm-acc-voucher-date/hrm-acc-voucher-date-form.component.ts","./src/app/backoffice/hrm/acc-voucher/hrm-acc-voucher/hrm-acc-voucher-date/hrm-acc-voucher-date-form.component.html","./src/app/backoffice/hrm/acc-voucher/hrm-acc-voucher/hrm-acc-voucher.component.ts","./src/app/backoffice/hrm/acc-voucher/hrm-acc-voucher/hrm-acc-voucher.component.html","./src/app/backoffice/hrm/base-info/cost-center/cost-center-form/cost-center-form.component.ts","./src/app/backoffice/hrm/base-info/cost-center/cost-center-form/cost-center-form.component.html","./src/app/backoffice/hrm/base-info/cost-center/cost-center-list/cost-center-list.component.ts","./src/app/backoffice/hrm/base-info/cost-center/cost-center-list/cost-center-list.component.html","./src/app/backoffice/hrm/base-info/cost-center/cost-center.module.ts","./src/app/backoffice/hrm/base-info/element/element-form/element-form.component.ts","./src/app/backoffice/hrm/base-info/element/element-form/element-form.component.html","./src/app/backoffice/hrm/base-info/element/element-formula/element-formula.component.ts","./src/app/backoffice/hrm/base-info/element/element-formula/element-formula.component.html","./src/app/backoffice/hrm/base-info/element/element-list/element-list.component.ts","./src/app/backoffice/hrm/base-info/element/element-list/element-list.component.html","./src/app/backoffice/hrm/base-info/element/element-priority-form/element-priority-form.component.ts","./src/app/backoffice/hrm/base-info/element/element-priority-form/element-priority-form.component.html","./src/app/backoffice/hrm/base-info/element/element-property-form/element-property-form.component.ts","./src/app/backoffice/hrm/base-info/element/element-property-form/element-property-form.component.html","./src/app/backoffice/hrm/base-info/element/element.module.ts","./src/app/backoffice/hrm/base-info/employment-kind/employment-kind-form/employment-kind-form.component.ts","./src/app/backoffice/hrm/base-info/employment-kind/employment-kind-form/employment-kind-form.component.html","./src/app/backoffice/hrm/base-info/employment-kind/employment-kind-list/employment-kind-list.component.ts","./src/app/backoffice/hrm/base-info/employment-kind/employment-kind-list/employment-kind-list.component.html","./src/app/backoffice/hrm/base-info/employment-kind/employment-kind.module.ts","./src/app/backoffice/hrm/base-info/hrm-bank-account/hrm-bank-account-form/hrm-bank-account-form.component.ts","./src/app/backoffice/hrm/base-info/hrm-bank-account/hrm-bank-account-form/hrm-bank-account-form.component.html","./src/app/backoffice/hrm/base-info/hrm-bank-account/hrm-bank-account-list/hrm-bank-account-list.component.ts","./src/app/backoffice/hrm/base-info/hrm-bank-account/hrm-bank-account-list/hrm-bank-account-list.component.html","./src/app/backoffice/hrm/base-info/hrm-bank-account/hrm-bank-account.module.ts","./src/app/backoffice/hrm/base-info/hrm-bank/hrm-bank-form/hrm-bank-form.component.ts","./src/app/backoffice/hrm/base-info/hrm-bank/hrm-bank-form/hrm-bank-form.component.html","./src/app/backoffice/hrm/base-info/hrm-bank/hrm-bank-list/hrm-bank-list.component.ts","./src/app/backoffice/hrm/base-info/hrm-bank/hrm-bank-list/hrm-bank-list.component.html","./src/app/backoffice/hrm/base-info/hrm-bank/hrm-bank.module.ts","./src/app/backoffice/hrm/base-info/hrm-map-report/hrm-map-report-form/hrm-map-report-form.component.ts","./src/app/backoffice/hrm/base-info/hrm-map-report/hrm-map-report-form/hrm-map-report-form.component.html","./src/app/backoffice/hrm/base-info/hrm-map-report/hrm-map-report-list/hrm-map-report-list.component.ts","./src/app/backoffice/hrm/base-info/hrm-map-report/hrm-map-report-list/hrm-map-report-list.component.html","./src/app/backoffice/hrm/base-info/hrm-map-report/hrm-map-report.module.ts","./src/app/backoffice/hrm/base-info/hrm-tax-table/hrm-tax-table-form/hrm-tax-table-form.component.ts","./src/app/backoffice/hrm/base-info/hrm-tax-table/hrm-tax-table-form/hrm-tax-table-form.component.html","./src/app/backoffice/hrm/base-info/hrm-tax-table/hrm-tax-table-list/hrm-tax-table-list.component.ts","./src/app/backoffice/hrm/base-info/hrm-tax-table/hrm-tax-table-list/hrm-tax-table-list.component.html","./src/app/backoffice/hrm/base-info/hrm-tax-table/hrm-tax-table.module.ts","./src/app/backoffice/hrm/base-info/hrm-work-calendar/hrm-work-calendar-form/hrm-work-calendar-form.component.ts","./src/app/backoffice/hrm/base-info/hrm-work-calendar/hrm-work-calendar-form/hrm-work-calendar-form.component.html","./src/app/backoffice/hrm/base-info/hrm-work-calendar/hrm-work-calendar-list/hrm-work-calendar-list.component.ts","./src/app/backoffice/hrm/base-info/hrm-work-calendar/hrm-work-calendar-list/hrm-work-calendar-list.component.html","./src/app/backoffice/hrm/base-info/hrm-work-calendar/hrm-work-calendar.module.ts","./src/app/backoffice/hrm/base-info/hrnotification-kind/hrnotification-kind-form/hrnotification-kind-form.component.ts","./src/app/backoffice/hrm/base-info/hrnotification-kind/hrnotification-kind-form/hrnotification-kind-form.component.html","./src/app/backoffice/hrm/base-info/hrnotification-kind/hrnotification-kind-list/hrnotification-kind-list.component.ts","./src/app/backoffice/hrm/base-info/hrnotification-kind/hrnotification-kind-list/hrnotification-kind-list.component.html","./src/app/backoffice/hrm/base-info/hrnotification-kind/hrnotification-kind.module.ts","./src/app/backoffice/hrm/base-info/job-classification/job-classification-form/job-classification-form.component.ts","./src/app/backoffice/hrm/base-info/job-classification/job-classification-form/job-classification-form.component.html","./src/app/backoffice/hrm/base-info/job-classification/job-classification-list/job-classification-list.component.ts","./src/app/backoffice/hrm/base-info/job-classification/job-classification-list/job-classification-list.component.html","./src/app/backoffice/hrm/base-info/job-classification/job-classification.module.ts","./src/app/backoffice/hrm/base-info/jobs/jobs-form/jobs-form.component.ts","./src/app/backoffice/hrm/base-info/jobs/jobs-form/jobs-form.component.html","./src/app/backoffice/hrm/base-info/jobs/jobs-list/jobs-list.component.ts","./src/app/backoffice/hrm/base-info/jobs/jobs-list/jobs-list.component.html","./src/app/backoffice/hrm/base-info/jobs/jobs.module.ts","./src/app/backoffice/hrm/base-info/organizational-posts/organizational-posts-form/organizational-posts-form.component.ts","./src/app/backoffice/hrm/base-info/organizational-posts/organizational-posts-form/organizational-posts-form.component.html","./src/app/backoffice/hrm/base-info/organizational-posts/organizational-posts-list/organizational-posts-list.component.ts","./src/app/backoffice/hrm/base-info/organizational-posts/organizational-posts-list/organizational-posts-list.component.html","./src/app/backoffice/hrm/base-info/organizational-posts/organizational-posts.module.ts","./src/app/backoffice/hrm/base-info/organizational-unit/organizational-unit-form/organizational-unit-form.component.ts","./src/app/backoffice/hrm/base-info/organizational-unit/organizational-unit-form/organizational-unit-form.component.html","./src/app/backoffice/hrm/base-info/organizational-unit/organizational-unit-list/organizational-unit-list.component.ts","./src/app/backoffice/hrm/base-info/organizational-unit/organizational-unit-list/organizational-unit-list.component.html","./src/app/backoffice/hrm/base-info/organizational-unit/organizational-unit.module.ts","./src/app/backoffice/hrm/base-info/pay-companies/pay-companies-form/pay-companies-form.component.ts","./src/app/backoffice/hrm/base-info/pay-companies/pay-companies-form/pay-companies-form.component.html","./src/app/backoffice/hrm/base-info/pay-companies/pay-companies-list/pay-companies-list.component.ts","./src/app/backoffice/hrm/base-info/pay-companies/pay-companies-list/pay-companies-list.component.html","./src/app/backoffice/hrm/base-info/pay-companies/pay-companies.module.ts","./src/app/backoffice/hrm/base-info/project/project-form/project-form.component.ts","./src/app/backoffice/hrm/base-info/project/project-form/project-form.component.html","./src/app/backoffice/hrm/base-info/project/project-list/project-list.component.ts","./src/app/backoffice/hrm/base-info/project/project-list/project-list.component.html","./src/app/backoffice/hrm/base-info/project/project.module.ts","./src/app/backoffice/hrm/base-info/work-hours-import-header/work-hours-import-header-form/work-hours-import-header-form.component.ts","./src/app/backoffice/hrm/base-info/work-hours-import-header/work-hours-import-header-form/work-hours-import-header-form.component.html","./src/app/backoffice/hrm/base-info/work-hours-import-header/work-hours-import-header-list/work-hours-import-header-list.component.ts","./src/app/backoffice/hrm/base-info/work-hours-import-header/work-hours-import-header-list/work-hours-import-header-list.component.html","./src/app/backoffice/hrm/base-info/work-hours-import-header/work-hours-import-header.module.ts","./src/app/backoffice/hrm/base-info/workplace/workplace-form/workplace-form.component.ts","./src/app/backoffice/hrm/base-info/workplace/workplace-form/workplace-form.component.html","./src/app/backoffice/hrm/base-info/workplace/workplace-list/workplace-list.component.ts","./src/app/backoffice/hrm/base-info/workplace/workplace-list/workplace-list.component.html","./src/app/backoffice/hrm/base-info/workplace/workplace.module.ts","./src/app/backoffice/hrm/change-pay-curent-year-month/change-pay-curent-year-month.component.ts","./src/app/backoffice/hrm/change-pay-curent-year-month/change-pay-curent-year-month.component.html","./src/app/backoffice/hrm/change-pay-curent-year-month/change-pay-curent-year-month.module.ts","./src/app/backoffice/hrm/finance-notification-header/finance-notification-header-form/finance-notification-header-form.component.ts","./src/app/backoffice/hrm/finance-notification-header/finance-notification-header-form/finance-notification-header-form.component.html","./src/app/backoffice/hrm/finance-notification-header/finance-notification-header-list/finance-notification-header-list.component.ts","./src/app/backoffice/hrm/finance-notification-header/finance-notification-header-list/finance-notification-header-list.component.html","./src/app/backoffice/hrm/finance-notification-header/finance-notification-header.module.ts","./src/app/backoffice/hrm/hrm-pay-curent-year-month/hrm-pay-curent-year-month.component.ts","./src/app/backoffice/hrm/hrm-pay-curent-year-month/hrm-pay-curent-year-month.component.html","./src/app/backoffice/hrm/hrm-pay-curent-year-month/hrm-pay-curent-year-month.module.ts","./src/app/backoffice/hrm/hrm-personnel-element-initial/hrm-personnel-element-initial.component.ts","./src/app/backoffice/hrm/hrm-personnel-element-initial/hrm-personnel-element-initial.component.html","./src/app/backoffice/hrm/hrm-personnel-element-initial/hrm-personnel-element-initial.module.ts","./src/app/backoffice/hrm/hrm-personnel/hrm-personnel-form/hrm-personnel-form.component.ts","./src/app/backoffice/hrm/hrm-personnel/hrm-personnel-form/hrm-personnel-form.component.html","./src/app/backoffice/hrm/hrm-personnel/hrm-personnel-list/hrm-personnel-list.component.ts","./src/app/backoffice/hrm/hrm-personnel/hrm-personnel-list/hrm-personnel-list.component.html","./src/app/backoffice/hrm/hrm-personnel/hrm-personnel.module.ts","./src/app/backoffice/hrm/hrnotification-header/hrnotification-header-form/hrnotification-header-form.component.ts","./src/app/backoffice/hrm/hrnotification-header/hrnotification-header-form/hrnotification-header-form.component.html","./src/app/backoffice/hrm/hrnotification-header/hrnotification-header-list/hrnotification-header-list.component.ts","./src/app/backoffice/hrm/hrnotification-header/hrnotification-header-list/hrnotification-header-list.component.html","./src/app/backoffice/hrm/hrnotification-header/hrnotification-header.module.ts","./src/app/backoffice/hrm/loan/hrm-loan-deduct-form/hrm-loan-deduct-form.component.ts","./src/app/backoffice/hrm/loan/hrm-loan-deduct-form/hrm-loan-deduct-form.component.html","./src/app/backoffice/hrm/loan/hrm-loan-edit-form/hrm-loan-edit-form.component.ts","./src/app/backoffice/hrm/loan/hrm-loan-edit-form/hrm-loan-edit-form.component.html","./src/app/backoffice/hrm/loan/hrm-loan-kind/hrm-loan-kind-form/hrm-loan-kind-form.component.ts","./src/app/backoffice/hrm/loan/hrm-loan-kind/hrm-loan-kind-form/hrm-loan-kind-form.component.html","./src/app/backoffice/hrm/loan/hrm-loan-kind/hrm-loan-kind-list/hrm-loan-kind-list.component.ts","./src/app/backoffice/hrm/loan/hrm-loan-kind/hrm-loan-kind-list/hrm-loan-kind-list.component.html","./src/app/backoffice/hrm/loan/hrm-loan-to-personnel-form/hrm-loan-to-personnel-form.component.ts","./src/app/backoffice/hrm/loan/hrm-loan-to-personnel-form/hrm-loan-to-personnel-form.component.html","./src/app/backoffice/hrm/loan/hrm-loan-to-personnel-list/hrm-loan-to-personnel-list.component.ts","./src/app/backoffice/hrm/loan/hrm-loan-to-personnel-list/hrm-loan-to-personnel-list.component.html","./src/app/backoffice/hrm/loan/hrm-loan-to-personnel.module.ts","./src/app/backoffice/hrm/models/enums/VacationBaseBuyKindEnum.ts","./src/app/backoffice/hrm/models/enums/effect-base.ts","./src/app/backoffice/hrm/models/enums/effect-on-effect-wrk.ts","./src/app/backoffice/hrm/models/enums/effect-statute-kind.ts","./src/app/backoffice/hrm/models/enums/effect-work-kind.ts","./src/app/backoffice/hrm/models/enums/element-group.ts","./src/app/backoffice/hrm/models/enums/element-kind.ts","./src/app/backoffice/hrm/models/enums/elemntshow-kind.ts","./src/app/backoffice/hrm/models/enums/loan-payment-kind.ts","./src/app/backoffice/hrm/models/enums/round-kind.ts","./src/app/backoffice/hrm/models/finance-notification-header.model.ts","./src/app/backoffice/hrm/models/hrm-loan-deduct.model.ts","./src/app/backoffice/hrm/models/hrm-loan-edit.model.ts","./src/app/backoffice/hrm/monthly-salary-calculation-information/establishment-the-reserve-of-years-of-service-form/establishment-the-reserve-of-years-of-service-form.component.ts","./src/app/backoffice/hrm/monthly-salary-calculation-information/establishment-the-reserve-of-years-of-service-form/establishment-the-reserve-of-years-of-service-form.component.html","./src/app/backoffice/hrm/monthly-salary-calculation-information/monthly-salary-calculation-information.module.ts","./src/app/backoffice/hrm/monthly-salary-calculation-information/monthly-salary-calculation-information/monthly-salary-calculation-information.component.ts","./src/app/backoffice/hrm/monthly-salary-calculation-information/monthly-salary-calculation-information/monthly-salary-calculation-information.component.html","./src/app/backoffice/hrm/monthly-salary-calculation-information/reward-payment-effect-work-form/reward-payment-effect-work-form.component.ts","./src/app/backoffice/hrm/monthly-salary-calculation-information/reward-payment-effect-work-form/reward-payment-effect-work-form.component.html","./src/app/backoffice/hrm/monthly-salary-calculation-information/vacation-buy-Information-form/vacation-buy-Information-form.component.ts","./src/app/backoffice/hrm/monthly-salary-calculation-information/vacation-buy-Information-form/vacation-buy-Information-form.component.html","./src/app/backoffice/hrm/monthly-work-information/monthly-work-information.module.ts","./src/app/backoffice/hrm/monthly-work-information/monthly-work-information/monthly-work-information.component.ts","./src/app/backoffice/hrm/monthly-work-information/monthly-work-information/monthly-work-information.component.html","./src/app/backoffice/hrm/payment-system/job-base/job-base-form/job-base-form.component.ts","./src/app/backoffice/hrm/payment-system/job-base/job-base-form/job-base-form.component.html","./src/app/backoffice/hrm/payment-system/job-base/job-base-list/job-base-list.component.ts","./src/app/backoffice/hrm/payment-system/job-base/job-base-list/job-base-list.component.html","./src/app/backoffice/hrm/payment-system/job-base/job-base.module.ts","./src/app/backoffice/hrm/payment-system/job-group/job-group-form/job-group-form.component.ts","./src/app/backoffice/hrm/payment-system/job-group/job-group-form/job-group-form.component.html","./src/app/backoffice/hrm/payment-system/job-group/job-group-list/job-group-list.component.ts","./src/app/backoffice/hrm/payment-system/job-group/job-group-list/job-group-list.component.html","./src/app/backoffice/hrm/payment-system/job-group/job-group.module.ts","./src/app/backoffice/hrm/payment-system/job-ranking/job-ranking-form/job-ranking-form.component.ts","./src/app/backoffice/hrm/payment-system/job-ranking/job-ranking-form/job-ranking-form.component.html","./src/app/backoffice/hrm/payment-system/job-ranking/job-ranking-list/job-ranking-list.component.ts","./src/app/backoffice/hrm/payment-system/job-ranking/job-ranking-list/job-ranking-list.component.html","./src/app/backoffice/hrm/payment-system/job-ranking/job-ranking.module.ts","./src/app/backoffice/hrm/reference-lists/academic-orientation/academic-orientation-form/academic-orientation-form.component.ts","./src/app/backoffice/hrm/reference-lists/academic-orientation/academic-orientation-form/academic-orientation-form.component.html","./src/app/backoffice/hrm/reference-lists/academic-orientation/academic-orientation-list/academic-orientation-list.component.ts","./src/app/backoffice/hrm/reference-lists/academic-orientation/academic-orientation-list/academic-orientation-list.component.html","./src/app/backoffice/hrm/reference-lists/academic-orientation/academic-orientation.module.ts","./src/app/backoffice/hrm/reference-lists/citizenship-kind/citizenship-kind-form/citizenship-kind-form.component.ts","./src/app/backoffice/hrm/reference-lists/citizenship-kind/citizenship-kind-form/citizenship-kind-form.component.html","./src/app/backoffice/hrm/reference-lists/citizenship-kind/citizenship-kind-list/citizenship-kind-list.component.ts","./src/app/backoffice/hrm/reference-lists/citizenship-kind/citizenship-kind-list/citizenship-kind-list.component.html","./src/app/backoffice/hrm/reference-lists/citizenship-kind/citizenship-kind.module.ts","./src/app/backoffice/hrm/reference-lists/course-title/course-title-form/course-title-form.component.ts","./src/app/backoffice/hrm/reference-lists/course-title/course-title-form/course-title-form.component.html","./src/app/backoffice/hrm/reference-lists/course-title/course-title-list/course-title-list.component.ts","./src/app/backoffice/hrm/reference-lists/course-title/course-title-list/course-title-list.component.html","./src/app/backoffice/hrm/reference-lists/course-title/course-title.module.ts","./src/app/backoffice/hrm/reference-lists/education-degree/education-degree-form/education-degree-form.component.ts","./src/app/backoffice/hrm/reference-lists/education-degree/education-degree-form/education-degree-form.component.html","./src/app/backoffice/hrm/reference-lists/education-degree/education-degree-list/education-degree-list.component.ts","./src/app/backoffice/hrm/reference-lists/education-degree/education-degree-list/education-degree-list.component.html","./src/app/backoffice/hrm/reference-lists/education-degree/education-degree.module.ts","./src/app/backoffice/hrm/reference-lists/faith-kind/faith-kind-form/faith-kind-form.component.ts","./src/app/backoffice/hrm/reference-lists/faith-kind/faith-kind-form/faith-kind-form.component.html","./src/app/backoffice/hrm/reference-lists/faith-kind/faith-kind-list/faith-kind-list.component.ts","./src/app/backoffice/hrm/reference-lists/faith-kind/faith-kind-list/faith-kind-list.component.html","./src/app/backoffice/hrm/reference-lists/faith-kind/faith-kind.module.ts","./src/app/backoffice/hrm/reference-lists/field-of-study/field-of-study-form/field-of-study-form.component.ts","./src/app/backoffice/hrm/reference-lists/field-of-study/field-of-study-form/field-of-study-form.component.html","./src/app/backoffice/hrm/reference-lists/field-of-study/field-of-study-list/field-of-study-list.component.ts","./src/app/backoffice/hrm/reference-lists/field-of-study/field-of-study-list/field-of-study-list.component.html","./src/app/backoffice/hrm/reference-lists/field-of-study/field-of-study.module.ts","./src/app/backoffice/hrm/reference-lists/fluency-in-language-conversation/fluency-in-language-conversation-form/fluency-in-language-conversation-form.component.ts","./src/app/backoffice/hrm/reference-lists/fluency-in-language-conversation/fluency-in-language-conversation-form/fluency-in-language-conversation-form.component.html","./src/app/backoffice/hrm/reference-lists/fluency-in-language-conversation/fluency-in-language-conversation-list/fluency-in-language-conversation-list.component.ts","./src/app/backoffice/hrm/reference-lists/fluency-in-language-conversation/fluency-in-language-conversation-list/fluency-in-language-conversation-list.component.html","./src/app/backoffice/hrm/reference-lists/fluency-in-language-conversation/fluency-in-language-conversation.module.ts","./src/app/backoffice/hrm/reference-lists/fluency-in-reading-the-language/fluency-in-reading-the-language-form/fluency-in-reading-the-language-form.component.ts","./src/app/backoffice/hrm/reference-lists/fluency-in-reading-the-language/fluency-in-reading-the-language-form/fluency-in-reading-the-language-form.component.html","./src/app/backoffice/hrm/reference-lists/fluency-in-reading-the-language/fluency-in-reading-the-language-list/fluency-in-reading-the-language-list.component.ts","./src/app/backoffice/hrm/reference-lists/fluency-in-reading-the-language/fluency-in-reading-the-language-list/fluency-in-reading-the-language-list.component.html","./src/app/backoffice/hrm/reference-lists/fluency-in-reading-the-language/fluency-in-reading-the-language.module.ts","./src/app/backoffice/hrm/reference-lists/language-kind/language-kind-form/language-kind-form.component.ts","./src/app/backoffice/hrm/reference-lists/language-kind/language-kind-form/language-kind-form.component.html","./src/app/backoffice/hrm/reference-lists/language-kind/language-kind-list/language-kind-list.component.ts","./src/app/backoffice/hrm/reference-lists/language-kind/language-kind-list/language-kind-list.component.html","./src/app/backoffice/hrm/reference-lists/language-kind/language-kind.module.ts","./src/app/backoffice/hrm/reference-lists/martyr-familay-kind/martyr-familay-kind-form/martyr-familay-kind-form.component.ts","./src/app/backoffice/hrm/reference-lists/martyr-familay-kind/martyr-familay-kind-form/martyr-familay-kind-form.component.html","./src/app/backoffice/hrm/reference-lists/martyr-familay-kind/martyr-familay-kind-list/martyr-familay-kind-list.component.ts","./src/app/backoffice/hrm/reference-lists/martyr-familay-kind/martyr-familay-kind-list/martyr-familay-kind-list.component.html","./src/app/backoffice/hrm/reference-lists/martyr-familay-kind/martyr-familay-kind.module.ts","./src/app/backoffice/hrm/reference-lists/nationality-kind/nationality-kind-form/nationality-kind-form.component.ts","./src/app/backoffice/hrm/reference-lists/nationality-kind/nationality-kind-form/nationality-kind-form.component.html","./src/app/backoffice/hrm/reference-lists/nationality-kind/nationality-kind-list/nationality-kind-list.component.ts","./src/app/backoffice/hrm/reference-lists/nationality-kind/nationality-kind-list/nationality-kind-list.component.html","./src/app/backoffice/hrm/reference-lists/nationality-kind/nationality-kind.module.ts","./src/app/backoffice/hrm/reference-lists/proficiency-in-writing/proficiency-in-writing-form/proficiency-in-writing-form.component.ts","./src/app/backoffice/hrm/reference-lists/proficiency-in-writing/proficiency-in-writing-form/proficiency-in-writing-form.component.html","./src/app/backoffice/hrm/reference-lists/proficiency-in-writing/proficiency-in-writing-list/proficiency-in-writing-list.component.ts","./src/app/backoffice/hrm/reference-lists/proficiency-in-writing/proficiency-in-writing-list/proficiency-in-writing-list.component.html","./src/app/backoffice/hrm/reference-lists/proficiency-in-writing/proficiency-in-writing.module.ts","./src/app/backoffice/hrm/reference-lists/reason-for-dismissal/reason-for-dismissal-form/reason-for-dismissal-form.component.ts","./src/app/backoffice/hrm/reference-lists/reason-for-dismissal/reason-for-dismissal-form/reason-for-dismissal-form.component.html","./src/app/backoffice/hrm/reference-lists/reason-for-dismissal/reason-for-dismissal-list/reason-for-dismissal-list.component.ts","./src/app/backoffice/hrm/reference-lists/reason-for-dismissal/reason-for-dismissal-list/reason-for-dismissal-list.component.html","./src/app/backoffice/hrm/reference-lists/reason-for-dismissal/reason-for-dismissal.module.ts","./src/app/backoffice/hrm/reference-lists/religion-kind/religion-kind-form/religion-kind-form.component.ts","./src/app/backoffice/hrm/reference-lists/religion-kind/religion-kind-form/religion-kind-form.component.html","./src/app/backoffice/hrm/reference-lists/religion-kind/religion-kind-list/religion-kind-list.component.ts","./src/app/backoffice/hrm/reference-lists/religion-kind/religion-kind-list/religion-kind-list.component.html","./src/app/backoffice/hrm/reference-lists/religion-kind/religion-kind.module.ts","./src/app/backoffice/hrm/reference-lists/retirement-kind/retirement-kind-form/retirement-kind-form.component.ts","./src/app/backoffice/hrm/reference-lists/retirement-kind/retirement-kind-form/retirement-kind-form.component.html","./src/app/backoffice/hrm/reference-lists/retirement-kind/retirement-kind-list/retirement-kind-list.component.ts","./src/app/backoffice/hrm/reference-lists/retirement-kind/retirement-kind-list/retirement-kind-list.component.html","./src/app/backoffice/hrm/reference-lists/retirement-kind/retirement-kind.module.ts","./src/app/backoffice/hrm/reference-lists/tax-group/tax-group-form/tax-group-form.component.ts","./src/app/backoffice/hrm/reference-lists/tax-group/tax-group-form/tax-group-form.component.html","./src/app/backoffice/hrm/reference-lists/tax-group/tax-group-list/tax-group-list.component.ts","./src/app/backoffice/hrm/reference-lists/tax-group/tax-group-list/tax-group-list.component.html","./src/app/backoffice/hrm/reference-lists/tax-group/tax-group.module.ts","./src/app/backoffice/hrm/reference-lists/veteran-work-shift-kind/veteran-work-shift-kind-form/veteran-work-shift-kind-form.component.ts","./src/app/backoffice/hrm/reference-lists/veteran-work-shift-kind/veteran-work-shift-kind-form/veteran-work-shift-kind-form.component.html","./src/app/backoffice/hrm/reference-lists/veteran-work-shift-kind/veteran-work-shift-kind-list/veteran-work-shift-kind-list.component.ts","./src/app/backoffice/hrm/reference-lists/veteran-work-shift-kind/veteran-work-shift-kind-list/veteran-work-shift-kind-list.component.html","./src/app/backoffice/hrm/reference-lists/veteran-work-shift-kind/veteran-work-shift-kind.module.ts","./src/app/backoffice/hrm/report/bill-pay-report.module.ts","./src/app/backoffice/hrm/report/bill-pay-report/bill-pay-report.component.ts","./src/app/backoffice/hrm/report/bill-pay-report/bill-pay-report.component.html","./src/app/backoffice/hrm/report/hrm-disk-format/hrm-disk-format-export/hrm-disk-format-export.component.ts","./src/app/backoffice/hrm/report/hrm-disk-format/hrm-disk-format-export/hrm-disk-format-export.component.html","./src/app/backoffice/hrm/report/hrm-disk-format/hrm-disk-format-form/hrm-disk-format-form.component.ts","./src/app/backoffice/hrm/report/hrm-disk-format/hrm-disk-format-form/hrm-disk-format-form.component.html","./src/app/backoffice/hrm/report/hrm-disk-format/hrm-disk-format-list/hrm-disk-format-list.component.ts","./src/app/backoffice/hrm/report/hrm-disk-format/hrm-disk-format-list/hrm-disk-format-list.component.html","./src/app/backoffice/hrm/report/hrm-disk-format/hrm-disk-format.module.ts","./src/app/backoffice/hrm/report/hrm-disk-format/hrm-disk-item-format/hrm-disk-item-format.component.ts","./src/app/backoffice/hrm/report/hrm-disk-format/hrm-disk-item-format/hrm-disk-item-format.component.html","./src/app/backoffice/hrm/report/hrm-disk-format/hrm-disk-item-format/hrm-disk-item-formula/hrm-disk-item-formula.component.ts","./src/app/backoffice/hrm/report/hrm-disk-format/hrm-disk-item-format/hrm-disk-item-formula/hrm-disk-item-formula.component.html","./src/app/backoffice/hrm/report/hrm-insurance-disk/hrm-insurance-disk.component.ts","./src/app/backoffice/hrm/report/hrm-insurance-disk/hrm-insurance-disk.component.html","./src/app/backoffice/hrm/report/hrm-insurance-report/hrm-insurance-report.component.ts","./src/app/backoffice/hrm/report/hrm-insurance-report/hrm-insurance-report.component.html","./src/app/backoffice/hrm/report/hrm-review/hrm-review.component.ts","./src/app/backoffice/hrm/report/hrm-review/hrm-review.component.html","./src/app/backoffice/hrm/report/hrm-review/hrm-review.module.ts","./src/app/backoffice/hrm/report/hrm-tax-report/hrm-tax-report.component.ts","./src/app/backoffice/hrm/report/hrm-tax-report/hrm-tax-report.component.html","./src/app/backoffice/hrm/report/pay-mvpers-report/pay-mvpers-report.component.ts","./src/app/backoffice/hrm/report/pay-mvpers-report/pay-mvpers-report.component.html","./src/app/backoffice/inv/goods-group/goods-group-form/goods-group-form.component.ts","./src/app/backoffice/inv/goods-group/goods-group-form/goods-group-form.component.html","./src/app/backoffice/inv/goods-group/goods-group-import-export/goods-group-import-export-form.component.ts","./src/app/backoffice/inv/goods-group/goods-group-import-export/goods-group-import-export-form.component.html","./src/app/backoffice/inv/goods-group/goods-group-list/goods-group-list.component.ts","./src/app/backoffice/inv/goods-group/goods-group-list/goods-group-list.component.html","./src/app/backoffice/inv/goods-group/goods-group.module.ts","./src/app/backoffice/inv/goods/goods-form/goods-form.component.ts","./src/app/backoffice/inv/goods/goods-form/goods-form.component.html","./src/app/backoffice/inv/goods/goods-formula/goods-formula-form/goods-formula-form.component.ts","./src/app/backoffice/inv/goods/goods-formula/goods-formula-form/goods-formula-form.component.html","./src/app/backoffice/inv/goods/goods-formula/goods-formula-view-form/goods-formula-view-form.component.ts","./src/app/backoffice/inv/goods/goods-formula/goods-formula-view-form/goods-formula-view-form.component.html","./src/app/backoffice/inv/goods/goods-formula/goods-formula.component.ts","./src/app/backoffice/inv/goods/goods-formula/goods-formula.component.html","./src/app/backoffice/inv/goods/goods-formula/goods-similar/goods-similar-form.component.ts","./src/app/backoffice/inv/goods/goods-formula/goods-similar/goods-similar-form.component.html","./src/app/backoffice/inv/goods/goods-import-excel/goods-import-excel-form.component.ts","./src/app/backoffice/inv/goods/goods-import-excel/goods-import-excel-form.component.html","./src/app/backoffice/inv/goods/goods-import-export/goods-import-export-form.component.ts","./src/app/backoffice/inv/goods/goods-import-export/goods-import-export-form.component.html","./src/app/backoffice/inv/goods/goods-list/goods-list.component.ts","./src/app/backoffice/inv/goods/goods-list/goods-list.component.html","./src/app/backoffice/inv/goods/goods.module.ts","./src/app/backoffice/inv/inv-balance/inv-balance-form/inv-balance-form.component.ts","./src/app/backoffice/inv/inv-balance/inv-balance-form/inv-balance-form.component.html","./src/app/backoffice/inv/inv-balance/inv-balance-list/inv-balance-list.component.ts","./src/app/backoffice/inv/inv-balance/inv-balance-list/inv-balance-list.component.html","./src/app/backoffice/inv/inv-balance/inv-balance.module.ts","./src/app/backoffice/inv/inv-voucher-kind/inv-voucher-kind-form/inv-voucher-kind-form.component.ts","./src/app/backoffice/inv/inv-voucher-kind/inv-voucher-kind-form/inv-voucher-kind-form.component.html","./src/app/backoffice/inv/inv-voucher-kind/inv-voucher-kind-import-export/inv-voucher-kind-import-export-form.component.ts","./src/app/backoffice/inv/inv-voucher-kind/inv-voucher-kind-import-export/inv-voucher-kind-import-export-form.component.html","./src/app/backoffice/inv/inv-voucher-kind/inv-voucher-kind-list/inv-voucher-kind-list.component.ts","./src/app/backoffice/inv/inv-voucher-kind/inv-voucher-kind-list/inv-voucher-kind-list.component.html","./src/app/backoffice/inv/inv-voucher-kind/inv-voucher-kind.module.ts","./src/app/backoffice/inv/inv-voucher-pricing/inv-voucher-pricing-form/inv-voucher-pricing-form.component.ts","./src/app/backoffice/inv/inv-voucher-pricing/inv-voucher-pricing-form/inv-voucher-pricing-form.component.html","./src/app/backoffice/inv/inv-voucher-pricing/inv-voucher-pricing-list/inv-voucher-pricing-list.component.ts","./src/app/backoffice/inv/inv-voucher-pricing/inv-voucher-pricing-list/inv-voucher-pricing-list.component.html","./src/app/backoffice/inv/inv-voucher-pricing/inv-voucher-pricing.module.ts","./src/app/backoffice/inv/inventory-closing/inventory-closing-form/inventory-closing-form.component.ts","./src/app/backoffice/inv/inventory-closing/inventory-closing-form/inventory-closing-form.component.html","./src/app/backoffice/inv/inventory-closing/inventory-closing-list/inventory-closing-list.component.ts","./src/app/backoffice/inv/inventory-closing/inventory-closing-list/inventory-closing-list.component.html","./src/app/backoffice/inv/inventory-closing/inventory-closing.module.ts","./src/app/backoffice/inv/invvoucher/inv-subledger-detailLedger/inv-subledger-detailLedger-form.component.ts","./src/app/backoffice/inv/invvoucher/inv-subledger-detailLedger/inv-subledger-detailLedger-form.component.html","./src/app/backoffice/inv/invvoucher/inv-voucher-detail-filter/inv-voucher-detail-filter.component.ts","./src/app/backoffice/inv/invvoucher/inv-voucher-detail-filter/inv-voucher-detail-filter.component.html","./src/app/backoffice/inv/invvoucher/inv-voucher-header-import-excel/inv-voucher-header-import-excel-form.component.ts","./src/app/backoffice/inv/invvoucher/inv-voucher-header-import-excel/inv-voucher-header-import-excel-form.component.html","./src/app/backoffice/inv/invvoucher/inv-voucher-modal-list/inv-voucher-modal-list.component.ts","./src/app/backoffice/inv/invvoucher/inv-voucher-modal-list/inv-voucher-modal-list.component.html","./src/app/backoffice/inv/invvoucher/invvoucher-detail/invvoucher-detail.component.ts","./src/app/backoffice/inv/invvoucher/invvoucher-detail/invvoucher-detail.component.html","./src/app/backoffice/inv/invvoucher/invvoucher-form/invvoucher-form.component.ts","./src/app/backoffice/inv/invvoucher/invvoucher-form/invvoucher-form.component.html","./src/app/backoffice/inv/invvoucher/invvoucher-list/invvoucher-list.component.ts","./src/app/backoffice/inv/invvoucher/invvoucher-list/invvoucher-list.component.html","./src/app/backoffice/inv/invvoucher/invvoucher.module.ts","./src/app/backoffice/inv/invvoucher/reference-voucher-list/reference-voucher-list.component.ts","./src/app/backoffice/inv/invvoucher/reference-voucher-list/reference-voucher-list.component.html","./src/app/backoffice/inv/models/Taking-Of-Inventory-Header.model.ts","./src/app/backoffice/inv/models/form-operation-kind.enums.ts","./src/app/backoffice/inv/models/goods-formula-detail.model.ts","./src/app/backoffice/inv/models/goods.model.ts","./src/app/backoffice/inv/models/inv-voucher-kind.model.ts","./src/app/backoffice/inv/models/reference-voucher-byvoucher-kind-filter-info.model.ts","./src/app/backoffice/inv/product-conversion/product-conversion-form/product-conversion-form/product-conversion-form.component.ts","./src/app/backoffice/inv/product-conversion/product-conversion-form/product-conversion-form/product-conversion-form.component.html","./src/app/backoffice/inv/product-conversion/product-conversion-form/product-conversion-list/product-conversion-list.component.ts","./src/app/backoffice/inv/product-conversion/product-conversion-form/product-conversion-list/product-conversion-list.component.html","./src/app/backoffice/inv/product-conversion/product-conversion-standard-form/product-conversion-standard-form/product-conversion-standard-form.component.ts","./src/app/backoffice/inv/product-conversion/product-conversion-standard-form/product-conversion-standard-form/product-conversion-standard-form.component.html","./src/app/backoffice/inv/product-conversion/product-conversion-standard-form/product-conversion-standard-list/product-conversion-standard-list.component.ts","./src/app/backoffice/inv/product-conversion/product-conversion-standard-form/product-conversion-standard-list/product-conversion-standard-list.component.html","./src/app/backoffice/inv/product-conversion/product-conversion.module.ts","./src/app/backoffice/inv/received-from-rahkaran/received-from-rahkaran-form.component.ts","./src/app/backoffice/inv/received-from-rahkaran/received-from-rahkaran-form.component.html","./src/app/backoffice/inv/report/Inventory-report.module.ts","./src/app/backoffice/inv/report/average-goods-report-compare/average-goods-report-compare.component.ts","./src/app/backoffice/inv/report/average-goods-report-compare/average-goods-report-compare.component.html","./src/app/backoffice/inv/report/average-goods-report/average-goods-report.component.ts","./src/app/backoffice/inv/report/average-goods-report/average-goods-report.component.html","./src/app/backoffice/inv/report/circulation-of-goods-report/circulation-of-goods-report.component.ts","./src/app/backoffice/inv/report/circulation-of-goods-report/circulation-of-goods-report.component.html","./src/app/backoffice/inv/report/cost-price-of-manufactured-products-report/cost-price-of-manufactured-products-report.component.ts","./src/app/backoffice/inv/report/cost-price-of-manufactured-products-report/cost-price-of-manufactured-products-report.component.html","./src/app/backoffice/inv/report/finished-price-of-products-before-sale-report/finished-price-of-products-before-sale-report.component.ts","./src/app/backoffice/inv/report/finished-price-of-products-before-sale-report/finished-price-of-products-before-sale-report.component.html","./src/app/backoffice/inv/report/general-monthly-food-cost-report/general-monthly-food-cost-report.component.ts","./src/app/backoffice/inv/report/general-monthly-food-cost-report/general-monthly-food-cost-report.component.html","./src/app/backoffice/inv/report/inv-no-reference-voucher/inv-no-reference-voucher-form.component.ts","./src/app/backoffice/inv/report/inv-no-reference-voucher/inv-no-reference-voucher-form.component.html","./src/app/backoffice/inv/report/inv-no-reference-voucher/inv-no-reference-voucher.module.ts","./src/app/backoffice/inv/report/inventory-review/inventory-review.component.ts","./src/app/backoffice/inv/report/inventory-review/inventory-review.component.html","./src/app/backoffice/inv/report/inventory-review/inventory-review.module.ts","./src/app/backoffice/inv/report/material-use-in-product-report/material-use-in-product-report.component.ts","./src/app/backoffice/inv/report/material-use-in-product-report/material-use-in-product-report.component.html","./src/app/backoffice/inv/report/negative-remain-of-goods-daly-report/negative-remain-of-goods-daly-report.component.ts","./src/app/backoffice/inv/report/negative-remain-of-goods-daly-report/negative-remain-of-goods-daly-report.component.html","./src/app/backoffice/inv/report/new-daily-purchase-invoice-Report/new-daily-purchase-invoice-Report.component.ts","./src/app/backoffice/inv/report/new-daily-purchase-invoice-Report/new-daily-purchase-invoice-report.component.html","./src/app/backoffice/inv/report/price-change-in-purchase-report/price-change-in-purchase-report.component.ts","./src/app/backoffice/inv/report/price-change-in-purchase-report/price-change-in-purchase-report.component.html","./src/app/backoffice/inv/report/purchase-invoice-report/purchase-invoice-report.component.ts","./src/app/backoffice/inv/report/purchase-invoice-report/purchase-invoice-report.component.html","./src/app/backoffice/inv/report/purchase-report-with-tax/purchase-report-with-tax.component.ts","./src/app/backoffice/inv/report/purchase-report-with-tax/purchase-report-with-tax.component.html","./src/app/backoffice/inv/report/warehouse-goods-report/warehouse-goods-report.component.ts","./src/app/backoffice/inv/report/warehouse-goods-report/warehouse-goods-report.component.html","./src/app/backoffice/inv/report/warehouse-goods-report/warehouse-goods-report.module.ts","./src/app/backoffice/inv/taking-of-inventory/taking-of-inventory-form/taking-of-inventory-form.component.ts","./src/app/backoffice/inv/taking-of-inventory/taking-of-inventory-form/taking-of-inventory-form.component.html","./src/app/backoffice/inv/taking-of-inventory/taking-of-inventory-list/taking-of-inventory-list.component.ts","./src/app/backoffice/inv/taking-of-inventory/taking-of-inventory-list/taking-of-inventory-list.component.html","./src/app/backoffice/inv/taking-of-inventory/taking-of-inventory.module.ts","./src/app/backoffice/inv/unit/unit-form/unit-form.component.ts","./src/app/backoffice/inv/unit/unit-form/unit-form.component.html","./src/app/backoffice/inv/unit/unit-import-excel/unit-import-excel-form.component.ts","./src/app/backoffice/inv/unit/unit-import-excel/unit-import-excel-form.component.html","./src/app/backoffice/inv/unit/unit-list/unit-list.component.ts","./src/app/backoffice/inv/unit/unit-list/unit-list.component.html","./src/app/backoffice/inv/unit/unit.module.ts","./src/app/backoffice/inv/warehouse/warehouse-form/warehouse-form.component.ts","./src/app/backoffice/inv/warehouse/warehouse-form/warehouse-form.component.html","./src/app/backoffice/inv/warehouse/warehouse-list/warehouse-list.component.ts","./src/app/backoffice/inv/warehouse/warehouse-list/warehouse-list.component.html","./src/app/backoffice/inv/warehouse/warehouse.module.ts","./src/app/backoffice/sell/debtor-creditor-notices-header/debtor-creditor-notices-header-form/debtor-creditor-notices-header-form.component.ts","./src/app/backoffice/sell/debtor-creditor-notices-header/debtor-creditor-notices-header-form/debtor-creditor-notices-header-form.component.html","./src/app/backoffice/sell/debtor-creditor-notices-header/debtor-creditor-notices-header-list/debtor-creditor-notices-header-list.component.ts","./src/app/backoffice/sell/debtor-creditor-notices-header/debtor-creditor-notices-header-list/debtor-creditor-notices-header-list.component.html","./src/app/backoffice/sell/debtor-creditor-notices-header/debtor-creditor-notices-header.module.ts","./src/app/backoffice/sell/models/credit-function-kind.enums.ts","./src/app/backoffice/sell/price-list-header/price-list-header-form/price-list-header-form.component.ts","./src/app/backoffice/sell/price-list-header/price-list-header-form/price-list-header-form.component.html","./src/app/backoffice/sell/price-list-header/price-list-header-list/price-list-header-list.component.ts","./src/app/backoffice/sell/price-list-header/price-list-header-list/price-list-header-list.component.html","./src/app/backoffice/sell/price-list-header/price-list-header.module.ts","./src/app/backoffice/sell/report/sell-customer-review/sell-customer-review.component.ts","./src/app/backoffice/sell/report/sell-customer-review/sell-customer-review.component.html","./src/app/backoffice/sell/report/sell-customer-review/sell-customer-review.module.ts","./src/app/backoffice/sell/sell-customer-group/sell-customer-group-form/sell-customer-group-form.component.ts","./src/app/backoffice/sell/sell-customer-group/sell-customer-group-form/sell-customer-group-form.component.html","./src/app/backoffice/sell/sell-customer-group/sell-customer-group-list/sell-customer-group-list.component.ts","./src/app/backoffice/sell/sell-customer-group/sell-customer-group-list/sell-customer-group-list.component.html","./src/app/backoffice/sell/sell-customer-group/sell-customer-group.module.ts","./src/app/backoffice/sell/sell-customer/sell-customer-form/sell-customer-form.component.ts","./src/app/backoffice/sell/sell-customer/sell-customer-form/sell-customer-form.component.html","./src/app/backoffice/sell/sell-customer/sell-customer-list/sell-customer-list.component.ts","./src/app/backoffice/sell/sell-customer/sell-customer-list/sell-customer-list.component.html","./src/app/backoffice/sell/sell-customer/sell-customer.module.ts","./src/app/backoffice/sell/sell-kind/sell-kind-form/sell-kind-form.component.ts","./src/app/backoffice/sell/sell-kind/sell-kind-form/sell-kind-form.component.html","./src/app/backoffice/sell/sell-kind/sell-kind-list/sell-kind-list.component.ts","./src/app/backoffice/sell/sell-kind/sell-kind-list/sell-kind-list.component.html","./src/app/backoffice/sell/sell-kind/sell-kind.module.ts","./src/app/backoffice/sell/sell-voucher-kind/sell-voucher-kind-list/sell-voucher-kind-list.component.ts","./src/app/backoffice/sell/sell-voucher-kind/sell-voucher-kind-list/sell-voucher-kind-list.component.html","./src/app/backoffice/sell/sell-voucher-kind/sell-voucher-kind.module.ts","./src/app/backoffice/sell/sell-voucher/sell-voucher-detail/sell-voucher-detail.component.ts","./src/app/backoffice/sell/sell-voucher/sell-voucher-detail/sell-voucher-detail.component.html","./src/app/backoffice/sell/sell-voucher/sell-voucher-form/sell-voucher-form.component.ts","./src/app/backoffice/sell/sell-voucher/sell-voucher-form/sell-voucher-form.component.html","./src/app/backoffice/sell/sell-voucher/sell-voucher-header-import-excel/sell-voucher-header-import-excel-form.component.ts","./src/app/backoffice/sell/sell-voucher/sell-voucher-header-import-excel/Sell-voucher-header-import-excel-form.component.html","./src/app/backoffice/sell/sell-voucher/sell-voucher-list/sell-voucher-list.component.ts","./src/app/backoffice/sell/sell-voucher/sell-voucher-list/sell-voucher-list.component.html","./src/app/backoffice/sell/sell-voucher/sell-voucher-modal-list/sell-voucher-modal-list.component.ts","./src/app/backoffice/sell/sell-voucher/sell-voucher-modal-list/sell-voucher-modal-list.component.html","./src/app/backoffice/sell/sell-voucher/sell-voucher.module.ts","./src/app/backoffice/trs/bank-account/bank-account-form/bank-account-form.component.ts","./src/app/backoffice/trs/bank-account/bank-account-form/bank-account-form.component.html","./src/app/backoffice/trs/bank-account/bank-account-list/bank-account-list.component.ts","./src/app/backoffice/trs/bank-account/bank-account-list/bank-account-list.component.html","./src/app/backoffice/trs/bank-account/bank-account.module.ts","./src/app/backoffice/trs/bank-branch/bank-branch-form/bank-branch-form.component.ts","./src/app/backoffice/trs/bank-branch/bank-branch-form/bank-branch-form.component.html","./src/app/backoffice/trs/bank-branch/bank-branch-list/bank-branch-list.component.ts","./src/app/backoffice/trs/bank-branch/bank-branch-list/bank-branch-list.component.html","./src/app/backoffice/trs/bank-branch/bank-branch.module.ts","./src/app/backoffice/trs/bank/bank-form/bank-form.component.ts","./src/app/backoffice/trs/bank/bank-form/bank-form.component.html","./src/app/backoffice/trs/bank/bank-list/bank-list.component.ts","./src/app/backoffice/trs/bank/bank-list/bank-list.component.html","./src/app/backoffice/trs/bank/bank.module.ts","./src/app/backoffice/trs/cash/cash-form/cash-form.component.ts","./src/app/backoffice/trs/cash/cash-form/cash-form.component.html","./src/app/backoffice/trs/cash/cash-list/cash-list.component.ts","./src/app/backoffice/trs/cash/cash-list/cash-list.component.html","./src/app/backoffice/trs/cash/cash.module.ts","./src/app/backoffice/trs/cheque-book/cheque-book-form/cheque-book-form.component.ts","./src/app/backoffice/trs/cheque-book/cheque-book-form/cheque-book-form.component.html","./src/app/backoffice/trs/cheque-book/cheque-book-list/cheque-book-list.component.ts","./src/app/backoffice/trs/cheque-book/cheque-book-list/cheque-book-list.component.html","./src/app/backoffice/trs/cheque-book/cheque-book.module.ts","./src/app/backoffice/trs/models/tresury.enums.ts","./src/app/backoffice/trs/models/trs-reference-voucher-byvoucher-kindfilterinfo.ts","./src/app/backoffice/trs/models/trs-voucher-kind.model.ts","./src/app/backoffice/trs/report/check-book/check-book.component.ts","./src/app/backoffice/trs/report/check-book/check-book.component.html","./src/app/backoffice/trs/report/treasury-review/treasury-review.component.ts","./src/app/backoffice/trs/report/treasury-review/treasury-review.component.html","./src/app/backoffice/trs/report/treasury-review/treasury-review.module.ts","./src/app/backoffice/trs/trs-concern/trs-concern-form/trs-concern-form.component.ts","./src/app/backoffice/trs/trs-concern/trs-concern-form/trs-concern-form.component.html","./src/app/backoffice/trs/trs-concern/trs-concern-import-excel/trs-concern-import-excel-form.component.ts","./src/app/backoffice/trs/trs-concern/trs-concern-import-excel/trs-concern-import-excel-form.component.html","./src/app/backoffice/trs/trs-concern/trs-concern-list/trs-concern-list.component.ts","./src/app/backoffice/trs/trs-concern/trs-concern-list/trs-concern-list.component.html","./src/app/backoffice/trs/trs-concern/trs-concern.module.ts","./src/app/backoffice/trs/trs-voucher-kind/trs-voucher-kind-form/trs-voucher-kind-form.component.ts","./src/app/backoffice/trs/trs-voucher-kind/trs-voucher-kind-form/trs-voucher-kind-form.component.html","./src/app/backoffice/trs/trs-voucher-kind/trs-voucher-kind-import-export/trs-voucher-kind-import-export-form.component.ts","./src/app/backoffice/trs/trs-voucher-kind/trs-voucher-kind-import-export/trs-voucher-kind-import-export-form.component.html","./src/app/backoffice/trs/trs-voucher-kind/trs-voucher-kind-list/trs-voucher-kind-list.component.ts","./src/app/backoffice/trs/trs-voucher-kind/trs-voucher-kind-list/trs-voucher-kind-list.component.html","./src/app/backoffice/trs/trs-voucher-kind/trs-voucher-kind.module.ts","./src/app/backoffice/trs/trs-voucher/cheque-book-info/cheque-book-info-form.component.ts","./src/app/backoffice/trs/trs-voucher/cheque-book-info/cheque-book-info-form.component.html","./src/app/backoffice/trs/trs-voucher/trs-reference-voucher-list/trs-reference-voucher-list.component.ts","./src/app/backoffice/trs/trs-voucher/trs-reference-voucher-list/trs-reference-voucher-list.component.html","./src/app/backoffice/trs/trs-voucher/trs-voucher-detail-filter/trs-voucher-detail-filter.component.ts","./src/app/backoffice/trs/trs-voucher/trs-voucher-detail-filter/trs-voucher-detail-filter.component.html","./src/app/backoffice/trs/trs-voucher/trs-voucher-detail/trs-voucher-detail.component.ts","./src/app/backoffice/trs/trs-voucher/trs-voucher-detail/trs-voucher-detail.component.html","./src/app/backoffice/trs/trs-voucher/trs-voucher-form/trs-voucher-form.component.ts","./src/app/backoffice/trs/trs-voucher/trs-voucher-form/trs-voucher-form.component.html","./src/app/backoffice/trs/trs-voucher/trs-voucher-list/trs-voucher-list.component.ts","./src/app/backoffice/trs/trs-voucher/trs-voucher-list/trs-voucher-list.component.html","./src/app/backoffice/trs/trs-voucher/trs-voucher-modal-list/trs-voucher-modal-list.component.ts","./src/app/backoffice/trs/trs-voucher/trs-voucher-modal-list/trs-voucher-modal-list.component.html","./src/app/backoffice/trs/trs-voucher/trs-voucher.module.ts","./src/app/frontoffice/TaxPayerSystem/TaxPayerSystem-from/TaxPayerSystem.component.ts","./src/app/frontoffice/TaxPayerSystem/TaxPayerSystem-from/TaxPayerSystem.component.html","./src/app/frontoffice/TaxPayerSystem/TaxPayerSystem-list/TaxPayerSystem-list.component.ts","./src/app/frontoffice/TaxPayerSystem/TaxPayerSystem-list/TaxPayerSystem-list.component.html","./src/app/frontoffice/TaxPayerSystem/TaxPayerSystem.module.ts","./src/app/frontoffice/catalog/additive-form/additive-form.component.ts","./src/app/frontoffice/catalog/additive-form/additive-form.component.html","./src/app/frontoffice/catalog/additive-list/additive-list.component.ts","./src/app/frontoffice/catalog/additive-list/additive-list.component.html","./src/app/frontoffice/catalog/catalog.module.ts","./src/app/frontoffice/catalog/description-form/description-form.component.ts","./src/app/frontoffice/catalog/description-form/description-form.component.html","./src/app/frontoffice/catalog/description-list/description-list.component.ts","./src/app/frontoffice/catalog/description-list/description-list.component.html","./src/app/frontoffice/catalog/item-category-form/item-category-form.component.ts","./src/app/frontoffice/catalog/item-category-form/item-category-form.component.html","./src/app/frontoffice/catalog/item-category-form/item-category-select-form/item-category-select-form.component.ts","./src/app/frontoffice/catalog/item-category-form/item-category-select-form/item-category-select-form.component.html","./src/app/frontoffice/catalog/item-category-list/item-category-list.component.ts","./src/app/frontoffice/catalog/item-category-list/item-category-list.component.html","./src/app/frontoffice/catalog/item-form/item-form.component.ts","./src/app/frontoffice/catalog/item-form/item-form.component.html","./src/app/frontoffice/catalog/item-list/item-list.component.ts","./src/app/frontoffice/catalog/item-list/item-list.component.html","./src/app/frontoffice/catalog/item-price-change/item-price-change-form/item-price-change-form.component.ts","./src/app/frontoffice/catalog/item-price-change/item-price-change-form/item-price-change-form.component.html","./src/app/frontoffice/catalog/item-price-change/item-price-change-list/item-price-change-list.component.ts","./src/app/frontoffice/catalog/item-price-change/item-price-change-list/item-price-change-list.component.html","./src/app/frontoffice/catalog/item-price-change/item-price.enum.ts","./src/app/frontoffice/catalog/measurement-unit-form/measurement-unit-form.component.ts","./src/app/frontoffice/catalog/measurement-unit-form/measurement-unit-form.component.html","./src/app/frontoffice/catalog/measurement-unit-list/measurement-unit-list.component.ts","./src/app/frontoffice/catalog/measurement-unit-list/measurement-unit-list.component.html","./src/app/frontoffice/catalog/model/deposit.enum.ts","./src/app/frontoffice/catalog/model/deposit.model.ts","./src/app/frontoffice/catalog/model/item-category.model.ts","./src/app/frontoffice/catalog/model/item-price-change.model.ts","./src/app/frontoffice/catalog/model/item.model.ts","./src/app/frontoffice/catalog/sale-price-type-form/sale-price-type-form.component.ts","./src/app/frontoffice/catalog/sale-price-type-form/sale-price-type-form.component.html","./src/app/frontoffice/catalog/sale-price-type-list/sale-price-type-list.component.ts","./src/app/frontoffice/catalog/sale-price-type-list/sale-price-type-list.component.html","./src/app/frontoffice/cost/cost.module.ts","./src/app/frontoffice/cost/cost/cost-form/cost-form.component.ts","./src/app/frontoffice/cost/cost/cost-form/cost-form.component.html","./src/app/frontoffice/cost/cost/cost-list/cost-list.component.ts","./src/app/frontoffice/cost/cost/cost-list/cost-list.component.html","./src/app/frontoffice/cost/costgroup/costgroup-form/costgroup-form.component.ts","./src/app/frontoffice/cost/costgroup/costgroup-form/costgroup-form.component.html","./src/app/frontoffice/cost/costgroup/costgroup-list/costgroup-list.component.ts","./src/app/frontoffice/cost/costgroup/costgroup-list/costgroup-list.component.html","./src/app/frontoffice/cost/model/costspent.model.ts","./src/app/frontoffice/cost/spentcost/costSpentSetting.ts","./src/app/frontoffice/cost/spentcost/costspent-form/costspent-form.component.ts","./src/app/frontoffice/cost/spentcost/costspent-form/costspent-form.component.html","./src/app/frontoffice/cost/spentcost/costspent-list/costspent-list.component.ts","./src/app/frontoffice/cost/spentcost/costspent-list/costspent-list.component.html","./src/app/frontoffice/cost/spentcost/costspentformsetting.model.ts","./src/app/frontoffice/cost/spentcost/costspentsetting-form/costspentsetting-form.component.ts","./src/app/frontoffice/cost/spentcost/costspentsetting-form/costspentsetting-form.component.html","./src/app/frontoffice/dateDialog/dateDialog.component.ts","./src/app/frontoffice/dateDialog/dateDialog.component.html","./src/app/frontoffice/driverassignment/DesceriptionAssignment/dynamic-input-form.component.ts","./src/app/frontoffice/driverassignment/DesceriptionAssignment/dynamic-input-form.component.html","./src/app/frontoffice/driverassignment/driver-notification.pipe.ts","./src/app/frontoffice/driverassignment/driverassignementsetting/driverassignementsetting-form.component.ts","./src/app/frontoffice/driverassignment/driverassignementsetting/driverassignementsetting-form.component.html","./src/app/frontoffice/driverassignment/driverassignment.component.ts","./src/app/frontoffice/driverassignment/driverassignment.component.html","./src/app/frontoffice/driverassignment/driverassignment.module.ts","./src/app/frontoffice/driverassignment/driverassignment.service.ts","./src/app/frontoffice/driverassignment/external-notification.model.ts","./src/app/frontoffice/driverassignment/settingment.ts","./src/app/frontoffice/financial/accounting-document/accounting-document-form-setting/accounting-document-form-setting.component.ts","./src/app/frontoffice/financial/accounting-document/accounting-document-form-setting/accounting-document-form-setting.component.html","./src/app/frontoffice/financial/accounting-document/accounting-document-form/accounting-document-form.component.ts","./src/app/frontoffice/financial/accounting-document/accounting-document-form/accounting-document-form.component.html","./src/app/frontoffice/financial/accounting-document/accounting-document-list/accounting-document-list.component.ts","./src/app/frontoffice/financial/accounting-document/accounting-document-list/accounting-document-list.component.html","./src/app/frontoffice/financial/accounting-document/accounting-document-setting-menu.component.ts","./src/app/frontoffice/financial/accounting-setting/accounting-setting-form/accounting-setting-form.component.ts","./src/app/frontoffice/financial/accounting-setting/accounting-setting-form/accounting-setting-form.component.html","./src/app/frontoffice/financial/accounting-setting/accounting-setting-list/accounting-setting-list.component.ts","./src/app/frontoffice/financial/accounting-setting/accounting-setting-list/accounting-setting-list.component.html","./src/app/frontoffice/financial/customer-receipt-payment/customer-receipt-payment-form/customer-receipt-payment-form.component.ts","./src/app/frontoffice/financial/customer-receipt-payment/customer-receipt-payment-form/customer-receipt-payment-form.component.html","./src/app/frontoffice/financial/customer-receipt-payment/customer-receipt-payment-list/customer-receipt-payment-list.component.ts","./src/app/frontoffice/financial/customer-receipt-payment/customer-receipt-payment-list/customer-receipt-payment-list.component.html","./src/app/frontoffice/financial/customer-receipt-payment/customer-receipt-payment.module.ts","./src/app/frontoffice/financial/driversettlement/cashiersettlement-form/cashiersettlement-form.component.ts","./src/app/frontoffice/financial/driversettlement/cashiersettlement-form/cashiersettlement-form.component.html","./src/app/frontoffice/financial/driversettlement/cashiersettlement-form/settlementformsetting/settlementformsetting-form.component.ts","./src/app/frontoffice/financial/driversettlement/cashiersettlement-form/settlementformsetting/settlementformsetting-form.component.html","./src/app/frontoffice/financial/driversettlement/cashiersettlement-form/settlementsettingmenu.ts","./src/app/frontoffice/financial/driversettlement/cashiersettlement-list/casheirsettlement-list.component.ts","./src/app/frontoffice/financial/driversettlement/cashiersettlement-list/cashiersettlement-list.component.html","./src/app/frontoffice/financial/driversettlement/driverSettlementSetting.ts","./src/app/frontoffice/financial/driversettlement/driversettlement-form/driversettlement-form.component.ts","./src/app/frontoffice/financial/driversettlement/driversettlement-form/driversettlement-form.component.html","./src/app/frontoffice/financial/driversettlement/driversettlement-list/driversettlement-list.component.ts","./src/app/frontoffice/financial/driversettlement/driversettlement-list/driversettlement-list.component.html","./src/app/frontoffice/financial/driversettlement/driversettlementformsetting.model.ts","./src/app/frontoffice/financial/driversettlement/driversettlementsetting-form/driversettlementsetting-form.component.ts","./src/app/frontoffice/financial/driversettlement/driversettlementsetting-form/driversettlementsetting-form.component.html","./src/app/frontoffice/financial/driversettlement/invoicesmodal/invoicesmodal.component.ts","./src/app/frontoffice/financial/driversettlement/invoicesmodal/invoicesmodal.component.html","./src/app/frontoffice/financial/financial.module.ts","./src/app/frontoffice/financial/model/payment-method.enum.ts","./src/app/frontoffice/financial/model/settlementinvoice.model.ts","./src/app/frontoffice/financial/model/settlementreadinvoice.model.ts","./src/app/frontoffice/financial/model/settlementreference.model.ts","./src/app/frontoffice/financial/model/usersettlement.model.ts","./src/app/frontoffice/financial/paymentmethod/payment-method-form/payment-method-form.component.ts","./src/app/frontoffice/financial/paymentmethod/payment-method-form/payment-method-form.component.html","./src/app/frontoffice/financial/paymentmethod/payment-method-list/payment-method-list.component.ts","./src/app/frontoffice/financial/paymentmethod/payment-method-list/payment-method-list.component.html","./src/app/frontoffice/inv/Inv.module.ts","./src/app/frontoffice/inv/inv-CreateInvVoucher/inv-CreateInVoucher-form/inv-CreateInvVoucher-form.component.ts","./src/app/frontoffice/inv/inv-CreateInvVoucher/inv-CreateInVoucher-form/inv-CreateInvVoucher-form.component.html","./src/app/frontoffice/inv/inv-CreateInvVoucher/inv-CreateInVoucher-list/inv-CreateInvVoucher-list.component.ts","./src/app/frontoffice/inv/inv-CreateInvVoucher/inv-CreateInVoucher-list/inv-CreateInvVoucher-list.component.html","./src/app/frontoffice/inv/inv-CreateInvVoucher/inv-CreateInVoucher-setting/inv-CreateInVoucher-setting.component.ts","./src/app/frontoffice/inv/inv-CreateInvVoucher/inv-CreateInVoucher-setting/inv-CreateInVoucher-setting.component.html","./src/app/frontoffice/inv/inv-CreateInvVoucher/inv-createIn-voucher-menu.component.ts","./src/app/frontoffice/inv/inv-daily-balance/inv-daily-balance.component.ts","./src/app/frontoffice/inv/inv-daily-balance/inv-daily-balance.component.html","./src/app/frontoffice/inv/inv-daily-header/inv-daily-form/inv-daily-form.component.ts","./src/app/frontoffice/inv/inv-daily-header/inv-daily-form/inv-daily-form.component.html","./src/app/frontoffice/inv/inv-daily-header/inv-daily-header-menu.component.ts","./src/app/frontoffice/inv/inv-daily-header/inv-daily-kind.enum.ts","./src/app/frontoffice/inv/inv-daily-header/inv-daily-list/inv-daily-list.component.ts","./src/app/frontoffice/inv/inv-daily-header/inv-daily-list/inv-daily-list.component.html","./src/app/frontoffice/inv/inv-daily-header/inv-daily-listdialog/inv-daily-listdialog.component.ts","./src/app/frontoffice/inv/inv-daily-header/inv-daily-listdialog/inv-daily-listdialog.component.html","./src/app/frontoffice/inv/inv-daily-header/inv-daily-setting/inv-daily-setting.component.ts","./src/app/frontoffice/inv/inv-daily-header/inv-daily-setting/inv-daily-setting.component.html","./src/app/frontoffice/inv/inv-daily-remain/inv-daily-remain-form/inv-daily-remain-form.component.ts","./src/app/frontoffice/inv/inv-daily-remain/inv-daily-remain-form/inv-daily-remain-form.component.html","./src/app/frontoffice/inv/inv-daily-remain/inv-daily-remain-list/inv-daily-remain-list.component.ts","./src/app/frontoffice/inv/inv-daily-remain/inv-daily-remain-list/inv-daily-remain-list.component.html","./src/app/frontoffice/inv/inv-daily-usage/inv-daily-usage.component.ts","./src/app/frontoffice/inv/inv-daily-usage/inv-daily-usage.component.html","./src/app/frontoffice/inv/inv-daily-warehouse/inv-daily-warehouse.component.ts","./src/app/frontoffice/inv/inv-daily-warehouse/inv-daily-warehouse.component.html","./src/app/frontoffice/inv/inv-daily-waste/inv-daily-waste-form/inv-daily-waste-form.component.ts","./src/app/frontoffice/inv/inv-daily-waste/inv-daily-waste-form/inv-daily-waste-form.component.html","./src/app/frontoffice/inv/inv-daily-waste/inv-daily-waste-list/inv-daily-waste-list.component.ts","./src/app/frontoffice/inv/inv-daily-waste/inv-daily-waste-list/inv-daily-waste-list.component.html","./src/app/frontoffice/inv/inv-daily-waste/inv-daily-waste-menu.component.ts","./src/app/frontoffice/inv/inv-daily-waste/inv-daily-waste-setting/inv-daily-waste-setting.component.ts","./src/app/frontoffice/inv/inv-daily-waste/inv-daily-waste-setting/inv-daily-waste-setting.component.html","./src/app/frontoffice/inv/sale-formula/sale-formula.component.ts","./src/app/frontoffice/inv/sale-formula/sale-formula.component.html","./src/app/frontoffice/inv/sale-formula/sale-item-form/sale-item-form.component.ts","./src/app/frontoffice/inv/sale-formula/sale-item-form/sale-item-form.component.html","./src/app/frontoffice/inv/sale-formula/sale-item-list/sale-item-list.component.ts","./src/app/frontoffice/inv/sale-formula/sale-item-list/sale-item-list.component.html","./src/app/frontoffice/local-setting/local-setting-form/local-setting-form.component.ts","./src/app/frontoffice/local-setting/local-setting-form/local-setting-form.component.html","./src/app/frontoffice/local-setting/local-setting-list/local-setting-list.component.ts","./src/app/frontoffice/local-setting/local-setting-list/local-setting-list.component.html","./src/app/frontoffice/local-setting/local-setting-model.ts","./src/app/frontoffice/local-setting/local-setting.module.ts","./src/app/frontoffice/local-setting/local-setting.service.ts","./src/app/frontoffice/measurementunit/MeasurementUnit-form/MeasurementUnit-form.component.ts","./src/app/frontoffice/measurementunit/MeasurementUnit-form/MeasurementUnit-form.component.html","./src/app/frontoffice/measurementunit/MeasurementUnit-list/MeasurementUnit-list-list.component.ts","./src/app/frontoffice/measurementunit/MeasurementUnit-list/MeasurementUnit-list.component.html","./src/app/frontoffice/measurementunit/MeasurementUnit.module.ts","./src/app/frontoffice/messaging/group-message/group-message.component.ts","./src/app/frontoffice/messaging/group-message/group-message.component.html","./src/app/frontoffice/messaging/group-message/group-message.module.ts","./src/app/frontoffice/messaging/management-message/management-message-list/management-message-list.component.ts","./src/app/frontoffice/messaging/management-message/management-message-list/management-message-list.component.html","./src/app/frontoffice/messaging/management-message/management-message.module.ts","./src/app/frontoffice/messaging/message-list/message-list.component.ts","./src/app/frontoffice/messaging/message-list/message-list.component.html","./src/app/frontoffice/messaging/message-list/message-list.module.ts","./src/app/frontoffice/messaging/message-management-telephone/message-management-telephone-list/message-management-telephone-list.component.ts","./src/app/frontoffice/messaging/message-management-telephone/message-management-telephone-list/message-management-telephone-list.component.html","./src/app/frontoffice/messaging/message-management-telephone/message-management-telephone.module.ts","./src/app/frontoffice/messaging/message-template/message-template-form/message-template-form.component.ts","./src/app/frontoffice/messaging/message-template/message-template-form/message-template-form.component.html","./src/app/frontoffice/messaging/message-template/message-template-list/message-template-list.component.ts","./src/app/frontoffice/messaging/message-template/message-template-list/message-template-list.component.html","./src/app/frontoffice/messaging/message-template/messaging.module.ts","./src/app/frontoffice/messaging/messaging-tokens.ts","./src/app/frontoffice/order/customerorder/customeraddressorder/customeraddressorder.component.ts","./src/app/frontoffice/order/customerorder/customeraddressorder/customeraddressorder.component.html","./src/app/frontoffice/order/customerorder/customerdetailsorder/customerdetailsorder.component.ts","./src/app/frontoffice/order/customerorder/customerdetailsorder/customerdetailsorder.component.html","./src/app/frontoffice/order/customerorder/customernumberorder/customernumberorder.component.ts","./src/app/frontoffice/order/customerorder/customernumberorder/customernumberorder.component.html","./src/app/frontoffice/order/customerorder/customerorder.component.ts","./src/app/frontoffice/order/customerorder/customerorder.component.html","./src/app/frontoffice/order/customerorder/customerorder.service.ts","./src/app/frontoffice/order/customerorder/newcustomerorder/newcustomerorder.component.ts","./src/app/frontoffice/order/customerorder/newcustomerorder/newcustomerorder.component.html","./src/app/frontoffice/order/delivered/delivered.component.ts","./src/app/frontoffice/order/delivered/delivered.component.html","./src/app/frontoffice/order/delivered/format-time-from-backend.pipe.ts","./src/app/frontoffice/order/invoices/invoices.component.ts","./src/app/frontoffice/order/invoices/invoices.component.html","./src/app/frontoffice/order/model/InvoicePrintModel.ts","./src/app/frontoffice/order/model/ItemOrder.model.ts","./src/app/frontoffice/order/model/actionstate.model.ts","./src/app/frontoffice/order/model/activepage.enum.ts","./src/app/frontoffice/order/model/changecach.enum.ts","./src/app/frontoffice/order/model/club.enum.ts","./src/app/frontoffice/order/model/clubconfirmation.enum.ts","./src/app/frontoffice/order/model/contextMenuenum.ts","./src/app/frontoffice/order/model/customer-filter.model.ts","./src/app/frontoffice/order/model/customerdetailenum.ts","./src/app/frontoffice/order/model/delino-check-customer-address.model.ts","./src/app/frontoffice/order/model/delivered-status.enum.ts","./src/app/frontoffice/order/model/delivered.model.ts","./src/app/frontoffice/order/model/fastaccessenum.ts","./src/app/frontoffice/order/model/invoice.model.ts","./src/app/frontoffice/order/model/invoicehistory.model.ts","./src/app/frontoffice/order/model/orderItemcategory.model.ts","./src/app/frontoffice/order/model/orderSize.enum.ts","./src/app/frontoffice/order/model/orderactioncontrol.model.ts","./src/app/frontoffice/order/model/ordersetting.model.ts","./src/app/frontoffice/order/model/payment.enum.ts","./src/app/frontoffice/order/model/paymentmethod.enum.ts","./src/app/frontoffice/order/model/receiptpayment.model.ts","./src/app/frontoffice/order/model/salemethodbranchitem.enum.ts","./src/app/frontoffice/order/model/smartclub.model.ts","./src/app/frontoffice/order/model/update-Client-Factor-State.enum.ts","./src/app/frontoffice/order/order.module.ts","./src/app/frontoffice/order/order.service.ts","./src/app/frontoffice/order/orderonline/call-support/call-support.component.ts","./src/app/frontoffice/order/orderonline/call-support/call-support.component.html","./src/app/frontoffice/order/orderonline/causecancel/causecancel.component.ts","./src/app/frontoffice/order/orderonline/causecancel/causecancel.component.html","./src/app/frontoffice/order/orderonline/orderonline.component.ts","./src/app/frontoffice/order/orderonline/orderonline.component.html","./src/app/frontoffice/order/orderonline/success-order/success-order.component.ts","./src/app/frontoffice/order/orderonline/success-order/success-order.component.html","./src/app/frontoffice/order/orderonline/success-order/success.model.ts","./src/app/frontoffice/order/orderpage/fastaccess/PaymentLinkFastAcceess/paymentlinkfastaccess.component.ts","./src/app/frontoffice/order/orderpage/fastaccess/PaymentLinkFastAcceess/paymentlinkfastaccess.component.html","./src/app/frontoffice/order/orderpage/fastaccess/address-phone-form/address-phone-form.component.ts","./src/app/frontoffice/order/orderpage/fastaccess/address-phone-form/address-phone-form.component.html","./src/app/frontoffice/order/orderpage/fastaccess/clubfastaccess/clubconfirmation/clubconfirmation.component.ts","./src/app/frontoffice/order/orderpage/fastaccess/clubfastaccess/clubconfirmation/clubconfirmation.component.html","./src/app/frontoffice/order/orderpage/fastaccess/clubfastaccess/orderclubfastacces.component.ts","./src/app/frontoffice/order/orderpage/fastaccess/clubfastaccess/orderclubfastacces.component.html","./src/app/frontoffice/order/orderpage/fastaccess/customerfastaccess/customerfastaccess.component.ts","./src/app/frontoffice/order/orderpage/fastaccess/customerfastaccess/customerfastaccess.component.html","./src/app/frontoffice/order/orderpage/fastaccess/delinoOfflineFactor/delinoofflinefactor.component.ts","./src/app/frontoffice/order/orderpage/fastaccess/delinoOfflineFactor/delinoofflinefactor.component.html","./src/app/frontoffice/order/orderpage/fastaccess/driverassignmentfastaccess/driverassignmentfastaccess.component.ts","./src/app/frontoffice/order/orderpage/fastaccess/driverassignmentfastaccess/driverassignmentfastaccess.component.html","./src/app/frontoffice/order/orderpage/fastaccess/fastaccess.component.ts","./src/app/frontoffice/order/orderpage/fastaccess/fastaccess.component.html","./src/app/frontoffice/order/orderpage/fastaccess/fastaccess.service.ts","./src/app/frontoffice/order/orderpage/fastaccess/invoicechangefastaccess/invoicechangefastaccess.component.ts","./src/app/frontoffice/order/orderpage/fastaccess/invoicechangefastaccess/invoicechangefastaccess.component.html","./src/app/frontoffice/order/orderpage/fastaccess/pagerfastaccess/pagerfastaccess.component.ts","./src/app/frontoffice/order/orderpage/fastaccess/pagerfastaccess/pagerfastaccess.component.html","./src/app/frontoffice/order/orderpage/fastaccess/salonfastaccess/salonfastaccess.component.ts","./src/app/frontoffice/order/orderpage/fastaccess/salonfastaccess/salonfastaccess.component.html","./src/app/frontoffice/order/orderpage/fastaccess/waiterfastaccess/waiterfastaccess.component.ts","./src/app/frontoffice/order/orderpage/fastaccess/waiterfastaccess/waiterfastaccess.component.html","./src/app/frontoffice/order/orderpage/footer/orderfooter.component.ts","./src/app/frontoffice/order/orderpage/footer/orderfooter.component.html","./src/app/frontoffice/order/orderpage/header/orderheader.component.ts","./src/app/frontoffice/order/orderpage/header/orderheader.component.html","./src/app/frontoffice/order/orderpage/invoice/customer-print-template-form/customer-print-template-form/customer-print-template-form.component.ts","./src/app/frontoffice/order/orderpage/invoice/customer-print-template-form/customer-print-template-form/customer-print-template-form.component.html","./src/app/frontoffice/order/orderpage/invoice/desktop/invoice.component.ts","./src/app/frontoffice/order/orderpage/invoice/desktop/invoice.component.html","./src/app/frontoffice/order/orderpage/invoice/invoice.service.ts","./src/app/frontoffice/order/orderpage/invoice/payment/payment.component.ts","./src/app/frontoffice/order/orderpage/invoice/payment/payment.component.html","./src/app/frontoffice/order/orderpage/invoice/preparation-delivery-time-form/preparation-delivery-time-form.component.ts","./src/app/frontoffice/order/orderpage/invoice/preparation-delivery-time-form/preparation-delivery-time-form.component.html","./src/app/frontoffice/order/orderpage/invoice/totalprice/totalprice.component.ts","./src/app/frontoffice/order/orderpage/invoice/totalprice/totalprice.component.html","./src/app/frontoffice/order/orderpage/invoice/totalprice/totalprice.service.ts","./src/app/frontoffice/order/orderpage/item/deposit/deposit-menu.component.ts","./src/app/frontoffice/order/orderpage/item/deposit/deposit-select-show-hide/deposit-select-show-hide.component.ts","./src/app/frontoffice/order/orderpage/item/deposit/deposit-select-show-hide/deposit-select-show-hide.component.html","./src/app/frontoffice/order/orderpage/item/deposit/deposit.component.ts","./src/app/frontoffice/order/orderpage/item/deposit/deposit.component.html","./src/app/frontoffice/order/orderpage/item/deposit/depositformsetting.model.ts","./src/app/frontoffice/order/orderpage/item/description/description.component.ts","./src/app/frontoffice/order/orderpage/item/description/description.component.html","./src/app/frontoffice/order/orderpage/item/desktop/contextment.ts","./src/app/frontoffice/order/orderpage/item/desktop/item.component.ts","./src/app/frontoffice/order/orderpage/item/desktop/item.component.html","./src/app/frontoffice/order/orderpage/item/itemorder.service.ts","./src/app/frontoffice/order/orderpage/orderpage.component.ts","./src/app/frontoffice/order/orderpage/orderpage.component.html","./src/app/frontoffice/order/providers/invoiceaction.service.ts","./src/app/frontoffice/order/providers/invoiceprint.service.ts","./src/app/frontoffice/order/providers/pos-scale.service.ts","./src/app/frontoffice/order/providers/tabletpos.service.ts","./src/app/frontoffice/order/reserve-online/reserve-online-setting/reserve-online-setting-menu.component.ts","./src/app/frontoffice/order/reserve-online/reserve-online-setting/reserve-online-setting.component.ts","./src/app/frontoffice/order/reserve-online/reserve-online-setting/reserve-online-setting.component.html","./src/app/frontoffice/order/reserve-online/reserve-online.component.ts","./src/app/frontoffice/order/reserve-online/reserve-online.component.html","./src/app/frontoffice/order/salonorder/desktop/salonorder.component.ts","./src/app/frontoffice/order/salonorder/desktop/salonorder.component.html","./src/app/frontoffice/order/salonorder/salonorder.service.ts","./src/app/frontoffice/parties/customer-category/customer-category-form.component.ts","./src/app/frontoffice/parties/customer-category/customer-category-form.component.html","./src/app/frontoffice/parties/customer-category/customer-category-list.component.ts","./src/app/frontoffice/parties/customer/customer-form.component.ts","./src/app/frontoffice/parties/customer/customer-form.component.html","./src/app/frontoffice/parties/customer/customer-list.component.ts","./src/app/frontoffice/parties/filter-drivers-by-code/filter-drivers-by-code.component.ts","./src/app/frontoffice/parties/filter-drivers-by-code/filter-drivers-by-code.component.html","./src/app/frontoffice/parties/map/map.component.ts","./src/app/frontoffice/parties/map/map.component.html","./src/app/frontoffice/parties/model/customer.model.ts","./src/app/frontoffice/parties/model/driverassigndeliverd.model.ts","./src/app/frontoffice/parties/model/party.model.ts","./src/app/frontoffice/parties/model/personnel.model.ts","./src/app/frontoffice/parties/model/zone-price-announcement.model.ts","./src/app/frontoffice/parties/parties.module.ts","./src/app/frontoffice/parties/personnel/personnel-form.component.ts","./src/app/frontoffice/parties/personnel/personnel-form.component.html","./src/app/frontoffice/parties/personnel/personnel-list.component.ts","./src/app/frontoffice/parties/zone-price-announcement/zone-price-announcement-form/zone-price-announcement-form.component.ts","./src/app/frontoffice/parties/zone-price-announcement/zone-price-announcement-form/zone-price-announcement-form.component.html","./src/app/frontoffice/parties/zone-price-announcement/zone-price-announcement-list/zone-price-announcement-list.component.ts","./src/app/frontoffice/parties/zone-price-announcement/zone-price-announcement-list/zone-price-announcement-list.component.html","./src/app/frontoffice/parties/zone-price-announcement/zone-price.enum.ts","./src/app/frontoffice/parties/zone/zone-form.component.ts","./src/app/frontoffice/parties/zone/zone-form.component.html","./src/app/frontoffice/parties/zone/zone-list.component.ts","./src/app/frontoffice/portal/connect-online-menu/connect-online-menu.component.ts","./src/app/frontoffice/portal/connect-online-menu/connect-online-menu.component.html","./src/app/frontoffice/portal/item-categories-image/item-categories-image.component.ts","./src/app/frontoffice/portal/item-categories-image/item-categories-image.component.html","./src/app/frontoffice/portal/item-categories-image/item-categories-select/item-categories-select.component.ts","./src/app/frontoffice/portal/item-categories-image/item-categories-select/item-categories-select.component.html","./src/app/frontoffice/portal/item-image/item-image-uploader/item-image-uploader.component.ts","./src/app/frontoffice/portal/item-image/item-image-uploader/item-image-uploader.component.html","./src/app/frontoffice/portal/item-image/item-image.component.ts","./src/app/frontoffice/portal/item-image/item-image.component.html","./src/app/frontoffice/portal/menu-setting/menu-setting.component.ts","./src/app/frontoffice/portal/menu-setting/menu-setting.component.html","./src/app/frontoffice/portal/portal.module.ts","./src/app/frontoffice/portal/portal.service.ts","./src/app/frontoffice/portal/rahkaran/rahkaran-form/rahkaran-form.component.ts","./src/app/frontoffice/portal/rahkaran/rahkaran-form/rahkaran-form.component.html","./src/app/frontoffice/portal/rahkaran/rahkaran-list/rahkaran-list.component.ts","./src/app/frontoffice/portal/rahkaran/rahkaran-list/rahkaran-list.component.html","./src/app/frontoffice/portal/rahkaran/rahkaran-setting/rahkaran-setting.component.ts","./src/app/frontoffice/portal/rahkaran/rahkaran-setting/rahkaran-setting.component.html","./src/app/frontoffice/prints/model/print-policy.model.ts","./src/app/frontoffice/prints/print-policy-form/print-policy-form.component.ts","./src/app/frontoffice/prints/print-policy-form/print-policy-form.component.html","./src/app/frontoffice/prints/print-policy-list/print-policy-list.component.ts","./src/app/frontoffice/prints/print-policy-list/print-policy-list.component.html","./src/app/frontoffice/prints/print-policy.module.ts","./src/app/frontoffice/prints/sale-report-desiner/sale-report-desiner.component.ts","./src/app/frontoffice/prints/sale-report-desiner/sale-report-desiner.component.html","./src/app/frontoffice/prints/sale-report-desiner/sale-report-desiner.module.ts","./src/app/frontoffice/review/costs-spent-review/costs-spent-review.component.ts","./src/app/frontoffice/review/costs-spent-review/costs-spent-review.component.html","./src/app/frontoffice/review/costs-spent-review/costs-spent-review.module.ts","./src/app/frontoffice/review/customer-review/customer-review.component.ts","./src/app/frontoffice/review/customer-review/customer-review.component.html","./src/app/frontoffice/review/customer-review/customer-review.module.ts","./src/app/frontoffice/review/dashboard/contact-us-modal/contact-us-modal.component.ts","./src/app/frontoffice/review/dashboard/contact-us-modal/contact-us-modal.component.html","./src/app/frontoffice/review/dashboard/dashboard.component.ts","./src/app/frontoffice/review/dashboard/dashboard.component.html","./src/app/frontoffice/review/dashboard/dashboard.module.ts","./src/app/frontoffice/review/order-review/order-review.component.ts","./src/app/frontoffice/review/order-review/order-review.component.html","./src/app/frontoffice/review/order-review/order-review.module.ts","./src/app/frontoffice/review/sales-review/sales-review.component.ts","./src/app/frontoffice/review/sales-review/sales-review.component.html","./src/app/frontoffice/review/sales-review/sales-review.module.ts","./src/app/frontoffice/review/security-review/detail-security-review/detail-security-review.component.ts","./src/app/frontoffice/review/security-review/detail-security-review/detail-security-review.component.html","./src/app/frontoffice/review/security-review/security-review.component.ts","./src/app/frontoffice/review/security-review/security-review.component.html","./src/app/frontoffice/review/security-review/security-review.module.ts","./src/app/frontoffice/review/security-review/security-review.service.ts","./src/app/frontoffice/sales/model/sale-method-branch.model.ts","./src/app/frontoffice/sales/sale-method-branch/sale-method-branch-form/sale-method-branch-form.ts","./src/app/frontoffice/sales/sale-method-branch/sale-method-branch-form/sale-method-branch-form.html","./src/app/frontoffice/sales/sale-method-branch/sale-method-branch-list/sale-method-branch-list.ts","./src/app/frontoffice/sales/sale-method-branch/sale-method-branch-list/sale-method-branch-list.html","./src/app/frontoffice/sales/sale-method/sale-method-form/sale-method-form.component.ts","./src/app/frontoffice/sales/sale-method/sale-method-form/sale-method-form.component.html","./src/app/frontoffice/sales/sale-method/sale-method-list/sale-method-list.component.ts","./src/app/frontoffice/sales/sale-method/sale-method-list/sale-method-list.component.html","./src/app/frontoffice/sales/sales.module.ts","./src/app/frontoffice/salons/model/salon.model.ts","./src/app/frontoffice/salons/salon-form/salon-form.component.ts","./src/app/frontoffice/salons/salon-form/salon-form.component.html","./src/app/frontoffice/salons/salon-list/salon-list.component.ts","./src/app/frontoffice/salons/salon-list/salon-list.component.html","./src/app/frontoffice/salons/salon.module.ts","./src/app/gnr/bar-code-reader-format/bar-code-reader-format-form/bar-code-reader-format-form.component.ts","./src/app/gnr/bar-code-reader-format/bar-code-reader-format-form/bar-code-reader-format-form.component.html","./src/app/gnr/bar-code-reader-format/bar-code-reader-format-list/bar-code-reader-format-list.component.ts","./src/app/gnr/bar-code-reader-format/bar-code-reader-format-list/bar-code-reader-format-list.component.html","./src/app/gnr/bar-code-reader-format/bar-code-reader-format.module.ts","./src/app/gnr/branch/branch-data-transfer-info/branch-data-transfer-info.component.ts","./src/app/gnr/branch/branch-data-transfer-info/branch-data-transfer-info.component.html","./src/app/gnr/branch/branch-form/branch-form.component.ts","./src/app/gnr/branch/branch-form/branch-form.component.html","./src/app/gnr/branch/branch-list/branch-list.component.ts","./src/app/gnr/branch/branch-list/branch-list.component.html","./src/app/gnr/branch/branch.enum.ts","./src/app/gnr/branch/branch.module.ts","./src/app/gnr/city/city-form/city-form.component.ts","./src/app/gnr/city/city-form/city-form.component.html","./src/app/gnr/city/city-list/city-list.component.ts","./src/app/gnr/city/city-list/city-list.component.html","./src/app/gnr/city/city.module.ts","./src/app/gnr/company/company-form/company-form.component.ts","./src/app/gnr/company/company-form/company-form.component.html","./src/app/gnr/company/company-list/company-list.component.ts","./src/app/gnr/company/company-list/company-list.component.html","./src/app/gnr/company/company.module.ts","./src/app/gnr/data-center-process/data-center-process-form/data-center-process-form.component.ts","./src/app/gnr/data-center-process/data-center-process-form/data-center-process-form.component.html","./src/app/gnr/data-center-process/data-center-process-list/data-center-process-list.component.ts","./src/app/gnr/data-center-process/data-center-process-list/data-center-process-list.component.html","./src/app/gnr/data-center-process/data-center-process.model.ts","./src/app/gnr/data-center-process/data-center-process.module.ts","./src/app/gnr/fiscal-year/fiscal-year-form/fiscal-year-form.component.ts","./src/app/gnr/fiscal-year/fiscal-year-form/fiscal-year-form.component.html","./src/app/gnr/fiscal-year/fiscal-year-list/fiscal-year-list.component.ts","./src/app/gnr/fiscal-year/fiscal-year-list/fiscal-year-list.component.html","./src/app/gnr/fiscal-year/fiscal-year.module.ts","./src/app/gnr/missetup/missetup.component.ts","./src/app/gnr/missetup/missetup.component.html","./src/app/gnr/missetup/missetup.module.ts","./src/app/gnr/missetup/settingdetailresource/settingdetailresource.component.ts","./src/app/gnr/missetup/settingdetailresource/SettingDetailResource.component.html","./src/app/gnr/missetup/settingresource/settingresource.component.ts","./src/app/gnr/missetup/settingresource/settingresource.component.html","./src/app/gnr/people-info/address/address-from/address-from.component.ts","./src/app/gnr/people-info/address/address-from/address-from.component.html","./src/app/gnr/people-info/address/address-list/address-list.component.ts","./src/app/gnr/people-info/address/address-list/address-list.component.html","./src/app/gnr/people-info/people-info.module.ts","./src/app/gnr/people-info/peopleInfo-form.component.ts","./src/app/gnr/people-info/peopleinfo-form.component.html","./src/app/gnr/people-info/peopleInfo-list.component.ts","./src/app/gnr/people-info/peopleinfo-list.component.html","./src/app/gnr/people-info/related/related-form/related-form.component.ts","./src/app/gnr/people-info/related/related-form/related-form.component.html","./src/app/gnr/people-info/related/related-list/related-list.component.ts","./src/app/gnr/people-info/related/related-list/related-list.component.html","./src/app/gnr/people-info/telephone/telephone-form/telephone-form.component.ts","./src/app/gnr/people-info/telephone/telephone-form/telephone-form.component.html","./src/app/gnr/people-info/telephone/telephone-list/telephone-list.component.ts","./src/app/gnr/people-info/telephone/telephone-list/telephone-list.component.html","./src/app/gnr/province/province-form/province-form.component.ts","./src/app/gnr/province/province-form/province-form.component.html","./src/app/gnr/province/province-list/province-list.component.ts","./src/app/gnr/province/province-list/province-list.component.html","./src/app/gnr/province/province.module.ts","./src/app/gnr/resetpassword/resetpassword-list.component.ts","./src/app/gnr/resetpassword/resetpassword.component.ts","./src/app/gnr/resetpassword/resetpassword.component.html","./src/app/gnr/resetpassword/resetpassword.module.ts","./src/app/gnr/role/role-form/role-form.component.ts","./src/app/gnr/role/role-form/role-form.component.html","./src/app/gnr/role/role-list/role-list.component.ts","./src/app/gnr/role/role-list/role-list.component.html","./src/app/gnr/role/role.module.ts","./src/app/gnr/row-access/row-access.component.ts","./src/app/gnr/row-access/row-access.component.html","./src/app/gnr/user-system-log/user-system-log-list/user-system-log-list.component.ts","./src/app/gnr/user-system-log/user-system-log-list/user-system-log-list.component.html","./src/app/gnr/user-system-log/user-system-log.module.ts","./src/app/gnr/user/user-form/user-form.component.ts","./src/app/gnr/user/user-form/user-form.component.html","./src/app/gnr/user/user-list/user-list.component.ts","./src/app/gnr/user/user-list/user-list.component.html","./src/app/gnr/user/user.module.ts","./src/app/pages/pages-menu.ts","./src/app/review/filter-name/filter-name.component.ts","./src/app/review/filter-name/filter-name.component.html","./src/app/review/filter-name/filter-name.model.ts","./src/app/review/kpi-review/kpi-review.component.ts","./src/app/review/kpi-review/kpi-review.component.html","./src/app/review/kpi-widget/kpi-widget.component.ts","./src/app/review/kpi-widget/kpi-widget.component.html","./src/app/review/remote-select-review/remote-select-review.component.ts","./src/app/review/remote-select-review/remote-select-review.component.html","./src/app/review/review-card/chart-review/bar-chart.component.ts","./src/app/review/review-card/charts/bar-chart.component.ts","./src/app/review/review-card/charts/chart.component.ts","./src/app/review/review-card/charts/doughnut-chart.component.ts","./src/app/review/review-card/charts/line-chart.component.ts","./src/app/review/review-card/charts/pie-chart.component.ts","./src/app/review/review-card/date-filter-review/date-filter-review.component.ts","./src/app/review/review-card/date-filter-review/date-filter-review.component.html","./src/app/review/review-card/filter-item-review/filter-item-review.component.ts","./src/app/review/review-card/filter-item-review/filter-item-review.component.html","./src/app/review/review-card/grid-review/grid-review.component.ts","./src/app/review/review-card/grid-review/grid-review.component.html","./src/app/review/review-card/review-card.component.ts","./src/app/review/review-card/review-data-card.component.ts","./src/app/review/review-helper.ts","./src/app/review/review.component.ts","./src/app/review/review.component.html","./src/app/review/review.module.ts","./src/app/review/review.service.ts","./src/app/review/static-select-review/static-select-review.component.ts","./src/app/review/static-select-review/static-select-review.component.html","./src/app/stimul-soft-report/stimul-soft-report.component.ts","./src/app/stimul-soft-report/stimul-soft-report.component.html","./src/app/stimul-soft-report/stimul-soft-report.module.ts","./src/environments/environment.ts","./src/main.ts","./node_modules/moment/locale/ sync ^\\.\\/.*$","ignored|E:\\SepidzWeb\\Frontend\\node_modules\\crypto-js|crypto"],"sourcesContent":["import { Directive } from '@angular/core';\r\nimport { DropdownDirective } from './dropdown.directive';\r\n@Directive({\r\n selector: '[ngxDropdownMenu]',\r\n // tslint:disable-next-line:use-host-property-decorator\r\n host: {\r\n '[class.dropdown-menu]': 'true',\r\n '[class.show]': 'dropdown.isOpen'\r\n }\r\n})\r\nexport class DropdownMenuDirective {\r\n constructor(\r\n public dropdown: DropdownDirective\r\n ) { }\r\n}\r\n","import { Directive, ElementRef } from '@angular/core';\r\nimport { DropdownDirective } from './dropdown.directive';\r\n@Directive({\r\n selector: '[ngxDropdownToggle]',\r\n // tslint:disable-next-line:use-host-property-decorator\r\n host: {\r\n 'class': 'dropdown-toggle',\r\n 'aria-haspopup': 'true',\r\n '[attr.aria-expanded]': 'dropdown.isOpen',\r\n '(click)': 'dropdown.toggle()'\r\n }\r\n})\r\nexport class DropdownToggleDirective {\r\n constructor(\r\n public dropdown: DropdownDirective,\r\n elementRef: ElementRef\r\n ) {\r\n dropdown.toggleElement = elementRef.nativeElement;\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output, ViewChild, TemplateRef } from '@angular/core';\r\nimport { TreeviewI18n } from './treeview-i18n';\r\nimport { TreeviewItem } from './treeview-item';\r\nimport { TreeviewConfig } from './treeview-config';\r\nimport { TreeviewComponent } from './treeview.component';\r\nimport { DropdownDirective } from './dropdown.directive';\r\nimport { TreeviewHeaderTemplateContext } from './treeview-header-template-context';\r\nimport { TreeviewItemTemplateContext } from './treeview-item-template-context';\r\n@Component({\r\n selector: 'ngx-dropdown-treeview',\r\n templateUrl: './dropdown-treeview.component.html',\r\n styleUrls: ['./dropdown-treeview.component.scss']\r\n})\r\nexport class DropdownTreeviewComponent {\r\n @Input() buttonClass = 'btn-outline-secondary';\r\n @Input() headerTemplate: TemplateRef;\r\n @Input() itemTemplate: TemplateRef;\r\n @Input() items: TreeviewItem[];\r\n @Input() config: TreeviewConfig;\r\n @Output() selectedChange = new EventEmitter(true);\r\n @Output() filterChange = new EventEmitter();\r\n @ViewChild(TreeviewComponent,{static:false}) treeviewComponent: TreeviewComponent;\r\n @ViewChild(DropdownDirective,{static:false}) dropdownDirective: DropdownDirective;\r\n constructor(\r\n public i18n: TreeviewI18n,\r\n private defaultConfig: TreeviewConfig\r\n ) {\r\n this.config = this.defaultConfig;\r\n }\r\n getText(): string {\r\n return this.i18n.getText(this.treeviewComponent.selection);\r\n }\r\n onSelectedChange(values: any[]) {\r\n this.selectedChange.emit(values);\r\n }\r\n onFilterChange(text: string) {\r\n this.filterChange.emit(text);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Directive, Input, Output, HostBinding, HostListener, EventEmitter, ElementRef } from '@angular/core';\r\nimport { isNil } from 'lodash';\r\n@Directive({\r\n selector: '[ngxDropdown]',\r\n exportAs: 'ngxDropdown'\r\n})\r\nexport class DropdownDirective {\r\n toggleElement: any;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('open') internalOpen = false;\r\n @Output() openChange = new EventEmitter();\r\n @HostBinding('class.show') get isOpen(): boolean {\r\n return this.internalOpen;\r\n }\r\n @HostListener('keyup.esc')\r\n onKeyupEsc() {\r\n this.close();\r\n }\r\n @HostListener('document:click', ['$event'])\r\n onDocumentClick(event: MouseEvent) {\r\n if (event.button !== 2 && !this.isEventFromToggle(event)) {\r\n this.close();\r\n }\r\n }\r\n open() {\r\n if (!this.internalOpen) {\r\n this.internalOpen = true;\r\n this.openChange.emit(true);\r\n }\r\n }\r\n close() {\r\n if (this.internalOpen) {\r\n this.internalOpen = false;\r\n this.openChange.emit(false);\r\n }\r\n }\r\n toggle() {\r\n if (this.isOpen) {\r\n this.close();\r\n } else {\r\n this.open();\r\n }\r\n }\r\n private isEventFromToggle(event: MouseEvent) {\r\n return !isNil(this.toggleElement) && this.toggleElement.contains(event.target);\r\n }\r\n}\r\n","export * from './treeview.module';\r\nexport * from './treeview.component';\r\nexport * from './treeview.pipe';\r\nexport * from './treeview-item';\r\nexport * from './treeview-config';\r\nexport * from './treeview-i18n';\r\nexport * from './treeview-event-parser';\r\nexport * from './treeview-item-template-context';\r\nexport * from './treeview-helper';\r\nexport * from './dropdown-toggle.directive';\r\nexport * from './dropdown.directive';\r\nexport * from './dropdown-treeview.component';\r\n","import { Injectable } from '@angular/core';\r\n@Injectable()\r\nexport class TreeviewConfig {\r\n hasAllCheckBox = true;\r\n hasFilter = false;\r\n hasCollapseExpand = false;\r\n decoupleChildFromParent = false;\r\n maxHeight = 500;\r\n get hasDivider(): boolean {\r\n return this.hasFilter || this.hasAllCheckBox || this.hasCollapseExpand;\r\n }\r\n public static create(fields?: {\r\n hasAllCheckBox?: boolean,\r\n hasFilter?: boolean,\r\n hasCollapseExpand?: boolean,\r\n decoupleChildFromParent?: boolean\r\n maxHeight?: number,\r\n }): TreeviewConfig {\r\n const config = new TreeviewConfig();\r\n Object.assign(config, fields);\r\n return config;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { isNil } from 'lodash';\r\nimport { TreeviewItem } from './treeview-item';\r\nimport {TreeviewComponent} from './treeview.component';\r\n@Injectable()\r\nexport abstract class TreeviewEventParser {\r\n abstract getSelectedChange(component: TreeviewComponent): any[];\r\n}\r\n@Injectable()\r\nexport class DefaultTreeviewEventParser extends TreeviewEventParser {\r\n getSelectedChange(component: TreeviewComponent): any[] {\r\n const checkedItems = component.selection.checkedItems;\r\n if (!isNil(checkedItems)) {\r\n return checkedItems.map(item => item.value);\r\n }\r\n return [];\r\n }\r\n}\r\nexport interface DownlineTreeviewItem {\r\n item: TreeviewItem;\r\n parent: DownlineTreeviewItem;\r\n}\r\n@Injectable()\r\nexport class DownlineTreeviewEventParser extends TreeviewEventParser {\r\n getSelectedChange(component: TreeviewComponent): any[] {\r\n const items = component.items;\r\n if (!isNil(items)) {\r\n let result: DownlineTreeviewItem[] = [];\r\n items.forEach(item => {\r\n const links = this.getLinks(item, null);\r\n if (!isNil(links)) {\r\n result = result.concat(links);\r\n }\r\n });\r\n return result;\r\n }\r\n return [];\r\n }\r\n private getLinks(item: TreeviewItem, parent: DownlineTreeviewItem): DownlineTreeviewItem[] {\r\n if (!isNil(item.children)) {\r\n const link = {\r\n item: item,\r\n parent: parent\r\n };\r\n let result: DownlineTreeviewItem[] = [];\r\n item.children.forEach(child => {\r\n const links = this.getLinks(child, link);\r\n if (!isNil(links)) {\r\n result = result.concat(links);\r\n }\r\n });\r\n return result;\r\n }\r\n if (item.checked) {\r\n return [{\r\n item: item,\r\n parent: parent\r\n }];\r\n }\r\n return null;\r\n }\r\n}\r\n@Injectable()\r\nexport class OrderDownlineTreeviewEventParser extends TreeviewEventParser {\r\n private currentDownlines: DownlineTreeviewItem[] = [];\r\n private parser = new DownlineTreeviewEventParser();\r\n getSelectedChange(component: TreeviewComponent): any[] {\r\n const newDownlines: DownlineTreeviewItem[] = this.parser.getSelectedChange(component);\r\n if (this.currentDownlines.length === 0) {\r\n this.currentDownlines = newDownlines;\r\n } else {\r\n const intersectDownlines: DownlineTreeviewItem[] = [];\r\n this.currentDownlines.forEach(downline => {\r\n let foundIndex = -1;\r\n const length = newDownlines.length;\r\n for (let i = 0; i < length; i++) {\r\n if (downline.item.value === newDownlines[i].item.value) {\r\n foundIndex = i;\r\n break;\r\n }\r\n }\r\n if (foundIndex !== -1) {\r\n intersectDownlines.push(newDownlines[foundIndex]);\r\n newDownlines.splice(foundIndex, 1);\r\n }\r\n });\r\n this.currentDownlines = intersectDownlines.concat(newDownlines);\r\n }\r\n return this.currentDownlines;\r\n }\r\n}\r\n","import { concat, isNil, pull } from 'lodash';\r\nimport { TreeviewItem } from './treeview-item';\r\nexport const TreeviewHelper = {\r\n findItem: findItem,\r\n findItemInList: findItemInList,\r\n findParent: findParent,\r\n removeItem: removeItem,\r\n concatSelection: concatSelection\r\n};\r\nfunction findItem(root: TreeviewItem, value: any): TreeviewItem {\r\n if (isNil(root)) {\r\n return undefined;\r\n }\r\n if (root.value === value) {\r\n return root;\r\n }\r\n if (root.children) {\r\n for (const child of root.children) {\r\n const foundItem = findItem(child, value);\r\n if (foundItem) {\r\n return foundItem;\r\n }\r\n }\r\n }\r\n return undefined;\r\n}\r\nfunction findItemInList(list: TreeviewItem[], value: any): TreeviewItem {\r\n if (isNil(list)) {\r\n return undefined;\r\n }\r\n for (const item of list) {\r\n const foundItem = findItem(item, value);\r\n if (foundItem) {\r\n return foundItem;\r\n }\r\n }\r\n return undefined;\r\n}\r\nfunction findParent(root: TreeviewItem, item: TreeviewItem): TreeviewItem {\r\n if (isNil(root) || isNil(root.children)) {\r\n return undefined;\r\n }\r\n for (const child of root.children) {\r\n if (child === item) {\r\n return root;\r\n } else {\r\n const parent = findParent(child, item);\r\n if (parent) {\r\n return parent;\r\n }\r\n }\r\n }\r\n return undefined;\r\n}\r\nfunction removeItem(root: TreeviewItem, item: TreeviewItem): boolean {\r\n const parent = findParent(root, item);\r\n if (parent) {\r\n pull(parent.children, item);\r\n if (parent.children.length === 0) {\r\n parent.children = undefined;\r\n } else {\r\n parent.correctChecked();\r\n }\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction concatSelection(items: TreeviewItem[], checked: TreeviewItem[], unchecked: TreeviewItem[]): { [k: string]: TreeviewItem[] } {\r\n let checkedItems = [...checked];\r\n let uncheckedItems = [...unchecked];\r\n for (const item of items) {\r\n const selection = item.getSelection();\r\n checkedItems = concat(checkedItems, selection.checkedItems);\r\n uncheckedItems = concat(uncheckedItems, selection.uncheckedItems);\r\n }\r\n return {\r\n checked: checkedItems,\r\n unchecked: uncheckedItems\r\n };\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TreeviewItem, TreeviewSelection } from './treeview-item';\r\n@Injectable()\r\nexport abstract class TreeviewI18n {\r\n abstract getText(selection: TreeviewSelection): string;\r\n abstract getAllCheckboxText(): string;\r\n abstract getFilterPlaceholder(): string;\r\n abstract getFilterNoItemsFoundText(): string;\r\n abstract getTooltipCollapseExpandText(isCollapse: boolean): string;\r\n}\r\n@Injectable()\r\nexport class TreeviewI18nDefault extends TreeviewI18n {\r\n getText(selection: TreeviewSelection): string {\r\n if (selection.uncheckedItems.length === 0) {\r\n return this.getAllCheckboxText();\r\n }\r\n switch (selection.checkedItems.length) {\r\n case 0:\r\n return 'گزینه مورد نظر را انتخاب کنید';\r\n case 1:\r\n return selection.checkedItems[0].text;\r\n default:\r\n return `${selection.checkedItems.length} گزینه های انتخاب شده`;\r\n }\r\n }\r\n getAllCheckboxText(): string {\r\n return 'همه';\r\n }\r\n getFilterPlaceholder(): string {\r\n return 'جستجو';\r\n }\r\n getFilterNoItemsFoundText(): string {\r\n return 'هیچ قلمی پیدا نشئ';\r\n }\r\n getTooltipCollapseExpandText(isCollapse: boolean): string {\r\n return isCollapse ? 'باز کردن' : 'بستن';\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';\r\nimport { isNil } from 'lodash';\r\nimport { TreeviewItem } from './treeview-item';\r\nimport { TreeviewConfig } from './treeview-config';\r\nimport { TreeviewItemTemplateContext } from './treeview-item-template-context';\r\n@Component({\r\n selector: 'ngx-treeview-item',\r\n templateUrl: './treeview-item.component.html',\r\n styleUrls: ['./treeview-item.component.scss']\r\n})\r\nexport class TreeviewItemComponent {\r\n @Input() config: TreeviewConfig;\r\n @Input() template: TemplateRef;\r\n @Input() item: TreeviewItem;\r\n @Output() checkedChange = new EventEmitter();\r\n constructor(\r\n private defaultConfig: TreeviewConfig\r\n ) {\r\n this.config = this.defaultConfig;\r\n }\r\n onCollapseExpand = () => {\r\n this.item.collapsed = !this.item.collapsed;\r\n }\r\n onCheckedChange = () => {\r\n const checked = this.item.checked;\r\n if (!isNil(this.item.children) && !this.config.decoupleChildFromParent) {\r\n this.item.children.forEach(child => child.setCheckedRecursive(checked));\r\n }\r\n this.checkedChange.emit(checked);\r\n }\r\n onChildCheckedChange(child: TreeviewItem, checked: boolean) {\r\n if (!this.config.decoupleChildFromParent) {\r\n let itemChecked: boolean = null;\r\n for (const childItem of this.item.children) {\r\n if (itemChecked === null) {\r\n itemChecked = childItem.checked;\r\n } else if (itemChecked !== childItem.checked) {\r\n itemChecked = undefined;\r\n break;\r\n }\r\n }\r\n if (itemChecked === null) {\r\n itemChecked = false;\r\n }\r\n if (this.item.checked !== itemChecked) {\r\n this.item.checked = itemChecked;\r\n }\r\n }\r\n this.checkedChange.emit(checked);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n","import { isBoolean, isNil, isString } from 'lodash';\r\nimport { TreeviewHelper } from './treeview-helper';\r\nexport interface TreeviewSelection {\r\n checkedItems: TreeviewItem[];\r\n uncheckedItems: TreeviewItem[];\r\n}\r\nexport interface TreeItem {\r\n text: string;\r\n value: any;\r\n disabled?: boolean;\r\n checked?: boolean;\r\n collapsed?: boolean;\r\n children?: TreeItem[];\r\n}\r\nexport class TreeviewItem {\r\n private internalDisabled = false;\r\n private internalChecked = true;\r\n private internalCollapsed = false;\r\n private internalChildren: TreeviewItem[];\r\n text: string;\r\n value: any;\r\n constructor(item: TreeItem, autoCorrectChecked = false) {\r\n if (isNil(item)) {\r\n throw new Error('Item must be defined');\r\n }\r\n if (isString(item.text)) {\r\n this.text = item.text;\r\n } else {\r\n throw new Error('A text of item must be string object');\r\n }\r\n this.value = item.value;\r\n if (isBoolean(item.checked)) {\r\n this.checked = item.checked;\r\n }\r\n if (isBoolean(item.collapsed)) {\r\n this.collapsed = item.collapsed;\r\n }\r\n if (isBoolean(item.disabled)) {\r\n this.disabled = item.disabled;\r\n }\r\n if (!isNil(item.children) && item.children.length > 0) {\r\n this.children = item.children.map(child => {\r\n if (this.disabled === true) {\r\n child.disabled = true;\r\n }\r\n return new TreeviewItem(child);\r\n });\r\n }\r\n if (autoCorrectChecked) {\r\n this.correctChecked();\r\n }\r\n }\r\n get checked(): boolean {\r\n return this.internalChecked;\r\n }\r\n set checked(value: boolean) {\r\n if (!this.internalDisabled) {\r\n if (this.internalChecked !== value) {\r\n this.internalChecked = value;\r\n }\r\n }\r\n }\r\n get indeterminate(): boolean {\r\n return this.checked === undefined;\r\n }\r\n setCheckedRecursive(value: boolean) {\r\n if (!this.internalDisabled) {\r\n this.internalChecked = value;\r\n if (!isNil(this.internalChildren)) {\r\n this.internalChildren.forEach(child => child.setCheckedRecursive(value));\r\n }\r\n }\r\n }\r\n get disabled(): boolean {\r\n return this.internalDisabled;\r\n }\r\n set disabled(value: boolean) {\r\n if (this.internalDisabled !== value) {\r\n this.internalDisabled = value;\r\n if (!isNil(this.internalChildren)) {\r\n this.internalChildren.forEach(child => child.disabled = value);\r\n }\r\n }\r\n }\r\n get collapsed(): boolean {\r\n return this.internalCollapsed;\r\n }\r\n set collapsed(value: boolean) {\r\n if (this.internalCollapsed !== value) {\r\n this.internalCollapsed = value;\r\n }\r\n }\r\n setCollapsedRecursive(value: boolean) {\r\n this.internalCollapsed = value;\r\n if (!isNil(this.internalChildren)) {\r\n this.internalChildren.forEach(child => child.setCollapsedRecursive(value));\r\n }\r\n }\r\n get children(): TreeviewItem[] {\r\n return this.internalChildren;\r\n }\r\n set children(value: TreeviewItem[]) {\r\n if (this.internalChildren !== value) {\r\n if (!isNil(value) && value.length === 0) {\r\n throw new Error('Children must be not an empty array');\r\n }\r\n this.internalChildren = value;\r\n if (!isNil(this.internalChildren)) {\r\n let checked = null;\r\n this.internalChildren.forEach(child => {\r\n if (checked === null) {\r\n checked = child.checked;\r\n } else {\r\n if (child.checked !== checked) {\r\n checked = undefined;\r\n return;\r\n }\r\n }\r\n });\r\n this.internalChecked = checked;\r\n }\r\n }\r\n }\r\n getSelection(): TreeviewSelection {\r\n let checkedItems: TreeviewItem[] = [];\r\n let uncheckedItems: TreeviewItem[] = [];\r\n if (isNil(this.internalChildren)) {\r\n if (this.internalChecked) {\r\n checkedItems.push(this);\r\n } else {\r\n uncheckedItems.push(this);\r\n }\r\n } else {\r\n const selection = TreeviewHelper.concatSelection(this.internalChildren, checkedItems, uncheckedItems);\r\n checkedItems = selection.checked;\r\n uncheckedItems = selection.unchecked;\r\n }\r\n return {\r\n checkedItems: checkedItems,\r\n uncheckedItems: uncheckedItems\r\n };\r\n }\r\n correctChecked() {\r\n this.internalChecked = this.getCorrectChecked();\r\n }\r\n private getCorrectChecked(): boolean {\r\n let checked: boolean = null;\r\n if (!isNil(this.internalChildren)) {\r\n for (const child of this.internalChildren) {\r\n child.internalChecked = child.getCorrectChecked();\r\n if (checked === null) {\r\n checked = child.internalChecked;\r\n } else if (checked !== child.internalChecked) {\r\n checked = undefined;\r\n break;\r\n }\r\n }\r\n } else {\r\n checked = this.checked;\r\n }\r\n return checked;\r\n }\r\n}\r\n","import { Component, Input, Output, EventEmitter, SimpleChanges, OnChanges, TemplateRef } from '@angular/core';\r\nimport { isNil, includes } from 'lodash';\r\nimport { TreeviewI18n } from './treeview-i18n';\r\nimport { TreeviewItem, TreeviewSelection } from './treeview-item';\r\nimport { TreeviewConfig } from './treeview-config';\r\nimport { TreeviewEventParser } from './treeview-event-parser';\r\nimport { TreeviewHeaderTemplateContext } from './treeview-header-template-context';\r\nimport { TreeviewItemTemplateContext } from './treeview-item-template-context';\r\nimport { TreeviewHelper } from './treeview-helper';\r\nclass FilterTreeviewItem extends TreeviewItem {\r\n private readonly refItem: TreeviewItem;\r\n constructor(item: TreeviewItem) {\r\n super({\r\n text: item.text,\r\n value: item.value,\r\n disabled: item.disabled,\r\n checked: item.checked,\r\n collapsed: item.collapsed,\r\n children: item.children\r\n });\r\n this.refItem = item;\r\n }\r\n updateRefChecked() {\r\n this.children.forEach(child => {\r\n if (child instanceof FilterTreeviewItem) {\r\n child.updateRefChecked();\r\n }\r\n });\r\n let refChecked = this.checked;\r\n if (refChecked) {\r\n for (const refChild of this.refItem.children) {\r\n if (!refChild.checked) {\r\n refChecked = false;\r\n break;\r\n }\r\n }\r\n }\r\n this.refItem.checked = refChecked;\r\n }\r\n}\r\n@Component({\r\n selector: 'ngx-treeview',\r\n templateUrl: './treeview.component.html',\r\n styleUrls: ['./treeview.component.scss']\r\n})\r\nexport class TreeviewComponent implements OnChanges {\r\n @Input() headerTemplate: TemplateRef;\r\n @Input() itemTemplate: TemplateRef;\r\n @Input() items: TreeviewItem[];\r\n @Input() config: TreeviewConfig;\r\n @Output() selectedChange = new EventEmitter();\r\n @Output() filterChange = new EventEmitter();\r\n headerTemplateContext: TreeviewHeaderTemplateContext;\r\n allItem: TreeviewItem;\r\n filterText = '';\r\n filterItems: TreeviewItem[];\r\n selection: TreeviewSelection;\r\n constructor(\r\n public i18n: TreeviewI18n,\r\n private defaultConfig: TreeviewConfig,\r\n private eventParser: TreeviewEventParser\r\n ) {\r\n this.config = this.defaultConfig;\r\n this.allItem = new TreeviewItem({ text: 'All', value: undefined });\r\n this.createHeaderTemplateContext();\r\n }\r\n get rtl(): boolean {\r\n return true;\r\n }\r\n get hasFilterItems(): boolean {\r\n return !isNil(this.filterItems) && this.filterItems.length > 0;\r\n }\r\n get maxHeight(): string {\r\n return `${this.config.maxHeight}`;\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n const itemsSimpleChange = changes['items'];\r\n if (!isNil(itemsSimpleChange)) {\r\n if (!isNil(this.items)) {\r\n this.updateFilterItems();\r\n this.updateCollapsedOfAll();\r\n this.raiseSelectedChange();\r\n }\r\n }\r\n this.createHeaderTemplateContext();\r\n }\r\n onAllCollapseExpand() {\r\n this.allItem.collapsed = !this.allItem.collapsed;\r\n this.filterItems.forEach(item => item.setCollapsedRecursive(this.allItem.collapsed));\r\n }\r\n onFilterTextChange(text: string) {\r\n this.filterText = text;\r\n this.filterChange.emit(text);\r\n this.updateFilterItems();\r\n }\r\n onAllCheckedChange() {\r\n const checked = this.allItem.checked;\r\n this.filterItems.forEach(item => {\r\n item.setCheckedRecursive(checked);\r\n if (item instanceof FilterTreeviewItem) {\r\n item.updateRefChecked();\r\n }\r\n });\r\n this.raiseSelectedChange();\r\n }\r\n onItemCheckedChange(item: TreeviewItem, checked: boolean) {\r\n if (item instanceof FilterTreeviewItem) {\r\n item.updateRefChecked();\r\n }\r\n this.updateCheckedOfAll();\r\n this.raiseSelectedChange();\r\n }\r\n raiseSelectedChange() {\r\n this.generateSelection();\r\n const values = this.eventParser.getSelectedChange(this);\r\n this.selectedChange.emit(values);\r\n }\r\n private createHeaderTemplateContext() {\r\n this.headerTemplateContext = {\r\n config: this.config,\r\n item: this.allItem,\r\n onCheckedChange: () => this.onAllCheckedChange(),\r\n onCollapseExpand: () => this.onAllCollapseExpand(),\r\n onFilterTextChange: (text) => this.onFilterTextChange(text)\r\n };\r\n }\r\n private generateSelection() {\r\n let checkedItems: TreeviewItem[] = [];\r\n let uncheckedItems: TreeviewItem[] = [];\r\n if (!isNil(this.items)) {\r\n const selection = TreeviewHelper.concatSelection(this.items, checkedItems, uncheckedItems);\r\n checkedItems = selection.checked;\r\n uncheckedItems = selection.unchecked;\r\n }\r\n this.selection = {\r\n checkedItems: checkedItems,\r\n uncheckedItems: uncheckedItems\r\n };\r\n }\r\n private updateFilterItems() {\r\n if (this.filterText !== '') {\r\n const filterItems: TreeviewItem[] = [];\r\n const filterText = this.filterText.toLowerCase();\r\n this.items.forEach(item => {\r\n const newItem = this.filterItem(item, filterText);\r\n if (!isNil(newItem)) {\r\n filterItems.push(newItem);\r\n }\r\n });\r\n this.filterItems = filterItems;\r\n } else {\r\n this.filterItems = this.items;\r\n }\r\n this.updateCheckedOfAll();\r\n }\r\n private filterItem(item: TreeviewItem, filterText: string): TreeviewItem {\r\n const isMatch = includes(item.text.toLowerCase(), filterText);\r\n if (isMatch) {\r\n return item;\r\n } else {\r\n if (!isNil(item.children)) {\r\n const children: TreeviewItem[] = [];\r\n item.children.forEach(child => {\r\n const newChild = this.filterItem(child, filterText);\r\n if (!isNil(newChild)) {\r\n children.push(newChild);\r\n }\r\n });\r\n if (children.length > 0) {\r\n const newItem = new FilterTreeviewItem(item);\r\n newItem.collapsed = false;\r\n newItem.children = children;\r\n return newItem;\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n private updateCheckedOfAll() {\r\n let itemChecked: boolean = null;\r\n for (const filterItem of this.filterItems) {\r\n if (itemChecked === null) {\r\n itemChecked = filterItem.checked;\r\n } else if (itemChecked !== filterItem.checked) {\r\n itemChecked = undefined;\r\n break;\r\n }\r\n }\r\n if (itemChecked === null) {\r\n itemChecked = false;\r\n }\r\n this.allItem.checked = itemChecked;\r\n }\r\n private updateCollapsedOfAll() {\r\n let hasItemExpanded = false;\r\n for (const filterItem of this.filterItems) {\r\n if (!filterItem.collapsed) {\r\n hasItemExpanded = true;\r\n break;\r\n }\r\n }\r\n this.allItem.collapsed = !hasItemExpanded;\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ i18n.getFilterNoItemsFoundText() }}\r\n
\r\n
\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonModule } from '@angular/common';\r\nimport { DropdownDirective } from './dropdown.directive';\r\nimport { DropdownMenuDirective } from './dropdown-menu.directive';\r\nimport { DropdownToggleDirective } from './dropdown-toggle.directive';\r\nimport { DropdownTreeviewComponent } from './dropdown-treeview.component';\r\nimport { TreeviewComponent } from './treeview.component';\r\nimport { TreeviewItemComponent } from './treeview-item.component';\r\nimport { TreeviewPipe } from './treeview.pipe';\r\nimport { TreeviewI18n, TreeviewI18nDefault } from './treeview-i18n';\r\nimport { TreeviewConfig } from './treeview-config';\r\nimport { TreeviewEventParser, DefaultTreeviewEventParser } from './treeview-event-parser';\r\n@NgModule({\r\n imports: [\r\n FormsModule,\r\n CommonModule\r\n ],\r\n declarations: [\r\n TreeviewComponent,\r\n TreeviewItemComponent,\r\n TreeviewPipe,\r\n DropdownDirective,\r\n DropdownMenuDirective,\r\n DropdownToggleDirective,\r\n DropdownTreeviewComponent\r\n ], exports: [\r\n TreeviewComponent,\r\n TreeviewPipe,\r\n DropdownTreeviewComponent\r\n ]\r\n})\r\nexport class TreeviewModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: TreeviewModule,\r\n providers: [\r\n TreeviewConfig,\r\n { provide: TreeviewI18n, useClass: TreeviewI18nDefault },\r\n { provide: TreeviewEventParser, useClass: DefaultTreeviewEventParser }\r\n ]\r\n };\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { isNil } from 'lodash';\r\nimport { TreeviewItem } from './treeview-item';\r\n@Pipe({\r\n name: 'ngxTreeview'\r\n})\r\nexport class TreeviewPipe implements PipeTransform {\r\n transform(objects: any[], textField: string): TreeviewItem[] {\r\n if (isNil(objects)) {\r\n return undefined;\r\n }\r\n return objects.map(object => new TreeviewItem({ text: object[textField], value: object }));\r\n }\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n Output,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'dp-calendar-nav',\r\n templateUrl: './calendar-nav.component.html',\r\n styleUrls: ['./calendar-nav.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class CalendarNavComponent {\r\n @Input() label: string;\r\n @Input() isLabelClickable: boolean = false;\r\n @Input() showLeftNav: boolean = true;\r\n @Input() showLeftSecondaryNav: boolean = false;\r\n @Input() showRightNav: boolean = true;\r\n @Input() showRightSecondaryNav: boolean = false;\r\n @Input() leftNavDisabled: boolean = false;\r\n @Input() leftSecondaryNavDisabled: boolean = false;\r\n @Input() rightNavDisabled: boolean = false;\r\n @Input() rightSecondaryNavDisabled: boolean = false;\r\n @Input() showGoToCurrent: boolean = true;\r\n @HostBinding('class') @Input() theme: string = '';\r\n\r\n @Output() onLeftNav: EventEmitter = new EventEmitter();\r\n @Output() onLeftSecondaryNav: EventEmitter = new EventEmitter();\r\n @Output() onRightNav: EventEmitter = new EventEmitter();\r\n @Output() onRightSecondaryNav: EventEmitter = new EventEmitter();\r\n @Output() onLabelClick: EventEmitter = new EventEmitter();\r\n @Output() onGoToCurrent: EventEmitter = new EventEmitter();\r\n\r\n leftNavClicked() {\r\n this.onLeftNav.emit();\r\n }\r\n\r\n leftSecondaryNavClicked() {\r\n this.onLeftSecondaryNav.emit();\r\n }\r\n\r\n rightNavClicked() {\r\n this.onRightNav.emit();\r\n }\r\n\r\n rightSecondaryNavClicked() {\r\n this.onRightSecondaryNav.emit();\r\n }\r\n\r\n labelClicked() {\r\n this.onLabelClick.emit();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import {Injectable} from '@angular/core';\r\nimport {TDrops, TOpens} from '../../types/poistions.type';\r\n\r\n@Injectable()\r\nexport class DomHelper {\r\n\r\n private static setYAxisPosition(element: HTMLElement, container: HTMLElement, anchor: HTMLElement, drops: TDrops) {\r\n const anchorRect = anchor.getBoundingClientRect();\r\n const containerRect = container.getBoundingClientRect();\r\n const bottom = anchorRect.bottom - containerRect.top;\r\n const top = anchorRect.top - containerRect.top;\r\n\r\n if (drops === 'down') {\r\n element.style.top = (bottom + 1 + 'px');\r\n } else {\r\n element.style.top = (top - 1 - element.scrollHeight) + 'px';\r\n }\r\n }\r\n\r\n private static setXAxisPosition(element: HTMLElement, container: HTMLElement, anchor: HTMLElement, dimElem: HTMLElement, opens: TOpens) {\r\n const anchorRect = anchor.getBoundingClientRect();\r\n const containerRect = container.getBoundingClientRect();\r\n const left = anchorRect.left - containerRect.left;\r\n\r\n if (opens === 'right') {\r\n element.style.left = left + 'px';\r\n } else {\r\n element.style.left = left - dimElem.offsetWidth + anchor.offsetWidth + 'px';\r\n }\r\n }\r\n\r\n private static isTopInView(el: HTMLElement): boolean {\r\n const {top} = el.getBoundingClientRect();\r\n return (top >= 0);\r\n }\r\n\r\n private static isBottomInView(el: HTMLElement): boolean {\r\n const {bottom} = el.getBoundingClientRect();\r\n return (bottom <= window.innerHeight);\r\n }\r\n\r\n private static isLeftInView(el: HTMLElement): boolean {\r\n const {left} = el.getBoundingClientRect();\r\n return (left >= 0);\r\n }\r\n\r\n private static isRightInView(el: HTMLElement): boolean {\r\n const {right} = el.getBoundingClientRect();\r\n return (right <= window.innerWidth);\r\n }\r\n\r\n appendElementToPosition(config: IAppendToArgs): void {\r\n const {container, element} = config;\r\n\r\n if (!container.style.position || container.style.position === 'static') {\r\n container.style.position = 'relative';\r\n }\r\n\r\n if (element.style.position !== 'absolute') {\r\n element.style.position = 'absolute';\r\n }\r\n\r\n element.style.visibility = 'hidden';\r\n\r\n setTimeout(() => {\r\n this.setElementPosition(config);\r\n\r\n element.style.visibility = 'visible';\r\n });\r\n }\r\n\r\n setElementPosition({element, container, anchor, dimElem, drops, opens}: IAppendToArgs) {\r\n DomHelper.setYAxisPosition(element, container, anchor, 'down');\r\n DomHelper.setXAxisPosition(element, container, anchor, dimElem, 'right');\r\n\r\n if (drops !== 'down' && drops !== 'up') {\r\n if (DomHelper.isBottomInView(dimElem)) {\r\n DomHelper.setYAxisPosition(element, container, anchor, 'down');\r\n } else if (DomHelper.isTopInView(dimElem)) {\r\n DomHelper.setYAxisPosition(element, container, anchor, 'up');\r\n }\r\n } else {\r\n DomHelper.setYAxisPosition(element, container, anchor, drops);\r\n }\r\n\r\n if (opens !== 'left' && opens !== 'right') {\r\n if (DomHelper.isRightInView(dimElem)) {\r\n DomHelper.setXAxisPosition(element, container, anchor, dimElem, 'right');\r\n } else if (DomHelper.isLeftInView(dimElem)) {\r\n DomHelper.setXAxisPosition(element, container, anchor, dimElem, 'left');\r\n }\r\n } else {\r\n DomHelper.setXAxisPosition(element, container, anchor, dimElem, opens);\r\n }\r\n }\r\n}\r\n\r\nexport interface IAppendToArgs {\r\n container: HTMLElement;\r\n element: HTMLElement;\r\n anchor: HTMLElement;\r\n dimElem: HTMLElement;\r\n drops: TDrops;\r\n opens: TOpens;\r\n}\r\n","import {ECalendarValue} from '../../types/calendar-value-enum';\r\nimport {SingleCalendarValue} from '../../types/single-calendar-value';\r\nimport {Injectable} from '@angular/core';\r\nimport * as moment from 'jalali-moment';\r\nimport {Moment, MomentInput, unitOfTime} from 'jalali-moment';\r\nimport {CalendarValue} from '../../types/calendar-value';\r\nimport {IDate} from '../../models/date.model';\r\nimport {CalendarMode} from '../../types/calendar-mode';\r\nimport {DateValidator} from '../../types/validator.type';\r\nimport {ICalendarInternal} from '../../models/calendar.model';\r\n\r\n\r\nexport interface DateLimits {\r\n minDate?: SingleCalendarValue;\r\n maxDate?: SingleCalendarValue;\r\n minTime?: SingleCalendarValue;\r\n maxTime?: SingleCalendarValue;\r\n}\r\n\r\n@Injectable()\r\nexport class UtilsService {\r\n static debounce(func: Function, wait: number) {\r\n let timeout;\r\n return function () {\r\n const context = this, args = arguments;\r\n timeout = clearTimeout(timeout);\r\n setTimeout(() => {\r\n func.apply(context, args);\r\n }, wait);\r\n };\r\n };\r\n\r\n createArray(size: number): number[] {\r\n return new Array(size).fill(1);\r\n }\r\n\r\n convertToMoment(date: SingleCalendarValue, format: string, locale?: string): Moment {\r\n let m;\r\n if (!date) {\r\n m = null;\r\n } else if (typeof date === 'string') {\r\n m = moment(date, format);\r\n } else {\r\n m = date.clone();\r\n }\r\n if (m && locale) {\r\n m.locale(locale);\r\n }\r\n return m;\r\n }\r\n\r\n isDateValid(date: string, format: string, locale?: string): boolean {\r\n if (date === '') {\r\n return true;\r\n }\r\n // return moment(date, format, true, locale).isValid();\r\n return moment(date, format, true).isValid();\r\n }\r\n\r\n // todo:: add unit test\r\n getDefaultDisplayDate(current: Moment,\r\n selected: Moment[],\r\n allowMultiSelect: boolean,\r\n minDate: Moment,\r\n locale: string): Moment {\r\n let m = moment();\r\n if (current) {\r\n m = current.clone();\r\n } else if (minDate && minDate.isAfter(moment())) {\r\n m = minDate.clone();\r\n } else if (allowMultiSelect) {\r\n if (selected && selected[selected.length]) {\r\n m = selected[selected.length].clone();\r\n }\r\n } else if (selected && selected[0]) {\r\n m = selected[0].clone();\r\n }\r\n if (locale) {\r\n m.locale(locale);\r\n }\r\n return m;\r\n }\r\n\r\n // todo:: add unit test\r\n getInputType(value: CalendarValue, allowMultiSelect: boolean): ECalendarValue {\r\n if (Array.isArray(value)) {\r\n if (!value.length) {\r\n return ECalendarValue.MomentArr;\r\n } else if (typeof value[0] === 'string') {\r\n return ECalendarValue.StringArr;\r\n } else if (moment.isMoment(value[0])) {\r\n return ECalendarValue.MomentArr;\r\n }\r\n } else {\r\n if (typeof value === 'string') {\r\n return ECalendarValue.String;\r\n } else if (moment.isMoment(value)) {\r\n return ECalendarValue.Moment;\r\n }\r\n }\r\n\r\n return allowMultiSelect ? ECalendarValue.MomentArr : ECalendarValue.Moment;\r\n }\r\n\r\n // todo:: add unit test\r\n convertToMomentArray(value: CalendarValue, format: string, allowMultiSelect: boolean, locale: string): Moment[] {\r\n switch (this.getInputType(value, allowMultiSelect)) {\r\n case (ECalendarValue.String):\r\n return value ? [moment(value, format, true).locale(locale)] : [];\r\n case (ECalendarValue.StringArr):\r\n return (value).map(v => v ? moment(v, format, true).locale(locale) : null).filter(Boolean);\r\n case (ECalendarValue.Moment):\r\n return value ? [(value).clone().locale(locale)] : [];\r\n case (ECalendarValue.MomentArr):\r\n return (value || []).map(v => v.clone().locale(locale));\r\n default:\r\n return [];\r\n }\r\n }\r\n\r\n // todo:: add unit test\r\n convertFromMomentArray(format: string,\r\n value: Moment[],\r\n convertTo: ECalendarValue,\r\n locale: string): CalendarValue {\r\n switch (convertTo) {\r\n case (ECalendarValue.String):\r\n return value[0] && value[0].locale(locale).format(format);\r\n case (ECalendarValue.StringArr):\r\n return value.filter(Boolean).map(v => v.locale(locale).format(format));\r\n case (ECalendarValue.Moment):\r\n return value[0] ? value[0].clone().locale(locale) : value[0];\r\n case (ECalendarValue.MomentArr):\r\n return value ? value.map(v => v.clone().locale(locale)) : value;\r\n default:\r\n return value;\r\n }\r\n }\r\n\r\n convertToString(value: CalendarValue, format: string, locale?: string): string {\r\n let tmpVal: string[];\r\n\r\n if (typeof value === 'string') {\r\n tmpVal = [value];\r\n } else if (Array.isArray(value)) {\r\n if (value.length) {\r\n tmpVal = (value).map((v) => {\r\n return this.convertToMoment(v, format, locale).format(format);\r\n });\r\n } else {\r\n tmpVal = value;\r\n }\r\n } else if (moment.isMoment(value)) {\r\n tmpVal = [value.format(format)];\r\n } else {\r\n return '';\r\n }\r\n\r\n return tmpVal.filter(Boolean).join(' | ');\r\n }\r\n\r\n // todo:: add unit test\r\n clearUndefined(obj: T): T {\r\n if (!obj) {\r\n return obj;\r\n }\r\n\r\n Object.keys(obj).forEach((key) => (obj[key] === undefined) && delete obj[key]);\r\n return obj;\r\n }\r\n\r\n updateSelected(isMultiple: boolean,\r\n currentlySelected: Moment[],\r\n date: IDate,\r\n granularity: unitOfTime.Base = 'day'): Moment[] {\r\n const isSelected = !date.selected;\r\n if (isMultiple) {\r\n return isSelected\r\n ? currentlySelected.concat([date.date])\r\n : currentlySelected.filter(d => !d.isSame(date.date, granularity));\r\n } else {\r\n return isSelected ? [date.date] : [];\r\n }\r\n }\r\n\r\n closestParent(element: HTMLElement, selector: string): HTMLElement {\r\n if (!element) {\r\n return undefined;\r\n }\r\n const match = element.querySelector(selector);\r\n return match || this.closestParent(element.parentElement, selector);\r\n }\r\n\r\n onlyTime(m: Moment): Moment {\r\n return m && moment.isMoment(m) && moment(m.format('HH:mm:ss'), 'HH:mm:ss');\r\n }\r\n\r\n granularityFromType(calendarType: CalendarMode): unitOfTime.Base {\r\n switch (calendarType) {\r\n case 'time':\r\n return 'second';\r\n case 'daytime':\r\n return 'second';\r\n default:\r\n return calendarType;\r\n }\r\n }\r\n\r\n createValidator({minDate, maxDate, minTime, maxTime}: DateLimits,\r\n format: string,\r\n calendarType: CalendarMode,\r\n locale: string): DateValidator {\r\n let isValid: boolean;\r\n let value: Moment[];\r\n const validators = [];\r\n const granularity = this.granularityFromType(calendarType);\r\n\r\n if (minDate) {\r\n const md = this.convertToMoment(minDate, format, locale);\r\n validators.push({\r\n key: 'minDate',\r\n isValid: () => {\r\n const _isValid = value.every(val => val.isSameOrAfter(md, granularity));\r\n isValid = isValid ? _isValid : false;\r\n return _isValid;\r\n }\r\n });\r\n }\r\n\r\n if (maxDate) {\r\n const md = this.convertToMoment(maxDate, format, locale);\r\n validators.push({\r\n key: 'maxDate',\r\n isValid: () => {\r\n const _isValid = value.every(val => val.isSameOrBefore(md, granularity));\r\n isValid = isValid ? _isValid : false;\r\n return _isValid;\r\n }\r\n });\r\n }\r\n\r\n if (minTime) {\r\n const md = this.onlyTime(this.convertToMoment(minTime, format, locale));\r\n validators.push({\r\n key: 'minTime',\r\n isValid: () => {\r\n const _isValid = value.every(val => this.onlyTime(val).isSameOrAfter(md));\r\n isValid = isValid ? _isValid : false;\r\n return _isValid;\r\n }\r\n });\r\n }\r\n\r\n if (maxTime) {\r\n const md = this.onlyTime(this.convertToMoment(maxTime, format, locale));\r\n validators.push({\r\n key: 'maxTime',\r\n isValid: () => {\r\n const _isValid = value.every(val => this.onlyTime(val).isSameOrBefore(md));\r\n isValid = isValid ? _isValid : false;\r\n return _isValid;\r\n }\r\n });\r\n }\r\n\r\n return (inputVal: CalendarValue) => {\r\n isValid = true;\r\n\r\n value = this.convertToMomentArray(inputVal, format, true, locale).filter(Boolean);\r\n\r\n if (!value.every(val => val.isValid())) {\r\n return {\r\n format: {\r\n given: inputVal\r\n }\r\n };\r\n }\r\n\r\n const errors = validators.reduce((map, err) => {\r\n if (!err.isValid()) {\r\n map[err.key] = {\r\n given: value\r\n };\r\n }\r\n\r\n return map;\r\n }, {});\r\n\r\n return !isValid ? errors : null;\r\n };\r\n }\r\n\r\n datesStringToStringArray(value: string): string[] {\r\n return (value || '').split('|').map(m => m.trim()).filter(Boolean);\r\n }\r\n\r\n getValidMomentArray(value: string, format: string, locale: string): Moment[] {\r\n return this.datesStringToStringArray(value)\r\n .filter(d => this.isDateValid(d, format, locale))\r\n .map(d => moment(d, format));\r\n }\r\n\r\n shouldShowCurrent(showGoToCurrent: boolean,\r\n mode: CalendarMode,\r\n min: Moment,\r\n max: Moment): boolean {\r\n return showGoToCurrent &&\r\n mode !== 'time' &&\r\n this.isDateInRange(moment(), min, max);\r\n }\r\n\r\n isDateInRange(date: Moment, from: Moment, to: Moment): boolean {\r\n return date.isBetween(from, to, 'day', '[]');\r\n }\r\n\r\n convertPropsToMoment(obj: {[key: string]: any}, format: string, props: string[], locale?: string) {\r\n props.forEach((prop) => {\r\n if (obj.hasOwnProperty(prop)) {\r\n obj[prop] = this.convertToMoment(obj[prop], format, locale);\r\n }\r\n });\r\n }\r\n\r\n shouldResetCurrentView(prevConf: T, currentConf: T): boolean {\r\n if (prevConf && currentConf) {\r\n if (!prevConf.min && currentConf.min) {\r\n return true;\r\n } else if (prevConf.min && currentConf.min && !prevConf.min.isSame(currentConf.min, 'd')) {\r\n return true;\r\n } else if (!prevConf.max && currentConf.max) {\r\n return true;\r\n } else if (prevConf.max && currentConf.max && !prevConf.max.isSame(currentConf.max, 'd')) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n getNativeElement(elem: HTMLElement | string): HTMLElement {\r\n if (!elem) {\r\n return null;\r\n } else if (typeof elem === 'string') {\r\n return document.querySelector(elem);\r\n } else {\r\n return elem;\r\n }\r\n }\r\n}\r\n","export enum ECalendarMode {\r\n Day,\r\n DayTime,\r\n Month,\r\n Time\r\n}\r\n","export enum ECalendarValue {\r\n Moment = 1,\r\n MomentArr,\r\n String,\r\n StringArr\r\n}\r\n","import {NgModule, ModuleWithProviders} from '@angular/core';\r\nimport {FormsModule} from '@angular/forms';\r\nimport {CommonModule} from '@angular/common';\r\nimport {DomHelper} from './common/services/dom-appender/dom-appender.service';\r\nimport {UtilsService} from './common/services/utils/utils.service';\r\nimport {DatePickerComponent} from './date-picker/date-picker.component';\r\nimport {DatePickerDirective} from './date-picker/date-picker.directive';\r\nimport {DayCalendarComponent} from './day-calendar/day-calendar.component';\r\nimport {MonthCalendarComponent} from './month-calendar/month-calendar.component';\r\nimport {TimeSelectComponent} from './time-select/time-select.component';\r\nimport {CalendarNavComponent} from './calendar-nav/calendar-nav.component';\r\nimport {DayTimeCalendarComponent} from './day-time-calendar/day-time-calendar.component';\r\nexport {DatePickerDirective} from './date-picker/date-picker.directive';\r\nexport {DayCalendarComponent} from './day-calendar/day-calendar.component';\r\nexport {DayTimeCalendarComponent} from './day-time-calendar/day-time-calendar.component';\r\nexport {TimeSelectComponent} from './time-select/time-select.component';\r\nexport {MonthCalendarComponent} from './month-calendar/month-calendar.component';\r\n\r\n@NgModule({\r\n providers: [\r\n DomHelper,\r\n UtilsService\r\n ],\r\n declarations: [\r\n DatePickerComponent,\r\n DatePickerDirective,\r\n DayCalendarComponent,\r\n MonthCalendarComponent,\r\n CalendarNavComponent,\r\n TimeSelectComponent,\r\n DayTimeCalendarComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule\r\n ],\r\n exports: [\r\n DatePickerComponent,\r\n DatePickerDirective,\r\n MonthCalendarComponent,\r\n DayCalendarComponent,\r\n TimeSelectComponent,\r\n DayTimeCalendarComponent\r\n ]\r\n})\r\nexport class DpDatePickerModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: DpDatePickerModule,\r\n providers: []\r\n };\r\n }\r\n}\r\n","import {UtilsService} from '../common/services/utils/utils.service';\r\nimport {IDatePickerDirectiveConfig} from './date-picker-directive-config.model';\r\nimport {ElementRef, Injectable} from '@angular/core';\r\n\r\n@Injectable()\r\nexport class DatePickerDirectiveService {\r\n constructor(public utilsService: UtilsService) {\r\n }\r\n\r\n convertToHTMLElement(attachTo: ElementRef | string, baseElement: HTMLElement): HTMLElement {\r\n if (typeof attachTo === 'string') {\r\n return this.utilsService.closestParent(baseElement, attachTo);\r\n } else if (attachTo) {\r\n return attachTo.nativeElement;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n getConfig(config: IDatePickerDirectiveConfig = {},\r\n baseElement?: ElementRef,\r\n attachTo?: ElementRef | string): IDatePickerDirectiveConfig {\r\n const _config: IDatePickerDirectiveConfig = {...config};\r\n _config.hideInputContainer = true;\r\n\r\n let native;\r\n\r\n if (config.inputElementContainer) {\r\n native = this.utilsService.getNativeElement(config.inputElementContainer);\r\n } else {\r\n native = baseElement ? baseElement.nativeElement : null;\r\n }\r\n\r\n if (native) {\r\n _config.inputElementContainer = attachTo\r\n ? this.convertToHTMLElement(attachTo, native)\r\n : native;\r\n }\r\n\r\n return _config;\r\n }\r\n}\r\n","import * as moment from \"jalali-moment\";\r\nimport { IDate } from \"../common/models/date.model\";\r\nimport { DomHelper } from \"../common/services/dom-appender/dom-appender.service\";\r\nimport { UtilsService } from \"../common/services/utils/utils.service\";\r\nimport { CalendarMode } from \"../common/types/calendar-mode\";\r\nimport { ECalendarMode } from \"../common/types/calendar-mode-enum\";\r\nimport { CalendarValue } from \"../common/types/calendar-value\";\r\nimport { ECalendarValue } from \"../common/types/calendar-value-enum\";\r\nimport { SingleCalendarValue } from \"../common/types/single-calendar-value\";\r\nimport { IDayCalendarConfig } from \"../day-calendar/day-calendar-config.model\";\r\nimport { DayCalendarComponent } from \"../day-calendar/day-calendar.component\";\r\nimport { DayCalendarService } from \"../day-calendar/day-calendar.service\";\r\nimport { IDayTimeCalendarConfig } from \"../day-time-calendar/day-time-calendar-config.model\";\r\nimport { DayTimeCalendarService } from \"../day-time-calendar/day-time-calendar.service\";\r\nimport { ITimeSelectConfig } from \"../time-select/time-select-config.model\";\r\nimport { TimeSelectComponent } from \"../time-select/time-select.component\";\r\nimport { TimeSelectService } from \"../time-select/time-select.service\";\r\nimport { IDatePickerConfig, IDatePickerConfigInternal } from \"./date-picker-config.model\";\r\nimport { IDpDayPickerApi } from \"./date-picker.api\";\r\nimport { DatePickerService } from \"./date-picker.service\";\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n HostListener,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n Renderer2,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation,\r\n} from \"@angular/core\";\r\nimport { ControlValueAccessor, UntypedFormControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from \"@angular/forms\";\r\nimport { Moment, unitOfTime } from \"jalali-moment\";\r\nimport { DateValidator } from \"../common/types/validator.type\";\r\nimport { MonthCalendarComponent } from \"../month-calendar/month-calendar.component\";\r\nimport { DayTimeCalendarComponent } from \"../day-time-calendar/day-time-calendar.component\";\r\nimport { INavEvent } from \"../common/models/navigation-event.model\";\r\n\r\nexport function isNullOrUndefined(value: any) {\r\n return value === null || value === undefined;\r\n}\r\n\r\n@Component({\r\n selector: \"dp-date-picker\",\r\n templateUrl: \"date-picker.component.html\",\r\n styleUrls: [\"date-picker.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n DatePickerService,\r\n DayTimeCalendarService,\r\n DayCalendarService,\r\n TimeSelectService,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatePickerComponent),\r\n multi: true,\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DatePickerComponent),\r\n multi: true,\r\n },\r\n ],\r\n})\r\nexport class DatePickerComponent implements OnChanges, OnInit, AfterViewInit, ControlValueAccessor, Validator, OnDestroy {\r\n isshow: boolean;\r\n ngAfterViewChecked() {\r\n if (this.inputElementValue && this.inputElementValue !== undefined) {\r\n this.isshow = true;\r\n } else {\r\n this.isshow = false;\r\n }\r\n }\r\n show() {\r\n this.isshow = !this.isshow;\r\n }\r\n focusFunction() {\r\n this.isshow = true;\r\n //\r\n //const el = document.getElementById(this.name);\r\n //el.focus();\r\n }\r\n focusOutFunction() {\r\n const el = document.getElementById(this.name).innerText;\r\n if (isNullOrUndefined(el) || el === \"\") {\r\n this.isshow = false;\r\n }\r\n }\r\n\r\n isInitialized: boolean = false;\r\n @Input() config: IDatePickerConfig;\r\n @Input() name: string;\r\n @Input() required: boolean;\r\n @Input() mode: CalendarMode = \"day\";\r\n @Input() placeholder: string = \"\";\r\n @Input() disabled: boolean = false;\r\n @Input() displayDate: SingleCalendarValue;\r\n @HostBinding(\"class\") @Input() theme: string = \"\";\r\n @Input() minDate: SingleCalendarValue;\r\n @Input() maxDate: SingleCalendarValue;\r\n @Input() minTime: SingleCalendarValue;\r\n @Input() maxTime: SingleCalendarValue;\r\n @Input() label: string;\r\n @Output() open = new EventEmitter();\r\n @Output() close = new EventEmitter();\r\n @Output() onChange = new EventEmitter();\r\n @Output() onGoToCurrent: EventEmitter = new EventEmitter();\r\n @Output() onLeftNav: EventEmitter = new EventEmitter();\r\n @Output() onRightNav: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild(\"container\") calendarContainer: ElementRef;\r\n @ViewChild(\"dayCalendar\") dayCalendarRef: DayCalendarComponent;\r\n @ViewChild(\"monthCalendar\") monthCalendarRef: MonthCalendarComponent;\r\n @ViewChild(\"daytimeCalendar\") dayTimeCalendarRef: DayTimeCalendarComponent;\r\n @ViewChild(\"timeSelect\") timeSelectRef: TimeSelectComponent;\r\n\r\n componentConfig: IDatePickerConfigInternal;\r\n dayCalendarConfig: IDayCalendarConfig;\r\n dayTimeCalendarConfig: IDayTimeCalendarConfig;\r\n timeSelectConfig: ITimeSelectConfig;\r\n _areCalendarsShown: boolean = false;\r\n hideStateHelper: boolean = false;\r\n _selected: Moment[] = [];\r\n inputValue: CalendarValue;\r\n inputValueType: ECalendarValue;\r\n isFocusedTrigger: boolean = false;\r\n _currentDateView: Moment;\r\n inputElementValue: string;\r\n calendarWrapper: HTMLElement;\r\n appendToElement: HTMLElement;\r\n inputElementContainer: HTMLElement;\r\n popupElem: HTMLElement;\r\n handleInnerElementClickUnlisteners: Function[] = [];\r\n globalListnersUnlisteners: Function[] = [];\r\n validateFn: DateValidator;\r\n api: IDpDayPickerApi = {\r\n open: this.showCalendars.bind(this),\r\n close: this.hideCalendar.bind(this),\r\n moveCalendarTo: this.moveCalendarTo.bind(this),\r\n };\r\n\r\n set selected(selected: Moment[]) {\r\n this._selected = selected;\r\n this.inputElementValue = ((\r\n this.utilsService.convertFromMomentArray(this.componentConfig.format, selected, ECalendarValue.StringArr, this.componentConfig.locale)\r\n )).join(\" | \");\r\n if (this.mode === \"time\" && this.inputElementValue === \"Invalid date\") this.inputElementValue = \"00:00:00\";\r\n const val = this.processOnChangeCallback(selected);\r\n this.onChangeCallback(val, false);\r\n this.onChange.emit(val);\r\n }\r\n\r\n get selected(): Moment[] {\r\n return this._selected;\r\n }\r\n\r\n get areCalendarsShown(): boolean {\r\n return this._areCalendarsShown;\r\n }\r\n\r\n get openOnFocus(): boolean {\r\n return this.componentConfig.openOnFocus;\r\n }\r\n\r\n get openOnClick(): boolean {\r\n return this.componentConfig.openOnClick;\r\n }\r\n\r\n set areCalendarsShown(value: boolean) {\r\n if (value) {\r\n this.startGlobalListeners();\r\n this.domHelper.appendElementToPosition({\r\n container: this.appendToElement,\r\n element: this.calendarWrapper,\r\n anchor: this.inputElementContainer,\r\n dimElem: this.popupElem,\r\n drops: this.componentConfig.drops,\r\n opens: this.componentConfig.opens,\r\n });\r\n } else {\r\n this.stopGlobalListeners();\r\n this.dayPickerService.pickerClosed();\r\n }\r\n\r\n this._areCalendarsShown = value;\r\n }\r\n\r\n get currentDateView(): Moment {\r\n return this._currentDateView;\r\n }\r\n\r\n set currentDateView(date: Moment) {\r\n this._currentDateView = date;\r\n\r\n if (this.dayCalendarRef) {\r\n this.dayCalendarRef.moveCalendarTo(date);\r\n }\r\n\r\n if (this.monthCalendarRef) {\r\n this.monthCalendarRef.moveCalendarTo(date);\r\n }\r\n\r\n if (this.dayTimeCalendarRef) {\r\n this.dayTimeCalendarRef.moveCalendarTo(date);\r\n }\r\n }\r\n\r\n constructor(\r\n private readonly dayPickerService: DatePickerService,\r\n private readonly domHelper: DomHelper,\r\n private readonly elemRef: ElementRef,\r\n private readonly renderer: Renderer2,\r\n private readonly utilsService: UtilsService,\r\n public readonly cd: ChangeDetectorRef\r\n ) {}\r\n\r\n @HostListener(\"click\")\r\n onClick() {\r\n if (!this.openOnClick) {\r\n return;\r\n }\r\n\r\n if (!this.isFocusedTrigger && !this.disabled) {\r\n this.hideStateHelper = true;\r\n if (!this.areCalendarsShown) {\r\n this.showCalendars();\r\n }\r\n }\r\n }\r\n\r\n onBodyClick() {\r\n if (this.componentConfig.hideOnOutsideClick) {\r\n if (!this.hideStateHelper && this.areCalendarsShown) {\r\n this.hideCalendar();\r\n }\r\n\r\n this.hideStateHelper = false;\r\n }\r\n }\r\n\r\n @HostListener(\"window:resize\")\r\n onScroll() {\r\n if (this.areCalendarsShown) {\r\n this.domHelper.setElementPosition({\r\n container: this.appendToElement,\r\n element: this.calendarWrapper,\r\n anchor: this.inputElementContainer,\r\n dimElem: this.popupElem,\r\n drops: this.componentConfig.drops,\r\n opens: this.componentConfig.opens,\r\n });\r\n }\r\n }\r\n\r\n writeValue(value: CalendarValue): void {\r\n this.inputValue = value;\r\n\r\n if (value || value === \"\") {\r\n this.selected = this.utilsService.convertToMomentArray(\r\n value,\r\n this.componentConfig.format,\r\n this.componentConfig.allowMultiSelect,\r\n this.componentConfig.locale\r\n );\r\n this.currentDateView = this.selected.length\r\n ? this.utilsService.getDefaultDisplayDate(\r\n null,\r\n this.selected,\r\n this.componentConfig.allowMultiSelect,\r\n this.componentConfig.min,\r\n this.componentConfig.locale\r\n )\r\n : this.currentDateView;\r\n this.init();\r\n } else {\r\n this.selected = [];\r\n }\r\n\r\n this.cd.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n onChangeCallback(_: any, changedByInput: boolean) {}\r\n\r\n registerOnTouched(fn: any): void {}\r\n\r\n validate(formControl: UntypedFormControl): ValidationErrors {\r\n return this.validateFn(formControl.value);\r\n }\r\n\r\n processOnChangeCallback(selected: Moment[] | string): CalendarValue {\r\n if (typeof selected === \"string\") {\r\n return selected;\r\n } else {\r\n return this.utilsService.convertFromMomentArray(\r\n this.componentConfig.format,\r\n selected,\r\n this.componentConfig.returnedValueType || this.inputValueType,\r\n this.componentConfig.locale\r\n );\r\n }\r\n }\r\n\r\n initValidators() {\r\n this.validateFn = this.utilsService.createValidator(\r\n {\r\n minDate: this.minDate,\r\n maxDate: this.maxDate,\r\n minTime: this.minTime,\r\n maxTime: this.maxTime,\r\n },\r\n this.componentConfig.format,\r\n this.mode,\r\n this.componentConfig.locale\r\n );\r\n this.onChangeCallback(this.processOnChangeCallback(this.selected), false);\r\n }\r\n\r\n ngOnInit() {\r\n this.isInitialized = true;\r\n this.init();\r\n this.initValidators();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.isInitialized) {\r\n const { minDate, maxDate, minTime, maxTime } = changes;\r\n\r\n this.init();\r\n\r\n if (minDate || maxDate || minTime || maxTime) {\r\n this.initValidators();\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setElementPositionInDom();\r\n }\r\n\r\n setDisabledState(isDisabled: boolean) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n setElementPositionInDom() {\r\n this.calendarWrapper = this.calendarContainer?.nativeElement;\r\n this.setInputElementContainer();\r\n this.popupElem = this.elemRef?.nativeElement?.querySelector(\".dp-popup\");\r\n this.handleInnerElementClick(this.popupElem);\r\n\r\n const { appendTo } = this.componentConfig;\r\n if (appendTo) {\r\n if (typeof appendTo === \"string\") {\r\n this.appendToElement = document.querySelector(appendTo);\r\n } else {\r\n this.appendToElement = appendTo;\r\n }\r\n } else {\r\n this.appendToElement = this.elemRef?.nativeElement;\r\n }\r\n\r\n this.appendToElement.appendChild(this.calendarWrapper);\r\n }\r\n\r\n setInputElementContainer() {\r\n this.inputElementContainer =\r\n this.utilsService.getNativeElement(this.componentConfig?.inputElementContainer) ||\r\n this.elemRef?.nativeElement?.querySelector(\".dp-input-container\") ||\r\n document?.body;\r\n }\r\n\r\n handleInnerElementClick(element: HTMLElement) {\r\n this.handleInnerElementClickUnlisteners.push(\r\n this.renderer.listen(element, \"click\", () => {\r\n this.hideStateHelper = true;\r\n })\r\n );\r\n }\r\n\r\n init() {\r\n this.componentConfig = this.dayPickerService.getConfig(this.config, this.mode);\r\n this.currentDateView = this.displayDate\r\n ? this.utilsService.convertToMoment(this.displayDate, this.componentConfig.format, this.componentConfig.locale).clone()\r\n : this.utilsService.getDefaultDisplayDate(\r\n this.currentDateView,\r\n this.selected,\r\n this.componentConfig.allowMultiSelect,\r\n this.componentConfig.min,\r\n this.componentConfig.locale\r\n );\r\n this.inputValueType = this.utilsService.getInputType(this.inputValue, this.componentConfig.allowMultiSelect);\r\n this.dayCalendarConfig = this.dayPickerService.getDayConfigService(this.componentConfig);\r\n this.dayTimeCalendarConfig = this.dayPickerService.getDayTimeConfigService(this.componentConfig);\r\n this.timeSelectConfig = this.dayPickerService.getTimeConfigService(this.componentConfig);\r\n }\r\n\r\n inputFocused() {\r\n if (!this.openOnFocus) {\r\n return;\r\n }\r\n\r\n this.isFocusedTrigger = true;\r\n setTimeout(() => {\r\n this.hideStateHelper = false;\r\n\r\n if (!this.areCalendarsShown) {\r\n this.showCalendars();\r\n }\r\n\r\n this.isFocusedTrigger = false;\r\n }, this.componentConfig.onOpenDelay);\r\n }\r\n\r\n showCalendars() {\r\n this.hideStateHelper = true;\r\n this.areCalendarsShown = true;\r\n\r\n if (this.timeSelectRef) {\r\n this.timeSelectRef.api.triggerChange();\r\n }\r\n\r\n this.open.emit();\r\n this.cd.markForCheck();\r\n }\r\n\r\n hideCalendar() {\r\n this.areCalendarsShown = false;\r\n\r\n if (this.dayCalendarRef) {\r\n this.dayCalendarRef.api.toggleCalendarMode(ECalendarMode.Day);\r\n }\r\n\r\n this.close.emit();\r\n this.cd.markForCheck();\r\n }\r\n\r\n onViewDateChange(value: CalendarValue, inputElement?: HTMLInputElement) {\r\n let strVal = value ? this.utilsService.convertToString(value, this.componentConfig.format, this.componentConfig.locale) : \"\";\r\n if (this.dayPickerService.isValidInputDateValue(strVal, this.componentConfig)) {\r\n if (strVal && this.componentConfig.locale === \"fa\") {\r\n // convert jalali to gregorian\r\n strVal = moment.from(strVal, \"fa\", this.componentConfig.format).format(this.componentConfig.format);\r\n }\r\n this.selected = this.dayPickerService.convertInputValueToMomentArray(strVal, this.componentConfig);\r\n this.currentDateView = this.selected.length\r\n ? this.utilsService.getDefaultDisplayDate(\r\n null,\r\n this.selected,\r\n this.componentConfig.allowMultiSelect,\r\n this.componentConfig.min,\r\n this.componentConfig.locale\r\n )\r\n : this.currentDateView;\r\n } else {\r\n const filteredStrVal = this.filterInvalidCharacters(strVal);\r\n if (filteredStrVal !== strVal && inputElement) inputElement.value = filteredStrVal;\r\n this._selected = this.utilsService.getValidMomentArray(filteredStrVal, this.componentConfig.format, this.componentConfig.locale);\r\n this.onChangeCallback(this.processOnChangeCallback(filteredStrVal), true);\r\n }\r\n }\r\n\r\n filterInvalidCharacters(value: string): string {\r\n const validChars = /^[0-9\\/:]*$/;\r\n return value\r\n .split(\"\")\r\n .filter((char) => validChars.test(char))\r\n .join(\"\");\r\n }\r\n\r\n dateSelected(date: IDate, granularity: unitOfTime.Base, ignoreClose?: boolean) {\r\n this.selected = this.utilsService.updateSelected(this.componentConfig.allowMultiSelect, this.selected, date, granularity);\r\n if (!ignoreClose) {\r\n this.onDateClick();\r\n }\r\n }\r\n\r\n onDateClick() {\r\n if (this.componentConfig.closeOnSelect) {\r\n setTimeout(this.hideCalendar.bind(this), this.componentConfig.closeOnSelectDelay);\r\n }\r\n }\r\n\r\n onKeyPress(event: KeyboardEvent) {\r\n switch (event.keyCode) {\r\n case 9:\r\n case 27:\r\n this.hideCalendar();\r\n break;\r\n }\r\n }\r\n\r\n moveCalendarTo(date: SingleCalendarValue) {\r\n const momentDate = this.utilsService.convertToMoment(date, this.componentConfig.format, this.componentConfig.locale);\r\n this.currentDateView = momentDate;\r\n }\r\n\r\n onLeftNavClick(change: INavEvent) {\r\n this.onLeftNav.emit(change);\r\n }\r\n\r\n onRightNavClick(change: INavEvent) {\r\n this.onRightNav.emit(change);\r\n }\r\n\r\n startGlobalListeners() {\r\n this.globalListnersUnlisteners.push(\r\n this.renderer.listen(document, \"keydown\", (e: KeyboardEvent) => {\r\n this.onKeyPress(e);\r\n }),\r\n this.renderer.listen(document, \"scroll\", () => {\r\n this.onScroll();\r\n }),\r\n this.renderer.listen(document, \"click\", () => {\r\n this.onBodyClick();\r\n })\r\n );\r\n }\r\n\r\n changeLocale(locale) {\r\n this.dayCalendarConfig = { ...this.dayCalendarConfig, ...{ locale } };\r\n this.dayTimeCalendarConfig = { ...this.dayTimeCalendarConfig, ...{ locale } };\r\n }\r\n\r\n stopGlobalListeners() {\r\n this.globalListnersUnlisteners.forEach((ul) => ul());\r\n this.globalListnersUnlisteners = [];\r\n }\r\n\r\n ngOnDestroy() {\r\n this.handleInnerElementClickUnlisteners.forEach((ul) => ul());\r\n\r\n if (this.appendToElement) {\r\n this.appendToElement.removeChild(this.calendarWrapper);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n * \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n بازه زمانی را انتخاب نمایید \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import {CalendarMode} from '../common/types/calendar-mode';\r\nimport {IDatePickerDirectiveConfig} from './date-picker-directive-config.model';\r\nimport {DatePickerDirectiveService} from './date-picker-directive.service';\r\nimport {IDpDayPickerApi} from './date-picker.api';\r\nimport {DatePickerComponent} from './date-picker.component';\r\nimport {\r\n ComponentFactoryResolver,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Output,\r\n ViewContainerRef\r\n} from '@angular/core';\r\nimport {NgControl} from '@angular/forms';\r\nimport {CalendarValue} from '../common/types/calendar-value';\r\nimport {SingleCalendarValue} from '../common/types/single-calendar-value';\r\nimport {INavEvent} from '../common/models/navigation-event.model';\r\nimport {UtilsService} from '../common/services/utils/utils.service'\r\n\r\n@Directive({\r\n exportAs: 'dpDayPicker',\r\n providers: [DatePickerDirectiveService],\r\n selector: '[dpDayPicker]'\r\n})\r\nexport class DatePickerDirective implements OnInit {\r\n private _config: IDatePickerDirectiveConfig;\r\n private _attachTo: ElementRef | string;\r\n private _theme: string;\r\n private _mode: CalendarMode = 'day';\r\n private _minDate: SingleCalendarValue;\r\n private _maxDate: SingleCalendarValue;\r\n private _minTime: SingleCalendarValue;\r\n private _maxTime: SingleCalendarValue;\r\n private _displayDate: SingleCalendarValue;\r\n\r\n get config(): IDatePickerDirectiveConfig {\r\n return this._config;\r\n }\r\n\r\n @Input('dpDayPicker') set config(config: IDatePickerDirectiveConfig) {\r\n this._config = this.service.getConfig(config, this.viewContainerRef.element, this.attachTo);\r\n this.updateDatepickerConfig();\r\n this.markForCheck();\r\n }\r\n\r\n get attachTo(): ElementRef | string {\r\n return this._attachTo;\r\n }\r\n\r\n @Input() set attachTo(attachTo: ElementRef | string) {\r\n this._attachTo = attachTo;\r\n this._config = this.service.getConfig(this.config, this.viewContainerRef.element, this.attachTo);\r\n this.updateDatepickerConfig();\r\n this.markForCheck();\r\n }\r\n\r\n get theme(): string {\r\n return this._theme;\r\n }\r\n\r\n @Input() set theme(theme: string) {\r\n this._theme = theme;\r\n if (this.datePicker) {\r\n this.datePicker.theme = theme;\r\n }\r\n\r\n this.markForCheck();\r\n }\r\n\r\n get mode(): CalendarMode {\r\n return this._mode;\r\n }\r\n\r\n @Input() set mode(mode: CalendarMode) {\r\n this._mode = mode;\r\n if (this.datePicker) {\r\n this.datePicker.mode = mode;\r\n }\r\n\r\n this.markForCheck();\r\n }\r\n\r\n @Input() set minDate(minDate: SingleCalendarValue) {\r\n this._minDate = minDate;\r\n if (this.datePicker) {\r\n this.datePicker.minDate = minDate;\r\n this.datePicker.ngOnInit();\r\n }\r\n\r\n this.markForCheck();\r\n }\r\n\r\n get minDate(): SingleCalendarValue {\r\n return this._minDate;\r\n }\r\n\r\n @Input() set maxDate(maxDate: SingleCalendarValue) {\r\n this._maxDate = maxDate;\r\n if (this.datePicker) {\r\n this.datePicker.maxDate = maxDate;\r\n this.datePicker.ngOnInit();\r\n }\r\n\r\n this.markForCheck();\r\n }\r\n\r\n get maxDate(): SingleCalendarValue {\r\n return this._maxDate;\r\n }\r\n\r\n @Input() set minTime(minTime: SingleCalendarValue) {\r\n this._minTime = minTime;\r\n if (this.datePicker) {\r\n this.datePicker.minTime = minTime;\r\n this.datePicker.ngOnInit();\r\n }\r\n\r\n this.markForCheck();\r\n }\r\n\r\n get minTime(): SingleCalendarValue {\r\n return this._minTime;\r\n }\r\n\r\n @Input() set maxTime(maxTime: SingleCalendarValue) {\r\n this._maxTime = maxTime;\r\n if (this.datePicker) {\r\n this.datePicker.maxTime = maxTime;\r\n this.datePicker.ngOnInit();\r\n }\r\n\r\n this.markForCheck();\r\n }\r\n\r\n get maxTime(): SingleCalendarValue {\r\n return this._maxTime;\r\n }\r\n\r\n get displayDate(): SingleCalendarValue {\r\n return this._displayDate;\r\n }\r\n\r\n @Input() set displayDate(displayDate: SingleCalendarValue) {\r\n this._displayDate = displayDate;\r\n this.updateDatepickerConfig();\r\n\r\n this.markForCheck();\r\n }\r\n\r\n @Output() open = new EventEmitter();\r\n @Output() close = new EventEmitter();\r\n @Output() onChange = new EventEmitter();\r\n @Output() onGoToCurrent: EventEmitter = new EventEmitter();\r\n @Output() onLeftNav: EventEmitter = new EventEmitter();\r\n @Output() onRightNav: EventEmitter = new EventEmitter();\r\n\r\n public datePicker: DatePickerComponent;\r\n public api: IDpDayPickerApi;\r\n\r\n constructor(public viewContainerRef: ViewContainerRef,\r\n public elemRef: ElementRef,\r\n public componentFactoryResolver: ComponentFactoryResolver,\r\n public service: DatePickerDirectiveService,\r\n @Optional() public formControl: NgControl,\r\n public utilsService: UtilsService) {\r\n }\r\n\r\n ngOnInit(): void {\r\n this.datePicker = this.createDatePicker();\r\n this.api = this.datePicker.api;\r\n this.updateDatepickerConfig();\r\n this.attachModelToDatePicker();\r\n this.datePicker.theme = this.theme;\r\n }\r\n\r\n createDatePicker(): DatePickerComponent {\r\n const factory = this.componentFactoryResolver.resolveComponentFactory(DatePickerComponent);\r\n return this.viewContainerRef.createComponent(factory).instance;\r\n }\r\n\r\n attachModelToDatePicker() {\r\n if (!this.formControl) {\r\n return;\r\n }\r\n\r\n this.datePicker.onViewDateChange(this.formControl.value);\r\n\r\n this.formControl.valueChanges\r\n .subscribe((value) => {\r\n if (value !== this.datePicker.inputElementValue) {\r\n const strVal = this.utilsService.convertToString(value, this.datePicker.componentConfig.format,\r\n this.datePicker.componentConfig.locale);\r\n this.datePicker.onViewDateChange(strVal);\r\n }\r\n });\r\n\r\n let setup = true;\r\n\r\n this.datePicker.registerOnChange((value, changedByInput) => {\r\n if (value) {\r\n const isMultiselectEmpty = setup && Array.isArray(value) && !value.length;\r\n\r\n if (!isMultiselectEmpty && !changedByInput) {\r\n this.formControl.control.setValue(this.datePicker.inputElementValue);\r\n }\r\n }\r\n\r\n const errors = this.datePicker.validateFn(value);\r\n\r\n if (!setup) {\r\n this.formControl.control.markAsDirty({\r\n onlySelf: true\r\n });\r\n } else {\r\n setup = false;\r\n }\r\n\r\n if (errors) {\r\n if (errors.hasOwnProperty('format')) {\r\n const {given} = errors['format'];\r\n this.datePicker.inputElementValue = given;\r\n if (!changedByInput) {\r\n this.formControl.control.setValue(given);\r\n }\r\n }\r\n\r\n this.formControl.control.setErrors(errors);\r\n }\r\n });\r\n }\r\n\r\n @HostListener('click')\r\n onClick() {\r\n this.datePicker.onClick();\r\n }\r\n\r\n @HostListener('focus')\r\n onFocus() {\r\n this.datePicker.inputFocused();\r\n }\r\n\r\n private updateDatepickerConfig() {\r\n if (this.datePicker) {\r\n this.datePicker.minDate = this.minDate;\r\n this.datePicker.maxDate = this.maxDate;\r\n this.datePicker.minTime = this.minTime;\r\n this.datePicker.maxTime = this.maxTime;\r\n this.datePicker.mode = this.mode || 'day';\r\n this.datePicker.displayDate = this.displayDate;\r\n this.datePicker.config = this.config;\r\n this.datePicker.open = this.open;\r\n this.datePicker.close = this.close;\r\n this.datePicker.onChange = this.onChange;\r\n this.datePicker.onGoToCurrent = this.onGoToCurrent;\r\n this.datePicker.onLeftNav = this.onLeftNav;\r\n this.datePicker.onRightNav = this.onRightNav;\r\n\r\n this.datePicker.init();\r\n\r\n if (this.datePicker?.componentConfig?.disableKeypress) {\r\n this.elemRef?.nativeElement?.setAttribute('readonly', true);\r\n } else {\r\n this.elemRef?.nativeElement?.removeAttribute('readonly');\r\n }\r\n }\r\n }\r\n\r\n markForCheck() {\r\n if (this.datePicker) {\r\n this.datePicker?.cd?.markForCheck();\r\n }\r\n }\r\n}\r\n","import { EventEmitter, Injectable } from \"@angular/core\";\r\nimport { IDatePickerConfig, IDatePickerConfigInternal } from \"./date-picker-config.model\";\r\nimport { Moment } from \"jalali-moment\";\r\nimport { UtilsService } from \"../common/services/utils/utils.service\";\r\nimport { IDayCalendarConfig } from \"../day-calendar/day-calendar-config.model\";\r\nimport { TimeSelectService } from \"../time-select/time-select.service\";\r\nimport { DayTimeCalendarService } from \"../day-time-calendar/day-time-calendar.service\";\r\nimport { ITimeSelectConfig } from \"../time-select/time-select-config.model\";\r\nimport { CalendarMode } from \"../common/types/calendar-mode\";\r\n\r\n@Injectable()\r\nexport class DatePickerService {\r\n readonly onPickerClosed: EventEmitter = new EventEmitter();\r\n private defaultConfig: IDatePickerConfigInternal = {\r\n closeOnSelect: true,\r\n closeOnSelectDelay: 100,\r\n format: \"YYYY-MM-D\",\r\n openOnFocus: true,\r\n openOnClick: true,\r\n onOpenDelay: 0,\r\n disableKeypress: false,\r\n showNearMonthDays: true,\r\n showWeekNumbers: false,\r\n enableMonthSelector: true,\r\n showGoToCurrent: true,\r\n locale: \"fa\",\r\n hideOnOutsideClick: true,\r\n };\r\n private gregorianExtensionConfig: IDatePickerConfig = {\r\n format: \"DD-MM-YYYY\",\r\n locale: \"en\",\r\n };\r\n constructor(\r\n private utilsService: UtilsService,\r\n private timeSelectService: TimeSelectService,\r\n private daytimeCalendarService: DayTimeCalendarService\r\n ) {}\r\n\r\n // todo:: add unit tests\r\n getConfig(config: IDatePickerConfig, mode: CalendarMode = \"daytime\"): IDatePickerConfigInternal {\r\n const _config = {\r\n ...this.defaultConfig,\r\n ...(config && config.locale && config.locale !== \"fa\" ? this.gregorianExtensionConfig : {}),\r\n format: this.getDefaultFormatByMode(mode, config),\r\n ...this.utilsService.clearUndefined(config),\r\n };\r\n\r\n this.utilsService.convertPropsToMoment(_config, _config.format, [\"min\", \"max\"], _config.locale);\r\n\r\n if (config && config.allowMultiSelect && config.closeOnSelect === undefined) {\r\n _config.closeOnSelect = false;\r\n }\r\n\r\n // moment.locale(_config.locale);\r\n\r\n return _config;\r\n }\r\n\r\n getDayConfigService(pickerConfig: IDatePickerConfig): IDayCalendarConfig {\r\n return {\r\n min: pickerConfig.min,\r\n max: pickerConfig.max,\r\n isDayDisabledCallback: pickerConfig.isDayDisabledCallback,\r\n weekDayFormat: pickerConfig.weekDayFormat,\r\n showNearMonthDays: pickerConfig.showNearMonthDays,\r\n showWeekNumbers: pickerConfig.showWeekNumbers,\r\n firstDayOfWeek: pickerConfig.firstDayOfWeek,\r\n format: pickerConfig.format,\r\n allowMultiSelect: pickerConfig.allowMultiSelect,\r\n monthFormat: pickerConfig.monthFormat,\r\n monthFormatter: pickerConfig.monthFormatter,\r\n enableMonthSelector: pickerConfig.enableMonthSelector,\r\n yearFormat: pickerConfig.yearFormat,\r\n yearFormatter: pickerConfig.yearFormatter,\r\n dayBtnFormat: pickerConfig.dayBtnFormat,\r\n dayBtnFormatter: pickerConfig.dayBtnFormatter,\r\n dayBtnCssClassCallback: pickerConfig.dayBtnCssClassCallback,\r\n monthBtnFormat: pickerConfig.monthBtnFormat,\r\n monthBtnFormatter: pickerConfig.monthBtnFormatter,\r\n monthBtnCssClassCallback: pickerConfig.monthBtnCssClassCallback,\r\n multipleYearsNavigateBy: pickerConfig.multipleYearsNavigateBy,\r\n showMultipleYearsNavigation: pickerConfig.showMultipleYearsNavigation,\r\n locale: pickerConfig.locale,\r\n returnedValueType: pickerConfig.returnedValueType,\r\n showGoToCurrent: pickerConfig.showGoToCurrent,\r\n unSelectOnClick: pickerConfig.unSelectOnClick,\r\n };\r\n }\r\n\r\n getDayTimeConfigService(pickerConfig: IDatePickerConfig): ITimeSelectConfig {\r\n return this.daytimeCalendarService.getConfig(pickerConfig);\r\n }\r\n\r\n getTimeConfigService(pickerConfig: IDatePickerConfig): ITimeSelectConfig {\r\n return this.timeSelectService.getConfig(pickerConfig);\r\n }\r\n\r\n pickerClosed() {\r\n this.onPickerClosed.emit();\r\n }\r\n\r\n // todo:: add unit tests\r\n isValidInputDateValue(value: string, config: IDatePickerConfig): boolean {\r\n value = value ? value : \"\";\r\n const datesStrArr: string[] = this.utilsService.datesStringToStringArray(value);\r\n\r\n return datesStrArr.every((date) => this.utilsService.isDateValid(date, config.format, config.locale));\r\n }\r\n\r\n // todo:: add unit tests\r\n convertInputValueToMomentArray(value: string, config: IDatePickerConfig): Moment[] {\r\n value = value ? value : \"\";\r\n const datesStrArr: string[] = this.utilsService.datesStringToStringArray(value);\r\n\r\n return this.utilsService.convertToMomentArray(datesStrArr, config.format, config.allowMultiSelect, config.locale);\r\n }\r\n\r\n private getDefaultFormatByMode(mode: CalendarMode, config: IDatePickerConfig): string {\r\n let dateFormat = \"YYYY-MM-DD\";\r\n let monthFormat = \"MMMM YYYY\";\r\n const timeFormat = config.showSeconds ? \"HH:mm:ss\" : \"HH:mm\";\r\n if (config && config.locale && config.locale !== \"fa\") {\r\n dateFormat = \"DD-MM-YYYY\";\r\n monthFormat = \"MMM, YYYY\";\r\n }\r\n switch (mode) {\r\n case \"day\":\r\n return dateFormat;\r\n case \"daytime\":\r\n return dateFormat + \" \" + timeFormat;\r\n case \"time\":\r\n return timeFormat;\r\n case \"month\":\r\n return monthFormat;\r\n }\r\n }\r\n}\r\n","import {ECalendarValue} from '../common/types/calendar-value-enum';\r\nimport {SingleCalendarValue} from '../common/types/single-calendar-value';\r\nimport {ECalendarMode} from '../common/types/calendar-mode-enum';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChange,\r\n SimpleChanges,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {DayCalendarService} from './day-calendar.service';\r\nimport {Moment, MomentInput, unitOfTime} from 'jalali-moment';\r\nimport {IDayCalendarConfig, IDayCalendarConfigInternal} from './day-calendar-config.model';\r\nimport {IDay} from './day.model';\r\nimport {\r\n ControlValueAccessor,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n Validator,\r\n UntypedFormControl,\r\n NG_VALIDATORS\r\n} from '@angular/forms';\r\nimport {CalendarValue} from '../common/types/calendar-value';\r\nimport {UtilsService} from '../common/services/utils/utils.service';\r\nimport {IMonthCalendarConfig} from '../month-calendar/month-calendar-config';\r\nimport {IMonth} from '../month-calendar/month.model';\r\nimport {DateValidator} from '../common/types/validator.type';\r\nimport {INavEvent} from '../common/models/navigation-event.model';\r\nimport * as moment from 'jalali-moment';\r\n\r\n@Component({\r\n selector: 'dp-day-calendar',\r\n templateUrl: 'day-calendar.component.html',\r\n styleUrls: ['day-calendar.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n DayCalendarService,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DayCalendarComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DayCalendarComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class DayCalendarComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {\r\n\r\n @Input() config: IDayCalendarConfig;\r\n @Input() displayDate: SingleCalendarValue;\r\n @Input() minDate: Moment;\r\n @Input() maxDate: Moment;\r\n @HostBinding('class') @Input() theme: string = '';\r\n\r\n @Output() onSelect: EventEmitter = new EventEmitter();\r\n @Output() onMonthSelect: EventEmitter = new EventEmitter();\r\n @Output() onNavHeaderBtnClick: EventEmitter = new EventEmitter();\r\n @Output() onGoToCurrent: EventEmitter = new EventEmitter();\r\n @Output() onLeftNav: EventEmitter = new EventEmitter();\r\n @Output() onRightNav: EventEmitter = new EventEmitter();\r\n\r\n CalendarMode = ECalendarMode;\r\n isInited: boolean = false;\r\n componentConfig: IDayCalendarConfigInternal;\r\n _selected: Moment[];\r\n weeks: IDay[][];\r\n weekdays: Moment[];\r\n _currentDateView: Moment;\r\n inputValue: CalendarValue;\r\n inputValueType: ECalendarValue;\r\n validateFn: DateValidator;\r\n currentCalendarMode: ECalendarMode = ECalendarMode.Day;\r\n monthCalendarConfig: IMonthCalendarConfig;\r\n _shouldShowCurrent: boolean = true;\r\n navLabel: string;\r\n showLeftNav: boolean;\r\n showRightNav: boolean;\r\n\r\n api = {\r\n moveCalendarsBy: this.moveCalendarsBy.bind(this),\r\n moveCalendarTo: this.moveCalendarTo.bind(this),\r\n toggleCalendarMode: this.toggleCalendarMode.bind(this)\r\n };\r\n\r\n set selected(selected: Moment[]) {\r\n this._selected = selected;\r\n this.onChangeCallback(this.processOnChangeCallback(selected));\r\n }\r\n\r\n get selected(): Moment[] {\r\n return this._selected;\r\n }\r\n\r\n set currentDateView(current: Moment) {\r\n this._currentDateView = current.clone();\r\n this.weeks = this.dayCalendarService\r\n .generateMonthArray(this.componentConfig, this._currentDateView, this.selected);\r\n this.navLabel = this.dayCalendarService.getHeaderLabel(this.componentConfig, this._currentDateView);\r\n this.showLeftNav = this.dayCalendarService.shouldShowLeft(this.componentConfig.min, this.currentDateView);\r\n this.showRightNav = this.dayCalendarService.shouldShowRight(this.componentConfig.max, this.currentDateView);\r\n }\r\n\r\n get currentDateView(): Moment {\r\n return this._currentDateView;\r\n }\r\n\r\n constructor(public readonly dayCalendarService: DayCalendarService,\r\n public readonly utilsService: UtilsService,\r\n public readonly cd: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.isInited = true;\r\n this.init();\r\n this.initValidators();\r\n }\r\n\r\n init() {\r\n this.componentConfig = this.dayCalendarService.getConfig(this.config);\r\n this.selected = this.selected || [];\r\n this.currentDateView = this.displayDate\r\n ? this.utilsService.convertToMoment(this.displayDate, this.componentConfig.format, this.componentConfig.locale).clone()\r\n : this.utilsService\r\n .getDefaultDisplayDate(\r\n this.currentDateView,\r\n this.selected,\r\n this.componentConfig.allowMultiSelect,\r\n this.componentConfig.min,\r\n this.componentConfig.locale\r\n );\r\n this.weekdays = this.dayCalendarService\r\n .generateWeekdays(this.componentConfig.firstDayOfWeek, this.componentConfig.locale);\r\n this.inputValueType = this.utilsService.getInputType(this.inputValue, this.componentConfig.allowMultiSelect);\r\n this.monthCalendarConfig = this.dayCalendarService.getMonthCalendarConfig(this.componentConfig);\r\n this._shouldShowCurrent = this.shouldShowCurrent();\r\n }\r\n isFarsi() {\r\n return this.componentConfig.locale === 'fa';\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.isInited) {\r\n const {minDate, maxDate, config} = changes;\r\n\r\n this.handleConfigChange(config);\r\n this.init();\r\n\r\n if (minDate || maxDate) {\r\n this.initValidators();\r\n }\r\n }\r\n }\r\n\r\n writeValue(value: CalendarValue): void {\r\n if (value === this.inputValue\r\n || (this.inputValue\r\n && (moment.isMoment(this.inputValue)) && (this.inputValue as Moment).isSame(value))\r\n ) {\r\n return;\r\n }\r\n\r\n this.inputValue = value;\r\n\r\n if (value) {\r\n this.selected = this.utilsService\r\n .convertToMomentArray(value, this.componentConfig.format, this.componentConfig.allowMultiSelect, this.componentConfig.locale);\r\n this.inputValueType = this.utilsService\r\n .getInputType(this.inputValue, this.componentConfig.allowMultiSelect);\r\n } else {\r\n this.selected = [];\r\n }\r\n\r\n this.weeks = this.dayCalendarService\r\n .generateMonthArray(this.componentConfig, this.currentDateView, this.selected);\r\n\r\n this.cd.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n onChangeCallback(_: any) {\r\n };\r\n\r\n registerOnTouched(fn: any): void {\r\n }\r\n\r\n validate(formControl: UntypedFormControl): ValidationErrors | any {\r\n if (this.minDate || this.maxDate) {\r\n return this.validateFn(formControl.value);\r\n } else {\r\n return () => null;\r\n }\r\n }\r\n\r\n processOnChangeCallback(value: Moment[]): CalendarValue {\r\n return this.utilsService.convertFromMomentArray(\r\n this.componentConfig.format,\r\n value,\r\n this.componentConfig.returnedValueType || this.inputValueType,\r\n this.componentConfig.locale\r\n );\r\n }\r\n\r\n initValidators() {\r\n this.validateFn = this.utilsService.createValidator(\r\n {minDate: this.minDate, maxDate: this.maxDate},\r\n this.componentConfig.format,\r\n 'day',\r\n this.componentConfig.locale\r\n );\r\n\r\n this.onChangeCallback(this.processOnChangeCallback(this.selected));\r\n }\r\n\r\n dayClicked(day: IDay) {\r\n if (day.selected && !this.componentConfig.unSelectOnClick) {\r\n return;\r\n }\r\n\r\n this.selected = this.utilsService\r\n .updateSelected(this.componentConfig.allowMultiSelect, this.selected, day);\r\n this.weeks = this.dayCalendarService\r\n .generateMonthArray(this.componentConfig, this.currentDateView, this.selected);\r\n this.onSelect.emit(day);\r\n }\r\n\r\n getDayBtnText(day: IDay): string {\r\n return this.dayCalendarService.getDayBtnText(this.componentConfig, day.date);\r\n }\r\n\r\n getDayBtnCssClass(day: IDay): {[klass: string]: boolean} {\r\n const cssClasses: {[klass: string]: boolean} = {\r\n 'dp-selected': day.selected,\r\n 'dp-current-month': day.currentMonth,\r\n 'dp-prev-month': day.prevMonth,\r\n 'dp-next-month': day.nextMonth,\r\n 'dp-current-day': day.currentDay\r\n };\r\n const customCssClass: string = this.dayCalendarService.getDayBtnCssClass(this.componentConfig, day.date);\r\n if (customCssClass) {\r\n cssClasses[customCssClass] = true;\r\n }\r\n\r\n return cssClasses;\r\n }\r\n\r\n onLeftNavClick() {\r\n const from = this.currentDateView.clone();\r\n this.moveCalendarsBy(this.currentDateView, -1, 'month');\r\n const to = this.currentDateView.clone();\r\n this.onLeftNav.emit({from, to});\r\n }\r\n\r\n onRightNavClick() {\r\n const from = this.currentDateView.clone();\r\n this.moveCalendarsBy(this.currentDateView, 1, 'month');\r\n const to = this.currentDateView.clone();\r\n this.onRightNav.emit({from, to});\r\n }\r\n\r\n onMonthCalendarLeftClick(change: INavEvent) {\r\n this.onLeftNav.emit(change);\r\n }\r\n\r\n onMonthCalendarRightClick(change: INavEvent) {\r\n this.onRightNav.emit(change);\r\n }\r\n\r\n onMonthCalendarSecondaryLeftClick(change: INavEvent) {\r\n this.onRightNav.emit(change);\r\n }\r\n\r\n onMonthCalendarSecondaryRightClick(change: INavEvent) {\r\n this.onLeftNav.emit(change);\r\n }\r\n\r\n getWeekdayName(weekday: Moment): string {\r\n if (this.componentConfig.weekDayFormatter) {\r\n return this.componentConfig.weekDayFormatter(weekday.day());\r\n }\r\n\r\n return weekday.format(this.componentConfig.weekDayFormat);\r\n }\r\n\r\n toggleCalendarMode(mode: ECalendarMode) {\r\n if (this.currentCalendarMode !== mode) {\r\n this.currentCalendarMode = mode;\r\n this.onNavHeaderBtnClick.emit(mode);\r\n }\r\n\r\n this.cd.markForCheck();\r\n }\r\n\r\n monthSelected(month: IMonth) {\r\n this.currentDateView = month.date.clone();\r\n this.currentCalendarMode = ECalendarMode.Day;\r\n this.onMonthSelect.emit(month);\r\n }\r\n\r\n moveCalendarsBy(current: Moment, amount: number, granularity: unitOfTime.Base = 'month') {\r\n this.currentDateView = current.clone().add(amount, granularity);\r\n this.cd.markForCheck();\r\n }\r\n\r\n moveCalendarTo(to: SingleCalendarValue) {\r\n if (to) {\r\n this.currentDateView = this.utilsService.convertToMoment(to, this.componentConfig.format, this.componentConfig.locale);\r\n }\r\n\r\n this.cd.markForCheck();\r\n }\r\n\r\n shouldShowCurrent(): boolean {\r\n return this.utilsService.shouldShowCurrent(\r\n this.componentConfig.showGoToCurrent,\r\n 'day',\r\n this.componentConfig.min,\r\n this.componentConfig.max\r\n );\r\n }\r\n\r\n goToCurrent() {\r\n this.currentDateView = moment().locale(this.componentConfig.locale);\r\n this.onGoToCurrent.emit();\r\n }\r\n\r\n handleConfigChange(config: SimpleChange) {\r\n if (config) {\r\n const prevConf: IDayCalendarConfigInternal = this.dayCalendarService.getConfig(config.previousValue);\r\n const currentConf: IDayCalendarConfigInternal = this.dayCalendarService.getConfig(config.currentValue);\r\n\r\n if (this.utilsService.shouldResetCurrentView(prevConf, currentConf)) {\r\n this._currentDateView = null;\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n","import {Injectable} from '@angular/core';\r\nimport {Moment, unitOfTime} from 'jalali-moment';\r\nimport {WeekDays} from '../common/types/week-days.type';\r\nimport {UtilsService} from '../common/services/utils/utils.service';\r\nimport {IDay} from './day.model';\r\nimport {IDayCalendarConfig, IDayCalendarConfigInternal} from './day-calendar-config.model';\r\nimport {IMonthCalendarConfig} from '../month-calendar/month-calendar-config';\r\nimport * as moment from 'jalali-moment';\r\n\r\n@Injectable()\r\nexport class DayCalendarService {\r\n private readonly DAYS = ['su', 'mo', 'tu', 'we', 'th', 'fr', 'sa'];\r\n readonly DEFAULT_CONFIG: IDayCalendarConfig = {\r\n showNearMonthDays: true,\r\n showWeekNumbers: false,\r\n firstDayOfWeek: 'sa',\r\n weekDayFormat: 'dd',\r\n format: 'YYYY/M/D',\r\n monthFormat: 'MMMM YYYY',\r\n dayBtnFormat: 'D',\r\n allowMultiSelect: false,\r\n enableMonthSelector: true,\r\n locale: 'fa'\r\n };\r\n readonly GREGORIAN_CONFIG_EXTENTION: IDayCalendarConfig = {\r\n firstDayOfWeek: 'su',\r\n weekDayFormat: 'ddd',\r\n format: 'DD-MM-YYYY',\r\n monthFormat: 'MMM, YYYY',\r\n locale: 'en',\r\n dayBtnFormat: 'DD',\r\n unSelectOnClick: true\r\n };\r\n\r\n constructor(private utilsService: UtilsService) {\r\n }\r\n\r\n private removeNearMonthWeeks(currentMonth: Moment, monthArray: IDay[][]): IDay[][] {\r\n if (monthArray[monthArray.length - 1].find((day) => day.date.isSame(currentMonth, 'month'))) {\r\n return monthArray;\r\n } else {\r\n return monthArray.slice(0, -1);\r\n }\r\n }\r\n\r\n getConfig(config: IDayCalendarConfig): IDayCalendarConfigInternal {\r\n const _config = {\r\n ...this.DEFAULT_CONFIG,\r\n ...((config && config.locale && config.locale !== 'fa') ? this.GREGORIAN_CONFIG_EXTENTION : {}),\r\n ...this.utilsService.clearUndefined(config)\r\n };\r\n\r\n this.utilsService.convertPropsToMoment(_config, _config.format, ['min', 'max'], _config.locale);\r\n\r\n // moment.locale(_config.locale);\r\n\r\n return _config;\r\n }\r\n\r\n generateDaysMap(firstDayOfWeek: WeekDays) {\r\n const firstDayIndex = this.DAYS.indexOf(firstDayOfWeek);\r\n const daysArr = this.DAYS.slice(firstDayIndex, 7).concat(this.DAYS.slice(0, firstDayIndex));\r\n return daysArr.reduce((map, day, index) => {\r\n map[day] = index;\r\n\r\n return map;\r\n }, <{[key: number]: string}>{});\r\n }\r\n\r\n generateMonthArray(config: IDayCalendarConfigInternal, month: Moment, selected: Moment[]): IDay[][] {\r\n let monthArray: IDay[][] = [];\r\n const firstDayOfWeekIndex = this.DAYS.indexOf(config.firstDayOfWeek);\r\n const firstDayOfBoard = month.clone().startOf('month');\r\n for (let i = 0; i < 8 && (firstDayOfBoard.day() !== firstDayOfWeekIndex) ; i++) {\r\n firstDayOfBoard.subtract(1, 'day');\r\n if (i === 7) {\r\n throw new Error('first day of Board has set Wrong');\r\n }\r\n }\r\n\r\n const current = firstDayOfBoard.clone();\r\n const prevMonth = month.clone().subtract(1, 'month');\r\n const nextMonth = month.clone().add(1, 'month');\r\n const today = moment();\r\n\r\n const daysOfCalendar: IDay[] = this.utilsService.createArray(42)\r\n .reduce((array: IDay[]) => {\r\n array.push({\r\n date: current.clone(),\r\n selected: !!selected.find(selectedDay => current.isSame(selectedDay, 'day')),\r\n currentMonth: current.isSame(month, 'month'),\r\n prevMonth: current.isSame(prevMonth, 'month'),\r\n nextMonth: current.isSame(nextMonth, 'month'),\r\n currentDay: current.isSame(today, 'day'),\r\n disabled: this.isDateDisabled(current, config)\r\n });\r\n current.add(1, 'day');\r\n\r\n if (current.format('HH') !== '00') {\r\n current.startOf('day');\r\n if (array[array.length - 1].date.format('DD') === current.format('DD')) {\r\n current.add(1, 'day');\r\n }\r\n }\r\n\r\n return array;\r\n }, []);\r\n\r\n daysOfCalendar.forEach((day, index) => {\r\n const weekIndex = Math.floor(index / 7);\r\n\r\n if (!monthArray[weekIndex]) {\r\n monthArray.push([]);\r\n }\r\n\r\n monthArray[weekIndex].push(day);\r\n });\r\n\r\n if (!config.showNearMonthDays) {\r\n monthArray = this.removeNearMonthWeeks(month, monthArray);\r\n }\r\n\r\n return monthArray;\r\n }\r\n\r\n generateWeekdays(firstDayOfWeek: WeekDays, locale?: string): Moment[] {\r\n const weekdayNames: {[key: string]: Moment} = ['su', 'mo', 'tu', 'we', 'th', 'fr', 'sa'].reduce((acc, d, i) => {\r\n const m = moment();\r\n if (locale) {\r\n m.locale(locale);\r\n }\r\n m.day(i);\r\n acc[d] = m;\r\n return acc;\r\n }, {});\r\n const weekdays: Moment[] = [];\r\n const daysMap = this.generateDaysMap(firstDayOfWeek);\r\n\r\n for (const dayKey in daysMap) {\r\n if (daysMap.hasOwnProperty(dayKey)) {\r\n weekdays[daysMap[dayKey]] = weekdayNames[dayKey];\r\n }\r\n }\r\n\r\n return weekdays;\r\n }\r\n\r\n isDateDisabled(date: Moment, config: IDayCalendarConfigInternal): boolean {\r\n if (config.isDayDisabledCallback) {\r\n return config.isDayDisabledCallback(date);\r\n }\r\n\r\n if (config.min && date.isBefore(config.min, 'day')) {\r\n return true;\r\n }\r\n\r\n return !!(config.max && date.isAfter(config.max, 'day'));\r\n }\r\n\r\n // todo:: add unit tests\r\n getHeaderLabel(config: IDayCalendarConfigInternal, month: Moment): string {\r\n if (config.monthFormatter) {\r\n return config.monthFormatter(month);\r\n }\r\n month.locale(config.locale);\r\n return month.format(config.monthFormat);\r\n }\r\n\r\n // todo:: add unit tests\r\n shouldShowLeft(min: Moment, currentMonthView: Moment): boolean {\r\n return min ? min.isBefore(currentMonthView, 'month') : true;\r\n }\r\n\r\n // todo:: add unit tests\r\n shouldShowRight(max: Moment, currentMonthView: Moment): boolean {\r\n return max ? max.isAfter(currentMonthView, 'month') : true;\r\n }\r\n\r\n generateDaysIndexMap(firstDayOfWeek: WeekDays) {\r\n const firstDayIndex = this.DAYS.indexOf(firstDayOfWeek);\r\n const daysArr = this.DAYS.slice(firstDayIndex, 7).concat(this.DAYS.slice(0, firstDayIndex));\r\n return daysArr.reduce((map, day, index) => {\r\n map[index] = day;\r\n\r\n return map;\r\n }, <{[key: number]: string}>{});\r\n }\r\n\r\n getMonthCalendarConfig(componentConfig: IDayCalendarConfigInternal): IMonthCalendarConfig {\r\n return this.utilsService.clearUndefined({\r\n min: componentConfig.min,\r\n max: componentConfig.max,\r\n format: componentConfig.format,\r\n isNavHeaderBtnClickable: true,\r\n allowMultiSelect: false,\r\n yearFormat: componentConfig.yearFormat,\r\n locale: componentConfig.locale,\r\n yearFormatter: componentConfig.yearFormatter,\r\n monthBtnFormat: componentConfig.monthBtnFormat,\r\n monthBtnFormatter: componentConfig.monthBtnFormatter,\r\n monthBtnCssClassCallback: componentConfig.monthBtnCssClassCallback,\r\n multipleYearsNavigateBy: componentConfig.multipleYearsNavigateBy,\r\n showMultipleYearsNavigation: componentConfig.showMultipleYearsNavigation,\r\n showGoToCurrent: componentConfig.showGoToCurrent\r\n });\r\n }\r\n\r\n getDayBtnText(config: IDayCalendarConfigInternal, day: Moment): string {\r\n if (config.dayBtnFormatter) {\r\n return config.dayBtnFormatter(day);\r\n }\r\n\r\n return day.format(config.dayBtnFormat);\r\n }\r\n\r\n getDayBtnCssClass(config: IDayCalendarConfigInternal, day: Moment): string {\r\n if (config.dayBtnCssClassCallback) {\r\n return config.dayBtnCssClassCallback(day);\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","import {ECalendarValue} from '../common/types/calendar-value-enum';\r\nimport {SingleCalendarValue} from '../common/types/single-calendar-value';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n Validator\r\n} from '@angular/forms';\r\nimport {Moment} from 'jalali-moment';\r\nimport {CalendarValue} from '../common/types/calendar-value';\r\nimport {UtilsService} from '../common/services/utils/utils.service';\r\nimport {IDate} from '../common/models/date.model';\r\nimport {DayCalendarService} from '../day-calendar/day-calendar.service';\r\nimport {TimeSelectService} from '../time-select/time-select.service';\r\nimport {IDayTimeCalendarConfig} from './day-time-calendar-config.model';\r\nimport {DayTimeCalendarService} from './day-time-calendar.service';\r\nimport {DateValidator} from '../common/types/validator.type';\r\nimport {DayCalendarComponent} from '../day-calendar/day-calendar.component';\r\nimport {INavEvent} from '../common/models/navigation-event.model';\r\n\r\n@Component({\r\n selector: 'dp-day-time-calendar',\r\n templateUrl: 'day-time-calendar.component.html',\r\n styleUrls: ['day-time-calendar.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [\r\n DayTimeCalendarService,\r\n DayCalendarService,\r\n TimeSelectService,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DayTimeCalendarComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => DayTimeCalendarComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class DayTimeCalendarComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {\r\n\r\n @Input() config: IDayTimeCalendarConfig;\r\n @Input() displayDate: SingleCalendarValue;\r\n @Input() minDate: SingleCalendarValue;\r\n @Input() maxDate: SingleCalendarValue;\r\n @HostBinding('class') @Input() theme: string = '';\r\n\r\n @Output() onChange: EventEmitter = new EventEmitter();\r\n @Output() onGoToCurrent: EventEmitter = new EventEmitter();\r\n @Output() onLeftNav: EventEmitter = new EventEmitter();\r\n @Output() onRightNav: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild('dayCalendar') dayCalendarRef: DayCalendarComponent;\r\n\r\n isInited: boolean = false;\r\n componentConfig: IDayTimeCalendarConfig;\r\n _selected: Moment;\r\n inputValue: CalendarValue;\r\n inputValueType: ECalendarValue;\r\n validateFn: DateValidator;\r\n\r\n set selected(selected: Moment) {\r\n this._selected = selected;\r\n this.onChangeCallback(this.processOnChangeCallback(selected));\r\n }\r\n\r\n get selected(): Moment {\r\n return this._selected;\r\n }\r\n\r\n api = {\r\n moveCalendarTo: this.moveCalendarTo.bind(this)\r\n };\r\n\r\n constructor(public dayTimeCalendarService: DayTimeCalendarService,\r\n public utilsService: UtilsService,\r\n public cd: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.isInited = true;\r\n this.init();\r\n this.initValidators();\r\n }\r\n\r\n init() {\r\n this.componentConfig = this.dayTimeCalendarService.getConfig(this.config);\r\n this.inputValueType = this.utilsService.getInputType(this.inputValue, false);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.isInited) {\r\n const {minDate, maxDate} = changes;\r\n this.init();\r\n\r\n if (minDate || maxDate) {\r\n this.initValidators();\r\n }\r\n }\r\n }\r\n\r\n writeValue(value: CalendarValue): void {\r\n this.inputValue = value;\r\n\r\n if (value) {\r\n this.selected = this.utilsService\r\n .convertToMomentArray(value, this.componentConfig.format, false, this.componentConfig.locale)[0];\r\n this.inputValueType = this.utilsService\r\n .getInputType(this.inputValue, false);\r\n } else {\r\n this.selected = null;\r\n }\r\n\r\n this.cd.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n onChangeCallback(_: any) {\r\n };\r\n\r\n registerOnTouched(fn: any): void {\r\n }\r\n\r\n validate(formControl: UntypedFormControl): ValidationErrors | any {\r\n if (this.minDate || this.maxDate) {\r\n return this.validateFn(formControl.value);\r\n } else {\r\n return () => null;\r\n }\r\n }\r\n\r\n processOnChangeCallback(value: Moment): CalendarValue {\r\n return this.utilsService.convertFromMomentArray(\r\n this.componentConfig.format,\r\n [value],\r\n this.componentConfig.returnedValueType || this.inputValueType,\r\n this.componentConfig.locale\r\n );\r\n }\r\n\r\n initValidators() {\r\n this.validateFn = this.utilsService.createValidator(\r\n {\r\n minDate: this.minDate,\r\n maxDate: this.maxDate\r\n }, undefined, 'daytime',\r\n this.componentConfig.locale);\r\n\r\n this.onChangeCallback(this.processOnChangeCallback(this.selected));\r\n }\r\n\r\n dateSelected(day: IDate) {\r\n this.selected = this.dayTimeCalendarService.updateDay(this.selected, day.date, this.config);\r\n this.emitChange();\r\n }\r\n\r\n timeChange(time: IDate) {\r\n this.selected = this.dayTimeCalendarService.updateTime(this.selected, time.date);\r\n this.emitChange();\r\n }\r\n\r\n emitChange() {\r\n this.onChange.emit({date: this.selected, selected: false});\r\n }\r\n\r\n moveCalendarTo(to: SingleCalendarValue) {\r\n if (to) {\r\n this.dayCalendarRef.moveCalendarTo(to);\r\n }\r\n }\r\n\r\n onLeftNavClick(change: INavEvent) {\r\n this.onLeftNav.emit(change);\r\n }\r\n\r\n onRightNavClick(change: INavEvent) {\r\n this.onRightNav.emit(change);\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n","import {Injectable} from '@angular/core';\r\nimport {Moment} from 'jalali-moment';\r\n\r\nimport {UtilsService} from '../common/services/utils/utils.service';\r\nimport {DayCalendarService} from '../day-calendar/day-calendar.service';\r\nimport {TimeSelectService} from '../time-select/time-select.service';\r\nimport {IDayTimeCalendarConfig} from './day-time-calendar-config.model';\r\nimport * as moment from 'jalali-moment';\r\nconst DAY_FORMAT = 'YYYYMMDD';\r\nconst TIME_FORMAT = 'HH:mm:ss';\r\nconst COMBINED_FORMAT = DAY_FORMAT + TIME_FORMAT;\r\n\r\n@Injectable()\r\nexport class DayTimeCalendarService {\r\n readonly DEFAULT_CONFIG: IDayTimeCalendarConfig = {\r\n locale: 'fa'\r\n };\r\n\r\n constructor(private utilsService: UtilsService,\r\n private dayCalendarService: DayCalendarService,\r\n private timeSelectService: TimeSelectService) {\r\n }\r\n\r\n getConfig(config: IDayTimeCalendarConfig): IDayTimeCalendarConfig {\r\n const _config = {\r\n ...this.DEFAULT_CONFIG,\r\n ...this.timeSelectService.getConfig(config),\r\n ...this.dayCalendarService.getConfig(config)\r\n };\r\n\r\n // moment.locale(config.locale);\r\n\r\n return _config;\r\n }\r\n\r\n updateDay(current: Moment, day: Moment, config: IDayTimeCalendarConfig): Moment {\r\n const time = current ? current : moment();\r\n let updated = moment.from(day.format(DAY_FORMAT) + time.format(TIME_FORMAT), day.locale(), COMBINED_FORMAT)\r\n\r\n if (config.min) {\r\n const min = config.min;\r\n updated = min.isAfter(updated) ? min : updated;\r\n }\r\n\r\n if (config.max) {\r\n const max = config.max;\r\n updated = max.isBefore(updated) ? max : updated;\r\n }\r\n\r\n return updated;\r\n }\r\n\r\n updateTime(current: Moment, time: Moment): Moment {\r\n const day = current ? current : moment();\r\n\r\n return moment.from(day.format(DAY_FORMAT) + time.format(TIME_FORMAT), day.locale(), COMBINED_FORMAT);\r\n }\r\n}\r\n","export {SingleCalendarValue} from './common/types/single-calendar-value';\r\nexport {IDate} from './common/models/date.model';\r\nexport {ECalendarMode} from './common/types/calendar-mode-enum';\r\nexport {IDay} from './day-calendar/day.model';\r\nexport {IMonth} from './month-calendar/month.model';\r\nexport {ECalendarValue} from './common/types/calendar-value-enum';\r\nexport {CalendarValue} from './common/types/calendar-value';\r\nexport {IDayCalendarConfig} from './day-calendar/day-calendar-config.model';\r\nexport {IDayEvent} from './day-calendar/day.model';\r\nexport {IDatePickerConfig} from './date-picker/date-picker-config.model';\r\nexport {IDatePickerDirectiveConfig} from './date-picker/date-picker-directive-config.model';\r\nexport {IMonthCalendarConfig} from './month-calendar/month-calendar-config';\r\nexport {UtilsService} from './common/services/utils/utils.service';\r\nexport * from './date-picker.module';\r\n","import {ECalendarValue} from '../common/types/calendar-value-enum';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChange,\r\n SimpleChanges,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {IMonth} from './month.model';\r\nimport {MonthCalendarService} from './month-calendar.service';\r\n\r\nimport {Moment} from 'jalali-moment';\r\nimport {IMonthCalendarConfig, IMonthCalendarConfigInternal} from './month-calendar-config';\r\nimport {\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n Validator\r\n} from '@angular/forms';\r\nimport {CalendarValue} from '../common/types/calendar-value';\r\nimport {UtilsService} from '../common/services/utils/utils.service';\r\nimport {DateValidator} from '../common/types/validator.type';\r\nimport {SingleCalendarValue} from '../common/types/single-calendar-value';\r\nimport {INavEvent} from '../common/models/navigation-event.model';\r\nimport * as moment from 'jalali-moment';\r\n\r\n@Component({\r\n selector: 'dp-month-calendar',\r\n templateUrl: 'month-calendar.component.html',\r\n styleUrls: ['month-calendar.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n MonthCalendarService,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => MonthCalendarComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => MonthCalendarComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class MonthCalendarComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {\r\n @Input() config: IMonthCalendarConfig;\r\n @Input() displayDate: Moment;\r\n @Input() minDate: Moment;\r\n @Input() maxDate: Moment;\r\n @HostBinding('class') @Input() theme: string = '';\r\n\r\n @Output() onSelect: EventEmitter = new EventEmitter();\r\n @Output() onNavHeaderBtnClick: EventEmitter = new EventEmitter();\r\n @Output() onGoToCurrent: EventEmitter = new EventEmitter();\r\n @Output() onLeftNav: EventEmitter = new EventEmitter();\r\n @Output() onRightNav: EventEmitter = new EventEmitter();\r\n @Output() onLeftSecondaryNav: EventEmitter = new EventEmitter();\r\n @Output() onRightSecondaryNav: EventEmitter = new EventEmitter();\r\n\r\n isInited: boolean = false;\r\n componentConfig: IMonthCalendarConfigInternal;\r\n _selected: Moment[];\r\n yearMonths: IMonth[][];\r\n _currentDateView: Moment;\r\n inputValue: CalendarValue;\r\n inputValueType: ECalendarValue;\r\n validateFn: DateValidator;\r\n _shouldShowCurrent: boolean = true;\r\n navLabel: string;\r\n showLeftNav: boolean;\r\n showRightNav: boolean;\r\n showSecondaryLeftNav: boolean;\r\n showSecondaryRightNav: boolean;\r\n\r\n api = {\r\n toggleCalendar: this.toggleCalendarMode.bind(this),\r\n moveCalendarTo: this.moveCalendarTo.bind(this)\r\n };\r\n\r\n set selected(selected: Moment[]) {\r\n this._selected = selected;\r\n this.onChangeCallback(this.processOnChangeCallback(selected));\r\n }\r\n\r\n get selected(): Moment[] {\r\n return this._selected;\r\n }\r\n\r\n set currentDateView(current: Moment) {\r\n this._currentDateView = current.clone();\r\n this.yearMonths = this.monthCalendarService\r\n .generateYear(this.componentConfig, this._currentDateView, this.selected);\r\n this.navLabel = this.monthCalendarService.getHeaderLabel(this.componentConfig, this.currentDateView);\r\n this.showLeftNav = this.monthCalendarService.shouldShowLeft(this.componentConfig.min, this._currentDateView);\r\n this.showRightNav = this.monthCalendarService.shouldShowRight(this.componentConfig.max, this.currentDateView);\r\n this.showSecondaryLeftNav = this.componentConfig.showMultipleYearsNavigation && this.showLeftNav;\r\n this.showSecondaryRightNav = this.componentConfig.showMultipleYearsNavigation && this.showRightNav;\r\n }\r\n\r\n get currentDateView(): Moment {\r\n return this._currentDateView;\r\n }\r\n\r\n constructor(public readonly monthCalendarService: MonthCalendarService,\r\n public readonly utilsService: UtilsService,\r\n public readonly cd: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.isInited = true;\r\n this.init();\r\n this.initValidators();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.isInited) {\r\n const {minDate, maxDate, config} = changes;\r\n\r\n this.handleConfigChange(config);\r\n this.init();\r\n\r\n if (minDate || maxDate) {\r\n this.initValidators();\r\n }\r\n }\r\n }\r\n\r\n init() {\r\n this.componentConfig = this.monthCalendarService.getConfig(this.config);\r\n this.selected = this.selected || [];\r\n this.currentDateView = this.displayDate\r\n ? this.displayDate\r\n : this.utilsService\r\n .getDefaultDisplayDate(\r\n this.currentDateView,\r\n this.selected,\r\n this.componentConfig.allowMultiSelect,\r\n this.componentConfig.min,\r\n this.componentConfig.locale\r\n );\r\n this.inputValueType = this.utilsService.getInputType(this.inputValue, this.componentConfig.allowMultiSelect);\r\n this._shouldShowCurrent = this.shouldShowCurrent();\r\n }\r\n\r\n writeValue(value: CalendarValue): void {\r\n this.inputValue = value;\r\n\r\n if (value) {\r\n this.selected = this.utilsService\r\n .convertToMomentArray(value,\r\n this.componentConfig.format,\r\n this.componentConfig.allowMultiSelect,\r\n this.componentConfig.locale);\r\n this.yearMonths = this.monthCalendarService\r\n .generateYear(this.componentConfig, this.currentDateView, this.selected);\r\n this.inputValueType = this.utilsService.getInputType(this.inputValue, this.componentConfig.allowMultiSelect);\r\n }\r\n\r\n this.cd.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n onChangeCallback(_: any) {\r\n };\r\n\r\n registerOnTouched(fn: any): void {\r\n }\r\n\r\n validate(formControl: UntypedFormControl): ValidationErrors | any {\r\n if (this.minDate || this.maxDate) {\r\n return this.validateFn(formControl.value);\r\n } else {\r\n return () => null;\r\n }\r\n }\r\n isFarsi() {\r\n return this.componentConfig.locale === 'fa';\r\n }\r\n processOnChangeCallback(value: Moment[]): CalendarValue {\r\n return this.utilsService.convertFromMomentArray(\r\n this.componentConfig.format,\r\n value,\r\n this.componentConfig.returnedValueType || this.inputValueType,\r\n this.componentConfig.locale\r\n );\r\n }\r\n\r\n initValidators() {\r\n this.validateFn = this.validateFn = this.utilsService.createValidator(\r\n {minDate: this.minDate, maxDate: this.maxDate},\r\n this.componentConfig.format,\r\n 'month',\r\n this.componentConfig.locale\r\n );\r\n\r\n this.onChangeCallback(this.processOnChangeCallback(this.selected));\r\n }\r\n\r\n monthClicked(month: IMonth) {\r\n if (month.selected && !this.componentConfig.unSelectOnClick) {\r\n return;\r\n }\r\n\r\n this.selected = this.utilsService\r\n .updateSelected(this.componentConfig.allowMultiSelect, this.selected, month, 'month');\r\n this.yearMonths = this.monthCalendarService\r\n .generateYear(this.componentConfig, this.currentDateView, this.selected);\r\n this.onSelect.emit(month);\r\n }\r\n\r\n onLeftNavClick() {\r\n const from = this.currentDateView.clone();\r\n this.currentDateView = this.currentDateView.clone().subtract(1, 'year');\r\n const to = this.currentDateView.clone();\r\n this.yearMonths = this.monthCalendarService.generateYear(this.componentConfig, this.currentDateView, this.selected);\r\n this.onLeftNav.emit({from, to});\r\n }\r\n\r\n onLeftSecondaryNavClick() {\r\n let navigateBy = this.componentConfig.multipleYearsNavigateBy;\r\n const isOutsideRange = this.componentConfig.min &&\r\n this.currentDateView.year() - this.componentConfig.min.year() < navigateBy;\r\n\r\n if (isOutsideRange) {\r\n navigateBy = this.currentDateView.year() - this.componentConfig.min.year();\r\n }\r\n\r\n const from = this.currentDateView.clone();\r\n this.currentDateView = this.currentDateView.clone().subtract(navigateBy, 'year');\r\n const to = this.currentDateView.clone();\r\n this.onLeftSecondaryNav.emit({from, to});\r\n }\r\n\r\n onRightNavClick() {\r\n const from = this.currentDateView.clone();\r\n this.currentDateView = this.currentDateView.clone().add(1, 'year');\r\n const to = this.currentDateView.clone();\r\n this.onRightNav.emit({from, to});\r\n }\r\n\r\n onRightSecondaryNavClick() {\r\n let navigateBy = this.componentConfig.multipleYearsNavigateBy;\r\n const isOutsideRange = this.componentConfig.max &&\r\n this.componentConfig.max.year() - this.currentDateView.year() < navigateBy;\r\n\r\n if (isOutsideRange) {\r\n navigateBy = this.componentConfig.max.year() - this.currentDateView.year();\r\n }\r\n\r\n const from = this.currentDateView.clone();\r\n this.currentDateView = this.currentDateView.clone().add(navigateBy, 'year');\r\n const to = this.currentDateView.clone();\r\n this.onRightSecondaryNav.emit({from, to});\r\n }\r\n\r\n toggleCalendarMode() {\r\n this.onNavHeaderBtnClick.emit();\r\n }\r\n\r\n getMonthBtnCssClass(month: IMonth): {[klass: string]: boolean} {\r\n const cssClass: {[klass: string]: boolean} = {\r\n 'dp-selected': month.selected,\r\n 'dp-current-month': month.currentMonth\r\n };\r\n const customCssClass: string = this.monthCalendarService.getMonthBtnCssClass(this.componentConfig, month.date);\r\n\r\n if (customCssClass) {\r\n cssClass[customCssClass] = true;\r\n }\r\n\r\n return cssClass;\r\n }\r\n\r\n shouldShowCurrent(): boolean {\r\n return this.utilsService.shouldShowCurrent(\r\n this.componentConfig.showGoToCurrent,\r\n 'month',\r\n this.componentConfig.min,\r\n this.componentConfig.max\r\n );\r\n }\r\n\r\n goToCurrent() {\r\n this.currentDateView = moment().locale(this.componentConfig.locale);\r\n this.onGoToCurrent.emit();\r\n }\r\n\r\n moveCalendarTo(to: SingleCalendarValue) {\r\n if (to) {\r\n this.currentDateView = this.utilsService.convertToMoment(to, this.componentConfig.format, this.componentConfig.locale);\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n handleConfigChange(config: SimpleChange) {\r\n if (config) {\r\n const prevConf: IMonthCalendarConfigInternal = this.monthCalendarService.getConfig(config.previousValue);\r\n const currentConf: IMonthCalendarConfigInternal = this.monthCalendarService.getConfig(config.currentValue);\r\n\r\n if (this.utilsService.shouldResetCurrentView(prevConf, currentConf)) {\r\n this._currentDateView = null;\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import {Injectable} from '@angular/core';\r\nimport {Moment} from 'jalali-moment';\r\nimport {UtilsService} from '../common/services/utils/utils.service';\r\nimport {IMonth} from './month.model';\r\nimport {IMonthCalendarConfig, IMonthCalendarConfigInternal} from './month-calendar-config';\r\nimport * as moment from 'jalali-moment';\r\n\r\n@Injectable()\r\nexport class MonthCalendarService {\r\n readonly DEFAULT_CONFIG: IMonthCalendarConfigInternal = {\r\n allowMultiSelect: false,\r\n yearFormat: 'YYYY',\r\n format: 'MMMM-YYYY',\r\n isNavHeaderBtnClickable: false,\r\n monthBtnFormat: 'MMMM',\r\n locale: 'fa',\r\n multipleYearsNavigateBy: 10,\r\n showMultipleYearsNavigation: false,\r\n unSelectOnClick: true\r\n };\r\n readonly GREGORIAN_DEFAULT_CONFIG: IMonthCalendarConfig = {\r\n format: 'MM-YYYY',\r\n monthBtnFormat: 'MMM',\r\n locale: 'en'\r\n };\r\n\r\n constructor(private utilsService: UtilsService) {\r\n }\r\n\r\n getConfig(config: IMonthCalendarConfig): IMonthCalendarConfigInternal {\r\n const _config = {\r\n ...this.DEFAULT_CONFIG,\r\n ...((config && config.locale && config.locale !== 'fa') ? this.GREGORIAN_DEFAULT_CONFIG : {}),\r\n ...this.utilsService.clearUndefined(config)\r\n };\r\n\r\n this.utilsService.convertPropsToMoment(_config, _config.format, ['min', 'max'], _config.locale);\r\n\r\n // moment.locale(_config.locale);\r\n\r\n return _config;\r\n }\r\n\r\n generateYear(config: IMonthCalendarConfig, year: Moment, selected: Moment[] = null): IMonth[][] {\r\n const index = year.clone().startOf('year');\r\n\r\n return this.utilsService.createArray(3).map(() => {\r\n return this.utilsService.createArray(4).map(() => {\r\n const date = index.clone();\r\n const month = {\r\n date,\r\n selected: !!selected.find(s => index.isSame(s, 'month')),\r\n currentMonth: index.isSame(moment(), 'month'),\r\n disabled: this.isMonthDisabled(date, config),\r\n text: this.getMonthBtnText(config, date)\r\n };\r\n\r\n index.add(1, 'month');\r\n\r\n return month;\r\n });\r\n });\r\n }\r\n\r\n isMonthDisabled(date: Moment, config: IMonthCalendarConfig) {\r\n if (config.min && date.isBefore(config.min, 'month')) {\r\n return true;\r\n }\r\n\r\n return !!(config.max && date.isAfter(config.max, 'month'));\r\n }\r\n\r\n shouldShowLeft(min: Moment, currentMonthView: Moment): boolean {\r\n return min ? min.isBefore(currentMonthView, 'year') : true;\r\n }\r\n\r\n shouldShowRight(max: Moment, currentMonthView: Moment): boolean {\r\n return max ? max.isAfter(currentMonthView, 'year') : true;\r\n }\r\n\r\n getHeaderLabel(config: IMonthCalendarConfig, year: Moment): string {\r\n if (config.yearFormatter) {\r\n return config.yearFormatter(year);\r\n }\r\n year.locale(config.locale);\r\n return year.format(config.yearFormat);\r\n }\r\n\r\n getMonthBtnText(config: IMonthCalendarConfig, month: Moment): string {\r\n if (config.monthBtnFormatter) {\r\n return config.monthBtnFormatter(month);\r\n }\r\n\r\n return month.format(config.monthBtnFormat);\r\n }\r\n\r\n getMonthBtnCssClass(config: IMonthCalendarConfig, month: Moment): string {\r\n if (config.monthBtnCssClassCallback) {\r\n return config.monthBtnCssClassCallback(month);\r\n }\r\n\r\n return '';\r\n }\r\n}\r\n","import {ECalendarValue} from '../common/types/calendar-value-enum';\r\nimport {SingleCalendarValue} from '../common/types/single-calendar-value';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n forwardRef,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewEncapsulation\r\n} from '@angular/core';\r\nimport {TimeSelectService, TimeUnit} from './time-select.service';\r\n\r\nimport {Moment} from 'jalali-moment';\r\nimport {ITimeSelectConfig, ITimeSelectConfigInternal} from './time-select-config.model';\r\nimport {\r\n ControlValueAccessor,\r\n UntypedFormControl,\r\n NG_VALIDATORS,\r\n NG_VALUE_ACCESSOR,\r\n ValidationErrors,\r\n Validator\r\n} from '@angular/forms';\r\nimport {CalendarValue} from '../common/types/calendar-value';\r\nimport {UtilsService} from '../common/services/utils/utils.service';\r\nimport {IDate} from '../common/models/date.model';\r\nimport {DateValidator} from '../common/types/validator.type';\r\nimport * as moment from 'jalali-moment';\r\n\r\n@Component({\r\n selector: 'dp-time-select',\r\n templateUrl: 'time-select.component.html',\r\n styleUrls: ['time-select.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n TimeSelectService,\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => TimeSelectComponent),\r\n multi: true\r\n },\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: forwardRef(() => TimeSelectComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class TimeSelectComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {\r\n\r\n @Input() config: ITimeSelectConfig;\r\n @Input() displayDate: SingleCalendarValue;\r\n @Input() minDate: SingleCalendarValue;\r\n @Input() maxDate: SingleCalendarValue;\r\n @Input() minTime: SingleCalendarValue;\r\n @Input() maxTime: SingleCalendarValue;\r\n @HostBinding('class') @Input() theme: string = '';\r\n\r\n @Output() onChange: EventEmitter = new EventEmitter();\r\n\r\n isInited: boolean = false;\r\n componentConfig: ITimeSelectConfigInternal;\r\n _selected: Moment;\r\n inputValue: CalendarValue;\r\n inputValueType: ECalendarValue;\r\n validateFn: DateValidator;\r\n\r\n hours: string;\r\n minutes: string;\r\n seconds: string;\r\n meridiem: string;\r\n\r\n showDecHour: boolean;\r\n showDecMinute: boolean;\r\n showDecSecond: boolean;\r\n showIncHour: boolean;\r\n showIncMinute: boolean;\r\n showIncSecond: boolean;\r\n showToggleMeridiem: boolean;\r\n\r\n set selected(selected: Moment) {\r\n this._selected = selected;\r\n this.calculateTimeParts(this.selected);\r\n\r\n this.showDecHour = this.timeSelectService.shouldShowDecrease(this.componentConfig, this._selected, 'hour');\r\n this.showDecMinute = this.timeSelectService.shouldShowDecrease(this.componentConfig, this._selected, 'minute');\r\n this.showDecSecond = this.timeSelectService.shouldShowDecrease(this.componentConfig, this._selected, 'second');\r\n\r\n this.showIncHour = this.timeSelectService.shouldShowIncrease(this.componentConfig, this._selected, 'hour');\r\n this.showIncMinute = this.timeSelectService.shouldShowIncrease(this.componentConfig, this._selected, 'minute');\r\n this.showIncSecond = this.timeSelectService.shouldShowIncrease(this.componentConfig, this._selected, 'second');\r\n\r\n this.showToggleMeridiem = this.timeSelectService.shouldShowToggleMeridiem(this.componentConfig, this._selected);\r\n\r\n this.onChangeCallback(this.processOnChangeCallback(selected));\r\n }\r\n\r\n get selected(): Moment {\r\n return this._selected;\r\n }\r\n\r\n api = {\r\n triggerChange: this.emitChange.bind(this)\r\n };\r\n\r\n constructor(public timeSelectService: TimeSelectService,\r\n public utilsService: UtilsService,\r\n public cd: ChangeDetectorRef) {\r\n }\r\n\r\n ngOnInit() {\r\n this.isInited = true;\r\n this.init();\r\n this.initValidators();\r\n }\r\n\r\n init() {\r\n this.componentConfig = this.timeSelectService.getConfig(this.config);\r\n this.selected = this.selected || moment();\r\n this.inputValueType = this.utilsService.getInputType(this.inputValue, false);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (this.isInited) {\r\n const {minDate, maxDate, minTime, maxTime} = changes;\r\n this.init();\r\n\r\n if (minDate || maxDate || minTime || maxTime) {\r\n this.initValidators();\r\n }\r\n }\r\n }\r\n\r\n writeValue(value: CalendarValue): void {\r\n this.inputValue = value;\r\n\r\n if (value) {\r\n const momentValue = this.utilsService\r\n .convertToMomentArray(value, this.timeSelectService.getTimeFormat(this.componentConfig), false, this.componentConfig.locale)[0];\r\n if (momentValue.isValid()) {\r\n this.selected = momentValue;\r\n this.inputValueType = this.utilsService\r\n .getInputType(this.inputValue, false);\r\n }\r\n }\r\n\r\n this.cd.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChangeCallback = fn;\r\n }\r\n\r\n onChangeCallback(_: any) {\r\n };\r\n\r\n registerOnTouched(fn: any): void {\r\n }\r\n\r\n validate(formControl: UntypedFormControl): ValidationErrors | any {\r\n if (this.minDate || this.maxDate || this.minTime || this.maxTime) {\r\n return this.validateFn(formControl.value);\r\n } else {\r\n return () => null;\r\n }\r\n }\r\n\r\n processOnChangeCallback(value: Moment): CalendarValue {\r\n return this.utilsService.convertFromMomentArray(\r\n this.timeSelectService.getTimeFormat(this.componentConfig),\r\n [value],\r\n this.componentConfig.returnedValueType || this.inputValueType,\r\n this.componentConfig.locale\r\n );\r\n }\r\n\r\n initValidators() {\r\n this.validateFn = this.utilsService.createValidator(\r\n {\r\n minDate: this.minDate,\r\n maxDate: this.maxDate,\r\n minTime: this.minTime,\r\n maxTime: this.maxTime\r\n }, undefined, 'day',\r\n this.componentConfig.locale);\r\n\r\n this.onChangeCallback(this.processOnChangeCallback(this.selected));\r\n }\r\n\r\n decrease(unit: TimeUnit) {\r\n this.selected = this.timeSelectService.decrease(this.componentConfig, this.selected, unit);\r\n this.emitChange();\r\n }\r\n\r\n increase(unit: TimeUnit) {\r\n this.selected = this.timeSelectService.increase(this.componentConfig, this.selected, unit);\r\n this.emitChange();\r\n }\r\n\r\n toggleMeridiem() {\r\n this.selected = this.timeSelectService.toggleMeridiem(this.selected);\r\n this.emitChange();\r\n }\r\n\r\n emitChange() {\r\n this.onChange.emit({date: this.selected, selected: false});\r\n this.cd.markForCheck();\r\n }\r\n\r\n calculateTimeParts(time: Moment) {\r\n this.hours = this.timeSelectService.getHours(this.componentConfig, time);\r\n this.minutes = this.timeSelectService.getMinutes(this.componentConfig, time);\r\n this.seconds = this.timeSelectService.getSeconds(this.componentConfig, time);\r\n this.meridiem = this.timeSelectService.getMeridiem(this.componentConfig, time);\r\n }\r\n}\r\n","
    \r\n \r\n
  • \r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
    \r\n\r\n
  • \r\n \r\n \r\n \r\n
  • \r\n\r\n
  • \r\n\r\n
  • \r\n \r\n \r\n \r\n
  • \r\n\r\n
  • \r\n \r\n \r\n \r\n
  • \r\n
\r\n","import {Injectable} from '@angular/core';\r\nimport {Moment} from 'jalali-moment';\r\nimport {UtilsService} from '../common/services/utils/utils.service';\r\nimport {ITimeSelectConfig, ITimeSelectConfigInternal} from './time-select-config.model';\r\nimport * as moment from 'jalali-moment';\r\n\r\nexport type TimeUnit = 'hour' | 'minute' | 'second';\r\nexport const FIRST_PM_HOUR = 12;\r\n\r\n@Injectable()\r\nexport class TimeSelectService {\r\n readonly DEFAULT_CONFIG: ITimeSelectConfigInternal = {\r\n hours12Format: 'hh',\r\n hours24Format: 'HH',\r\n meridiemFormat: 'A',\r\n minutesFormat: 'mm',\r\n minutesInterval: 1,\r\n secondsFormat: 'ss',\r\n secondsInterval: 1,\r\n showSeconds: false,\r\n showTwentyFourHours: false,\r\n timeSeparator: ':',\r\n locale: 'fa'\r\n };\r\n\r\n constructor(private utilsService: UtilsService) {\r\n }\r\n\r\n getConfig(config: ITimeSelectConfig): ITimeSelectConfigInternal {\r\n const timeConfigs = {\r\n maxTime: this.utilsService.onlyTime((config && config.maxTime)),\r\n minTime: this.utilsService.onlyTime((config && config.minTime))\r\n };\r\n\r\n const _config = {\r\n ...this.DEFAULT_CONFIG,\r\n ...this.utilsService.clearUndefined(config),\r\n ...timeConfigs\r\n };\r\n\r\n // moment.locale(_config.locale);\r\n\r\n return _config;\r\n }\r\n\r\n getTimeFormat(config: ITimeSelectConfigInternal): string {\r\n return (config.showTwentyFourHours ? config.hours24Format : config.hours12Format)\r\n + config.timeSeparator + config.minutesFormat\r\n + (config.showSeconds ? (config.timeSeparator + config.secondsFormat) : '')\r\n + (config.showTwentyFourHours ? '' : ' ' + config.meridiemFormat);\r\n }\r\n\r\n getHours(config: ITimeSelectConfigInternal, t: Moment | null): string {\r\n const time = t || moment();\r\n return time && time.format(config.showTwentyFourHours ? config.hours24Format : config.hours12Format);\r\n }\r\n\r\n getMinutes(config: ITimeSelectConfigInternal, t: Moment | null): string {\r\n const time = t || moment();\r\n return time && time.format(config.minutesFormat);\r\n }\r\n\r\n getSeconds(config: ITimeSelectConfigInternal, t: Moment | null): string {\r\n const time = t || moment();\r\n return time && time.format(config.secondsFormat);\r\n }\r\n\r\n getMeridiem(config: ITimeSelectConfigInternal, time: Moment): string {\r\n if (config.locale) {\r\n time.locale(config.locale);\r\n }\r\n return time && time.format(config.meridiemFormat);\r\n }\r\n\r\n decrease(config: ITimeSelectConfigInternal, time: Moment, unit: TimeUnit): Moment {\r\n let amount: number = 1;\r\n switch (unit) {\r\n case 'minute':\r\n amount = config.minutesInterval;\r\n break;\r\n case 'second':\r\n amount = config.secondsInterval;\r\n break;\r\n }\r\n return time.clone().subtract(amount, unit);\r\n }\r\n\r\n increase(config: ITimeSelectConfigInternal, time: Moment, unit: TimeUnit): Moment {\r\n let amount: number = 1;\r\n switch (unit) {\r\n case 'minute':\r\n amount = config.minutesInterval;\r\n break;\r\n case 'second':\r\n amount = config.secondsInterval;\r\n break;\r\n }\r\n return time.clone().add(amount, unit);\r\n }\r\n\r\n toggleMeridiem(time: Moment): Moment {\r\n if (time.hours() < FIRST_PM_HOUR) {\r\n return time.clone().add(12, 'hour');\r\n } else {\r\n return time.clone().subtract(12, 'hour');\r\n }\r\n }\r\n\r\n shouldShowDecrease(config: ITimeSelectConfigInternal, time: Moment, unit: TimeUnit): boolean {\r\n if (!config.min && !config.minTime) {\r\n return true;\r\n }\r\n\r\n const newTime = this.decrease(config, time, unit);\r\n\r\n return (!config.min || config.min.isSameOrBefore(newTime))\r\n && (!config.minTime || config.minTime.isSameOrBefore(this.utilsService.onlyTime(newTime)));\r\n }\r\n\r\n shouldShowIncrease(config: ITimeSelectConfigInternal, time: Moment, unit: TimeUnit): boolean {\r\n if (!config.max && !config.maxTime) {\r\n return true;\r\n }\r\n\r\n const newTime = this.increase(config, time, unit);\r\n\r\n return (!config.max || config.max.isSameOrAfter(newTime))\r\n && (!config.maxTime || config.maxTime.isSameOrAfter(this.utilsService.onlyTime(newTime)));\r\n }\r\n\r\n shouldShowToggleMeridiem(config: ITimeSelectConfigInternal, time: Moment): boolean {\r\n if (!config.min && !config.max && !config.minTime && !config.maxTime) {\r\n return true;\r\n }\r\n const newTime = this.toggleMeridiem(time);\r\n return (!config.max || config.max.isSameOrAfter(newTime))\r\n && (!config.min || config.min.isSameOrBefore(newTime))\r\n && (!config.maxTime || config.maxTime.isSameOrAfter(this.utilsService.onlyTime(newTime)))\r\n && (!config.minTime || config.minTime.isSameOrBefore(this.utilsService.onlyTime(newTime)));\r\n }\r\n}\r\n","/*\r\n * Public API Surface of persian-date-picker\r\n */\r\n\r\nexport * from './lib/date-picker.module';\r\nexport * from './lib/date-picker/date-picker.component';\r\nexport * from './lib/date-picker/date-picker.service';\r\nexport * from './lib';","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n NgZone,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { DropDownListComponent } from \"@progress/kendo-angular-dropdowns\";\r\nimport {\r\n ColumnComponent,\r\n DataStateChangeEvent,\r\n GridComponent,\r\n GridDataResult,\r\n PageChangeEvent,\r\n PageSizeItem,\r\n SelectAllCheckboxState,\r\n SelectionEvent,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { PopupComponent } from \"@progress/kendo-angular-popup\";\r\nimport { State, process } from \"@progress/kendo-data-query\";\r\nimport * as moment from \"jalali-moment\";\r\nimport { Moment } from \"jalali-moment\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { isNumber } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { NumberType, RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport {\r\n AggregatesInfo,\r\n HttpCommonService,\r\n LocalStoreManager,\r\n LookupService,\r\n ShowToastrService,\r\n} from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MonthsNameService } from \"projects/sepidz-web-framework/src/lib/services/monthe-name.service\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { pairwise, take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"editable-grid\",\r\n templateUrl: \"./editable-grid.component.html\",\r\n styleUrls: [\"./editable-grid.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class EditableGridComponent implements OnInit, OnDestroy, AfterViewInit, OnChanges {\r\n LookupData: Dictionary = [];\r\n @ViewChild(GridComponent)\r\n public grid: GridComponent;\r\n aggregatesInfo: AggregatesInfo[];\r\n currentLookup: any;\r\n rowseleted: boolean = false;\r\n public selectAllState: SelectAllCheckboxState = \"unchecked\";\r\n @Input() isMulti: boolean = false;\r\n mySelection: number[] = [];\r\n selectedRows: any[] = [];\r\n public isNew: boolean;\r\n public state: State = {\r\n filter: {\r\n logic: \"and\",\r\n filters: [],\r\n },\r\n group: [],\r\n };\r\n @Input() filtering: boolean = false;\r\n @Input() SelectById: string = \"Id\";\r\n @Input() newdefaultRowTregger: (row: any, parameter: any) => any;\r\n @Input() DefaultValues: Dictionary = [];\r\n @Input() aggregatesColumnName: string;\r\n isDisabled: boolean = false;\r\n ngUnsubscribe = new Subject();\r\n @Output() onRows_Selected = new EventEmitter();\r\n @Output() valueChange = new EventEmitter();\r\n @Output() valueChanges = new EventEmitter();\r\n @Output() onLookupChanges = new EventEmitter();\r\n @Output() formGroupValueChanges = new EventEmitter();\r\n @Output() onRowSelected = new EventEmitter();\r\n @Output() valueChangeByApiName = new EventEmitter();\r\n @Output() afterSaved = new EventEmitter();\r\n @Output() afterDeleted = new EventEmitter();\r\n @Input() height: number = 30;\r\n @Input() formTitle: string;\r\n @Input() formTitle2: string;\r\n @Input() RowNumberName: string;\r\n @Input() columns: form_control[] = [];\r\n @Input() isAdd: boolean = true;\r\n @Input() isEdit: boolean = true;\r\n @Input() isDelete: boolean = true;\r\n @Input() noReduplicative: boolean = false;\r\n @Input() customDataList: (dataItem: any) => Observable;\r\n @Input() hideToolber: boolean = false;\r\n @Output() CompleteData = new EventEmitter(true);\r\n @Input() showMap: boolean = false;\r\n @Input() addRowAfterClickOutSideRow: boolean = false;\r\n @Input() addRowAfterClickOutSideRowColumnName: string;\r\n @Input() rowEditableKeyNotAllow: string;\r\n @Input() noAutoFitColumns: boolean = false;\r\n @Input() paging: boolean = false;\r\n @Input() pagingSize = 10;\r\n\r\n formGroup: UntypedFormGroup;\r\n _dataList: any[];\r\n loadingData: boolean = false;\r\n gridData: any[];\r\n public gridView: GridDataResult;\r\n isValueChanging: boolean = false;\r\n currentColumnIndex: number = null;\r\n\r\n @Input()\r\n get dataList(): any[] {\r\n return this._dataList;\r\n }\r\n set dataList(value: any[]) {\r\n if (this._dataList !== value) setTimeout(() => this.fitColumns(), 200);\r\n this._dataList = value;\r\n if (this.dataList && this.dataList.length > 0)\r\n this.gridData = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n else this.gridData = [];\r\n if (this.filtering) this.dataStateChange(this.state as DataStateChangeEvent);\r\n this.cd.markForCheck();\r\n }\r\n rowIsEditing: boolean = false;\r\n getIdName(name: string): string {\r\n return `grd${name}`;\r\n }\r\n editedRow: any;\r\n editedRowIndex: number = 0;\r\n getColumnIndex(colIndex: number) {\r\n let index: number = -1;\r\n let ColumnName: string;\r\n this.grid.columns\r\n .toArray()\r\n .filter((x) => x.isVisible)\r\n .forEach((x) => {\r\n index = index + 1;\r\n if (index == colIndex) ColumnName = x[\"field\"];\r\n });\r\n return ColumnName;\r\n }\r\n @HostListener(\"document:mousedown\", [\"$event\"])\r\n dmu(e: KeyboardEvent) {\r\n if (document.hidden) return;\r\n if (this.formGroup) this.getSelected(this.formGroup.value);\r\n const clickedCellElement = e?.target[\"closest\"](\"td[kendogridlogicalcell]\");\r\n if (!e.target[\"closest\"](\"tr[kendogridlogicalrow]\") && !e.target[\"closest\"](\"kendo-popup\") && !e.target[\"closest\"](\".dp-calendar-wrapper\")) {\r\n this.currentColumnIndex = null;\r\n if (this.formGroup?.valid) {\r\n this.saveCurrent();\r\n if (this.addRowAfterClickOutSideRow) this.addHandler();\r\n }\r\n } else if (clickedCellElement) {\r\n const currentColumns = this.grid.columnsContainer?.allColumns[\"_results\"];\r\n const col = currentColumns?.find((x) => x.leafIndex === clickedCellElement?.cellIndex);\r\n if (col?.editable) this.currentColumnIndex = col?.leafIndex;\r\n else this.currentColumnIndex = null;\r\n }\r\n }\r\n @HostListener(\"window:keydown\", [\"$event\"])\r\n cs(e: KeyboardEvent) {\r\n if (document.hidden) return;\r\n if (e.altKey && e.shiftKey && (e.key === \"n\" || e.key === \"N\" || e.key === \"أ\")) {\r\n e.preventDefault();\r\n this.addHandler();\r\n }\r\n if (e.ctrlKey && e.altKey && (e.key === \"s\" || e.key === \"S\" || e.key === \"س\")) {\r\n e.preventDefault();\r\n this.saveCurrent();\r\n }\r\n if (this.formGroup) this.getSelected(this.formGroup.value);\r\n if (e.key === \"Tab\" && this.formGroup?.valid && (this.currentColumnIndex !== null || this.addRowAfterClickOutSideRowColumnName)) {\r\n const currentColumns = this.grid.columnsContainer?.allColumns[\"_results\"];\r\n const lastIndex = this.currentColumnIndex;\r\n this.currentColumnIndex = currentColumns?.find((x) => x.editable && x.leafIndex > this.currentColumnIndex)?.leafIndex;\r\n if (\r\n (lastIndex && lastIndex === currentColumns?.length - 1) ||\r\n this.getColumnIndex(this.grid.activeCell.colIndex) === this.addRowAfterClickOutSideRowColumnName\r\n ) {\r\n this.saveCurrent();\r\n if (this.addRowAfterClickOutSideRow) this.addHandler();\r\n }\r\n }\r\n }\r\n\r\n constructor(\r\n private lookupservice: LookupService,\r\n private sts: ShowToastrService,\r\n private monthsnameService: MonthsNameService,\r\n private ngZone: NgZone,\r\n private cd: ChangeDetectorRef,\r\n public selectorService: SelectorService,\r\n private _httpCommonService: HttpCommonService,\r\n public storage: LocalStoreManager\r\n ) {}\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.formGroup) this.valueChanges.emit(this.formGroup);\r\n this.cd.markForCheck();\r\n }\r\n ngAfterViewInit(): void {}\r\n onGridSelectionChange(event: SelectionEvent) {\r\n this.valueChanges.emit(event);\r\n }\r\n ngOnInit(): void {\r\n if (!this.dataList) this.dataList = [];\r\n this.columns.forEach((x) => {\r\n if (!x.listVisible) x.columnWidth = 0;\r\n if (x.apiName && !this.hasMultiColumns(x.columnsName)) this.setDropdownlist(x.apiName, x.systemName, x.category, x.name);\r\n });\r\n this.setColumnWith();\r\n this.fitColumns();\r\n if (this.paging) {\r\n this.state.take = this.pagingSize;\r\n this.state.skip = 0;\r\n }\r\n }\r\n\r\n public dataStateChange(state: State): void {\r\n this.state = state;\r\n if (this.state.filter.filters && !this.columns.some((x) => x[\"custom\"])) {\r\n this.state.filter.filters = this.state.filter.filters.filter((x) => x[\"field\"] !== \"GoodsTitle\");\r\n this.state.filter.filters.forEach((x) => {\r\n if (x[\"field\"] === \"GoodsId\") x[\"field\"] = x[\"field\"].replace(\"Id\", \"Title\");\r\n });\r\n }\r\n if (!this.filtering) return;\r\n this.gridView = process(this._dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached) as any[], {\r\n sort: this.state.sort,\r\n filter: this.state.filter,\r\n skip: this.state.skip,\r\n take: this.state.take,\r\n });\r\n if (this.gridView.data.length <= 0 && !this.columns.some((x) => x[\"custom\"]))\r\n this.gridView.data = this._dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached) as any[];\r\n this.cd.markForCheck();\r\n }\r\n\r\n clearFilter() {\r\n this.state.filter.filters = [];\r\n this.grid.filter = { logic: \"and\", filters: [] };\r\n this.dataStateChange(this.state);\r\n }\r\n\r\n setChanges() {\r\n this.formGroup.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && !this.isValueChanging) {\r\n this.isValueChanging = true;\r\n this.valueChanges.emit(this.formGroup);\r\n this.isValueChanging = false;\r\n }\r\n });\r\n this.formGroup.valueChanges.pipe(takeUntil(this.ngUnsubscribe), pairwise()).subscribe(([prev, next]) => {\r\n for (const key in prev) {\r\n if (prev[key] !== next[key])\r\n this.formGroupValueChanges.emit({\r\n newValue: next[key],\r\n oldValue: prev[key],\r\n field: key,\r\n formGroup: this.formGroup,\r\n LookupData: this.LookupData,\r\n });\r\n }\r\n return false;\r\n });\r\n\r\n this.cd.markForCheck();\r\n }\r\n setValue(key: string, value: any) {\r\n if (!this.formGroup.controls[key]) this.formGroup.addControl(key, new UntypedFormControl(value));\r\n else this.formGroup.controls[key].setValue(value);\r\n }\r\n GetLookupData(keyName: string) {\r\n return this.selectorService.getDataList(keyName) ?? this.LookupData[keyName];\r\n }\r\n setFormGroup(entity: any = null) {\r\n let group: any = {};\r\n\r\n this.columns.forEach((col) => {\r\n switch (col.textType) {\r\n case \"text\":\r\n group[col.name] =\r\n col.required && col.listVisible\r\n ? new UntypedFormControl(!entity ? \"\" : entity[col.name] || \"\", Validators.required)\r\n : new UntypedFormControl(!entity ? \"\" : entity[col.name] || \"\");\r\n break;\r\n case \"checkbox\":\r\n group[col.name] =\r\n col.required && col.listVisible\r\n ? new UntypedFormControl(!entity ? false : entity[col.name] || false, Validators.required)\r\n : new UntypedFormControl(!entity ? false : entity[col.name] || false);\r\n break;\r\n case \"number\":\r\n if (col.inputMask && entity[col.name] && typeof entity[col.name] === \"number\") {\r\n entity[col.name] = this.getMaskedAmount(entity[col.name], col.inputMask);\r\n }\r\n group[col.name] =\r\n col.required && col.listVisible\r\n ? new UntypedFormControl(!entity ? null : entity[col.name], Validators.required)\r\n : new UntypedFormControl(!entity ? null : entity[col.name]);\r\n break;\r\n case \"date\":\r\n group[col.name] =\r\n col.required && col.listVisible\r\n ? new UntypedFormControl(!entity ? new Date() : entity[col.name] || new Date(), Validators.required)\r\n : new UntypedFormControl(!entity ? new Date() : entity[col.name] || new Date());\r\n break;\r\n default:\r\n group[col.name] =\r\n col.required && col.listVisible\r\n ? new UntypedFormControl(!entity ? \"\" : entity[col.name] || \"\", Validators.required)\r\n : new UntypedFormControl(!entity ? \"\" : entity[col.name] || \"\");\r\n break;\r\n }\r\n });\r\n group[\"State\"] = new UntypedFormControl(!entity ? RowState.New : entity[\"State\"] || RowState.NoChange);\r\n group[\"Id\"] = new UntypedFormControl(!entity ? 0 : entity[\"Id\"] || RowState.NoChange);\r\n group[\"RowVersion\"] = new UntypedFormControl(!entity ? \"\" : entity[\"RowVersion\"] || \"\");\r\n\r\n if (this.RowNumberName)\r\n group[this.RowNumberName] = new UntypedFormControl(!entity ? this.gridData.length + 1 : entity[this.RowNumberName] || RowState.NoChange);\r\n this.formGroup = new UntypedFormGroup(group);\r\n\r\n this.columns.forEach((x) => {\r\n if (this.DefaultValues[x.name] !== undefined) {\r\n if (!this.formGroup.controls[x.name].value) this.formGroup.controls[x.name].setValue(this.DefaultValues[x.name]);\r\n }\r\n });\r\n this.setChanges();\r\n }\r\n setColumnWith() {\r\n this.columns.forEach((x) => {\r\n if (\r\n x.textType === \"number\" &&\r\n x.withComma &&\r\n !x.name.toUpperCase().includes(\"NUMBER\") &&\r\n !x.name.toUpperCase().includes(\"CODE\") &&\r\n !x.name.toUpperCase().includes(\".ID\")\r\n )\r\n x.format = \"#,#.#####\";\r\n else x.format = \"##\";\r\n if (!x.columnWidth || x.columnWidth <= 100) {\r\n if (x.textType === \"text\") x.columnWidth = 200;\r\n else x.columnWidth = 100;\r\n }\r\n if (x.name === \"BranchTitle\") x.disabled = true;\r\n });\r\n }\r\n public addHandler() {\r\n if (this.newdefaultRowTregger) this.setFormGroup(this.newdefaultRowTregger({}, undefined));\r\n else this.setFormGroup();\r\n this.isNew = true;\r\n this.rowIsEditing = true;\r\n this.formGroup.get(\"State\").setValue(RowState.New);\r\n this.grid?.addRow(this.formGroup);\r\n this.editedRowIndex = -1;\r\n this.onRowSelected.emit(this.formGroup.value);\r\n this.cd.markForCheck();\r\n }\r\n\r\n public cancelHandler() {\r\n this.afterDeleted.emit(this.formGroup?.value);\r\n this.closeEditor();\r\n }\r\n\r\n getDateValue(date: Date) {\r\n let m: Moment = moment(date.toString()).locale(\"fa\");\r\n return m.format(\"YYYY/MM/DD\");\r\n }\r\n private getDataFromFormGroup(): any {\r\n let model: any = {};\r\n Object.keys(this.formGroup.controls).forEach((key) => {\r\n model[key] = this.formGroup.controls[key].value;\r\n });\r\n return model;\r\n }\r\n\r\n public saveHandler(rowIndex, formGroup): void {\r\n if (this.formGroup && this.formGroup?.valid) {\r\n this.valueChanges.emit(this.formGroup);\r\n this.formGroup.markAllAsTouched();\r\n var entity = this.getDataFromFormGroup();\r\n this.setIsDefault(entity, rowIndex);\r\n if (entity.State === undefined || (entity.State === RowState.New && rowIndex === -1)) {\r\n entity.State = RowState.New;\r\n entity[\"RowNumber\"] = this.dataList.length + 100;\r\n let mask = this.columns.filter((x) => x.inputMask);\r\n if (mask && mask.length > 0) {\r\n mask.forEach((m) => {\r\n if (entity[m.name]) entity[m.name] = this.getDeMaskedAmount(entity[m.name], m.inputMask);\r\n });\r\n }\r\n this.dataList.push(entity);\r\n } else if (rowIndex >= 0) {\r\n let mask = this.columns.filter((x) => x.inputMask);\r\n if (mask && mask.length > 0) {\r\n mask.forEach((m) => {\r\n if (entity[m.name]) entity[m.name] = this.getDeMaskedAmount(entity[m.name], m.inputMask);\r\n });\r\n }\r\n if (!entity.State) entity.State = this.dataList[rowIndex].State;\r\n if (entity.State != RowState.New) (entity as EntityBase).State = RowState.Modify;\r\n this.dataList[rowIndex] = entity;\r\n }\r\n this.afterSaved.emit(entity);\r\n if (this.filtering || this.paging) this.dataStateChange(this.state);\r\n this.rowIsEditing = false;\r\n if (formGroup.valid) {\r\n this.grid?.closeRow(rowIndex);\r\n }\r\n //this.refreshform();\r\n } else this.sts.showDialog(`اطلاعات وارده صحیح نیست.`, \"خطا\", DialogType.alert);\r\n this.gridData = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.cd.markForCheck();\r\n }\r\n deleteFormHelper(dataItem: any) {\r\n this.dataList.forEach((x) => {\r\n if (\r\n (dataItem.Id && dataItem.Id !== 0 && x.Id === dataItem.Id) ||\r\n (dataItem[\"RowNumber\"] && dataItem[\"RowNumber\"] !== 0 && x[\"RowNumber\"] === dataItem[\"RowNumber\"]) ||\r\n x === dataItem\r\n ) {\r\n if (x.State === RowState.New) x.State = RowState.Detached;\r\n else x.State = RowState.Delete;\r\n }\r\n });\r\n this.gridData = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.afterDeleted.emit(dataItem);\r\n if (this.filtering) this.dataStateChange(this.state as DataStateChangeEvent);\r\n this.cd.markForCheck();\r\n }\r\n public removeHandler({ sender, dataItem }): void {\r\n this.sts.showDialog(`آیا از حذف اطلاعات اطمینان دارید؟`, \"حذف اطلاعات\", DialogType.confirm, () => this.deleteFormHelper(dataItem));\r\n sender.cancelCell();\r\n }\r\n\r\n private closeEditor() {\r\n if (this.editedRowIndex !== undefined) this.grid?.closeRow(this.editedRowIndex);\r\n else this.grid?.closeRow(-1);\r\n this.rowIsEditing = false;\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n }\r\n setIsFreeDelivery() {\r\n if (this.formGroup && this.formGroup.controls[\"IsFreeDelivery\"]) {\r\n this.grid?.columns.forEach((c) => {\r\n if (c[\"field\"] === \"MinimumPurchaseForFreeShipping\") c[\"editable\"] = this.formGroup.controls[\"IsFreeDelivery\"].value;\r\n });\r\n }\r\n }\r\n private isReadOnly(field: string, dataItem: any): boolean {\r\n if (this.formGroup) this.setIsFreeDelivery();\r\n if (!dataItem[\"IsFreeDelivery\"] && field === \"MinimumPurchaseForFreeShipping\") return true;\r\n if (this.formGroup) {\r\n this.getSelected(dataItem);\r\n this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].setValue(this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].value);\r\n }\r\n let col = this.columns.find((x) => x.name === field);\r\n return col && col.disabled;\r\n }\r\n public saveCurrent(): void {\r\n if (this.formGroup) {\r\n this.saveHandler(this.editedRowIndex, this.formGroup);\r\n this.closeEditor();\r\n }\r\n }\r\n\r\n onOpen(ddl: DropDownListComponent) {\r\n // Fixed the problem of opening the dropdown in mobile mode\r\n const popupService = ddl[\"popupService\"] as any;\r\n popupService[\"appendPopup\"] = (nodes, container) => {\r\n const popupComponentRef = popupService.createComponent(PopupComponent, nodes, container);\r\n if (popupComponentRef?.instance?.offset?.left) {\r\n popupComponentRef.instance.offset.left = 0;\r\n }\r\n if (!container) {\r\n popupService.rootViewContainerNode.appendChild(popupService.getComponentRootNode(popupComponentRef));\r\n }\r\n return popupComponentRef;\r\n };\r\n }\r\n\r\n public cellClickHandler({ sender, rowIndex, column, columnIndex, dataItem, isEdited }): void {\r\n if (!this.isAdd && !this.isEdit) return;\r\n if (this.rowEditableKeyNotAllow && dataItem[this.rowEditableKeyNotAllow] == true) return;\r\n this.setMaskedInfo();\r\n this.checkDropdownlist();\r\n if (this.rowseleted) {\r\n this.cancelHandler();\r\n this.rowseleted = false;\r\n }\r\n this.onRowSelected.emit(dataItem);\r\n if (this.formGroup !== undefined) {\r\n if (!column || isEdited) {\r\n return;\r\n }\r\n }\r\n if (this.formGroup) {\r\n this.valueChanges.emit(this.formGroup);\r\n this.formGroup.markAllAsTouched();\r\n this.setIsFreeDelivery();\r\n }\r\n\r\n if (this.formGroup && this.formGroup?.valid) {\r\n this.selectionChange(undefined, undefined, undefined, undefined, this.formGroup.value, column?.custom);\r\n if (this.formGroup?.valid) this.saveCurrent();\r\n else return;\r\n } else if (this.formGroup && !this.formGroup?.valid) return;\r\n if (this.isNew && this.formGroup && this.formGroup?.valid) {\r\n rowIndex += 1;\r\n }\r\n if (this.formGroup && this.formGroup?.valid) this.saveCurrent();\r\n this.setIsDefault(dataItem, rowIndex);\r\n this.setFormGroup(dataItem);\r\n if (dataItem) {\r\n this.getSelected(dataItem);\r\n }\r\n if (this.formGroup) this.setValidation();\r\n this.rowIsEditing = true;\r\n this.editedRowIndex = rowIndex;\r\n if (this.isAdd || this.isEdit) this.grid?.editRow(rowIndex, this.formGroup, { columnIndex });\r\n if (this.formGroup) this.formGroup.markAllAsTouched();\r\n }\r\n checkDropdownlist() {\r\n this.columns.forEach((x) => {\r\n if (x.apiName && !this.LookupData[x.apiName] && !this.hasMultiColumns(x.columnsName))\r\n this.setDropdownlist(x.apiName, x.systemName, x.category, x.name);\r\n });\r\n }\r\n setDropdownlist(apiName: string, systemName: string, category: string, key: string) {\r\n if (this.selectorService.getDataList(apiName)) {\r\n return;\r\n }\r\n if (this.formGroup) this.formGroup.markAllAsTouched();\r\n\r\n if (apiName.includes(\"MonthsName\")) {\r\n this.LookupData[apiName] = this.monthsnameService.MonthList;\r\n } else if (systemName && category && !this.loadingData) {\r\n this.lookupservice\r\n .getLookupbyCategory(systemName, category)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.LookupData[apiName] = x;\r\n });\r\n } else\r\n this._httpCommonService\r\n .getList(apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.LookupData[apiName] = x;\r\n });\r\n this.valueChanges.emit(undefined);\r\n }\r\n getValue(val: any) {\r\n return val;\r\n }\r\n getItemDisplayById(\r\n apiName: string,\r\n systemName: string,\r\n id: number,\r\n displayMember: string,\r\n valueMember: string,\r\n columnName: string,\r\n dataItem: any,\r\n isMultiSelect: boolean = false\r\n ) {\r\n if (isMultiSelect) {\r\n let result = \"\";\r\n dataItem[columnName]?.forEach((element, ind) => {\r\n result += element[displayMember] + (dataItem[columnName].length - 1 != ind ? \",\" : \"\");\r\n });\r\n return result;\r\n } else {\r\n if (!id) return \"\";\r\n\r\n if (columnName === \"PartyId\") return dataItem[displayMember];\r\n if (systemName) {\r\n return this.lookupservice.getLookupbyId(id)?.Title;\r\n } else {\r\n if (columnName === \"Month\") return this.monthsnameService.MonthList.find((x) => x.Id === dataItem[columnName]).Title;\r\n if (dataItem[columnName.replace(\"Id\", displayMember)]) return dataItem[columnName.replace(\"Id\", displayMember)];\r\n\r\n if (displayMember.includes(\"UnitId\") && dataItem[`${displayMember.replace(\"UnitId\", \"UnitTitle\")}`])\r\n return dataItem[`${displayMember.replace(\"UnitId\", \"UnitTitle\")}`];\r\n\r\n if (this.LookupData[apiName] && this.LookupData[apiName].find((x) => x[valueMember] === id)) {\r\n if (this.LookupData[apiName].find((x) => x[valueMember] === id)[displayMember])\r\n return this.LookupData[apiName].find((x) => x[valueMember] === id)[displayMember];\r\n else return this.LookupData[apiName].find((x) => x[valueMember] === id)[columnName];\r\n }\r\n }\r\n if (dataItem[`Goods${displayMember}`]) return dataItem[`Goods${displayMember}`];\r\n if (dataItem[columnName]) return dataItem[columnName];\r\n return \"\";\r\n }\r\n }\r\n setValidation() {\r\n this.columns.forEach((x) => {\r\n if (x.apiName) {\r\n let event: any;\r\n if ((x.systemName, x.category)) event = this.lookupservice.getLookupbyId(this.formGroup.controls[x.name].value);\r\n else if (this.LookupData[x.apiName] !== undefined) {\r\n event = this.LookupData[x.apiName].find((f) => f[x.valueMember] === this.formGroup.controls[x.name].value);\r\n if (event !== undefined) this.selectionChange(event, \"\", \"\", \"\", undefined, x[\"custom\"]);\r\n }\r\n }\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n }\r\n getSelected(dataItem: any) {\r\n if (!this.formGroup) return;\r\n if (this.formGroup.get(\"Selected\") && this.formGroup.controls[\"State\"]) {\r\n if (this.formGroup.controls[\"State\"].value !== RowState.New) this.formGroup.get(\"Selected\").disable();\r\n else this.formGroup.get(\"Selected\").enable();\r\n }\r\n\r\n if (this.formGroup.get(\"IsActive\") && this.formGroup.controls[\"Selected\"]) {\r\n if (!this.formGroup.controls[\"Selected\"].value) this.formGroup.get(\"IsActive\").disable();\r\n else this.formGroup.get(\"IsActive\").enable();\r\n }\r\n if (this.formGroup.get(\"MinimumPurchaseForFreeShipping\") && this.formGroup.controls[\"IsFreeDelivery\"]) {\r\n if (!this.formGroup.controls[\"IsFreeDelivery\"].value) this.formGroup.get(\"MinimumPurchaseForFreeShipping\").disable();\r\n else this.formGroup.get(\"MinimumPurchaseForFreeShipping\").enable();\r\n }\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n setIsDefault(dataItem: any, rowIndex: number) {\r\n let index = 0;\r\n if (dataItem[\"IsDefault\"] && dataItem[\"IsDefault\"] === true) {\r\n this.dataList.forEach((x) => {\r\n if (index != rowIndex && x[\"IsDefault\"] === true) {\r\n x[\"IsDefault\"] = false;\r\n if (x[\"State\"] === RowState.NoChange) x[\"State\"] = RowState.Modify;\r\n }\r\n index = index + 1;\r\n });\r\n }\r\n this.gridData = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.cd.markForCheck();\r\n }\r\n getcheckedKeys(key: string) {\r\n let checkedKeys: any[] = [];\r\n this.dataList\r\n .filter((x) => x.State != RowState.Delete && x.State != RowState.Detached)\r\n .forEach((x) => {\r\n checkedKeys.push(x[key]);\r\n });\r\n return checkedKeys;\r\n }\r\n multiSelectValueChange(newValue: any, column: form_control, dataItem: any) {\r\n if (column.isSelector) this.selectionChange(newValue, column.name, column.valueMember, column.displayMember, dataItem);\r\n else this.valueChange.emit(newValue);\r\n this.cd.markForCheck();\r\n }\r\n onDropdownClose(e) {\r\n console.log(e);\r\n }\r\n\r\n selectionChange(event: any, key: string, valueMember: string, displayMember: string, dataItem: any, isCustom?: boolean) {\r\n this.onLookupChanges.emit({ event, key, valueMember, displayMember, dataItem, formGroup: this.formGroup });\r\n if (event && event.data && event.data.length > 0) {\r\n event.data.forEach((x) => {\r\n if (x) {\r\n let entity = this.newdefaultRowTregger ? this.newdefaultRowTregger({}, x) : {};\r\n entity[\"State\"] = RowState.New;\r\n if (isCustom) {\r\n entity[key] = x[displayMember];\r\n entity[key.replace(\"Title\", valueMember)] = x[valueMember];\r\n if (x[\"Title\"]) entity[key] = x[\"Title\"];\r\n if (x[\"Id\"]) entity[key.replace(\"Title\", \"Id\")] = x[\"Id\"];\r\n if (!this.dataList.some((f) => f[key] === x[valueMember] && f[\"State\"] !== RowState.Detached && f[\"State\"] !== RowState.Delete)) {\r\n entity[\"RowNumber\"] = this.dataList.length + 100;\r\n this.dataList.push(entity);\r\n }\r\n } else {\r\n entity[key] = x[valueMember];\r\n entity[key.replace(\"Id\", displayMember)] = x[displayMember];\r\n if (x[\"Title\"]) entity[key.replace(\"Id\", \"Title\")] = x[\"Title\"];\r\n if (!this.dataList.some((f) => f[key] === x[valueMember] && f[\"State\"] !== RowState.Detached && f[\"State\"] !== RowState.Delete)) {\r\n entity[\"RowNumber\"] = this.dataList.length + 100;\r\n if (!this.dataList.some((s) => s.State != RowState.Delete && s.State != RowState.Detached && s[key] === entity[key]))\r\n this.dataList.push(entity);\r\n }\r\n }\r\n }\r\n });\r\n this.gridData = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.cd.markForCheck();\r\n this.closeEditor();\r\n }\r\n\r\n if (!this.formGroup) return;\r\n this.currentLookup = event;\r\n this.valueChanges.emit(event);\r\n if (\r\n !this.noReduplicative &&\r\n key &&\r\n valueMember &&\r\n displayMember &&\r\n event !== undefined &&\r\n event[valueMember] !== undefined &&\r\n (isCustom ? dataItem[key.replace(\"Title\", \"Id\")] : dataItem[key]) !== event[valueMember] &&\r\n this.dataList.some(\r\n (f) =>\r\n f[isCustom ? dataItem[key.replace(\"Title\", \"Id\")] : dataItem[key]] === event[valueMember] &&\r\n f[\"State\"] !== RowState.Detached &&\r\n f[\"State\"] !== RowState.Delete\r\n )\r\n ) {\r\n this.sts.showDialog(`این قلم ${event[displayMember]} قبلا انتخاب شده است.`, \"هشدار\", DialogType.alert);\r\n this.closeEditor();\r\n return;\r\n }\r\n\r\n if (event && event[displayMember]) {\r\n if (key === \"PartyId\") this.formGroup.controls[\"DisplayName\"].setValue(event[displayMember]);\r\n if (isCustom) {\r\n if (this.formGroup.controls[key.replace(\"Title\", \"Code\")]) this.formGroup.controls[key.replace(\"Title\", \"Code\")].setValue(event[\"Code\"]);\r\n if (this.formGroup.controls[key.replace(\"Title\", \"Id\")]) this.formGroup.controls[key.replace(\"Title\", \"Id\")].setValue(event[\"Id\"]);\r\n } else {\r\n if (this.formGroup.controls[key.replace(\"Id\", \"Code\")]) this.formGroup.controls[key.replace(\"Id\", \"Code\")].setValue(event[\"Code\"]);\r\n if (this.formGroup.controls[key.replace(\"Id\", \"Title\")]) this.formGroup.controls[key.replace(\"Id\", \"Title\")].setValue(event[\"Title\"]);\r\n if (this.formGroup.controls[key.replace(\"Id\", displayMember)])\r\n this.formGroup.controls[key.replace(\"Id\", displayMember)].setValue(event[displayMember]);\r\n else if (this.formGroup.controls[key]) {\r\n this.setValue(key.replace(\"Id\", displayMember), event[displayMember]);\r\n this.setValue(key.replace(\"Id\", \"Code\"), event[key.replace(\"Id\", \"Code\")]);\r\n this.setValue(key.replace(\"Id\", \"Title\"), event[key.replace(\"Id\", \"Title\")]);\r\n }\r\n }\r\n }\r\n if (event && event.UnitId) {\r\n if (this.formGroup.controls[\"MainUnitId\"]) this.formGroup.controls[\"MainUnitId\"].setValue(event.UnitId);\r\n if (this.formGroup.controls[\"GoodsUnitId\"] && event.DefaultUnitId && this.formGroup.controls[\"GoodsUnitId\"].value != event.UnitId)\r\n this.formGroup.controls[\"GoodsUnitId\"].setValue(event.DefaultUnitId);\r\n else if (this.formGroup.controls[\"GoodsUnitId\"]) this.formGroup.controls[\"GoodsUnitId\"].setValue(event.UnitId);\r\n if (this.formGroup.controls[\"GoodsUnitTitle\"]) this.formGroup.controls[\"GoodsUnitTitle\"].setValue(event.UnitTitle);\r\n if (this.formGroup.controls[\"GoodsDefaultUnitTitle\"]) this.formGroup.controls[\"GoodsDefaultUnitTitle\"].setValue(event.DefaultUnitTitle);\r\n if (this.formGroup.controls[\"GoodsUnitRatio\"] && event.Ratio && this.formGroup.controls[\"GoodsUnitRatio\"].value != event.Ratio)\r\n this.formGroup.controls[\"GoodsUnitRatio\"].setValue(event.Ratio);\r\n }\r\n if (event && event.DefaultUnitId) {\r\n if (this.formGroup.controls[\"MainUnitId\"]) this.formGroup.controls[\"MainUnitId\"].setValue(event.UnitId);\r\n if (this.formGroup.controls[\"UnitId\"]) this.formGroup.controls[\"UnitId\"].setValue(event.UnitId);\r\n if (this.formGroup.controls[\"GoodsUnitId\"] && this.formGroup.controls[\"GoodsUnitId\"].value != event.UnitId)\r\n this.formGroup.controls[\"GoodsUnitId\"].setValue(event.DefaultUnitId);\r\n\r\n if (this.formGroup.controls[\"GoodsUnitRatio\"] && this.formGroup.controls[\"GoodsUnitRatio\"].value != event.DefaultUnitRatio)\r\n this.formGroup.controls[\"GoodsUnitRatio\"].setValue(event.DefaultUnitRatio ?? 1);\r\n\r\n if (this.formGroup.controls[\"GoodsMainUnitTitle\"]) this.formGroup.controls[\"GoodsMainUnitTitle\"].setValue(event.UnitTitle);\r\n if (this.formGroup.controls[\"GoodsUnitTitle\"] && this.formGroup.controls[\"GoodsUnitTitle\"].value != event.UnitTitle)\r\n this.formGroup.controls[\"GoodsUnitTitle\"].setValue(event.DefaultUnitTitle);\r\n }\r\n if ((event && event.Category && event.Category === \"NumberType\") || (dataItem && dataItem.NumberTypeCode)) {\r\n this.setPhoneValidators(event.Code);\r\n }\r\n if (event && (event.CourierShippingCost || event.ShippingCost)) {\r\n if (this.formGroup.controls[\"ShippingCost\"]) this.formGroup.controls[\"ShippingCost\"].setValue(event.ShippingCost);\r\n if (this.formGroup.controls[\"CourierShippingCost\"]) this.formGroup.controls[\"CourierShippingCost\"].setValue(event.CourierShippingCost);\r\n }\r\n }\r\n\r\n setPhoneValidators(code: number) {\r\n if (this.formGroup.controls[\"Number\"]) {\r\n this.formGroup.controls[\"Number\"].clearValidators();\r\n this.formGroup.controls[\"Number\"].setErrors(null);\r\n\r\n if (code === NumberType.Mobile || this.formGroup.controls[\"NumberTypeCode\"]?.value === NumberType.Mobile)\r\n this.formGroup.controls[\"Number\"].setValidators([Validators.required, Validators.pattern(\"^[0-0][9-9]\\\\d{9}\")]);\r\n else this.formGroup.controls[\"Number\"].setValidators([Validators.required, Validators.pattern(\"^[1-9]\\\\d{3,7}\")]);\r\n this.formGroup.controls[\"Number\"].setValue(this.formGroup.controls[\"Number\"].value);\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n }\r\n\r\n refreshform() {\r\n setTimeout(() => this.addHandler(), 100);\r\n setTimeout(() => this.cancelHandler(), 200);\r\n }\r\n setMaskedInfo() {\r\n if (!this.formGroup) return;\r\n let mask = this.columns.filter((x) => x.inputMask);\r\n if (mask && mask.length > 0) {\r\n mask.forEach((m) => {\r\n if (this.formGroup.get(m.name) && this.formGroup.get(m.name).value && typeof this.formGroup.get(m.name).value === \"number\") {\r\n let value: string = this.formGroup.get(m.name).value.toString();\r\n if (value.length < m.inputMask.length - 1) value = \"0\".repeat(m.inputMask.length - 1 - value.length) + value;\r\n this.formGroup.get(m.name).setValue(value);\r\n }\r\n });\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n }\r\n getMaskedAmount(amount: number, inputMask: string) {\r\n try {\r\n if (!amount) return \"\";\r\n if (inputMask === \"00\" && isNumber(amount) && amount >= 440) {\r\n let temp: number = amount / 440;\r\n if (temp.toString().length > 2) return temp;\r\n return \"0\".repeat(2 - temp.toString().length) + temp;\r\n }\r\n if (inputMask === \"000:00\" && isNumber(amount)) {\r\n let temp: number = amount % 60;\r\n let MM = (amount - temp) / 60;\r\n return \"0\".repeat(3 - MM.toString().length) + MM + \":\" + \"0\".repeat(2 - temp.toString().length) + temp;\r\n }\r\n if (inputMask === \"00:00:00\" && isNumber(amount)) {\r\n let temp1: number = amount % 440;\r\n let temp2: number = temp1 % 60;\r\n let DD = (amount - temp1) / 440;\r\n let MM = (temp1 - temp2) / 60;\r\n return (\r\n \"0\".repeat(2 - DD.toString().length) +\r\n DD +\r\n \":\" +\r\n \"0\".repeat(2 - MM.toString().length) +\r\n MM +\r\n \":\" +\r\n \"0\".repeat(2 - temp2.toString().length) +\r\n temp2\r\n );\r\n }\r\n if (inputMask === \"00:00\" && isNumber(amount)) return \"0\".repeat(2 - amount.toString().length) + amount;\r\n\r\n return amount;\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n getDeMaskedAmount(amount: string, inputMask: string) {\r\n if (!amount) return 0;\r\n if (amount.toString().indexOf(\"_\") > -1) amount = amount.replace(/\\_/g, \"\");\r\n if (inputMask === \"00\") {\r\n return Number(amount) * 440;\r\n }\r\n if (inputMask === \"000:00\") {\r\n return Number(amount.replace(\":\", \"\").substr(0, 3)) * 60 + Number(amount.replace(\":\", \"\").substr(3, 2));\r\n }\r\n if (inputMask === \"00:00:00\") {\r\n return (\r\n Number(amount.replace(\":\", \"\").substr(0, 2)) * 440 +\r\n Number(amount.replace(\":\", \"\").substr(2, 2)) * 60 +\r\n Number(amount.replace(\":\", \"\").substr(5, 2))\r\n );\r\n }\r\n return Number(amount);\r\n }\r\n setColumnInfo() {\r\n if (!this.grid) return;\r\n this.grid?.columns.forEach((x: ColumnComponent) => {\r\n const column = this.columns.find((c) => c.name === (x.field ?? x.title));\r\n if (column) {\r\n x.minResizableWidth = x.minResizableWidth;\r\n x.width = column.columnWidth;\r\n }\r\n });\r\n this.grid?.focus();\r\n }\r\n\r\n fitColumns(): void {\r\n if (this.grid && !this.noAutoFitColumns) {\r\n setTimeout(() => {\r\n this.ngZone.onStable\r\n .asObservable()\r\n .pipe(take(1))\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(() => {\r\n this.grid?.autoFitColumns();\r\n this.setColumnInfo();\r\n });\r\n }, 100);\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n public pageChange(event: PageChangeEvent): void {\r\n this.state.skip = event.skip;\r\n this.state.take = event.take;\r\n this.dataStateChange(this.state);\r\n }\r\n\r\n hasMultiColumns(ColumnsName: string) {\r\n if (!ColumnsName) return false;\r\n var columns = ColumnsName.split(\",\");\r\n return columns.length > 1;\r\n }\r\n onRowsSelected($event, key: string, valueMember: string, displayMember: string, isCustom: boolean) {\r\n if ($event && $event.length > 0) {\r\n this.rowseleted = true;\r\n $event.forEach((x) => {\r\n let entity = this.newdefaultRowTregger ? this.newdefaultRowTregger({}, x) : {};\r\n entity[\"State\"] = RowState.New;\r\n if (isCustom) {\r\n entity[key] = x[displayMember];\r\n entity[key.replace(\"Title\", valueMember)] = x[valueMember];\r\n if (x[\"Title\"]) entity[key] = x[\"Title\"];\r\n if (x[\"Id\"]) entity[key.replace(\"Title\", \"Id\")] = x[\"Id\"];\r\n if (\r\n !this.dataList.some(\r\n (f) => f[key.replace(\"Title\", \"Id\")] === x[valueMember] && f[\"State\"] !== RowState.Detached && f[\"State\"] !== RowState.Delete\r\n )\r\n ) {\r\n entity[\"RowNumber\"] = this.dataList.length + 100;\r\n this.dataList.push(entity);\r\n }\r\n } else {\r\n entity[key] = x[valueMember];\r\n entity[key.replace(\"Id\", displayMember)] = x[displayMember];\r\n if (x[\"Title\"]) entity[key.replace(\"Id\", \"Title\")] = x[\"Title\"];\r\n if (!this.dataList.some((f) => f[key] === x[valueMember] && f[\"State\"] !== RowState.Detached && f[\"State\"] !== RowState.Delete)) {\r\n entity[\"RowNumber\"] = this.dataList.length + 100;\r\n this.dataList.push(entity);\r\n }\r\n }\r\n });\r\n this.gridData = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.cd.markForCheck();\r\n this.closeEditor();\r\n this.valueChanges.emit(this.formGroup);\r\n }\r\n }\r\n\r\n getColumnAggregates(columnName: string) {\r\n if (this.dataList.length > 0) return this.dataList.reduce((s: number, b: number) => s + b[columnName], 0);\r\n return undefined;\r\n }\r\n setAggregates() {\r\n if (!this.aggregatesColumnName) return;\r\n var keys = this.aggregatesColumnName.split(\",\");\r\n }\r\n hasAggregate(columnName: string) {\r\n return this.aggregatesColumnName !== undefined && this.aggregatesColumnName.includes(columnName);\r\n }\r\n setSelectedRows(e: any, items: any[]) {\r\n if (!this.selectedRows) this.selectedRows = [];\r\n items.forEach((x) => {\r\n if (x.items) this.setSelectedRows(e, x.items);\r\n else if (!this.selectedRows.some((s) => s[\"Id\"] === x[\"Id\"])) this.selectedRows.push(x);\r\n });\r\n }\r\n public onSelectedKeysChange(e) {\r\n const len = e.length;\r\n if (len === 0) {\r\n this.selectAllState = \"unchecked\";\r\n } else if (len > 0 && len < this.gridData.length) {\r\n this.selectAllState = \"indeterminate\";\r\n } else {\r\n this.selectAllState = \"checked\";\r\n }\r\n if (this.isMulti) {\r\n if (e && e.length > 0) {\r\n if (this.gridData[0].items) this.setSelectedRows(e, this.gridData[0].items);\r\n else this.selectedRows = this.gridData.filter((x) => e.some((s) => s === x[this.SelectById]));\r\n } else this.selectedRows = [];\r\n }\r\n if (this.isMulti) {\r\n if (this.mySelection && this.mySelection.length > 0) {\r\n if (this.selectedRows && this.selectedRows.length > 0)\r\n this.selectedRows = this.selectedRows.filter((x) => this.mySelection.some((s) => s === x[this.SelectById]));\r\n else this.selectedRows = [];\r\n }\r\n this.onRows_Selected.emit(this.selectedRows);\r\n }\r\n }\r\n public onSelectAllChange(checkedState: SelectAllCheckboxState) {\r\n if (checkedState === \"unchecked\" && this.mySelection.length <= 0) {\r\n this.mySelection = this.gridData.map((item) => item[this.SelectById]);\r\n this.onSelectedKeysChange(this.mySelection);\r\n }\r\n if (checkedState === \"checked\") {\r\n this.mySelection = this.gridData.map((item) => item[this.SelectById]);\r\n this.selectAllState = \"checked\";\r\n } else {\r\n this.mySelection = [];\r\n this.selectAllState = \"unchecked\";\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n {{ formTitle }}\r\n {{ formTitle2 }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ getMaskedAmount(dataItem[column.name], column.inputMask) }}\r\n \r\n \r\n \r\n \r\n \r\n {{\r\n getItemDisplayById(\r\n column.apiName,\r\n column.systemName,\r\n dataItem[column.name],\r\n column.displayMember,\r\n column.valueMember,\r\n column.name,\r\n dataItem,\r\n column.IsMultiSelect\r\n )\r\n }}\r\n \r\n \r\n {{ getDateValue(dataItem[column.name]) }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ column.label }} الزامی است\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n جمع:{{ getColumnAggregates(column.name) | number }} \r\n \r\n {{ getValue(value) }}\r\n \r\n \r\n\r\n","import { Directive, ElementRef, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[popupAnchor]',\r\n exportAs: 'popupAnchor'\r\n})\r\nexport class PopupAnchorDirective {\r\n constructor(public element: ElementRef) {}\r\n}\r\n","import { Component, OnInit, Input, Type, OnDestroy, ViewChild, NgZone, AfterContentInit, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms';\r\nimport { EntityListAction, Permission, form_control } from 'projects/sepidz-web-framework/src/lib/models';\r\n\r\nimport {\r\n CancelEvent,\r\n EditEvent,\r\n TreeListComponent,\r\n} from '@progress/kendo-angular-treelist';\r\nimport { RowState } from 'projects/sepidz-web-framework/src/lib/models/enums';\r\nimport { ShowToastrService, HttpCommonService, Utilities, GridFilter, AccountService } from 'projects/sepidz-web-framework/src/lib/services';\r\n\r\nimport { takeUntil, take } from 'rxjs/operators';\r\nimport { Subject } from 'rxjs';\r\nimport { DialogType } from 'projects/sepidz-web-framework/src/lib/models/dialog.enum';\r\nimport { SimpleModalService } from 'projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service';\r\n\r\n@Component({\r\n selector: 'editabel-treelist',\r\n templateUrl: './editabeltreelist.component.html',\r\n styleUrls: ['./editabeltreelist.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class EditabeltreelistComponent implements OnInit, OnDestroy, AfterContentInit {\r\n isRefreshing: boolean = false;\r\n formGroup: UntypedFormGroup;\r\n public editedItem: any;\r\n ngUnsubscribe = new Subject();\r\n @Input() label: string;\r\n @Input() apiName: string;\r\n @Input() inputEditorform: Type;\r\n @Input() name: string;\r\n @Input() IdName: string;\r\n @Input() ParentIdName: string;\r\n @Input() expandableField: string;\r\n _dataList: any[];\r\n treelistIsLoaded: boolean = false;\r\n @Input()\r\n get dataList(): any[] {\r\n return this._dataList;\r\n }\r\n set dataList(value: any[]) {\r\n if (value && this._dataList !== value && value.length > 0)\r\n setTimeout(() => this.fitColumns(), 200);\r\n this._dataList = value;\r\n }\r\n _actions: any[] = [];\r\n get validactions() {\r\n return this._actions;\r\n }\r\n @Input() columns: form_control[] = [];\r\n @ViewChild(TreeListComponent)\r\n public treelist: TreeListComponent;\r\n @Input() actions: any[];\r\n @Input() actionTregger: (\r\n action: EntityListAction\r\n ) => void;\r\n constructor(private sts: ShowToastrService,\r\n private _httpCommonService: HttpCommonService,\r\n private cd: ChangeDetectorRef,\r\n private ngZone: NgZone,\r\n private accountService: AccountService,\r\n public dialogService: SimpleModalService) {\r\n }\r\n ngAfterContentInit(): void {\r\n this.fitColumns();\r\n }\r\n\r\n toFormGroup(entity: any = null, parent: any = null) {\r\n let group: any = {};\r\n if (parent) {\r\n group[this.ParentIdName] = new UntypedFormControl(parent ? parent[this.IdName] : null);\r\n } else\r\n group[this.ParentIdName] = new UntypedFormControl(entity ? entity[this.ParentIdName] : null);\r\n this.columns.forEach(question => {\r\n switch (question.textType) {\r\n case (\"text\"):\r\n group[question.name] = question.required ? new UntypedFormControl(!entity ? '' : entity[question.name] || '', Validators.required)\r\n : new UntypedFormControl(!entity ? '' : entity[question.name] || '');\r\n break;\r\n case (\"checkbox\"):\r\n group[question.name] = question.required ? new UntypedFormControl(!entity ? false : entity[question.name] || false, Validators.required)\r\n : new UntypedFormControl(!entity ? false : entity[question.name] || false);\r\n break;\r\n case (\"number\"):\r\n group[question.name] = question.required ? new UntypedFormControl(!entity ? 0 : entity[question.name], Validators.required)\r\n : new UntypedFormControl(!entity ? 0 : entity[question.name]);\r\n break;\r\n case (\"date\"):\r\n group[question.name] = question.required ? new UntypedFormControl(!entity ? new Date() : entity[question.name] || new Date(), Validators.required)\r\n : new UntypedFormControl(!entity ? new Date() : entity[question.name] || new Date());\r\n break;\r\n default:\r\n group[question.name] = question.required ? new UntypedFormControl(!entity ? '' : entity[question.name] || '', Validators.required)\r\n : new UntypedFormControl(!entity ? '' : entity[question.name] || '');\r\n break;\r\n }\r\n });\r\n\r\n group[\"State\"] = new UntypedFormControl(!entity ? RowState.New : entity[\"State\"] || RowState.NoChange);\r\n group[\"Id\"] = new UntypedFormControl(!entity ? 0 : entity[\"Id\"] || 0);\r\n group[\"RowVersion\"] = new UntypedFormControl(!entity ? '' : entity[\"RowVersion\"] || '');\r\n let fg = new UntypedFormGroup(group);\r\n\r\n this.cd.detectChanges();\r\n return fg\r\n }\r\n public ngOnInit(): void {\r\n if (!this.dataList)\r\n this.dataList = [];\r\n if (this.apiName) {\r\n this.setColumns();\r\n this.refreshData();\r\n }\r\n this.setvalidactions();\r\n }\r\n setvalidactions() {\r\n if (!this.actions) return this.actions;\r\n var list = this.actions.filter((x) =>\r\n this.accountService.userHasPermission(`${x.areaName}:${x.apiName}`, x.permission ? x.permission : Permission.managePermission)\r\n );\r\n this._actions = list;\r\n }\r\n rootData: any[];\r\n\r\n public fetchChildren = (item: any): any[] => {\r\n return this.dataList.filter(x => x[this.ParentIdName] === item[this.IdName]);\r\n }\r\n gethasChildren(item: any): boolean {\r\n return this.dataList && this.dataList.filter(x => x[this.ParentIdName] === item[this.IdName]).length > 0;\r\n }\r\n public hasChildren = (item: any): boolean => {\r\n return this.gethasChildren(item);\r\n }\r\n onToolbarItemClick(action: EntityListAction) {\r\n if (document.hidden) return;\r\n if (this.actionTregger && !action.disabled) {\r\n this.actionTregger(action);\r\n return;\r\n }\r\n }\r\n public addHandler({ sender, parent }): void {\r\n if (this.apiName) {\r\n this.dialogService.open(this.inputEditorform, {\r\n currentrow: null,\r\n apiName: this.apiName,\r\n parentrow: parent,\r\n label: this.label,\r\n }, {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(model => {\r\n this.isRefreshing = true;\r\n setTimeout(() => this.refreshData(), 500);\r\n });\r\n this.cd.detectChanges();\r\n return;\r\n }\r\n // Close the current edited row, if any.\r\n this.closeEditor(!sender ? this.treelist : sender);\r\n // Expand the parent.\r\n if (parent) {\r\n sender.expand(parent);\r\n }\r\n this.formGroup = this.toFormGroup(null, parent);\r\n // Show the new row editor, with the `FormGroup` build above\r\n if (sender)\r\n sender.addRow(this.formGroup, parent);\r\n else\r\n this.treelist.addRow(this.formGroup, parent);\r\n this.cd.detectChanges();\r\n }\r\n\r\n public editHandler({ sender, dataItem }: EditEvent): void {\r\n if (this.apiName) {\r\n this.dialogService.open(this.inputEditorform, {\r\n\r\n currentrow: dataItem,\r\n apiName: this.apiName,\r\n label: this.label\r\n }, {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(model => {\r\n this.isRefreshing = true;\r\n setTimeout(() => this.refreshData(), 500);\r\n });\r\n return;\r\n }\r\n // Close the current edited row, if any.\r\n this.closeEditor(sender, dataItem);\r\n this.formGroup = this.toFormGroup(dataItem);\r\n this.editedItem = dataItem;\r\n\r\n // Put the row in edit mode, with the `FormGroup` build abovehasChildren\r\n sender.editRow(dataItem, this.formGroup);\r\n this.cd.detectChanges();\r\n }\r\n\r\n public cancelHandler({ sender, dataItem, isNew }: CancelEvent): void {\r\n // Close the editor for the given row\r\n this.closeEditor(sender, dataItem, isNew);\r\n this.cd.detectChanges();\r\n }\r\n\r\n public saveHandler({ sender, dataItem, parent, formGroup, isNew }): void {\r\n const entity: any = formGroup.value;\r\n\r\n if (!isNew) {\r\n Object.assign(dataItem, entity);\r\n } else if (parent) {\r\n //entity.Parent = parent;\r\n entity[this.IdName] = this.dataList.length + 1;\r\n entity[this.ParentIdName] = parent[this.IdName];\r\n }\r\n\r\n if (isNew) {\r\n entity.State = RowState.New;\r\n if (!parent)\r\n entity[this.ParentIdName] = undefined;\r\n entity[this.IdName] = this.dataList.length + 1;\r\n //if (!parent)\r\n this.dataList.push(entity);\r\n }\r\n else {\r\n this.dataList.forEach(x => {\r\n if (x[this.IdName] === entity[this.IdName]) {\r\n if (x.State != RowState.New)\r\n x.State = RowState.Modify;\r\n x = entity;\r\n }\r\n })\r\n }\r\n if (parent) {\r\n sender.reload(parent);\r\n }\r\n sender.closeRow(dataItem, isNew);\r\n this.rootData = this.dataList.filter(x => !x[this.ParentIdName]);\r\n this.cd.detectChanges();\r\n }\r\n deleteFormHelper(row: any) {\r\n this.isRefreshing = true;\r\n this.sts.showToast('primary', '', 'در حال حذف...');\r\n this._httpCommonService.delete(this.apiName, row.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(results => {\r\n this.sts.showToast('success', '', 'اطلاعات با موفیت حذف شد.');\r\n setTimeout(() => this.refreshData(), 200);\r\n },\r\n error => {\r\n this.isRefreshing = false;\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, 'خطا در حذف اطلاعات');\r\n });\r\n this.cd.detectChanges();\r\n }\r\n public removeHandler({ sender, dataItem, parent }): void {\r\n if (this.apiName) {\r\n this.sts.showDialog(`آیا از حذف اطلاعات اطمینان دارید؟`, 'حذف اطلاعات', DialogType.confirm, () => this.deleteFormHelper(dataItem));\r\n }\r\n else {\r\n if (dataItem)\r\n this.dataList.splice(this.dataList.indexOf(dataItem), 1);\r\n else\r\n this.dataList.splice(this.dataList.indexOf(parent), 1);\r\n }\r\n if (parent)\r\n sender.reload(parent);\r\n else\r\n sender.reload(dataItem);\r\n this.rootData = this.dataList.filter(x => !x[this.ParentIdName]);\r\n this.cd.detectChanges();\r\n }\r\n\r\n private closeEditor(treelist: TreeListComponent, dataItem: any = this.editedItem, isNew: boolean = false): void {\r\n treelist.closeRow(dataItem, isNew);\r\n this.editedItem = undefined;\r\n this.formGroup = undefined;\r\n this.cd.detectChanges();\r\n }\r\n refreshData() {\r\n this.isRefreshing = true;\r\n this.sts.showToast('primary', '', 'در حال بارگذاری اطلاعات...');\r\n this._httpCommonService.getList(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(data => {\r\n if (data != undefined) {\r\n this.dataList = data as any[]\r\n this.sts.showToast('success', '', 'اطلاعات با موفقیت بارگذاری شد.');\r\n this.isRefreshing = false;\r\n this.rootData = this.dataList.filter(x => !x[this.ParentIdName]);\r\n this.cd.detectChanges();\r\n }\r\n },\r\n error => {\r\n this.isRefreshing = false;\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, 'خطا در حذف اطلاعات');\r\n });\r\n }\r\n\r\n setColumns() {\r\n this._httpCommonService.getControlsList(this.apiName.split('/')[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(data => {\r\n if (data) {\r\n this.columns = (data as form_control[]).sort((a, b) => a.order - b.order);\r\n this.setColumnWith();\r\n }\r\n });\r\n }\r\n setColumnWith() {\r\n this.columns.forEach(x => {\r\n if (x.textType === 'number' && x.withComma &&\r\n !x.name.toUpperCase().includes(\"NUMBER\") &&\r\n !x.name.toUpperCase().includes(\"CODE\") &&\r\n !x.name.toUpperCase().includes(\".ID\"))\r\n x.format = '#,#.#####';\r\n else\r\n x.format = '';\r\n if (!x.maxLength || x.maxLength <= 0) {\r\n if (x.textType === \"text\")\r\n x.maxLength = 200;\r\n else\r\n x.maxLength = 100;\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this._dataList = undefined;\r\n }\r\n fitColumns(): void {\r\n this.cd.detectChanges();\r\n if (this.treelist)\r\n setTimeout(() =>\r\n this.ngZone.onStable.asObservable().pipe(take(1))\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(() => {\r\n this.treelist.autoFitColumns()\r\n })\r\n , 200);\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n 0\">\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {{ value }}\r\n \r\n \r\n\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { ErrorDialogModule } from 'projects/sepidz-web-framework/src/lib/services/error-dialog/error-dialog.module';\r\nimport { KGridComponent } from './kgrid.component';\r\nimport { GridModule, ExcelModule, PDFModule, FilterService } from '@progress/kendo-angular-grid';\r\nimport { SepidzMessageService } from './sepidz-message.service';\r\nimport { MessageService } from '@progress/kendo-angular-l10n';\r\nimport { EditableGridComponent } from './editable-grid/editable-grid.component';\r\nimport { EditabeltreelistComponent } from './editabletreelist/editabeltreelist.component';\r\nimport { TreeListModule } from '@progress/kendo-angular-treelist';\r\nimport { DropDownListModule } from '@progress/kendo-angular-dropdowns';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { PopupModule } from '@progress/kendo-angular-popup';\r\nimport { PopupAnchorDirective } from './editable-grid/popup.anchor-target.directive';\r\nimport { ThemeModule } from 'projects/sepidz-web-framework-shell/src/lib/@theme/theme.module';\r\nimport { ReportCopyComponent } from './report-selector/report-copy.component';\r\nimport { ReportSelectorComponent } from './report-selector/report-selector.component';\r\nconst components = [\r\n KGridComponent,\r\n EditableGridComponent,\r\n EditabeltreelistComponent,\r\n ReportCopyComponent,\r\n ReportSelectorComponent\r\n]\r\n@NgModule({\r\n declarations: [\r\n ...components,\r\n PopupAnchorDirective\r\n ],\r\n imports: [\r\n ReactiveFormsModule,\r\n SharedModule.forRoot(),\r\n ErrorDialogModule,\r\n GridModule,\r\n ExcelModule,\r\n PDFModule,\r\n TreeListModule,\r\n DropDownListModule,\r\n PopupModule,\r\n ThemeModule.forRoot(),\r\n ],\r\n exports: [\r\n ...components,\r\n GridModule,\r\n ExcelModule,\r\n PDFModule,\r\n PopupAnchorDirective,\r\n DropDownListModule\r\n ],\r\n providers: [\r\n { provide: MessageService, useClass: SepidzMessageService},\r\n ]\r\n})\r\nexport class SepidzGridModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: SepidzGridModule,\r\n };\r\n }\r\n}\r\n","import {\r\n ViewChild,\r\n OnInit,\r\n Input,\r\n Type,\r\n OnDestroy,\r\n Output,\r\n EventEmitter,\r\n Component,\r\n ViewEncapsulation,\r\n NgZone,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n HostListener,\r\n} from \"@angular/core\";\r\nimport {\r\n HttpCommonService,\r\n AppTranslationService,\r\n AccountService,\r\n Utilities,\r\n GridFilter,\r\n PagingDataResult,\r\n CorrectYeKeService,\r\n AggregatesInfo,\r\n} from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { form_control, Permission, EntityListAction, SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services/show-toastr.service\";\r\nimport { TabularService, ITab } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport {\r\n SelectAllCheckboxState,\r\n GridComponent,\r\n GridDataResult,\r\n DataStateChangeEvent,\r\n SelectionEvent,\r\n ColumnComponent,\r\n ScrollRequest,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { CompositeFilterDescriptor, State, process, FilterDescriptor, SortDescriptor, GroupDescriptor } from \"@progress/kendo-data-query\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { Subject, of } from \"rxjs\";\r\nimport { ExcelExportData } from \"@progress/kendo-angular-excel-export\";\r\nimport { EntityBase, GridColumnInfo, GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil, take, delay } from \"rxjs/operators\";\r\nimport { DomSanitizer, SafeStyle } from \"@angular/platform-browser\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { StimulSoftReportComponent, ReportInfo } from \"src/app/stimul-soft-report/stimul-soft-report.component\";\r\nimport { ReportKind, RowState, SystemKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"./report-selector/report-selector.component\";\r\nimport { Router } from \"@angular/router\";\r\nimport { ReportKindInfo } from \"./report-kind\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { CommonService } from \"../../../sepidz-web-framework/src/lib/services/common.service\";\r\nimport { PageSizeItem } from \"@progress/kendo-angular-grid\";\r\nimport { AppInjector } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { PersianService } from \"projects/sepidz-web-framework/src/lib/services/persian.service\";\r\nimport { ColumnVisibilityChangeEvent } from \"@progress/kendo-angular-treelist\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\n\r\n@Component({\r\n selector: \"kgrid\",\r\n templateUrl: \"./kgrid.component.html\",\r\n styleUrls: [\"./kgrid.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n providers: [HttpCommonService, AppTranslationService, ShowToastrService, Datatransfer, SimpleModalService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class KGridComponent implements OnInit, OnDestroy {\r\n @Input() isCopy: boolean = false;\r\n\r\n public pageSizes: PageSizeItem[] = [\r\n {\r\n text: \"15\",\r\n value: 15,\r\n },\r\n {\r\n text: \"5\",\r\n value: 5,\r\n },\r\n {\r\n text: \"10\",\r\n value: 10,\r\n },\r\n {\r\n text: \"20\",\r\n value: 20,\r\n },\r\n {\r\n text: \"همه\",\r\n value: \"all\",\r\n },\r\n ];\r\n ngUnsubscribe = new Subject();\r\n _GridColumnInfo: GridColumnInfo;\r\n reportList: SaveReportFile[];\r\n @Input() SelectById: string = \"Id\";\r\n @Input() mySelection: number[] = [];\r\n @Input() hasBracketForNegativeValues = true;\r\n public selectAllState: SelectAllCheckboxState = \"unchecked\";\r\n loadAllData: boolean = false;\r\n public FormControlTypes = FormControlTypes;\r\n rowsCache: any[] = [];\r\n exportKind: string = \"\";\r\n selectedRows: any[] = [];\r\n dialogIsloaded: boolean = false;\r\n isRefreshing: boolean = false;\r\n refreshingTime: number = 0;\r\n isPageSizes: boolean = true;\r\n buttonCount: number = 5;\r\n showExitDiv: boolean;\r\n isShowExit: boolean;\r\n isShowExitPrint: boolean;\r\n hasAccessToExcel = true;\r\n @Input() editFromForm: boolean = false;\r\n @Input() isHeaderSave: boolean = false;\r\n @Input() unSortableFilterable: string[] = [];\r\n @Input() unSortableFilterableAll: boolean = false;\r\n public type: \"numeric\" | \"input\" = \"numeric\";\r\n public gridView: GridDataResult;\r\n @Input() groups: GroupDescriptor[] = [];\r\n public state: State = {\r\n skip: 0,\r\n take: 15,\r\n filter: {\r\n logic: \"and\",\r\n filters: [],\r\n },\r\n group: [],\r\n };\r\n @Input() filterText: string;\r\n @Input() actionTregger: (\r\n action: EntityListAction,\r\n onRowSelected: any,\r\n onRowsSelected: any[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) => void;\r\n @Input() filtering: boolean = true;\r\n @Input() allowUnsort: boolean = true;\r\n @Input() hasColumnMenu: boolean = true;\r\n @Input() hasReport: boolean = true;\r\n @Input() hasRefresh: boolean = true;\r\n @Input() gridName: string;\r\n @Input() customExportExcelUrl: string = null;\r\n @Input() getParamsForExportExcelWithPostMethod: () => Promise = () =>\r\n new Promise((resolve) => {\r\n resolve(true);\r\n });\r\n\r\n @Input() set filters(value: GridFilter[]) {\r\n if (this._filters !== value) {\r\n this._filters = value;\r\n if (!this.isRefreshing) this.refreshData();\r\n }\r\n }\r\n get filters(): GridFilter[] {\r\n return this._filters;\r\n }\r\n _filters: GridFilter[];\r\n @Input() gridHeight: number = 100;\r\n @Input() VoucherKindIdName: string;\r\n @Input() VoucherKindId: number;\r\n @Input() pagingSize: number = 15;\r\n @Input() noToolBar: boolean = false;\r\n @Input() useCustomDelete: boolean = false;\r\n @Input() hideToolber: boolean = false;\r\n @Input() paging: boolean = true;\r\n @Input() filtrableFields: string = \"\";\r\n @Input() isAdd: boolean = true;\r\n @Input() isEdit: boolean = true;\r\n @Input() isVisible: boolean = false;\r\n @Input() isDelete: boolean = true;\r\n @Input() isMultiDelete: boolean = false;\r\n @Input() isMulti: boolean = false;\r\n @Input() isModal: boolean = true;\r\n @Input() groupable: boolean = true;\r\n @Input() isHideFooter: boolean = false;\r\n @Input() noAutoFitColumns: boolean = false;\r\n @Input() notLoadData: boolean = false;\r\n @Input() name: string;\r\n @Input() showLoadingMessage = true;\r\n @Input() label: string;\r\n @Input() apiName: string;\r\n @Input() pathPreFix: string;\r\n @Input() areaName: string;\r\n @Input() systemName: string;\r\n @Input() category: string;\r\n _columns: form_control[] = [];\r\n @Input() set columns(value: form_control[]) {\r\n this._columns = value;\r\n this.setColumnWidth();\r\n this.cd.markForCheck();\r\n }\r\n get columns(): form_control[] {\r\n return this._columns;\r\n }\r\n\r\n @Input() inputEditorform: Type;\r\n\r\n @Input() aggregatesColumnName?: string;\r\n @Input() actions: any[];\r\n _dataList: any[];\r\n @Input() get dataList(): any[] {\r\n return this._dataList;\r\n }\r\n set dataList(value: any[]) {\r\n this._dataList = value;\r\n if (!this._dataList) this._dataList = [];\r\n if (this._dataList[\"Data\"]) {\r\n this.gridView.data = this._dataList[\"Data\"];\r\n this.gridView.total = this._dataList[\"TotalPage\"];\r\n this.isRefreshing = false;\r\n setTimeout(() => this.cd.markForCheck(), 100);\r\n return;\r\n }\r\n if (!this.paging) {\r\n if (!this.gridView)\r\n this.gridView = process(this._dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached) as any[], {\r\n group: this.state.group,\r\n sort: this.state.sort,\r\n filter: this.state.filter,\r\n });\r\n\r\n this.gridView.data = this._dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached) as any[];\r\n this.gridView.total = (this._dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached) as any[]).length;\r\n this.isRefreshing = false;\r\n this.setGridData();\r\n if (this.grid && (!this.noAutoFitColumns || this.commonService.isMobileMode))\r\n setTimeout(\r\n () =>\r\n this.ngZone.onStable\r\n .asObservable()\r\n .pipe(take(1))\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(() => {\r\n this.grid?.autoFitColumns();\r\n }),\r\n 100\r\n );\r\n } else if (this._dataList !== undefined) {\r\n this.gridView = process(this._dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached) as any[], {\r\n group: this.state.group,\r\n sort: this.state.sort,\r\n filter: this.state.filter,\r\n });\r\n this.gridView.total = this.gridView.data.length;\r\n this.isRefreshing = false;\r\n setTimeout(() => this.cd.markForCheck(), 100);\r\n }\r\n setTimeout(() => this.refreshData(), 100);\r\n }\r\n\r\n modalIsLoaded: boolean = false;\r\n currentReport: string = \"print\";\r\n filteredList: any;\r\n aggregatesInfo: AggregatesInfo[];\r\n @HostListener(\"window:keydown\", [\"$event\"])\r\n cs(e: KeyboardEvent) {\r\n if (document.hidden) return;\r\n\r\n if (e.ctrlKey && e.shiftKey && !e.altKey && (e.key.toUpperCase() === \"P\" || e.key === \"ح\" || e.key === \"\\\\\")) {\r\n e.preventDefault();\r\n this.currentReport = \"preview\";\r\n this.changeReport(\"preview\");\r\n }\r\n if (e.ctrlKey && e.altKey && !e.shiftKey && (e.key.toUpperCase() === \"P\" || e.key === \"ح\")) {\r\n e.preventDefault();\r\n this.currentReport = \"editReport\";\r\n this.changeReport(\"editReport\");\r\n }\r\n if (e.ctrlKey && !e.altKey && !e.shiftKey && (e.key.toUpperCase() === \"P\" || e.key === \"ح\")) {\r\n e.preventDefault();\r\n this.currentReport = \"print\";\r\n this.changeReport(\"print\");\r\n }\r\n }\r\n _gridViewData: PagingDataResult;\r\n @Input() set gridViewData(value: PagingDataResult) {\r\n this._gridViewData = value;\r\n if (this._gridViewData && this._gridViewData.Data !== undefined && this._gridViewData.Data !== null) {\r\n this.gridView = process(this._gridViewData.Data as any[], { group: this.state.group, sort: this.state.sort, filter: this.state.filter });\r\n this.gridView.total = this._gridViewData.TotalPage;\r\n this.isRefreshing = false;\r\n this.setGridData();\r\n this.fitColumns();\r\n setTimeout(() => {\r\n this.cd.markForCheck();\r\n if (this._gridViewData.Data && this.grid.data[\"total\"] !== this._gridViewData.TotalPage)\r\n this.grid.data[\"total\"] = this._gridViewData.TotalPage;\r\n if ((this._gridViewData.Data && !this.grid.data[\"data\"]) || this.grid.data[\"data\"].length <= 0)\r\n this.grid.data[\"data\"] = this._gridViewData.Data;\r\n if (\r\n this._gridViewData &&\r\n this._gridViewData.Data &&\r\n this._gridViewData.TotalPage > 0 &&\r\n this.grid &&\r\n (!this.grid.data[\"total\"] || this.grid.data[\"total\"] <= 0 || this.grid.data[\"total\"] < this.gridView.total)\r\n ) {\r\n this.gridViewData = this._gridViewData;\r\n }\r\n }, 50);\r\n }\r\n this.cd.markForCheck();\r\n }\r\n _defaultFilterKey: NameValue[];\r\n @Input() disableOnDoubleClick: boolean = false;\r\n @Input() IgnoreDeletePermission: boolean = false;\r\n @Input() deleteMessage: string = \"\";\r\n @Input() onlyDefaultSortKey: boolean = false;\r\n @Input() defaultSortKey: string;\r\n @Input() defaultSortKeyKind: \"asc\" | \"desc\" = \"desc\";\r\n @Input() set defaultFilterKey(value: NameValue[]) {\r\n this._defaultFilterKey = value;\r\n this.setDefaultFilterKey();\r\n }\r\n get defaultFilterKey() {\r\n return this._defaultFilterKey;\r\n }\r\n @Input() editorModal: any;\r\n @Input() reportName: string;\r\n @Input() icon?: string;\r\n @Output() onSave = new EventEmitter();\r\n @Output() onRefreshData = new EventEmitter();\r\n @Output() onDataStateChanged = new EventEmitter();\r\n @Output() onCreate = new EventEmitter();\r\n @Output() onEdit = new EventEmitter();\r\n @Output() onDelete = new EventEmitter();\r\n @Output() onRowSelected = new EventEmitter();\r\n @Output() onRowsSelected = new EventEmitter();\r\n @Output() onDoubleClick = new EventEmitter();\r\n @Output() onGetDataComplete = new EventEmitter();\r\n @Output() onDeleteCompleted = new EventEmitter();\r\n\r\n firsTtotalCountDeferent: boolean = true;\r\n editingName: { name: string };\r\n SelectRow: any;\r\n filter: CompositeFilterDescriptor;\r\n\r\n public allData(): ExcelExportData {\r\n let data: any[];\r\n if (this.selectedRows.length > 0) data = this.selectedRows;\r\n else data = process(this.gridView.data, { group: this.state.group, sort: this.state.sort }).data;\r\n const result: ExcelExportData = { data, group: this.state.group };\r\n return result;\r\n }\r\n reportKinds = ReportKindInfo.reportKinds;\r\n @ViewChild(GridComponent)\r\n public grid: GridComponent;\r\n isFocusted: boolean;\r\n isFirstLoad: boolean;\r\n // static _dialogService: SimpleModalService;\r\n private dialogService: SimpleModalService;\r\n validActions: any[];\r\n constructor(\r\n public missetup: MisSetupService,\r\n public commonService: CommonService,\r\n private router: Router,\r\n private sts: ShowToastrService,\r\n private _httpCommonService: HttpCommonService,\r\n private accountService: AccountService,\r\n private ngZone: NgZone,\r\n private cd: ChangeDetectorRef,\r\n private sanitizer: DomSanitizer,\r\n private tabsservice: TabularService,\r\n private persianService: PersianService,\r\n private splashFormService: SplashFormService\r\n ) {\r\n this.allData = this.allData.bind(this);\r\n this.dialogService = AppInjector.get(SimpleModalService);\r\n }\r\n replaceDigits() {\r\n var map = [\"٠\", \"١\", \"٢\", \"٣\", \"٤\", \"٥\", \"٦\", \"٧\", \"٨\", \"٩\"];\r\n\r\n document.getElementById(\"kGrid\").innerHTML = document.getElementById(\"kGrid\").innerHTML.replace(/\\d(?=[^<>]*(<|$))/g, function ($0) {\r\n return map[$0];\r\n });\r\n }\r\n ngOnInit() {\r\n this.state.take = this.pagingSize;\r\n this.state.group = this.groups;\r\n if (this.isAdd && this.apiName)\r\n this.isAdd = this.accountService.userHasPermission(`${this.areaName}:${this.apiName.split(\"/\")[0]}`, Permission.createPermission);\r\n if (this.isEdit && this.apiName)\r\n this.isEdit = this.accountService.userHasPermission(`${this.areaName}:${this.apiName.split(\"/\")[0]}`, Permission.editPermission);\r\n if (this.isVisible && this.apiName)\r\n this.isVisible = this.accountService.userHasPermission(`${this.areaName}:${this.apiName.split(\"/\")[0]}`, Permission.editPermission);\r\n if (this.isDelete && this.apiName)\r\n this.isDelete = this.accountService.userHasPermission(`${this.areaName}:${this.apiName.split(\"/\")[0]}`, Permission.deletePermission);\r\n this.setDefaultSortKey();\r\n\r\n this.loadReports();\r\n this.setDefaultFilterKey();\r\n if (!this.columns || this.columns.length <= 0) this.setColumns();\r\n else {\r\n this.setColumnWidth();\r\n this.refreshData();\r\n }\r\n this.tabsservice.tabItemonRefreshData.next(\"\");\r\n this.tabsservice.tabItemonRefreshData.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && x === this.apiName) {\r\n this.loadReports();\r\n this.refresh_Data();\r\n }\r\n });\r\n this.setvalidactions();\r\n this.checkAccessToExcel();\r\n }\r\n checkAccessToExcel() {\r\n const controllerName = this.apiName?.split(\"/\") ? this.apiName?.split(\"/\")[0] : null;\r\n this.hasAccessToExcel = !!this.accountService.userHasPermission(`${this.areaName}:${controllerName}`, `ExcelAccess`);\r\n }\r\n\r\n setDefaultFilterKey() {\r\n if (this.defaultFilterKey) {\r\n if (!this.state.filter.filters) this.state.filter.filters = [];\r\n this.defaultFilterKey.forEach((x) => {\r\n if (!this.state.filter.filters.some((f) => f[\"field\"] === this.getmodelName(x.Name))) {\r\n this.state.filter.filters.push({\r\n logic: \"and\",\r\n field: this.getmodelName(x.Name),\r\n operator: !x.Operator ? \"eq\" : x.Operator,\r\n value: x.Value,\r\n });\r\n } else this.state.filter.filters.find((f) => f[\"field\"] === this.getmodelName(x.Name))[\"value\"] = x.Value;\r\n });\r\n }\r\n }\r\n setDefaultSortKey() {\r\n if (this.defaultSortKey) {\r\n var keys = this.defaultSortKey?.split(\",\");\r\n if (!this.state.sort) this.state.sort = [];\r\n keys.forEach((x) => {\r\n if (!this.state.sort.some((f) => f[\"field\"] === x)) {\r\n this.state.sort.push({\r\n field: `${x}`,\r\n dir: this.defaultSortKeyKind,\r\n });\r\n }\r\n });\r\n }\r\n }\r\n removeDefaultSortKey() {\r\n if (this.defaultSortKey != undefined && this.defaultSortKey.length > 0) {\r\n var keys = this.defaultSortKey?.split(\",\");\r\n if (this.state.sort.length <= keys.length) return;\r\n var sort: SortDescriptor[] = [];\r\n this.state.sort.forEach((x) => {\r\n if (!keys.some((s) => s === x.field))\r\n sort.push({\r\n field: x.field,\r\n dir: x.dir,\r\n });\r\n });\r\n this.state.sort = sort;\r\n if (!this.state.sort || this.state.sort.length === 0) this.setDefaultSortKey();\r\n }\r\n }\r\n async loadReports() {\r\n if (!this.apiName || !this.hasReport) return;\r\n if (!this.pathPreFix) this.pathPreFix = \"GNR\";\r\n const data = await this._httpCommonService\r\n .getList(this.apiName?.split(\"/\")[0] + \"/GetReportInfo/\" + this.pathPreFix + \"/\" + this.apiName.replace(\"/\", \"_\"))\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise();\r\n if (data) {\r\n this.reportList = data as [];\r\n }\r\n }\r\n async setColumns() {\r\n if (!this.apiName) return;\r\n const data = await this._httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.columns = (data as form_control[]).sort((a, b) => a.order - b.order);\r\n this.setColumnWidth();\r\n this.refreshData();\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n\r\n setColumnWidth() {\r\n if (!this.columns) return;\r\n this.columns.forEach((x) => {\r\n if (\r\n x.textType === \"number\" &&\r\n x.withComma &&\r\n !x.name.toUpperCase().includes(\"NUMBER\") &&\r\n !x.name.toUpperCase().includes(\"CODE\") &&\r\n !x.name.toUpperCase().includes(\".ID\")\r\n ) {\r\n if (this.hasBracketForNegativeValues) {\r\n x.format = \"#,#.#####;(#,#.#####)\";\r\n }\r\n x.format = \"#,#.#####\";\r\n } else x.format = \"\";\r\n if (!x.columnWidth || x.columnWidth <= 100) {\r\n if (x.textType === \"text\") x.columnWidth = 200;\r\n else x.columnWidth = 100;\r\n }\r\n });\r\n }\r\n setGridData() {\r\n if (this.grid && (this.grid.data != this.gridView.data || this.grid.data[\"total\"].length !== this.gridView.total)) {\r\n this.grid.data = this.gridView.data;\r\n this.grid.data[\"total\"] = this.gridView.total;\r\n } else if (!this.grid)\r\n setTimeout(() => {\r\n this.setGridData();\r\n }, 100);\r\n if (this.apiName === \"Company\") {\r\n this.isAdd = this.gridView.data.length <= 0;\r\n }\r\n }\r\n refresh_Data() {\r\n this.onRefreshData.emit();\r\n this.refreshData();\r\n }\r\n async refreshData() {\r\n this.refreshingTime = 0;\r\n this.modalIsLoaded = false;\r\n this.setDefaultSortKey();\r\n this.SelectRow = null;\r\n this.mySelection = [];\r\n this.selectedRows = [];\r\n if (this._gridViewData !== undefined) {\r\n if (!this.isRefreshing) this.onDataStateChanged.emit(this.getGridFilter());\r\n } else if ((this.dataList && this.dataList?.length > 0) || this.noToolBar) {\r\n const data = (this.dataList?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached) as any[]) || [];\r\n this.gridView = process(data, { group: this.state.group, sort: this.state.sort, filter: this.state.filter });\r\n this.gridView.total = data.length;\r\n if (this.gridView.data.length <= 0) this.gridView.data = data;\r\n this.setGridData();\r\n this.isRefreshing = false;\r\n this.fitColumns();\r\n setTimeout(() => this.cd.markForCheck(), 100);\r\n } else {\r\n if (this.paging && this.apiName !== undefined && this.notLoadData !== true) {\r\n if (\r\n this.defaultSortKey ||\r\n this._filters ||\r\n (this.state.filter.filters && this.state.filter.filters.length > 0) ||\r\n (this.apiName && this.apiName?.split(\"/\")?.length > 1)\r\n )\r\n this.filterChange();\r\n else this.loadItems();\r\n } else {\r\n if (this.systemName && this.category) {\r\n if (this.showLoadingMessage) this.sts.showToast(\"primary\", \"\", \"در حال بارگذاری اطلاعات...\");\r\n\r\n this.isRefreshing = true;\r\n await this._httpCommonService\r\n .getLookupByCategory(this.apiName, this.systemName, this.category)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data !== undefined) {\r\n this.gridView = process(data as any[], { group: this.state.group, sort: this.state.sort, filter: this.state.filter });\r\n this.gridView.total = (data as any[]).length;\r\n if (this.gridView.data.length <= 0) this.gridView.data = data as any[];\r\n this.onGetDataComplete.emit(data);\r\n }\r\n this.setGridData();\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفقیت بارگذاری شد.\");\r\n this.isRefreshing = false;\r\n this.fitColumns();\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n this.isRefreshing = false;\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف اطلاعات\");\r\n }\r\n );\r\n } else {\r\n if (this.showLoadingMessage) this.sts.showToast(\"primary\", \"\", \"در حال بارگذاری اطلاعات...\");\r\n if (!this.apiName) return;\r\n this.isRefreshing = true;\r\n await this._httpCommonService\r\n .getList(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data !== undefined) {\r\n this.gridView = process(data as any[], { group: this.state.group, sort: this.state.sort, filter: this.state.filter });\r\n this.gridView.total = (data as any[]).length;\r\n if (this.gridView.data.length <= 0) this.gridView.data = data as any[];\r\n }\r\n this.setGridData();\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفقیت بارگذاری شد.\");\r\n this.isRefreshing = false;\r\n this.fitColumns();\r\n },\r\n (error) => {\r\n this.isRefreshing = false;\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف اطلاعات\");\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n this.setvalidactions();\r\n }\r\n setSelectedRows(e: any, items: any[]) {\r\n if (!this.selectedRows) this.selectedRows = [];\r\n items.forEach((x) => {\r\n if (x.items) this.setSelectedRows(e, x.items);\r\n else if (!this.selectedRows.some((s) => s[\"Id\"] === x[\"Id\"])) this.selectedRows.push(x);\r\n });\r\n }\r\n setvalidactions() {\r\n if (!this.actions) return this.actions;\r\n var list = this.actions.filter(\r\n (x) =>\r\n x.permission === true ||\r\n this.accountService.userHasPermission(`${x.areaName}:${x.apiName}`, x.permission ? x.permission : Permission.managePermission)\r\n );\r\n this.validActions = list;\r\n this.cd.markForCheck();\r\n }\r\n public onSelectedKeysChange(e) {\r\n const len = e.length;\r\n if (len === 0) {\r\n this.selectAllState = \"unchecked\";\r\n } else if (len > 0 && len < this.gridView.total) {\r\n this.selectAllState = \"indeterminate\";\r\n } else {\r\n this.selectAllState = \"checked\";\r\n }\r\n if (this.isMulti) {\r\n if (e && e.length > 0) {\r\n if (this.gridView.data[0].items) this.setSelectedRows(e, this.gridView.data[0].items);\r\n else this.selectedRows = this.gridView.data.filter((x) => e.some((s) => s === x.Id));\r\n } else this.selectedRows = [];\r\n }\r\n if (this.isMulti) {\r\n if (this.mySelection && this.mySelection.length > 0) {\r\n if (this.selectedRows && this.selectedRows.length > 0)\r\n this.selectedRows = this.selectedRows.filter((x) => this.mySelection.some((s) => s === x.Id));\r\n else this.selectedRows = [];\r\n }\r\n this.onRowsSelected.emit(this.selectedRows);\r\n }\r\n }\r\n public onSelectAllChange(checkedState: SelectAllCheckboxState) {\r\n if (checkedState === \"unchecked\" && this.mySelection.length <= 0) {\r\n this.mySelection = this.gridView.data.map((item) => item.Id);\r\n this.onSelectedKeysChange(this.mySelection);\r\n }\r\n if (checkedState === \"checked\") {\r\n this.mySelection = this.gridView.data.map((item) => item.Id);\r\n this.selectAllState = \"checked\";\r\n } else {\r\n this.mySelection = [];\r\n this.selectAllState = \"unchecked\";\r\n }\r\n }\r\n setColumnInfo(columnInfos: GridColumnInfoDetail[]) {\r\n if (!this.grid)\r\n setTimeout(() => {\r\n this.setColumnInfo(columnInfos);\r\n }, 50);\r\n\r\n if (this.grid?.columns) {\r\n if (this.grid.columns.length <= 1) {\r\n setTimeout(() => this.setColumnInfo(columnInfos), 200);\r\n }\r\n }\r\n if (this.grid?.columns) {\r\n this.grid.columns.forEach((x: ColumnComponent) => {\r\n const column = columnInfos.find((c) => c.name === (x.field ?? x.title));\r\n if (column) {\r\n x.leafIndex = column.leaftindex;\r\n x.orderIndex = column.orderindex;\r\n x.minResizableWidth = column.minResizableWidth;\r\n x.width = column.width;\r\n x.hidden = column.hidden;\r\n }\r\n });\r\n }\r\n this.isFirstLoad = true;\r\n this.cd.detectChanges();\r\n // هماهنگی با مهندس صفایی\r\n //this.grid?.focus();\r\n setTimeout(() => {\r\n const firstCol: ScrollRequest = {};\r\n firstCol.column = 0;\r\n if (this.grid && firstCol) this.grid?.scrollTo(firstCol);\r\n }, 110);\r\n }\r\n setDefaultColumnInfo() {\r\n this.grid?.columns?.forEach((x: ColumnComponent) => {\r\n if (x.title === \"عملیات\") {\r\n x.width = 70;\r\n x.minResizableWidth = 60;\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n if (!x.title && !x.field) {\r\n x.width = x.width;\r\n x.minResizableWidth = x.minResizableWidth;\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n const column = this.columns.find((c) => c.name === (x.field ?? x.title));\r\n if (column) {\r\n x.width = column.columnWidth;\r\n x.minResizableWidth = x.minResizableWidth;\r\n x.hidden = !column.listVisible;\r\n\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n });\r\n this.cd.markForCheck();\r\n // هماهنگی با مهندس صفایی\r\n //this.grid?.focus();\r\n this.refreshData();\r\n }\r\n async fitColumns() {\r\n if (this.VoucherKindId < 0) this.VoucherKindId = this.VoucherKindId * -1;\r\n if (!this.isFirstLoad) {\r\n if (this._GridColumnInfo) {\r\n let columnInfos: GridColumnInfoDetail[] = JSON.parse(this._GridColumnInfo.ColumnInfo);\r\n this.setColumnInfo(columnInfos);\r\n } else if (this.name) {\r\n const x = await this._httpCommonService\r\n .get(\r\n \"MisSetUp/GetGridColumnInfo/?key=\" +\r\n (this.VoucherKindId ? `${this.name}_${this.VoucherKindId}` : this.name) +\r\n `&CreatedUserId=${this.accountService.authService.currentUser.Id}`\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise();\r\n if (x) {\r\n this._GridColumnInfo = x as GridColumnInfo;\r\n this.setColumnInfo(JSON.parse(x[\"ColumnInfo\"]));\r\n if (this._GridColumnInfo.Group) {\r\n this.state.group = JSON.parse(x[\"Group\"]);\r\n setTimeout(() => this.refreshData(), 100);\r\n }\r\n } else if (this.noAutoFitColumns) this.setDefaultColumnInfo();\r\n\r\n this.isFirstLoad = true;\r\n }\r\n }\r\n setTimeout(\r\n () => {\r\n this.cd.detectChanges();\r\n this.cd.markForCheck();\r\n },\r\n this.isFirstLoad ? 500 : 200\r\n );\r\n\r\n this.cd.markForCheck();\r\n }\r\n\r\n async loadItems() {\r\n if (this.isRefreshing || !this.apiName) return;\r\n this.isRefreshing = true;\r\n await this._httpCommonService\r\n .GetPagining>(\r\n this.apiName + \"/GetPagining\",\r\n this.filtrableFields,\r\n \"\",\r\n this.loadAllData ? 0 : this.state.skip,\r\n this.loadAllData ? 0 : this.state.take\r\n // this.state.SortColumn\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x) => {\r\n this.gridView = process(x.Data as any[], { group: this.state.group, sort: this.state.sort, filter: this.state.filter });\r\n this.gridView.total = x.TotalPage;\r\n if (this.gridView.data.length <= 0) this.gridView.data = x.Data;\r\n this.aggregatesInfo = x.AggregatesInfo;\r\n this.isPageSizes = x.TotalPage > this.state.skip;\r\n this.isRefreshing = false;\r\n if (this.loadAllData && this.exportKind !== undefined && this.exportKind.toLocaleUpperCase() === \"PDF\") {\r\n this.grid.saveAsPDF();\r\n }\r\n if (this.loadAllData && this.exportKind !== undefined && this.exportKind.toLocaleUpperCase() === \"EXCEL\") {\r\n this.saveAsExcel();\r\n }\r\n this.setGridData();\r\n this.loadAllData = false;\r\n this.fitColumns();\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n this.isRefreshing = false;\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در بارگذاری اطلاعات\");\r\n }\r\n );\r\n }\r\n saveAsExcel() {\r\n this.grid.saveAsExcel();\r\n }\r\n\r\n public dataStateChange(state: DataStateChangeEvent): void {\r\n this.state = state;\r\n if (this.onlyDefaultSortKey === true) this.state.sort = undefined;\r\n this.setDefaultFilterKey();\r\n this.setDefaultSortKey();\r\n ///به خاطر رفع اشکال سورتینگ اشخاص\r\n if (this.state.sort.length > 1) this.removeDefaultSortKey();\r\n if (this.paging && (!this.dataList || this.dataList.length <= 0) && !this.noToolBar && this._gridViewData === undefined) {\r\n this.filterChange();\r\n } else {\r\n var filters: GridFilter[] = this.getGridFilter();\r\n if (!filters) filters = [];\r\n if (filters.length <= 0) {\r\n filters.push({ Type: \"S\", Filed: \"\", Operator: \"asc\", Value: 0, Skip: this.state.skip, Take: this.state.take });\r\n }\r\n if (this._gridViewData !== undefined || this.noToolBar === true) this.onDataStateChanged.emit(filters);\r\n else this.refreshData();\r\n }\r\n }\r\n getmodelName(name: string) {\r\n var modelName = this.columns.find((x) => x.name === name);\r\n if (modelName && modelName.modelName) return modelName.modelName;\r\n return name;\r\n }\r\n getGridFilter(): GridFilter[] {\r\n //this._filters = [];\r\n var tempFilters: GridFilter[] = this.filters ? Object.assign([], this.filters) : [];\r\n if (tempFilters.length > 0) {\r\n tempFilters.forEach((x) => {\r\n x.Skip = !this.loadAllData ? this.state.skip : 0;\r\n x.Take = !this.loadAllData ? this.state.take : 10000;\r\n });\r\n }\r\n\r\n if (this.state.filter) {\r\n this.state.filter.filters.forEach((x: FilterDescriptor | any) => {\r\n if (x.filters) {\r\n x.filters.forEach((x2: FilterDescriptor | any) => {\r\n x2.value = typeof x.value === \"string\" ? CorrectYeKeService.getCorrectYeKe(x2.value) : x2.value;\r\n let temp: GridFilter = {\r\n Type: \"F\",\r\n Filed: this.getmodelName(x2.field),\r\n Operator: x2.operator,\r\n Value: x2.value,\r\n Skip: !this.loadAllData ? this.state.skip : 0,\r\n Take: !this.loadAllData ? this.state.take : 10000,\r\n Logic: x.logic,\r\n };\r\n if (!tempFilters.some((f) => f.Filed === temp.Filed && f.Type === temp.Type)) tempFilters.push(temp);\r\n });\r\n } else {\r\n x.value = typeof x.value === \"string\" ? CorrectYeKeService.getCorrectYeKe(x.value) : x.value;\r\n let temp: GridFilter = {\r\n Type: \"F\",\r\n Filed: this.getmodelName(x.field),\r\n Operator: x.operator,\r\n Value: x.value,\r\n Skip: !this.loadAllData ? this.state.skip : 0,\r\n Take: !this.loadAllData ? this.state.take : 10000,\r\n Logic: this.state.filter.logic,\r\n };\r\n if (!tempFilters.some((f) => f.Filed === temp.Filed && f.Type === temp.Type)) tempFilters.push(temp);\r\n }\r\n });\r\n }\r\n if (this.state.group) {\r\n this.state.group.forEach((x: GroupDescriptor) => {\r\n let temp2: GridFilter = {\r\n Type: \"S\",\r\n Filed: this.getmodelName(x.field),\r\n Operator: \"asc\",\r\n Value: 0,\r\n Skip: !this.loadAllData ? this.state.skip : 0,\r\n Take: !this.loadAllData ? this.state.take : 10000,\r\n };\r\n if (!tempFilters.some((f) => f.Filed === temp2.Filed && f.Type === temp2.Type)) tempFilters.push(temp2);\r\n });\r\n }\r\n if (this.state.sort) {\r\n this.state.sort\r\n .filter((x) => x.dir !== undefined)\r\n .forEach((x: SortDescriptor) => {\r\n let temp2: GridFilter = {\r\n Type: \"S\",\r\n Filed: this.getmodelName(x.field),\r\n Operator: x.dir,\r\n Value: 0,\r\n Skip: !this.loadAllData ? this.state.skip : 0,\r\n Take: !this.loadAllData ? this.state.take : this.gridView.total,\r\n };\r\n if (!tempFilters.some((f) => f.Filed === temp2.Filed && f.Type === temp2.Type)) tempFilters.push(temp2);\r\n });\r\n }\r\n\r\n return tempFilters;\r\n }\r\n async filterChange() {\r\n if ((this.isRefreshing || !this.apiName) && !this.aggregatesColumnName) {\r\n if (this.aggregatesColumnName) setTimeout((x) => this.filterChange(), 100);\r\n return;\r\n }\r\n\r\n this.setAggregates();\r\n var filters: GridFilter[] = this.getGridFilter();\r\n filters.forEach((x) => {\r\n if (this.persianService.isPersianNumber(x.Value)) x.Value = this.persianService.toEnglishNumber(x.Value);\r\n });\r\n if ((filters !== null && filters.length > 0) || this._filters || this.apiName.split(\"/\").length > 1) {\r\n this.isRefreshing = true;\r\n let gridFilters: string = this.apiName?.split(\"/\").length <= 1 ? \"/GetFilterGrid\" : \"\";\r\n await this._httpCommonService\r\n .GetFilterGrid(this.apiName + gridFilters, filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x: PagingDataResult) => {\r\n const data = ((x?.Data ?? x) as any[]) || [];\r\n this.isPageSizes = !this.loadAllData;\r\n this.isRefreshing = false;\r\n this.gridView = process(data, { group: this.state.group, sort: this.state.sort, filter: this.state.filter });\r\n this.gridView.total = x?.TotalPage ?? data.length;\r\n if (this.gridView.data.length <= 0) this.gridView.data = data;\r\n this.aggregatesInfo = x?.AggregatesInfo;\r\n this.isPageSizes = x?.TotalPage > this.state.take;\r\n this.setGridData();\r\n if (this.loadAllData && this.exportKind !== undefined && this.exportKind.toLocaleUpperCase() === \"PDF\") {\r\n this.grid.saveAsPDF();\r\n }\r\n if (this.loadAllData && this.exportKind !== undefined && this.exportKind.toLocaleUpperCase() === \"EXCEL\") {\r\n this.saveAsExcel();\r\n }\r\n this.isPageSizes = !this.loadAllData;\r\n this.loadAllData = false;\r\n if (this.gridView.total === data.length) {\r\n this.state.skip = 0;\r\n this.onGetDataComplete.emit(this.gridView.data);\r\n ///بابت ایجاد مشکل بعد از فیلتر کردن و نمایش تعداد رکورد به تعداد فیلتر شده\r\n //this.state.take = this.gridView.total;\r\n }\r\n this.fitColumns();\r\n\r\n of(null)\r\n .pipe(delay(50), take(1))\r\n .subscribe(() => {\r\n this.cd.markForCheck();\r\n if (x?.Data && this.grid && this.grid.data[\"total\"] !== x?.TotalPage) this.grid.data[\"total\"] = x?.TotalPage;\r\n if ((x?.Data && this.grid && !this.grid.data[\"data\"]) || this.grid.data[\"data\"]?.length <= 0) this.grid.data[\"data\"] = data;\r\n if (\r\n x &&\r\n data &&\r\n x?.TotalPage > 0 &&\r\n this.grid &&\r\n (!this.grid.data[\"total\"] || this.grid.data[\"total\"] <= 0 || this.grid.data[\"total\"] < this.gridView.total)\r\n ) {\r\n if (this.refreshingTime <= 2) this.refreshingTime++;\r\n this.filterChange();\r\n }\r\n });\r\n },\r\n (error) => {\r\n console.log(\"GridError\");\r\n console.log(error);\r\n this.isRefreshing = false;\r\n if (\r\n Utilities.getHttpResponseMessage(error).includes(\r\n \"A second operation was started on this context instance before a previous operation completed.\"\r\n ) &&\r\n this.refreshingTime <= 2\r\n ) {\r\n this.refreshingTime++;\r\n this.filterChange();\r\n return;\r\n }\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در بارگذاری اطلاعات\");\r\n }\r\n );\r\n } else await this.loadItems();\r\n }\r\n setAggregates() {\r\n if (!this.aggregatesColumnName) return;\r\n if (!this._filters) this._filters = [];\r\n var keys = this.aggregatesColumnName?.split(\",\");\r\n keys.forEach((x) => {\r\n let pluskey = x?.split(\"_\");\r\n if (pluskey.length <= 1) {\r\n if (!this._filters.some((a) => a.Filed === x))\r\n this._filters.push({ Type: \"A\", Filed: x, Value: \"sum\", Operator: \"eq\", Skip: this.state.skip, Take: this.state.take });\r\n } else {\r\n pluskey.forEach((p) => {\r\n if (!this._filters.some((a) => a.Filed === p))\r\n this._filters.push({ Type: \"A\", Filed: p, Value: \"sum\", Operator: \"eq\", Skip: this.state.skip, Take: this.state.take });\r\n });\r\n }\r\n });\r\n }\r\n public addHandler({ sender }) {\r\n var datatrasfer: Datatransfer = {};\r\n datatrasfer.apiName = this.apiName;\r\n datatrasfer.label = this.label;\r\n datatrasfer.areaName = this.areaName;\r\n if (this.noToolBar || this.editFromForm) {\r\n this.onCreate.emit(null);\r\n return;\r\n }\r\n if (this.isModal) {\r\n this.modalIsLoaded = true;\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: null,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n setTimeout(() => this.refreshData(), 200);\r\n });\r\n } else {\r\n const menu = {\r\n title: `${this.label}(ایجاد)`,\r\n isCloseable: true,\r\n icon: this.icon,\r\n active: true,\r\n responsive: true,\r\n componentType: this.inputEditorform,\r\n //modulePath: this.isModal ? this.getCurrentTabInfo()?.modulePath : null,\r\n data: [\r\n { provide: EntityBase, useValue: null },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: null } },\r\n ],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n }\r\n\r\n onHeaderSave() {\r\n if (document.hidden) return;\r\n if (this.dialogIsloaded) return;\r\n\r\n this.onSave.emit();\r\n }\r\n reloadCurrentRoute() {\r\n let currentUrl = this.router.url;\r\n this.router.navigateByUrl(\"#/\", { skipLocationChange: true }).then(() => {\r\n this.router.navigate([currentUrl]);\r\n });\r\n }\r\n public editHandler({ sender, rowIndex, dataItem }) {\r\n var datatrasfer: Datatransfer = {};\r\n datatrasfer.apiName = this.apiName;\r\n datatrasfer.label = this.label;\r\n datatrasfer.areaName = this.areaName;\r\n datatrasfer.currentrow = dataItem;\r\n if (this.noToolBar || this.editFromForm) {\r\n this.onEdit.emit(dataItem);\r\n return;\r\n }\r\n if (this.isModal) {\r\n this.modalIsLoaded = true;\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: dataItem,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n let isLoading: boolean = false;\r\n if (this.apiName === \"Role\" && this.areaName === \"General\") {\r\n const x = this.accountService.authService.userRoles(this.accountService.authService.currentUser.UserName);\r\n if (x && x.length > 0 && !isLoading && x.some((f) => f.Id === dataItem[\"Id\"])) {\r\n isLoading = true;\r\n this.accountService.authService.menuIsRefreshed.next(true);\r\n }\r\n }\r\n setTimeout(() => this.refreshData(), 200);\r\n });\r\n } else {\r\n const menu = {\r\n title: `${this.label}-(ویرایش)`,\r\n isCloseable: true,\r\n icon: this.icon,\r\n active: true,\r\n responsive: true,\r\n componentType: this.inputEditorform,\r\n //modulePath: this.isModal ? this.getCurrentTabInfo().modulePath : null,\r\n data: [\r\n { provide: EntityBase, useValue: dataItem },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: dataItem[this.VoucherKindIdName] } },\r\n ],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n }\r\n deleteList: number[] = [];\r\n public removeHandler({ dataItem }): void {\r\n try {\r\n if (this.IgnoreDeletePermission) {\r\n if (this.deleteMessage != \"\") {\r\n this.sts.showDialog(this.deleteMessage, \"توجه\");\r\n return;\r\n } else {\r\n this.sts.showDialog(\"حذف ممکن نیست\", \"توجه\");\r\n return;\r\n }\r\n }\r\n if (this.noToolBar || this.useCustomDelete) {\r\n this.onDelete.emit(dataItem);\r\n return;\r\n }\r\n this.deleteList = [];\r\n Object.assign(this.deleteList, this.selectedRows);\r\n let message =\r\n this.isMultiDelete && this.deleteList.length > 1\r\n ? `شما با این کار کلیه اطلاعات انتخاب شده را حذف خواهید کرد و به هیچ عنوان امکان بازیابی اطلاعات را ندارید. آیا از حذف همه اطلاعات انتخاب شده اطمینان دارید؟`\r\n : `آیا از حذف اطلاعات اطمینان دارید؟`;\r\n this.sts.showDialog(message, \"حذف اطلاعات\", DialogType.confirm, () => this.deleteFormHelper(dataItem));\r\n } catch (e) {\r\n console.log(e);\r\n return;\r\n }\r\n }\r\n async deleteFormHelper(row: any) {\r\n this.sts.showToast(\"primary\", \"\", \"در حال حذف...\");\r\n if (this.isMultiDelete && this.deleteList && this.deleteList.length > 1) {\r\n let list = this.gridView.data.filter((x) => this.deleteList.some((s) => s[\"Id\"] === x.Id));\r\n if (this.apiName === \"AccVoucherHeader\" && list.some((x) => (x && x.AccVoucherKindCode > 1) || x.SystemKindCode != SystemKind.ACC)) {\r\n this.sts.showToast(\"primary\", \"\", \"شما مجاز به حذف اسناد نمی باشید.\");\r\n return;\r\n }\r\n if (this.apiName === \"InvVoucherHeader\" && list.some((x) => x && x.IsTakingOfInventory === true)) {\r\n this.sts.showToast(\"primary\", \"\", \"شما مجاز به حذف اسناد نمی باشید.\");\r\n return;\r\n }\r\n await this._httpCommonService\r\n .bulkDelete(this.apiName.split(\"/\")[0], list)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت حذف شد.\");\r\n this.rowsCache = this.rowsCache.filter((item) => item !== row);\r\n setTimeout(() => this.refreshData(), 200);\r\n },\r\n (error) => {\r\n this.isRefreshing = false;\r\n setTimeout(() => this.refreshData(), 200);\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف اطلاعات\");\r\n }\r\n );\r\n } else {\r\n let list = this.gridView.data.filter((x) => this.deleteList.some((s) => s === x.Id));\r\n if (this.apiName === \"AccVoucherHeader\" && list.some((x) => (x && x.AccVoucherKindCode > 1) || x.SystemKindCode != SystemKind.ACC)) {\r\n this.sts.showToast(\"primary\", \"\", \"شما مجاز به حذف اسناد نمی باشید.\");\r\n return;\r\n }\r\n if (this.apiName === \"InvVoucherHeader\" && list.some((x) => x && x.IsTakingOfInventory === true)) {\r\n this.sts.showToast(\"primary\", \"\", \"شما مجاز به حذف اسناد نمی باشید.\");\r\n return;\r\n }\r\n await this._httpCommonService\r\n .delete(this.apiName?.split(\"/\")[0], row.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت حذف شد.\");\r\n this.rowsCache = this.rowsCache.filter((item) => item !== row);\r\n this.refreshData();\r\n this.onDeleteCompleted.emit(true);\r\n },\r\n (error) => {\r\n this.onDeleteCompleted.emit(false);\r\n this.isRefreshing = false;\r\n this.refreshData();\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف اطلاعات\");\r\n }\r\n );\r\n }\r\n }\r\n onrowSelect($event) {\r\n if (document.hidden) return;\r\n this.SelectRow = Object.assign({}, $event.data);\r\n this.dialogIsloaded = false;\r\n this.onRowSelected.emit(this.SelectRow);\r\n }\r\n onToolbarItemClick(action: EntityListAction) {\r\n if (document.hidden) return;\r\n if (this.dialogIsloaded) return;\r\n if (action.isModal === undefined) action.isModal = true;\r\n if (action.requireSelectedrows && !this.SelectRow && (!this.selectedRows || this.selectedRows.length === 0)) {\r\n this.sts.showDialog(\"هیچ قلمی انتخاب نشده است.\", \"پیغام خطا\");\r\n this.dialogIsloaded = true;\r\n return;\r\n }\r\n\r\n this.dialogIsloaded = false;\r\n if (!this.SelectRow && this.selectedRows.length > 0) this.SelectRow = Object.assign({}, this.selectedRows[0]);\r\n\r\n if (this.actionTregger && !action.disabled) {\r\n this.actionTregger(action, this.SelectRow, this.selectedRows, this.selectAllState === \"checked\", this.getGridFilter());\r\n return;\r\n }\r\n if (this.SelectRow && (!this.selectedRows || this.selectedRows.length <= 0)) {\r\n this.selectedRows = [];\r\n this.selectedRows.push(this.SelectRow);\r\n this.onRowsSelected.emit(this.selectedRows);\r\n }\r\n\r\n var datatrasfer: Datatransfer = {};\r\n datatrasfer.apiName = action.apiName;\r\n datatrasfer.label = this.label;\r\n datatrasfer.areaName = action.areaName;\r\n datatrasfer.currentrow = this.SelectRow;\r\n if (datatrasfer?.currentrow && datatrasfer?.currentrow[\"AccVoucherHeaderId\"] === 0 && action.apiName.includes(\"AccVoucherHeader\")) {\r\n this.sts.showDialog(\"سند حسابداری پیدا نشد/صادر نشده است.\", \"پیغام خطا\");\r\n return;\r\n }\r\n if (action.isModal) {\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n currentrow: this.SelectRow,\r\n apiName: action.apiName,\r\n isModal: action.isModal,\r\n areaName: action.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n setTimeout(() => this.refresh_Data(), 200);\r\n });\r\n } else {\r\n const menu = {\r\n title: `${this.label}-(ویرایش)`,\r\n isCloseable: true,\r\n icon: this.icon,\r\n active: true,\r\n responsive: true,\r\n componentType: action.Form_Component,\r\n //modulePath: this.isModal ? this.getCurrentTabInfo().modulePath:null,\r\n data: [\r\n { provide: EntityBase, useValue: this.SelectRow },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: this.SelectRow[this.VoucherKindIdName] } },\r\n ],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n }\r\n onGridSelectionChange(event: SelectionEvent) {\r\n if (this.isMulti) {\r\n event.selectedRows.forEach((x) => {\r\n if (!this.selectedRows.some((s) => s.Id === x.dataItem.Id)) this.selectedRows.push(x.dataItem);\r\n });\r\n }\r\n this.dialogIsloaded = false;\r\n }\r\n async saveGridColumnInfo() {\r\n if (this.VoucherKindId < 0) this.VoucherKindId = this.VoucherKindId * -1;\r\n if (!this.apiName && !this.name) return;\r\n const list: GridColumnInfoDetail[] = [];\r\n if (this.grid && this.grid.columns) {\r\n this.grid.columns.forEach((x: ColumnComponent) => {\r\n if (x) {\r\n const column = new GridColumnInfoDetail();\r\n column.leaftindex = x.leafIndex;\r\n column.orderindex = x.orderIndex;\r\n column.hidden = x.hidden;\r\n column.name = x.field ?? x.title;\r\n column.width = x.width;\r\n column.minResizableWidth = x.minResizableWidth;\r\n column.title = x.title;\r\n list.push(column);\r\n }\r\n });\r\n if (!this._GridColumnInfo) this._GridColumnInfo = new GridColumnInfo();\r\n this._GridColumnInfo.Key = this.VoucherKindId ? `${this.name}_${this.VoucherKindId}` : this.name;\r\n this._GridColumnInfo.ColumnInfo = JSON.stringify(list);\r\n this._GridColumnInfo.CreatedUserId = this.accountService.authService.currentUser.Id;\r\n if (this.state.group && this.state.group.length > 0) this._GridColumnInfo.Group = JSON.stringify(this.state.group);\r\n else this._GridColumnInfo.Group = undefined;\r\n await this._httpCommonService.updateItem(\"MisSetUp/UpdateGridColumnInfo\", this._GridColumnInfo).pipe(takeUntil(this.ngUnsubscribe)).toPromise();\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.validActions = undefined;\r\n this.actions = undefined;\r\n this.saveGridColumnInfo();\r\n this.columns = undefined;\r\n this._filters = undefined;\r\n this.grid = undefined;\r\n this._dataList = undefined;\r\n this._GridColumnInfo = undefined;\r\n this.reportList = undefined;\r\n this.mySelection = undefined;\r\n this.selectAllState = undefined;\r\n this.loadAllData = undefined;\r\n this.FormControlTypes = undefined;\r\n this.rowsCache = undefined;\r\n this.selectedRows = undefined;\r\n this.inputEditorform = undefined;\r\n this.SelectRow = undefined;\r\n }\r\n public exportToPDF(grid: GridComponent): void {\r\n this.grid = grid;\r\n this.loadAllData = true;\r\n this.exportKind = \"PDF\";\r\n if (this.paging) this.filterChange();\r\n else {\r\n this.grid.saveAsPDF();\r\n this.loadAllData = false;\r\n }\r\n }\r\n public async exportToExcel(grid: GridComponent) {\r\n if (this.customExportExcelUrl) {\r\n let params = await this.getParamsForExportExcelWithPostMethod();\r\n this.splashFormService.openDialog(\"در حال دانلود اکسل..\");\r\n this._httpCommonService\r\n .getExcel(this.customExportExcelUrl, params)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then(\r\n (response: any) => {\r\n this.downloadExcelFile(response);\r\n this.splashFormService.closeLoading();\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)} `, \"خطا در دانلود اکسل\");\r\n this.splashFormService.closeLoading();\r\n }\r\n );\r\n return;\r\n }\r\n this.grid = grid;\r\n this.loadAllData = true;\r\n this.exportKind = \"EXCEL\";\r\n if (this.paging) this.filterChange();\r\n else {\r\n this.saveAsExcel();\r\n this.loadAllData = false;\r\n }\r\n }\r\n\r\n downloadExcelFile(response: any): void {\r\n let contentDisposition = response.headers.get(\"Content-Disposition\");\r\n let filename = \"\";\r\n if (contentDisposition) {\r\n let filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n let matches = filenameRegex.exec(contentDisposition);\r\n if (matches != null && matches[1]) {\r\n filename = matches[1].replace(/['\"]/g, \"\");\r\n }\r\n }\r\n\r\n if (!filename && this.reportName) {\r\n filename = this.reportName;\r\n }\r\n\r\n let dataType = response.body.type;\r\n let binaryData = [];\r\n binaryData.push(response.body);\r\n let downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(new Blob(binaryData, { type: dataType }));\r\n if (filename) downloadLink.setAttribute(\"download\", filename);\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n }\r\n\r\n public onRowClick(event): void {\r\n if (document.hidden) return;\r\n this.SelectRow = Object.assign({}, event?.dataItem);\r\n this.dialogIsloaded = false;\r\n this.onRowSelected.emit(this.SelectRow);\r\n if (this.isMulti) this.onRowsSelected.emit([this.SelectRow]);\r\n }\r\n\r\n public onDblClick(_e): void {\r\n if (this.SelectRow) {\r\n this.onDoubleClick.emit(this.SelectRow);\r\n if (!this.disableOnDoubleClick && this.isEdit) this.editHandler({ sender: undefined, rowIndex: 0, dataItem: this.SelectRow });\r\n }\r\n }\r\n\r\n public colorCode(code: string): SafeStyle {\r\n return this.sanitizer.bypassSecurityTrustStyle(code);\r\n }\r\n getFilterParameter(key: string, operator: string) {\r\n return this._filters?.find((x) => x.Filed === key && x.Operator === operator)?.Value;\r\n }\r\n changeReport(reprtName: string) {\r\n if (!this.pathPreFix) this.pathPreFix = \"GNR\";\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفقیت بارگذاری شد.\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n ReportSelectorComponent,\r\n {\r\n dataList: this.reportList,\r\n currentrow: null,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: \"انتخاب گزارش\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n this.setReport(reprtName, model);\r\n }\r\n });\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n this.saveCurrentReport(saveReportFile, this.apiName, [] as any[]);\r\n setTimeout(() => this.loadReports(), 1000);\r\n }\r\n this.setReport(reprtName, saveReportFile);\r\n }\r\n saveCurrentReport(saveReportFile: SaveReportFile, apiName: string, dataList: any[]) {\r\n let reportInfo: ReportInfo = {};\r\n reportInfo.reportKind = ReportKind.saveReport;\r\n reportInfo.apiName = apiName;\r\n reportInfo.reportName = saveReportFile.FileName;\r\n reportInfo.dataList = dataList;\r\n reportInfo.saveReportFile = saveReportFile;\r\n const menu = {\r\n title: `(${saveReportFile.ReportTitle}) در حال ذخیره گزارش`,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n async setReport(reprtName: string, saveReportFile: SaveReportFile) {\r\n if (reprtName === \"deleteReport\") {\r\n this.sts.showDialog(`آیا از حذف گزارش اطمینان دارید؟`, \"حذف گزارش\", DialogType.confirm, () => this.deleteReport(saveReportFile));\r\n return;\r\n }\r\n\r\n if (this.dataList && this.dataList.length > 0) {\r\n if (reprtName === \"print\") this.print(saveReportFile, this.apiName, this.dataList);\r\n if (reprtName === \"preview\") this.preview(saveReportFile, this.apiName, this.dataList);\r\n if (reprtName === \"editReport\") this.editReport(saveReportFile, this.apiName, this.dataList);\r\n if (reprtName === \"copyReport\") this.copyReport(saveReportFile, this.dataList);\r\n } else if ((this._filters && this._filters.length > 0) || this.apiName.split(\"/\").length > 1) {\r\n if (!this._filters || this._filters.length <= 0) {\r\n var keys = this.defaultSortKey?.split(\",\");\r\n this._filters = [];\r\n if (keys) this._filters.push({ Type: \"S\", Filed: this.getmodelName(keys[0]), Value: 0, Operator: \"eq\" });\r\n }\r\n let gridFilters: string = this.apiName?.split(\"/\").length <= 1 ? \"/GetFilterGrid\" : \"\";\r\n this._filters.forEach((x) => (x.Take = 1000));\r\n await this._httpCommonService\r\n .GetFilterGrid(this.apiName + gridFilters, this._filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x: PagingDataResult) => {\r\n if (x && x.Data !== undefined) {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفقیت بارگذاری شد.\");\r\n if (reprtName === \"print\") this.print(saveReportFile, this.apiName, x.Data as any[]);\r\n if (reprtName === \"preview\") this.preview(saveReportFile, this.apiName, x.Data as any[]);\r\n if (reprtName === \"editReport\") this.editReport(saveReportFile, this.apiName, x.Data as any[]);\r\n if (reprtName === \"copyReport\") this.copyReport(saveReportFile, x.Data as any[]);\r\n }\r\n },\r\n (error) => {\r\n this.isRefreshing = false;\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در بارگذاری اطلاعات\");\r\n }\r\n );\r\n } else if (!this.noToolBar) {\r\n if (this.showLoadingMessage) this.sts.showToast(\"primary\", \"\", \"در حال بارگذاری اطلاعات...\");\r\n await this._httpCommonService\r\n .getList(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (_data) => {\r\n if (_data !== undefined) {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفقیت بارگذاری شد.\");\r\n if (reprtName === \"print\") this.print(saveReportFile, this.apiName, _data as any[]);\r\n if (reprtName === \"preview\") this.preview(saveReportFile, this.apiName, _data as any[]);\r\n if (reprtName === \"editReport\") this.editReport(saveReportFile, this.apiName, _data as any[]);\r\n if (reprtName === \"copyReport\") this.copyReport(saveReportFile, _data as any[]);\r\n }\r\n },\r\n (error) => {\r\n this.isRefreshing = false;\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در بارگذاری اطلاعات\");\r\n }\r\n );\r\n }\r\n }\r\n copyReport(saveReportFile: SaveReportFile, dataList: any[]) {\r\n let inputEditorform: Type = ReportCopyComponent;\r\n this.dialogService\r\n .open(\r\n inputEditorform,\r\n {\r\n currentrow: null,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: \"تکثیر گزارش\",\r\n hasManageAccess: true,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile.ReportTitle = model.ReportTitle;\r\n saveReportFile.Id = 0;\r\n this.copyNewReport(saveReportFile, saveReportFile.FileName, this.apiName, dataList);\r\n }\r\n });\r\n }\r\n async deleteReport(saveReportFile: SaveReportFile) {\r\n await this._httpCommonService\r\n .deleteByParameter(this.apiName.split(\"/\")[0] + \"/DeleteReportInfo/?id=\" + saveReportFile.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"گزارش با موفیت حذف شد.\");\r\n setTimeout(() => this.loadReports(), 200);\r\n },\r\n (error) => {\r\n this.isRefreshing = false;\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف گزارش\");\r\n }\r\n );\r\n }\r\n\r\n public onColumnVisibilityChange(e: ColumnVisibilityChangeEvent) {\r\n e.columns.forEach((c) => {\r\n const column = this.columns.find((x) => x.name == c[\"field\"]);\r\n if (column) column.listVisible = !c.hidden;\r\n });\r\n }\r\n\r\n print(saveReportFile: SaveReportFile, apiName: string, dataList: any[]) {\r\n let reportInfo: ReportInfo = {};\r\n reportInfo.reportKind = ReportKind.print;\r\n reportInfo.apiName = apiName;\r\n reportInfo.reportName = saveReportFile.FileName;\r\n reportInfo.DataSourceName = saveReportFile.DataSourceName;\r\n reportInfo.dataList = dataList;\r\n reportInfo.saveReportFile = saveReportFile;\r\n reportInfo.filterText = this.filterText;\r\n reportInfo.startDate = this.getFilterParameter(\"VoucherDate\", \"gte\");\r\n reportInfo.endDate = this.getFilterParameter(\"VoucherDate\", \"lte\");\r\n reportInfo.startNumber = this.getFilterParameter(\"VoucherNo\", \"gte\");\r\n reportInfo.endNumber = this.getFilterParameter(\"VoucherNo\", \"lte\");\r\n reportInfo.includeTime = this.getFilterParameter(\"IncludeTime\", \"eq\");\r\n const menu = {\r\n title: saveReportFile.ReportTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n preview(saveReportFile: SaveReportFile, apiName: string, dataList: any[]) {\r\n let reportInfo: ReportInfo = {};\r\n reportInfo.reportKind = ReportKind.preview;\r\n reportInfo.apiName = apiName;\r\n reportInfo.reportName = saveReportFile.FileName;\r\n reportInfo.DataSourceName = saveReportFile.DataSourceName;\r\n reportInfo.dataList = dataList;\r\n reportInfo.saveReportFile = saveReportFile;\r\n reportInfo.filterText = this.filterText;\r\n reportInfo.startDate = this.getFilterParameter(\"VoucherDate\", \"gte\");\r\n reportInfo.endDate = this.getFilterParameter(\"VoucherDate\", \"lte\");\r\n reportInfo.startNumber = this.getFilterParameter(\"VoucherNo\", \"gte\");\r\n reportInfo.endNumber = this.getFilterParameter(\"VoucherNo\", \"lte\");\r\n reportInfo.includeTime = this.getFilterParameter(\"IncludeTime\", \"eq\");\r\n if (!this.pathPreFix) this.pathPreFix = \"GNR\";\r\n reportInfo.pathPreFix = this.pathPreFix;\r\n const menu = {\r\n title: saveReportFile.ReportTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n //modulePath: this.getCurrentTabInfo()?.modulePath,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n editReport(saveReportFile: SaveReportFile, apiName: string, dataList: any[]) {\r\n let reportInfo: ReportInfo = {};\r\n reportInfo.reportKind = ReportKind.editReport;\r\n reportInfo.apiName = apiName;\r\n reportInfo.reportName = saveReportFile.FileName;\r\n reportInfo.DataSourceName = saveReportFile.DataSourceName;\r\n reportInfo.reportTitle = this.label;\r\n reportInfo.dataList = dataList;\r\n reportInfo.filterText = this.filterText;\r\n reportInfo.startDate = this.getFilterParameter(\"VoucherDate\", \"gte\");\r\n reportInfo.endDate = this.getFilterParameter(\"VoucherDate\", \"lte\");\r\n reportInfo.startNumber = this.getFilterParameter(\"VoucherNo\", \"gte\");\r\n reportInfo.endNumber = this.getFilterParameter(\"VoucherNo\", \"lte\");\r\n reportInfo.includeTime = this.getFilterParameter(\"IncludeTime\", \"eq\");\r\n if (!this.pathPreFix) this.pathPreFix = \"GNR\";\r\n reportInfo.pathPreFix = this.pathPreFix;\r\n reportInfo.saveReportFile = saveReportFile;\r\n const menu = {\r\n title: saveReportFile.ReportTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n copyNewReport(saveReportFile: SaveReportFile, oldReportName: string, apiName: string, dataList: any[]) {\r\n let reportInfo: ReportInfo = {};\r\n\r\n reportInfo.reportKind = ReportKind.editReport;\r\n reportInfo.apiName = apiName;\r\n saveReportFile.FileName = `${this.reportName}_${this.reportList.length}`;\r\n reportInfo.reportTitle = this.label;\r\n reportInfo.dataList = dataList;\r\n reportInfo.oldReportName = oldReportName;\r\n if (!this.pathPreFix) this.pathPreFix = \"GNR\";\r\n reportInfo.pathPreFix = this.pathPreFix;\r\n reportInfo.saveReportFile = saveReportFile;\r\n const menu = {\r\n title: saveReportFile.ReportTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n getCurrentTabInfo() {\r\n return this.tabsservice.getActiveTab();\r\n }\r\n\r\n getColumnAggregates(columnName: string) {\r\n let pluskey = columnName.split(\"_\");\r\n if (pluskey.length <= 1) {\r\n if (this.aggregatesInfo && this.aggregatesInfo.length > 0) return this.aggregatesInfo.find((x) => x.ColumnName === columnName).Value;\r\n } else {\r\n if (this.aggregatesInfo && this.aggregatesInfo.length > 0)\r\n return (\r\n this.aggregatesInfo.find((x) => x.ColumnName === pluskey[0]).Value + this.aggregatesInfo.find((x) => x.ColumnName === pluskey[1]).Value\r\n );\r\n }\r\n return undefined;\r\n }\r\n hasAggregate(columnName: string) {\r\n return this.aggregatesColumnName !== undefined && this.aggregatesColumnName.includes(columnName);\r\n }\r\n isGrouped(filed: string) {\r\n return this.state && this.state.group && this.state.group.some((x) => x.field === filed);\r\n }\r\n clearFilter() {\r\n this.state.filter.filters = [];\r\n this.grid.filter = { logic: \"and\", filters: [] };\r\n this.setDefaultFilterKey();\r\n var filters: GridFilter[] = this.getGridFilter();\r\n if (!filters) filters = [];\r\n if (this._gridViewData !== undefined) this.onDataStateChanged.emit(filters);\r\n else this.refreshData();\r\n }\r\n getMaskedAmount(amount: number, inputMask: string) {\r\n if (inputMask === \"000:00\") {\r\n let temp: number = amount % 60;\r\n let MM = (amount - temp) / 60;\r\n return \"0\".repeat(3 - MM.toString().length) + MM + \":\" + \"0\".repeat(2 - temp.toString().length) + temp;\r\n }\r\n if (inputMask === \"00:00:00\") {\r\n let temp1: number = amount % 440;\r\n let temp2: number = temp1 % 60;\r\n let DD = (amount - temp1) / 440;\r\n let MM = (temp1 - temp2) / 60;\r\n return (\r\n \"0\".repeat(2 - DD.toString().length) +\r\n DD +\r\n \":\" +\r\n \"0\".repeat(2 - MM.toString().length) +\r\n MM +\r\n \":\" +\r\n \"0\".repeat(2 - temp2.toString().length) +\r\n temp2\r\n );\r\n }\r\n if (inputMask === \"00:00\") return \"0\".repeat(2 - amount.toString().length) + amount;\r\n\r\n return amount;\r\n }\r\n\r\n filterChanges(event: any) {\r\n if (this.apiName) return;\r\n this.dataList = JSON.parse(JSON.stringify(this.dataList));\r\n }\r\n\r\n copy() {\r\n if (!this.SelectRow) {\r\n this.sts.showToast(\"danger\", \"خطا\", \"کپی با خطا مواجه شد\");\r\n return;\r\n }\r\n\r\n try {\r\n let row = { ...this.SelectRow };\r\n this.preCopy.emit(row);\r\n this.gridView.data.push(row);\r\n } catch (error) {\r\n this.sts.showToast(\"danger\", \"خطا\", \"کپی با خطا مواجه شد\");\r\n }\r\n }\r\n @Output() preCopy = new EventEmitter();\r\n}\r\n","\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n 0\">\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ getMaskedAmount(dataItem[column.name], column.inputMask) }}\r\n \r\n \r\n {{ getColumnAggregates(column.name) | number }}\r\n \r\n \r\n {{ value }}\r\n \r\n \r\n \r\n {{ dataItem[column.name] }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","export class ReportKindInfo\r\n{ \r\npublic static reportKinds = [\r\n {\r\n value: 'print',\r\n name: 'چاپ',\r\n },\r\n {\r\n value: 'preview',\r\n name: 'پیش نمایش',\r\n },\r\n {\r\n value: 'editReport',\r\n name: 'اصلاح گزارش',\r\n },\r\n {\r\n value: 'copyReport',\r\n name: 'تکثیر گزارش',\r\n },\r\n {\r\n value: 'deleteReport',\r\n name: 'حذف گزارش',\r\n }\r\n ];\r\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from \"@angular/core\";\r\nimport { form_control, SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { BaseFormComponent } from \"projects//sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\n\r\n@Component({\r\n selector: \"report-copy\",\r\n templateUrl: \"./report-copy.component.html\",\r\n styleUrls: [\"./report-copy.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ReportCopyComponent extends BaseFormComponent {\r\n @Input() dataList: SaveReportFile[] = [];\r\n hasManageAccess = false;\r\n samePermission: boolean = false;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n this.samePermission = this.apiName.split(\"/\").length > 1;\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"انتخاب گزارش\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ReportTitle\",\r\n disabled: false,\r\n name: \"ReportTitle\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.orignalColumns = this.columns;\r\n this.setFormGroup(this.model);\r\n }\r\n async save() {\r\n this.result = this.formGroup.value;\r\n this.closeModal();\r\n }\r\n}\r\n","\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\r\nimport { form_control, SaveReportFile } from 'projects/sepidz-web-framework/src/lib/models';\r\nimport { BaseFormComponent } from 'projects//sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component';\r\nimport { FormControlTypes } from 'projects/sepidz-web-framework/src/lib/models/form-base-control.model';\r\nimport { SelectorService } from 'projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service';\r\n@Component({\r\n selector: 'report-selector',\r\n templateUrl: './report-selector.component.html',\r\n styleUrls: ['./report-selector.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ReportSelectorComponent extends BaseFormComponent {\r\n @Input() dataList: SaveReportFile[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n this.selectorService.setDataList(\"Id\", this.dataList);\r\n }\r\nasync setColumns() {\r\n this.columns = [];\r\n this.columns.push({ label: 'انتخاب گزارش', controlType: FormControlTypes.dropdown, modelName: 'Id', disabled: false, name: 'Id', order: 0, textType: 'text', formVisible: true, listVisible: true, required: true, valueMember: 'Id', displayMember: 'ReportTitle' });\r\n this.orignalColumns = this.columns;\r\n }\r\n onChanged($event) {\r\n this.result = $event;\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { MessageService } from '@progress/kendo-angular-l10n';\r\nimport { Injectable } from \"@angular/core\";\r\nconst messages = {\r\n 'kendo.grid.noRecords': 'رکورد وجود ندارد.',\r\n 'kendo.grid.groupPanelEmpty': 'یک سر ستون را بکشید و آن را در اینجا رها کنید تا توسط آن ستون گروه بندی شود',\r\n};\r\n@Injectable()\r\nexport class SepidzMessageService extends MessageService {\r\n public get(key: string): string {\r\n return this.getMessage(key);\r\n }\r\n getMessage(key: string) {\r\n var message: string;\r\n switch (key) {\r\n case 'kendo.grid.groupPanelEmpty': message = 'یک سر ستون را بکشید و آن را در اینجا رها کنید تا توسط آن ستون گروه بندی شود';\r\n break;\r\n case 'kendo.treelist.noRecords':\r\n case 'kendo.grid.noRecords': message = 'رکورد وجود ندارد';\r\n break;\r\n case 'kendo.grid.pagerFirstPage': message = 'صفحه اول';\r\n break;\r\n case 'kendo.grid.pagerPreviousPage': message = 'صفحه قبل';\r\n break;\r\n case 'kendo.grid.pagerNextPage': message = 'صفحه بعد';\r\n break;\r\n case 'kendo.grid.pagerLastPage': message = 'صفحه آخر';\r\n break;\r\n case 'kendo.grid.pagerPage': message = 'صفحه';\r\n break;\r\n case 'kendo.grid.pagerOf': message = 'از';\r\n break;\r\n case 'kendo.grid.pagerItems': message = 'قلم';\r\n break;\r\n case 'kendo.grid.pagerItemsPerPage': message = 'قلم در صفحه';\r\n break;\r\n case 'kendo.grid.filter': message = 'فیلتر';\r\n break;\r\n case 'kendo.grid.filterEqOperator': message = 'مساوی با';\r\n break;\r\n case 'kendo.grid.filterNotEqOperator': message = 'نا مساوی';\r\n break;\r\n case 'kendo.grid.filterIsNullOperator': message = 'تهی';\r\n break;\r\n case 'kendo.grid.filterIsNotNullOperator': message = 'غیر تهی';\r\n break;\r\n case 'kendo.grid.filterIsEmptyOperator': message = 'خالی';\r\n break;\r\n case 'kendo.grid.filterIsNotEmptyOperator': message = 'خالی نباشد';\r\n break;\r\n case 'kendo.grid.filterStartsWithOperator': message = 'شروع شود با';\r\n break;\r\n case 'kendo.grid.filterContainsOperator': message = 'شامل';\r\n break;\r\n case 'kendo.grid.filterNotContainsOperator': message = 'شامل نباشد';\r\n break;\r\n case 'kendo.grid.filterEndsWithOperator': message = 'تمام شود با';\r\n break;\r\n case 'kendo.grid.filterGteOperator': message = 'بزرکترمساوی';\r\n break;\r\n case 'kendo.grid.filterGtOperator': message = 'بزرگتر';\r\n break;\r\n case 'kendo.grid.filterLteOperator': message = 'کوچکترمساوی';\r\n break;\r\n case 'kendo.grid.filterLtOperator': message = 'کوچکتر';\r\n break;\r\n case 'kendo.grid.filterIsTrue': message = 'درست';\r\n break;\r\n case 'kendo.grid.filterIsFalse': message = 'نادرست';\r\n break;\r\n case 'kendo.grid.filterBooleanAll': message = 'همه';\r\n break;\r\n case 'kendo.grid.filterAfterOrEqualOperator': message = 'بعداز یامساوی با';\r\n break;\r\n case 'kendo.grid.filterAfterOperator': message = 'بعد از';\r\n break;\r\n case 'kendo.grid.filterBeforeOperator': message = 'قبل از';\r\n break;\r\n case 'kendo.grid.filterBeforeOrEqualOperator': message = 'قبل از یا برابر با';\r\n break;\r\n case 'kendo.grid.filterFilterButton': message = 'فیلتر';\r\n break;\r\n case 'kendo.grid.filterClearButton': message = 'پاک';\r\n break;\r\n case 'kendo.grid.filterAndLogic': message = 'و';\r\n break;\r\n case 'kendo.grid.filterOrLogic': message = 'یا';\r\n break;\r\n case 'kendo.grid.loading': message = 'در حال بارگذاری';\r\n break;\r\n case 'kendo.grid.sort': message = 'مرتب';\r\n break;\r\n case 'kendo.grid.columnMenu': message = 'منو ستون';\r\n break;\r\n case 'kendo.grid.columns': message = 'ستونها';\r\n break;\r\n case 'kendo.grid.lock': message = 'قفل کردن';\r\n break;\r\n case 'kendo.grid.unlock': message = 'بازکردن';\r\n break;\r\n case 'kendo.grid.sortedAscending': message = 'به ترتیب صعودی';\r\n break;\r\n case 'kendo.grid.sortedDescending': message = 'به ترتیب نزولی';\r\n break;\r\n case 'kendo.grid.columnsApply': message = 'اعمال';\r\n break;\r\n case 'kendo.grid.columnsReset': message = 'تنظیم مجدد';\r\n break;\r\n case 'kendo.grid.sortable': message = 'مرتب کردن';\r\n break;\r\n case 'kendo.grid.sortAscending': message = 'به ترتیب صعودی';\r\n break;\r\n case 'kendo.grid.sortDescending': message = 'به ترتیب نزولی';\r\n break;\r\n case 'kendo.grid.sortedDefault': message = 'به ترتیب پیش فرض';\r\n break;\r\n case 'kendo.dropdownlist.noDataText':\r\n case 'kendo.autocomplete.noDataText':\r\n message = 'اطلاعاتی جهت انتخاب وجود ندارد.';\r\n break;\r\n default:\r\n message = key;\r\n break;\r\n }\r\n return message;\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { AuthService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { BackUpModel } from \"./backUp.model\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models/form-control.model\";\r\n@Component({\r\n selector: \"backUpComponent\",\r\n templateUrl: \"./backUp.component.html\",\r\n styleUrls: [\"./backUp.component.scss\"],\r\n})\r\nexport class backUpComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private authService: AuthService) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"\";\r\n this.areaName = \"General\";\r\n this.label = this.translate(\"ClientApp.Projects.FrameWorkShell.Header.BackUp.BackUp\");\r\n super.ngOnInit();\r\n this.setColumns();\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.httpCommonService\r\n .get(\"UserLocalSetting/GetBackUpModel\")\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: form_control[]) => {\r\n const hasAccess = this.accountService.userHasPermission(\"General:UserLocalSetting\", \"BackUpInfoAccess\");\r\n if (hasAccess) {\r\n this.columns = data;\r\n this.orignalColumns = this.columns;\r\n this.setFormGroup(this.model);\r\n this.cd.markForCheck();\r\n } else {\r\n data.forEach((val) => {\r\n val.disabled = true;\r\n });\r\n this.columns = data;\r\n this.orignalColumns = this.columns;\r\n this.setFormGroup(this.model);\r\n this.cd.markForCheck();\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n addControl() {\r\n this.httpCommonService\r\n .get(\"UserLocalSetting/GetBackUpInfo\")\r\n .pipe(take(1))\r\n .subscribe((data: any) => {\r\n this.setValue(\"BackUpFolderDirectory\", data.BackUpFolderDirectory);\r\n this.setValue(\"SetTimerBackUp\", data.SetTimerBackUp);\r\n this.model.BackUpFolderDirectory = data.BackUpFolderDirectory;\r\n this.model.SetTimerBackUp = data.SetTimerBackUp;\r\n });\r\n }\r\n\r\n fullBackup() {\r\n this.httpCommonService\r\n .get(\"Home/FullBackup\")\r\n .pipe(take(1))\r\n .subscribe(\r\n (res) => {\r\n if (res)\r\n this.sts.showToast(\"success\", \"\", this.translate(\"ClientApp.Projects.FrameWorkShell.Header.BackUp.SupportVersionCreateSuccessful\"));\r\n },\r\n (error) => {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Header.BackUp.SupportSpecifiedSupportVersion\"),\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Header.Error\")\r\n );\r\n }\r\n );\r\n }\r\n async save() {\r\n this.model.BackUpFolderDirectory = this.formGroup.controls[\"BackUpFolderDirectory\"].value;\r\n this.model.SetTimerBackUp = this.formGroup.controls[\"SetTimerBackUp\"].value;\r\n this.httpCommonService\r\n .create(\"UserLocalSetting/UpdateBackUpModel\", this.model)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: any) => {\r\n if (!data) return;\r\n this.fullBackup();\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n this.close();\r\n }\r\n}\r\n"," 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [group]=\"formGroup\"\r\n [columns]=\"columns\"\r\n (cancelChange)=\"cancel()\"\r\n (submitChange)=\"save()\">\r\n\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { AuthService } from \"projects/sepidz-web-framework/src/lib/services\";\r\n\r\n@Component({\r\n selector: \"callinformation\",\r\n templateUrl: \"./callinfo.component.html\",\r\n styleUrls: [\"./callinfo.component.scss\"],\r\n})\r\nexport class CallinfoComponent extends BaseFormComponent {\r\n currentInformation = this.authService.currentInformation();\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private authService: AuthService) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {}\r\n\r\n close() {\r\n this.closeModal();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \"sepidz\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.CallInfo.CompanyWorkingHours\" | translate }}:\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.CallInfo.TimeWork\" | translate }}\r\n
\r\n
\r\n \r\n 021-91002030\r\n
\r\n
\r\n
\r\n
\r\n \r\n SepidzPos\r\n
\r\n
\r\n \r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.CallInfo.CustomerCode\" | translate }}\r\n \r\n {{ currentInformation?.LockNumber }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n www.sepidz.com\r\n \r\n
\r\n
\r\n \r\n \r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.CallInfo.SoftwareVersion\" | translate }}\r\n \r\n \r\n {{ currentInformation?.ProductVersion }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
{{ \"ClientApp.Projects.FrameWorkShell.Header.CallInfo.AboutUs\" | translate }}
\r\n
\r\n
\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { OrderPageComponent } from \"src/app/frontoffice/order/orderpage/orderpage.component\";\r\nimport { SaleMethodBranchModel } from \"src/app/frontoffice/sales/model/sale-method-branch.model\";\r\n\r\n@Component({\r\n selector: \"delino-notification\",\r\n templateUrl: \"./delino-notification.component.html\",\r\n styleUrls: [\"./delino-notification.component.scss\"],\r\n})\r\nexport class DelinoNotificationComponent extends BaseFormComponent {\r\n saleMethodDelinoId: number;\r\n branchId = null;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, public tabsservice: TabularService) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {}\r\n\r\n close() {\r\n this.closeModal();\r\n }\r\n\r\n showNoti() {\r\n this.httpCommonService\r\n .get(\"SaleMethodBranch/GetDelinoSaleMethodBranch?BranchId=\" + this.branchId)\r\n .pipe(take(1))\r\n .subscribe((data: SaleMethodBranchModel) => {\r\n if (!data) {\r\n this.close();\r\n }\r\n this.saleMethodDelinoId = data.Id;\r\n let saleMethodTitleName = \"\";\r\n saleMethodTitleName = data.SaleMethodTitle;\r\n let menu = {\r\n title: saleMethodTitleName,\r\n isCloseable: true,\r\n icon: \"{ icon: 'dashboard', pack: 'sepidzicon' }\",\r\n active: true,\r\n responsive: true,\r\n data: [{ provide: VoucherKindInfo, useValue: { VoucherKindId: data.Id, orderOnlinePage: true } }],\r\n componentType: OrderPageComponent,\r\n hasbadge: false,\r\n };\r\n const onlineOrderTabIndex = this.tabsservice.tabItemSubject.value.findIndex(\r\n (x) => x.data.find((z) => z.useValue.orderOnlinePage) || x.title === saleMethodTitleName\r\n );\r\n this.result = true;\r\n if (onlineOrderTabIndex > -1) {\r\n this.tabsservice.tabItemonRefreshData.next(\"Delino\");\r\n this.tabsservice.setSelectedTab(onlineOrderTabIndex);\r\n this.close();\r\n } else {\r\n this.tabsservice.open(menu);\r\n this.close();\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \"Delino\r\n
\r\n
\r\n
{{ \"ClientApp.Projects.FrameWorkShell.Header.DelinoNotification.NewOrder\" | translate }}
\r\n

{{ \"ClientApp.Projects.FrameWorkShell.Header.DelinoNotification.OrderReceiveDelinoService\" | translate }}

\r\n
\r\n \r\n
\r\n","import { DOCUMENT } from \"@angular/common\";\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Inject, Input, OnDestroy, OnInit, Output, Type } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport * as moment from \"jalali-moment\";\r\nimport { LayoutService } from \"projects/sepidz-web-framework/src/lib/@core/utils\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { NotificationModel } from \"projects/sepidz-web-framework/src/lib/models/notification-model\";\r\nimport { BookMarkMenu } from \"projects/sepidz-web-framework/src/lib/models/usersetting.model\";\r\nimport {\r\n AccountService,\r\n AppTranslationService,\r\n AuthService,\r\n ConfigurationService,\r\n CorrectYeKeService,\r\n HttpCommonService,\r\n LocalStoreManager,\r\n ShowToastrService,\r\n} from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { AnalyticsService } from \"projects/sepidz-web-framework/src/lib/services/analytics.service\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { IndexedDbService } from \"projects/sepidz-web-framework/src/lib/services/indexed-db.service\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { NotificationService } from \"projects/sepidz-web-framework/src/lib/services/notification.service\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { Observable, Subject, Subscription } from \"rxjs\";\r\nimport { debounceTime, delay, take, takeUntil, tap } from \"rxjs/operators\";\r\nimport { ItemBranch, StockInWebKind } from \"src/app/frontoffice/catalog/model/item.model\";\r\nimport { DriverAssignmentComponent } from \"src/app/frontoffice/driverassignment/driverassignment.component\";\r\nimport { ExternalNotificationKindEnum } from \"src/app/frontoffice/driverassignment/external-notification.model\";\r\nimport { InvDailyWarehouse } from \"src/app/frontoffice/inv/model/inv-daily-warehouse.model\";\r\nimport { LocalSetting } from \"src/app/frontoffice/local-setting/local-setting-model\";\r\nimport { OrderItem, OrderItemCategory } from \"src/app/frontoffice/order/model/orderItemcategory.model\";\r\nimport { OrderPageComponent } from \"src/app/frontoffice/order/orderpage/orderpage.component\";\r\nimport { DashboardComponent } from \"src/app/frontoffice/review/dashboard/dashboard.component\";\r\nimport { SaleMethodBranchModel } from \"src/app/frontoffice/sales/model/sale-method-branch.model\";\r\nimport { ResetPasswordComponent } from \"src/app/gnr/resetpassword/resetpassword.component\";\r\nimport { MenuService } from \"../../../../../../../src/app/pages/pages-menu\";\r\nimport { DialogType } from \"../../../../../../sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { CurrentBranchFormComponent } from \"../../../current-branch/current-branch-form/current-branch-form.component\";\r\nimport { ITab, TabularService } from \"../../../tabular/tabular.service \";\r\nimport { backUpComponent } from \"./backup/backUp.component\";\r\nimport { CallinfoComponent } from \"./callinfo/callinfo.component\";\r\nimport { DelinoNotificationComponent } from \"./delino-newOrder-notification/delino-notification.component\";\r\nimport { ImportAndExportComponent } from \"./importandexport/importexport.component\";\r\nimport { UpdateWebAppComponent } from \"./update-web-app/update-web-app.component\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\ntype DelinoIgnoredNotifyType = { count: number; branchId: number; branchTitle: string };\r\n\r\n@Component({\r\n selector: \"ngx-header\",\r\n styleUrls: [\"./header.component.scss\"],\r\n templateUrl: \"./header.component.html\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HeaderComponent implements OnInit, OnDestroy {\r\n @Input() position = \"normal\";\r\n @Output() onStateChange: EventEmitter = new EventEmitter();\r\n DateString: string;\r\n TimeString: string;\r\n UserEnterTime: string;\r\n showDesk: boolean;\r\n userAvatar: string;\r\n isFullScreen: boolean = false;\r\n fleetConnection: boolean = true;\r\n smartConnection: boolean = true;\r\n delinoConnection: boolean = true;\r\n hasAccessOnlineFactor: boolean = false;\r\n showOnlineInvoice: boolean = false;\r\n inputEditorform: Type;\r\n hasOrderOnline: boolean = false;\r\n ngUnsubscribe = new Subject();\r\n elem: any;\r\n user: any;\r\n currentInformation = this.authService?.currentInformation();\r\n currentBranch = this.authService.currentBranch;\r\n isCallCenter =\r\n !!this.currentInformation?.RestaurantCallCenter ||\r\n !!this.currentInformation?.BranchingAdvancedEnabled ||\r\n !!this.currentInformation?.BranchingLightEnabled;\r\n\r\n timeLeft: number = 60;\r\n interval;\r\n _IsShowAction: boolean = false;\r\n _IsShowSeting: boolean;\r\n _IsShowNotifications: boolean = false;\r\n _IsShowTheme: boolean;\r\n today: number = Date.now();\r\n currentLanguage: any;\r\n SoftWareLicenseKind = SoftWareLicenseKind;\r\n menu = this.menuService.MENU_ITEMS;\r\n displayName = \"\";\r\n\r\n delinoIgnoredOrdersInfos: DelinoIgnoredNotifyType[] = [];\r\n fleetNotificationCount: number = 0;\r\n\r\n private pushSubscription: Subscription;\r\n private receiveOnlineInvoice: boolean;\r\n linkPaymentConnection = true;\r\n hasAnyDelinoSaleMethodBranch: boolean;\r\n\r\n delinoDialogIsOpened = false;\r\n audio: HTMLAudioElement;\r\n audioInitialized: boolean;\r\n\r\n get fiscalYear(): number {\r\n return this.authService?.currentFiscalYear?.Year;\r\n }\r\n\r\n constructor(\r\n public authService: AuthService,\r\n public indexedDbService: IndexedDbService,\r\n private layoutService: LayoutService,\r\n private analyticsService: AnalyticsService,\r\n private configurationService: ConfigurationService,\r\n private dialogService: SimpleModalService,\r\n private misSetupService: MisSetupService,\r\n private sts: ShowToastrService,\r\n private tabsservice: TabularService,\r\n private translationService: AppTranslationService,\r\n private storage: LocalStoreManager,\r\n private httpCommonService: HttpCommonService,\r\n private router: Router,\r\n private menuService: MenuService,\r\n private notification: NotificationService,\r\n private translate: TranslateService,\r\n protected commmon: CommonService,\r\n protected accountservice: AccountService,\r\n protected cd: ChangeDetectorRef,\r\n @Inject(DOCUMENT) private document: any\r\n ) {\r\n this.displayName = authService.currentUser?.DisplayName;\r\n }\r\n ngOnInit() {\r\n this.currentLanguage = this.translationService.languageList;\r\n const m = moment();\r\n this.startTimer();\r\n this.DateString = m.locale(\"fa\").format(\"YYYY/MM/DD\");\r\n this.TimeString = m.locale(\"fa\").format(\"HH:mm\");\r\n this.changeDirection();\r\n this.getUserAvatar();\r\n if (this.authService.currentUser) this.user = this.authService.currentUser;\r\n else this.user = \"\";\r\n this.elem = this.document.documentElement;\r\n this.misSetupService.source$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && x.length > 0)\r\n if (this.misSetupService.getboolean(\"SALE\", \"FullScreenView\") == true) {\r\n this.isFullScreen = true;\r\n this.fullScreen();\r\n }\r\n });\r\n this.getLocalSetting();\r\n this.GetFirstLogin();\r\n this.init();\r\n this.getNotifications();\r\n const info = this.authService.currentInformation();\r\n const isLight = info.SepidzWebKind === SoftWareLicenseKind.RestaurantLightWeb;\r\n if (!isLight) {\r\n this.loadWareHouseStockItems()\r\n .pipe(take(1), delay(2000))\r\n .subscribe((res) => {\r\n this.indexedDbService.put(\"FrontOffice\", \"InvDaily\", res).then();\r\n });\r\n }\r\n this.HealthCheckDelino(false);\r\n this.loadLeaflet();\r\n if (this.currentInformation?.PaymentPanelAVA) this.HealthCheckClub(true, false);\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this.pushSubscription && !this.pushSubscription.closed) this.pushSubscription.unsubscribe();\r\n if (this.ngUnsubscribe && !this.ngUnsubscribe.closed) this.ngUnsubscribe.unsubscribe();\r\n if (this.interval) this.pauseTimer();\r\n }\r\n\r\n public fullScreen(): void {\r\n if (this.isFullScreen) this.openFullscreen();\r\n else this.closeFullscreen();\r\n }\r\n\r\n public stateChange(): void {\r\n this.onStateChange.emit();\r\n }\r\n\r\n //TODO Where is it used??\r\n public toggleSidebar(): boolean {\r\n this.layoutService.changeLayoutSize();\r\n return false;\r\n }\r\n\r\n //TODO Where is it used??\r\n public toggleSettings(): boolean {\r\n return false;\r\n }\r\n\r\n //TODO Where is it used??\r\n public startSearch(): void {\r\n this.analyticsService.trackEvent(\"startSearch\");\r\n }\r\n\r\n //TODO Where is it used??\r\n public changeTheme(themeName: string): void {\r\n this.configurationService.theme = themeName;\r\n }\r\n\r\n //TODO Where is it used??\r\n public closeNotification(): void {\r\n if (this._IsShowNotifications) this._IsShowNotifications = false;\r\n }\r\n\r\n public closeSetting(): void {\r\n if (this._IsShowSeting) this._IsShowSeting = false;\r\n }\r\n\r\n public closeAction(): void {\r\n if (this._IsShowAction) this._IsShowAction = false;\r\n }\r\n\r\n public branchSelect(): void {\r\n this.dialogService.open(CurrentBranchFormComponent, { autoFocus: true }).pipe(take(1)).subscribe();\r\n }\r\n\r\n public showNotification() {\r\n let menu = {\r\n title: this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.DedicatedCourier\"),\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n data: [],\r\n componentType: DriverAssignmentComponent,\r\n hasbadge: false,\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n\r\n public setTheme(theme: string): void {\r\n this.commmon.setTheme(theme);\r\n this.commmon.updateSettings();\r\n }\r\n\r\n public updateDialog(): void {\r\n this.dialogService\r\n .open(UpdateWebAppComponent, { group: null }, { closeOnClickOutside: false })\r\n .pipe(take(1))\r\n .subscribe((model) => {});\r\n }\r\n\r\n public closeTheme(): void {\r\n if (this._IsShowTheme) this._IsShowTheme = false;\r\n }\r\n\r\n public changeDirection(direction?: any): void {\r\n if (!direction) return;\r\n this.commmon.LocalSetting.Language = direction.value;\r\n this.commmon.LocalSetting.Isrtl = direction.dir;\r\n this.httpCommonService\r\n .get(`Home/SetCulture/${direction.value}`)\r\n .pipe(take(1))\r\n .subscribe((data) => {});\r\n this.translationService.changeLanguage(direction.value);\r\n this.commmon.setDirection(direction.dir);\r\n this.commmon.updateSettings();\r\n this._IsShowSeting = false;\r\n }\r\n\r\n public closeSystem(): void {\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.DoWantExitSoftware\"),\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Attention\"),\r\n DialogType.confirm,\r\n () => {\r\n this.httpCommonService.create(`Authorization/Logout`, null).pipe(take(1)).subscribe();\r\n this.tabsservice.closeAllForce();\r\n this.router.navigate([\"auth/logout\"]);\r\n this.notification.stop();\r\n }\r\n );\r\n }\r\n\r\n public getNotifications(): void {\r\n type Notification = { Kind: number; ReferenceId: number; ImportanceLevel: number; BranchTitle: string };\r\n\r\n this.httpCommonService\r\n .get(\"ExternalNotification/GetAllNotificationByKindCheck\")\r\n .pipe(take(1))\r\n .subscribe({\r\n next: (res: Notification[]) => {\r\n const fleetNotify = res.filter((x) => x.Kind == ExternalNotificationKindEnum.Fleet);\r\n this.fleetNotificationCount = fleetNotify.length;\r\n const delinoNotify = res.filter((x) => x.Kind == ExternalNotificationKindEnum.Delino && x.ImportanceLevel > 0);\r\n if (delinoNotify.length) {\r\n this.delinoIgnoredOrdersInfos = groupBy(delinoNotify, \"ReferenceId\");\r\n function groupBy(value: Notification[], field: string): DelinoIgnoredNotifyType[] {\r\n const groupedObj: { [key: string]: Notification[] } = value.reduce((prev, cur) => {\r\n if (!prev[cur[field]]) prev[cur[field]] = [cur];\r\n else prev[cur[field]].push(cur);\r\n return prev;\r\n }, {});\r\n return Object.keys(groupedObj).map((key) => ({\r\n branchId: +key,\r\n count: groupedObj[key][0].ImportanceLevel,\r\n branchTitle: groupedObj[key][0].BranchTitle,\r\n }));\r\n }\r\n }\r\n this.cd.markForCheck();\r\n },\r\n });\r\n }\r\n\r\n public openTab(item: BookMarkMenu): void {\r\n let level1: any;\r\n let level2: any;\r\n let level3: any;\r\n let level4: any;\r\n let openLevel: any;\r\n if (item.selectedMenu) {\r\n level1 = this.menu.find((f) => CorrectYeKeService.getCorrectYeKe(f.title) === CorrectYeKeService.getCorrectYeKe(item.selectedMenu));\r\n }\r\n if (item.selectedMenu1) {\r\n level2 = level1.children.find((f) => CorrectYeKeService.getCorrectYeKe(f.title) === CorrectYeKeService.getCorrectYeKe(item.selectedMenu1));\r\n }\r\n if (item.selectedMenu2) {\r\n level3 = level2.children.find((f) => CorrectYeKeService.getCorrectYeKe(f.title) === CorrectYeKeService.getCorrectYeKe(item.selectedMenu2));\r\n } else {\r\n level3 = level2.children.find((f) => CorrectYeKeService.getCorrectYeKe(f.title) === CorrectYeKeService.getCorrectYeKe(item.title));\r\n }\r\n if (item.selectedMenu3 && level3.children) {\r\n level4 = level3?.children?.find((f) => CorrectYeKeService.getCorrectYeKe(f.title) === CorrectYeKeService.getCorrectYeKe(item.selectedMenu3));\r\n } else {\r\n level4 =\r\n level3.children ??\r\n level3?.children?.find((f) => CorrectYeKeService.getCorrectYeKe(f.title) === CorrectYeKeService.getCorrectYeKe(item.title));\r\n }\r\n var datatrasfer: Datatransfer = {};\r\n openLevel = level4 ? level4 : level3;\r\n if ((openLevel === level3 && level3?.children?.length > 0) || openLevel?.hidden) {\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.ModuleDisabled\"),\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Attention\"),\r\n DialogType.confirm,\r\n () => {\r\n const findIdex = this.commmon?.LocalSetting?.BookMarkMenu?.findIndex(\r\n (f) => f.title === item.title && f.CreatedUserId == item.CreatedUserId\r\n );\r\n this.commmon?.LocalSetting?.BookMarkMenu?.splice(findIdex, 1);\r\n this.commmon.setLocalSetting();\r\n }\r\n );\r\n return;\r\n }\r\n if (openLevel?.children && openLevel?.children?.length > 0) openLevel = openLevel.children[0];\r\n if (openLevel) {\r\n const menu = {\r\n title: openLevel.title,\r\n isCloseable: true,\r\n icon: openLevel.icon,\r\n active: true,\r\n responsive: true,\r\n componentType: openLevel.data,\r\n //modulePath: openLevel.target,\r\n data: [\r\n { provide: EntityBase, useValue: null },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: openLevel.VoucherKindId } },\r\n ],\r\n };\r\n const hasPermission = this.accountservice.userHasPermission(!openLevel.title ? openLevel.title : openLevel.apiName, openLevel.actionName);\r\n if (hasPermission) this.tabsservice.open(menu);\r\n else {\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.NotAccessModule\"),\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Attention\")\r\n );\r\n }\r\n this.showDesk = false;\r\n } else {\r\n const findIdex = this.commmon?.LocalSetting?.BookMarkMenu?.findIndex((f) => f.title === item.title && f.CreatedUserId === item.CreatedUserId);\r\n this.commmon?.LocalSetting?.BookMarkMenu?.splice(findIdex, 1);\r\n }\r\n }\r\n\r\n public ShowCallInfo(): void {\r\n this.dialogService.open(CallinfoComponent, { errorMessage: \"NotFound!!!\" }, { closeOnClickOutside: false, autoFocus: true, closeOnEscape: true });\r\n }\r\n\r\n public showPasswordForm(): void {\r\n this.dialogService.open(\r\n ResetPasswordComponent,\r\n { errorMessage: \"NotFound!!!\" },\r\n { closeOnClickOutside: false, autoFocus: true, closeOnEscape: true }\r\n );\r\n }\r\n\r\n public HealthCheckClub(isLink: boolean, showDialog = true): void {\r\n const branchId = this.accountservice.authService.currentBranchId;\r\n const url = `Invoice/HealthCheckClub/${branchId}`;\r\n this.httpCommonService\r\n .getList(url)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: (data: number) => {\r\n this.commmon.smartConnection = data > 0;\r\n this.linkPaymentConnection = data > 0;\r\n this.smartConnection = data > 0;\r\n if (showDialog) {\r\n if (isLink) {\r\n if (data > 0)\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.PaymentLinkConnected\"),\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Message\")\r\n );\r\n else\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.ErrorOccurredConnectPaymentLink\"),\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Error\")\r\n );\r\n } else {\r\n if (data > 0)\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.CommunicationCustomerClubEstablished\"),\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Message\")\r\n );\r\n else\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.ErrorCommunicatingCustomerClub\"),\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Error\")\r\n );\r\n }\r\n }\r\n },\r\n });\r\n }\r\n\r\n public fleetConnectionTest(): void {\r\n const url = `Personnel/FleetConnectionTest`;\r\n this.httpCommonService\r\n .getList(url)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: (data: any) => {\r\n this.fleetConnection = data;\r\n if (data)\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.CommunicationFleetEstablished\"),\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Message\")\r\n );\r\n else\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.ErrorCommunicatingFleet\"),\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Error\")\r\n );\r\n },\r\n });\r\n }\r\n public HealthCheckDelino(showDialog = true): void {\r\n const branchId = this.accountservice.authService.currentBranchId;\r\n const url = `Delino/HealthCheckDelino?branchCode=` + branchId;\r\n this.httpCommonService\r\n .get(url)\r\n .pipe(take(1))\r\n .subscribe((res: { delinoConnection: boolean; hasAnyDelinoSaleMethodBranch: boolean }) => {\r\n this.hasAnyDelinoSaleMethodBranch = res.hasAnyDelinoSaleMethodBranch;\r\n this.delinoConnection = res.delinoConnection;\r\n if (showDialog) {\r\n if (this.delinoConnection)\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.CommunicationDelinoEstablished\"),\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Message\")\r\n );\r\n else\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.CommunicationDelinoNotEstablished\"),\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Error\")\r\n );\r\n }\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n public ImportAndExport(): void {\r\n this.dialogService.open(ImportAndExportComponent, { group: null }, { closeOnClickOutside: false }).pipe(take(1)).subscribe();\r\n }\r\n\r\n public openBackUpDialog(): void {\r\n this.dialogService.open(backUpComponent, { group: null }, { closeOnClickOutside: false }).pipe(take(1)).subscribe();\r\n }\r\n\r\n public showDelino(branchId: number) {\r\n this.httpCommonService\r\n .get(\"SaleMethodBranch/GetDelinoSaleMethodBranch?BranchId=\" + branchId)\r\n .pipe(take(1))\r\n .subscribe((data: SaleMethodBranchModel) => {\r\n const index = this.delinoIgnoredOrdersInfos.findIndex((x) => x.branchId === branchId);\r\n if (index !== -1) this.delinoIgnoredOrdersInfos.splice(index, 1);\r\n this.setEmptyDelinoNotif(branchId);\r\n if (!data) return;\r\n\r\n let saleMethodTitleName = data.SaleMethodTitle;\r\n let menu = {\r\n title: saleMethodTitleName,\r\n isCloseable: true,\r\n icon: \"{ icon: 'dashboard', pack: 'sepidzicon' }\",\r\n active: true,\r\n responsive: true,\r\n data: [{ provide: VoucherKindInfo, useValue: { VoucherKindId: data.Id, orderOnlinePage: true } }],\r\n componentType: OrderPageComponent,\r\n hasbadge: false,\r\n };\r\n const onlineOrderTabIndex = this.tabsservice.tabItemSubject.value?.findIndex(\r\n (x) => x.data?.find((z) => z.useValue?.orderOnlinePage) || x.title === saleMethodTitleName\r\n );\r\n if (onlineOrderTabIndex > -1) {\r\n this.tabsservice.tabItemonRefreshData.next(\"Delino\");\r\n this.tabsservice.setSelectedTab(onlineOrderTabIndex);\r\n } else {\r\n this.tabsservice.open(menu);\r\n }\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n private init(): void {\r\n this.notification.init();\r\n this.pushSubscription = this.notification.notification$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((value) => {\r\n this.handleNotifyAction(value);\r\n });\r\n }\r\n\r\n private handleNotifyAction(value: NotificationModel): void {\r\n const currentInfo = this.accountservice.authService.currentInformation();\r\n switch (value.Key) {\r\n case \"fleetConnection\":\r\n this.fleetConnection = value.Message ?? false;\r\n if (!currentInfo.SafirCourierFleetManagement) this.fleetConnection = false;\r\n break;\r\n case \"smartConnection\":\r\n this.smartConnection = value.Message ?? false;\r\n if (!currentInfo.SmartEvaluation) this.smartConnection = false;\r\n break;\r\n case \"DelinoConnection\":\r\n this.delinoConnection = value.Message ?? false;\r\n this.cd.detectChanges();\r\n break;\r\n case \"DelinoAutoAcceptFactor\": // auto\r\n this.handleAutoDelinoFactor(value);\r\n break;\r\n case \"UpdateVersion\": // auto\r\n this.updateVersion(value.Message);\r\n break;\r\n case \"DelinoHasOrder\": //manual\r\n this.handleDelinoNotify(value);\r\n break;\r\n case \"AcceptMissionTimeOut\": //manual\r\n this.sts.showToast(\r\n \"warning\",\r\n `${this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.InvoiceNumber\")} ${value.Message} ${this.translate.instant(\r\n \"ClientApp.Projects.FrameWorkShell.Header.NotConfirmedCourier\"\r\n )} `,\r\n null,\r\n 200000\r\n );\r\n break;\r\n case \"VehicleHelpMessage\": //manual\r\n this.sts.showToast(\r\n \"warning\",\r\n `${this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Driver\")} *${value.Message}* ${this.translate.instant(\r\n \"ClientApp.Projects.FrameWorkShell.Header.SupportRequest\"\r\n )}`,\r\n null,\r\n 200000\r\n );\r\n break;\r\n case \"LinkPaymentConnection\":\r\n this.linkPaymentConnection = value.Message ?? false;\r\n if (!currentInfo.PaymentPanelAVA) this.linkPaymentConnection = false;\r\n this.commmon.smartConnection = this.linkPaymentConnection;\r\n break;\r\n case \"UpdateWareHouseStock\":\r\n const info = this.authService.currentInformation();\r\n const isLight = info.SepidzWebKind === SoftWareLicenseKind.RestaurantLightWeb;\r\n if (isLight) return;\r\n this.updateWareHouseStockItems(value);\r\n break;\r\n case \"LocalSettingHasChanges\":\r\n this.getLocalSetting(false);\r\n break;\r\n case \"NewNotification\":\r\n this.getNotifications();\r\n break;\r\n }\r\n }\r\n updateVersion(msg: boolean) {\r\n if (msg === true) {\r\n this.storage.clearAllStorage();\r\n window.location.reload();\r\n }\r\n }\r\n\r\n private handleDelinoNotify(value: NotificationModel): void {\r\n const hasAnyShowOnlineInvoiceSetting = value.Message?.hasAnyShowOnlineInvoice;\r\n const canShowDelinoNotify = hasAnyShowOnlineInvoiceSetting ? this.showOnlineInvoice : true;\r\n if (\r\n canShowDelinoNotify &&\r\n this.delinoConnection &&\r\n ((this.isCallCenter && this.currentBranch.AccessToAllBranches) || value.Message.branchId == this.accountservice.authService.currentBranchId)\r\n ) {\r\n this.increasingTheNumberOfDelinoNotifications(value.Message.branchId);\r\n this.playSound();\r\n this.cd.markForCheck();\r\n if (this.delinoDialogIsOpened) return;\r\n this.delinoDialogIsOpened = true;\r\n this.dialogService\r\n .open(\r\n DelinoNotificationComponent,\r\n { errorMessage: \"NotFound!!!\", branchId: value.Message.branchId },\r\n { closeOnClickOutside: false, autoFocus: true, closeOnEscape: true }\r\n )\r\n .pipe(\r\n take(1),\r\n tap((x) => {\r\n this.delinoDialogIsOpened = false;\r\n if (x) {\r\n this.delinoIgnoredOrdersInfos = this.delinoIgnoredOrdersInfos.filter((x) => x.branchId !== value.Message.branchId);\r\n this.cd.markForCheck();\r\n }\r\n }),\r\n delay(2000)\r\n )\r\n .subscribe((x) => {\r\n if (x) this.setEmptyDelinoNotif(value.Message.branchId);\r\n });\r\n }\r\n }\r\n\r\n private increasingTheNumberOfDelinoNotifications(branchId: number): void {\r\n const info = this.delinoIgnoredOrdersInfos.find((x) => x.branchId == branchId);\r\n if (info) info.count++;\r\n else {\r\n const info: DelinoIgnoredNotifyType = { branchId, count: 1, branchTitle: \"\" };\r\n this.delinoIgnoredOrdersInfos.push(info);\r\n }\r\n this.httpCommonService\r\n .create(\"ExternalNotification/IncreasingDelinoNotif?ReferenceId=\" + branchId, {})\r\n .pipe(take(1))\r\n .subscribe((x) => {});\r\n }\r\n\r\n private setEmptyDelinoNotif(branchId: number): void {\r\n this.httpCommonService\r\n .put(\"ExternalNotification/SetEmptyDelinoNotif?ReferenceId=\" + branchId, {})\r\n .pipe(take(1))\r\n .subscribe((x) => {});\r\n }\r\n\r\n private handleAutoDelinoFactor(value: NotificationModel): void {\r\n if (this.receiveOnlineInvoice && this.delinoConnection) {\r\n this.sts.showToast(\"success\", this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.NewOrderDelino\"), null, 7000);\r\n this.httpCommonService\r\n .get(\"SaleMethodBranch/GetDelinoSaleMethodBranch?BranchId=\" + value.Message.BranchId)\r\n .pipe(take(1))\r\n .subscribe((data: SaleMethodBranchModel) => {\r\n const saleMethodDelinoId = data.Id;\r\n const onlineOrderTabIndex = this.tabsservice.tabItemSubject?.value?.findIndex(\r\n (x) => x.data?.find((z) => z.useValue?.orderOnlinePage) || x.title === data?.SaleMethodTitle\r\n );\r\n if (onlineOrderTabIndex > -1) {\r\n const id = value.Message.Id;\r\n this.tabsservice.tabItemonRefreshData.next(\"DelinoFactorId:\" + id);\r\n } else {\r\n let menu = {\r\n title: data.SaleMethodTitle,\r\n isCloseable: true,\r\n icon: \"{ icon: 'dashboard', pack: 'sepidzicon' }\",\r\n active: true,\r\n responsive: true,\r\n data: [\r\n {\r\n provide: VoucherKindInfo,\r\n useValue: { VoucherKindId: saleMethodDelinoId, orderOnlinePage: true, autoDelinoInvoiceId: value.Message.Id },\r\n },\r\n ],\r\n componentType: OrderPageComponent,\r\n hasbadge: false,\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private getLocalSetting(firstCall = true): void {\r\n const computerName: string = this.commmon.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .get(\"LocalSetting/GetLocalSetting\" + (computerName ? \"?ComputerName=\" + computerName : \"\"))\r\n .pipe(\r\n take(1),\r\n tap((data: LocalSetting[]) => {\r\n this.commmon.storage.savePermanentData(data, ClearableCache.LocalSetting);\r\n if (data.length) {\r\n this.showOnlineInvoice = data.some((x) => x.ShowOnlineInvoice);\r\n this.receiveOnlineInvoice = data.some((x) => x.ReceiveOnlineInvoice);\r\n } else {\r\n this.showOnlineInvoice = false;\r\n this.receiveOnlineInvoice = false;\r\n }\r\n }),\r\n delay(500)\r\n )\r\n .subscribe(() => {\r\n this.currentBranch = this.authService.currentBranch;\r\n if (\r\n !this.currentBranch.NoDisplayDashboard &&\r\n this.currentInformation.SepidzWebKind !== SoftWareLicenseKind.RestaurantLightWeb &&\r\n !this.commmon.isMobileMode &&\r\n firstCall\r\n ) {\r\n let menu = {\r\n title: \"ClientApp.Pages.Dashboard\",\r\n isCloseable: true,\r\n icon: \"{ icon: 'dashboard', pack: 'sepidzicon' }\",\r\n active: true,\r\n responsive: true,\r\n data: [],\r\n componentType: DashboardComponent,\r\n hasbadge: false,\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n this.cd.detectChanges();\r\n });\r\n }\r\n\r\n private GetFirstLogin(): void {\r\n const url = `Authorization/GetFirstLogin/${this.authService.currentUser?.Id}`;\r\n this.httpCommonService\r\n .get(url)\r\n .pipe(take(1))\r\n .subscribe((data: string) => {\r\n const [hour, minute] = data.split(\":\").map(Number);\r\n const formattedHour = hour < 10 ? \"0\" + hour : hour;\r\n const formattedMinute = minute < 10 ? \"0\" + minute : minute;\r\n this.UserEnterTime = `${formattedHour}:${formattedMinute}`;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n openImageUpload(fileToUpload: any): boolean {\r\n if (fileToUpload.target.files && fileToUpload.target.files[0]) {\r\n const max_size = 300000;\r\n const max_height = 512;\r\n const max_width = 512;\r\n\r\n if (fileToUpload.target.files[0].size > max_size) {\r\n let error =\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.UploadedImageSizeLessThan\") +\r\n max_size / 1000 +\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.BeKb\");\r\n this.sts.showDialog(error, this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Error\"));\r\n return false;\r\n }\r\n const formData = new FormData();\r\n formData.append(\"photo\", fileToUpload.target.files[0]);\r\n formData.append(\"userId\", this.authService.currentUser?.Id.toString());\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n let image = new Image();\r\n image.src = e.target.result;\r\n image.onload = (rs: any): any => {\r\n const img_height = rs.currentTarget[\"height\"];\r\n const img_width = rs.currentTarget[\"width\"];\r\n if (img_height > max_height || img_width > max_width) {\r\n let error = this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.ImageSizeNotAllowed\");\r\n this.sts.showDialog(error, this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Error\"));\r\n return false;\r\n } else {\r\n this.httpCommonService\r\n .upload(\"Personnel/UploadPhotoByUserId\", formData)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: (response: any) => {\r\n this.userAvatar = response.imagePath + this.getRandom();\r\n this.cd.markForCheck();\r\n },\r\n error: (err) =>\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.ErrorLoadingImage\"),\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Header.Error\")\r\n ),\r\n });\r\n }\r\n };\r\n };\r\n reader.readAsDataURL(fileToUpload.target.files[0]);\r\n }\r\n }\r\n\r\n getRandom() {\r\n return \"?\" + new Date().getTime();\r\n }\r\n\r\n private getUserAvatar(): void {\r\n const url = \"Personnel/GetPersonnelPhoto/\" + this.authService.currentUser?.Id;\r\n this.httpCommonService\r\n .get(url)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: (response: any) => {\r\n if (response != null && response.imagePath != null) {\r\n this.userAvatar = response.imagePath;\r\n }\r\n },\r\n });\r\n }\r\n\r\n private startTimer(): void {\r\n this.interval = setInterval(() => {\r\n if (this.timeLeft > 0) {\r\n this.timeLeft--;\r\n } else {\r\n this.timeLeft = 60;\r\n this.pauseTimer();\r\n this.refreshTime();\r\n this.startTimer();\r\n }\r\n }, 1000);\r\n }\r\n\r\n private refreshTime(): void {\r\n const m = moment();\r\n this.TimeString = m.locale(\"fa\").format(\"HH:mm\");\r\n }\r\n\r\n private pauseTimer(): void {\r\n clearInterval(this.interval);\r\n }\r\n\r\n private openFullscreen(): void {\r\n if (this.elem.requestFullscreen) {\r\n this.elem.requestFullscreen();\r\n } else if (this.elem[\"mozRequestFullScreen\"]) {\r\n /* Firefox */\r\n this.elem.mozRequestFullScreen();\r\n } else if (this.elem[\"webkitRequestFullscreen\"]) {\r\n /* Chrome, Safari and Opera */\r\n this.elem.webkitRequestFullscreen();\r\n } else if (this.elem[\"msRequestFullscreen\"]) {\r\n /* IE/Edge */\r\n this.elem.msRequestFullscreen();\r\n }\r\n }\r\n\r\n private closeFullscreen(): void {\r\n if (this.document.exitFullscreen) {\r\n this.document.exitFullscreen();\r\n } else if (this.document.mozCancelFullScreen) {\r\n /* Firefox */\r\n this.document.mozCancelFullScreen();\r\n } else if (this.document.webkitExitFullscreen) {\r\n /* Chrome, Safari and Opera */\r\n this.document.webkitExitFullscreen();\r\n } else if (this.document.msExitFullscreen) {\r\n /* IE/Edge */\r\n this.document.msExitFullscreen();\r\n }\r\n }\r\n\r\n private updateWareHouseStockItems(value: NotificationModel) {\r\n const onlineOrderTabIndex = this.tabsservice.tabItemSubject.value.findIndex((x) => x.componentType.name === \"OrderPageComponent\");\r\n if (onlineOrderTabIndex === -1) {\r\n this.indexedDbService.get(\"FrontOffice\", \"InvDaily\").then((data) => {\r\n if (data) {\r\n (value.Message?.goodsInfo as InvDailyWarehouse[]).forEach((newInfo) => {\r\n let goodsInfo = data.find((x) => x.GoodsId == newInfo.GoodsId && x.BranchId === this.accountservice.authService.currentBranchId);\r\n if (goodsInfo) {\r\n goodsInfo.Amount = newInfo.Amount;\r\n goodsInfo.MinAmount = newInfo.MinAmount;\r\n goodsInfo.WasteAmount = newInfo.WasteAmount;\r\n goodsInfo.PrevRemainAmount = newInfo.PrevRemainAmount;\r\n goodsInfo.EntryAmount = newInfo.EntryAmount;\r\n goodsInfo.CancelAmount = newInfo.CancelAmount;\r\n goodsInfo.SaleAmount = newInfo.SaleAmount;\r\n } else data.push(newInfo);\r\n });\r\n this.indexedDbService.put(\"FrontOffice\", \"InvDaily\", data).then();\r\n this.updateStockInWebByInvSignal(this.accountservice.authService.currentBranchId, data, value.Message?.eventName);\r\n } else {\r\n this.loadWareHouseStockItems()\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n (value.Message?.goodsInfo as InvDailyWarehouse[]).forEach((newInfo) => {\r\n let goodsInfo = res.find((x) => x.GoodsId == newInfo.GoodsId && x.BranchId === this.accountservice.authService.currentBranchId);\r\n if (goodsInfo) {\r\n goodsInfo.Amount = newInfo.Amount;\r\n goodsInfo.MinAmount = newInfo.MinAmount;\r\n goodsInfo.WasteAmount = newInfo.WasteAmount;\r\n goodsInfo.PrevRemainAmount = newInfo.PrevRemainAmount;\r\n goodsInfo.EntryAmount = newInfo.EntryAmount;\r\n goodsInfo.CancelAmount = newInfo.CancelAmount;\r\n goodsInfo.SaleAmount = newInfo.SaleAmount;\r\n } else res.push(newInfo);\r\n });\r\n this.indexedDbService.put(\"FrontOffice\", \"InvDaily\", res).then();\r\n this.updateStockInWebByInvSignal(this.accountservice.authService.currentBranchId, res, value.Message?.eventName);\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n private loadWareHouseStockItems(): Observable {\r\n const branchId = this.authService.localStorage.getData(\"BranchId\");\r\n return this.httpCommonService.get(\"Invoice/GetWarehouseStockItems?branchId=\" + branchId);\r\n }\r\n\r\n updateStockInWebByInvSignal(branchId: number, warehouseStockItems: InvDailyWarehouse[], eventName: string) {\r\n this.indexedDbService.get(\"FrontOffice\", \"Categories\").then((allCategories) => {\r\n if (allCategories) {\r\n this.updateItems(allCategories, branchId, warehouseStockItems, eventName);\r\n } else {\r\n const computerName: string = this.commmon.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .get(\"ItemCategory/GetOrderItemCategory\" + (computerName ? \"?ComputerName=\" + computerName : \"\"))\r\n .pipe(take(1))\r\n .subscribe((data: OrderItemCategory[]) => {\r\n this.indexedDbService.put(\"FrontOffice\", \"Categories\", data).then();\r\n this.updateItems(data, branchId, warehouseStockItems, eventName);\r\n });\r\n }\r\n });\r\n }\r\n\r\n private updateItemNotAvailableGoodIds(BranchId: number, item: OrderItem, eventName: string) {\r\n const itemBranch = item.Branches.find((x) => x.BranchId === BranchId);\r\n if (\r\n item.notAvailableGoodIds?.length &&\r\n itemBranch &&\r\n (itemBranch.StockInWeb === StockInWebKind.Available || itemBranch.StockInWeb === StockInWebKind.UnAvailableOnSite)\r\n ) {\r\n itemBranch.StockInWeb = StockInWebKind.UnAvailableFromInv;\r\n item.StockInWeb = StockInWebKind.UnAvailableFromInv;\r\n } else if (\r\n !item.notAvailableGoodIds?.length &&\r\n itemBranch &&\r\n itemBranch.StockInWeb !== StockInWebKind.Available &&\r\n (eventName !== \"invoiceChanges\" || itemBranch.StockInWeb !== StockInWebKind.UnAvailable)\r\n ) {\r\n itemBranch.StockInWeb = StockInWebKind.Available;\r\n item.StockInWeb = StockInWebKind.Available;\r\n }\r\n }\r\n\r\n private updateItems(allCategories: any, branchId: number, warehouseStockItems: InvDailyWarehouse[], eventName: string) {\r\n allCategories.forEach((ele) => {\r\n ele.Items.forEach((it) => {\r\n if (it.Branches?.length) {\r\n const usedGoodsInItem = warehouseStockItems?.filter(\r\n (f) => (f.PrevRemainAmount || f.EntryAmount) && f.BranchId === branchId && f.ItemsInRelation.some((x) => x.Id === it.Id)\r\n );\r\n it.notAvailableGoodIds = usedGoodsInItem.filter((x) => x.Amount <= 0).map((x) => x.GoodsId);\r\n if (usedGoodsInItem.length) this.updateItemNotAvailableGoodIds(branchId, it, eventName);\r\n } else {\r\n it.ItemChild?.forEach((child) => {\r\n const usedGoodsInItem = warehouseStockItems?.filter(\r\n (f) => (f.PrevRemainAmount || f.EntryAmount) && f.BranchId === branchId && f.ItemsInRelation.some((x) => x.Id === child.Id)\r\n );\r\n child.notAvailableGoodIds = usedGoodsInItem.filter((x) => x.Amount <= 0).map((x) => x.GoodsId);\r\n if (usedGoodsInItem.length) this.updateItemNotAvailableGoodIds(branchId, child, eventName);\r\n });\r\n }\r\n });\r\n });\r\n }\r\n\r\n private loadLeaflet(): void {\r\n if (this.currentInformation?.SafirCourierFleetManagement && !document.getElementById(\"leafletNeshan\")) {\r\n const script = document.createElement(\"script\");\r\n script.id = \"leafletNeshan\";\r\n script.src = \"https://static.neshan.org/sdk/leaflet/1.4.0/leaflet.js\";\r\n document.head.appendChild(script);\r\n\r\n const link = document.createElement(\"link\");\r\n link.rel = \"stylesheet\";\r\n link.href = \"https://static.neshan.org/sdk/leaflet/1.4.0/leaflet.css\";\r\n document.head.appendChild(link);\r\n }\r\n }\r\n\r\n playSound() {\r\n const element: any = document.getElementById(\"bell\");\r\n element.play();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.CommunicationFleet\" | translate }}\r\n\r\n \r\n
\r\n
\r\n \r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.CommunicationSmart\" | translate }}\r\n\r\n \r\n
\r\n
\r\n \r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.CommunicationDelino\" | translate }}\r\n\r\n \r\n
\r\n
\r\n \r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.CommunicationPaymentLink\" | translate }}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n {{ (currentInformation.HasUpdate ? 1 : 0) + fleetNotificationCount + delinoIgnoredOrdersInfos.length }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.NewVersionSoftwareAvailable\" | translate }} : {{ currentInformation.LastVersion }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.Number\" | translate }} {{ fleetNotificationCount }}\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.UnseenFleetMessage\" | translate }}\r\n
\r\n\r\n 0\">\r\n \r\n
\r\n
\r\n \"Delino\r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.ForBranch\" | translate }} {{ info.branchTitle }}\r\n \r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.Number\" | translate }} {{ info.count }}\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.DelinoUnseenOrder\" | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.NoNewMessages\" | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n {{ currentBranch?.Title }}\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.FiscalYear\" | translate }}: {{ fiscalYear }}\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ TimeString }}\r\n
\r\n
\r\n {{ DateString }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ displayName }}\r\n \r\n
\r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.Login\" | translate }}: \r\n {{ UserEnterTime }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
{{ \"ClientApp.Projects.FrameWorkShell.Header.SelectTheme\" | translate }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
{{ \"ClientApp.Projects.FrameWorkShell.Header.LanguageSelect\" | translate }}
\r\n
\r\n
\r\n {{ len.name }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.BackUp.BackUp\" | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.SoftwareUpdate\" | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.InputOutputReports\" | translate }} \r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.FiscalYear\" | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.ChangePassword\" | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.ViewFullScreen\" | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.StandardModeDisplay\" | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.Logout\" | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
{{ item.title | translate }}
\r\n
\r\n \r\n
\r\n","import { ChangeDetectorRef, Component, OnInit } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ImportAndExportModel } from \"./importexport.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Component({\r\n selector: \"importexport\",\r\n templateUrl: \"./importexport.component.html\",\r\n styleUrls: [\"./importexport.component.scss\"],\r\n})\r\nexport class ImportAndExportComponent extends BaseFormComponent {\r\n Data: any;\r\n isUpload: boolean = false;\r\n selectedFile: any;\r\n SaveReportFileString: string;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private sanitizer: DomSanitizer) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.Projects.FrameWorkShell.Header.ImportExport.InputOutputReports\");\r\n this.setColumns();\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.Data = [\r\n { Id: 1, Title: this.translate(\"ClientApp.Projects.FrameWorkShell.Header.ImportExport.GettingReports\") },\r\n { Id: 2, Title: this.translate(\"ClientApp.Projects.FrameWorkShell.Header.ImportExport.OutputReports\") },\r\n ];\r\n this.columns.push({});\r\n this.orignalColumns = this.columns;\r\n this.model = new ImportAndExportModel();\r\n this.setValue(\"ImportOrExportId\", this.model.ImportOrExportId, true);\r\n this.setValue(\"FilePath\", this.model.FilePath);\r\n this.setValue(\"PathUpload\", this.model.PathUpload);\r\n this.setValue(\"IsUpload\", this.model.IsUpload);\r\n }\r\n onChanged($event) {}\r\n valueChange($event) {\r\n if ($event?.Id == 1) {\r\n this.isUpload = false;\r\n this.setValue(\"IsUpload\", false);\r\n } else {\r\n this.isUpload = true;\r\n this.setValue(\"IsUpload\", true);\r\n }\r\n }\r\n\r\n downloadFile(theJSON: string): void {\r\n const link = document.createElement(\"a\");\r\n link.setAttribute(\"href\", \"data:text/json;charset=UTF-8,\" + encodeURIComponent(theJSON));\r\n link.setAttribute(\"download\", \"ExportReportInformation.json\");\r\n link.style.display = \"none\";\r\n link.click();\r\n }\r\n async save(): Promise {\r\n super.getDataFromFormGroup();\r\n if (!this.isValid()) {\r\n this.selectorService.submitted$.next(this.submitted);\r\n return;\r\n }\r\n if (!this.isUpload) this.model.SaveReportFile = JSON.parse(this.SaveReportFileString);\r\n await this.httpCommonService\r\n .create(\"UserLocalSetting/ImportAndExportReport\", this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (res) => {\r\n if (this.isUpload && res) {\r\n this.downloadFile(JSON.stringify(res));\r\n }\r\n this.close();\r\n });\r\n }\r\n isValid(): boolean {\r\n if (this.formGroup.controls[\"ImportOrExportId\"].value === \"1\" && !this.formGroup.controls[\"FilePath\"].value) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Header.ImportExport.RouteNotSelected\"),\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Header.ImportExport.Attention\")\r\n );\r\n }\r\n if (this.formGroup.controls[\"ImportOrExportId\"].value === \"2\" && !this.formGroup.controls[\"PathUpload\"].value) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Header.ImportExport.RouteNotSelected\"),\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Header.ImportExport.Attention\")\r\n );\r\n }\r\n return super.isValid();\r\n }\r\n\r\n handleUpload(event) {\r\n this.selectedFile = event.target.files[0];\r\n const fileReader = new FileReader();\r\n fileReader.readAsText(this.selectedFile, \"UTF-8\");\r\n fileReader.onload = () => {\r\n this.SaveReportFileString = fileReader.result.toString();\r\n console.log();\r\n };\r\n fileReader.onerror = (error) => {\r\n console.log(error);\r\n };\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\n\r\nexport class ImportAndExportModel {\r\n IsUpload: boolean;\r\n PathUpload: string;\r\n FilePath: string;\r\n ImportOrExportId : number;\r\n SaveReportFile : SaveReportFile[];\r\n constructor(){\r\n this.IsUpload = false;\r\n this.PathUpload = \"\";\r\n this.FilePath = \"\";\r\n this.ImportOrExportId = 1;\r\n this.SaveReportFile = [];\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, OnInit } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\nimport { UpdateInfoViewModel } from \"./update-web-app.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { Observable } from \"rxjs\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\n\r\n@Component({\r\n selector: \"app-update-web-app\",\r\n templateUrl: \"./update-web-app.component.html\",\r\n styleUrls: [\"./update-web-app.component.scss\"],\r\n})\r\nexport class UpdateWebAppComponent extends BaseFormComponent {\r\n UpdateInfo: string[];\r\n constructor(\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n private sanitizer: DomSanitizer,\r\n private splashFormService: SplashFormService\r\n ) {\r\n super(selectorService, cd);\r\n this.setFormGroup();\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"\";\r\n this.areaName = \"\";\r\n this.label = this.translate(\"ClientApp.Projects.FrameWorkShell.Header.UpdateWebApp.SoftwareUpdateInfo\");\r\n super.ngOnInit();\r\n this.GetData();\r\n }\r\n\r\n async GetData() {\r\n this.columns = [];\r\n this.columns.push({});\r\n this.orignalColumns = this.columns;\r\n await this.httpCommonService\r\n .get(\"Home/GetUpdateInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (data: UpdateInfoViewModel) => {\r\n this.UpdateInfo = data.UpdateInfo;\r\n if (this.UpdateInfo == null) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Header.UpdateWebApp.NothingShow\"),\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Header.UpdateWebApp.Warning\"),\r\n DialogType.alert,\r\n () => {\r\n // this.closeDialog(true);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n async save() {\r\n try {\r\n this.splashFormService.openDialog(\"\", this.translate(\"ClientApp.Projects.FrameWorkShell.Header.UpdateWebApp.Saving\"));\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Header.UpdateWebApp.SoftwareNotImplemented\"),\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Header.UpdateWebApp.Warning\"),\r\n DialogType.confirm,\r\n async () => {\r\n if(this.accountService.authService.currentBranch?.HasLocalService){\r\n const url = \"http://\" + this.accountService.authService.currentBranch.LocalServiceIp + \"/UpdateSoftware\";\r\n await this.httpCommonService\r\n .getCustom(url)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async(data: any) => {\r\n },\r\n (err) => {\r\n console.log(err);\r\n });\r\n }\r\n await this.httpCommonService\r\n .get(\"Home/UpdateSoftware\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (data) => {\r\n\r\n setTimeout(() => {\r\n window.location.reload();\r\n console.log(); \r\n }, 15000);\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n this.splashFormService.closeLoading();\r\n },\r\n () => {\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.splashFormService.closeLoading();\r\n });\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n closeDialog(flag: boolean = false): void {\r\n if (flag && (this.isCanceling || this.isCloseable())) {\r\n if (this._id?.metadata?.id) {\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.tabsservice.tabItemOnCanClosing.next(this._id?.metadata?.id);\r\n }\r\n this.close();\r\n }\r\n this.isClosing = false;\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n {{ \"ClientApp.Projects.FrameWorkShell.Header.UpdateWebApp.NothingShow\" | translate }}\r\n
\r\n
\r\n {{ item }}\r\n
\r\n
\r\n \r\n
\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({ name: 'ngxCapitalize' })\r\nexport class CapitalizePipe implements PipeTransform {\r\n transform(input: string): string {\r\n return input && input.length\r\n ? (input.charAt(0).toUpperCase() + input.slice(1).toLowerCase())\r\n : input;\r\n }\r\n}\r\n","export * from './capitalize.pipe';\r\nexport * from './plural.pipe';\r\nexport * from './round.pipe';\r\nexport * from './timing.pipe';\r\nexport * from './number-with-commas.pipe';","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({ name: 'ngxNumberWithCommas' })\r\nexport class NumberWithCommasPipe implements PipeTransform {\r\n transform(input: number): string {\r\n return new Intl.NumberFormat().format(input);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({ name: 'ngxPlural' })\r\nexport class PluralPipe implements PipeTransform {\r\n transform(input: number, label: string, pluralLabel: string = ''): string {\r\n input = input || 0;\r\n return input === 1\r\n ? `${input} ${label}`\r\n : pluralLabel\r\n ? `${input} ${pluralLabel}`\r\n : `${input} ${label}s`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({ name: 'ngxRound' })\r\nexport class RoundPipe implements PipeTransform {\r\n transform(input: number): number {\r\n return Math.round(input);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n@Pipe({ name: 'timing' })\r\nexport class TimingPipe implements PipeTransform {\r\n transform(time: number): string {\r\n if (time) {\r\n const minutes = Math.floor(time / 60);\r\n const seconds = Math.floor(time % 60);\r\n return `${this.initZero(minutes)}${minutes}:${this.initZero(seconds)}${seconds}`;\r\n }\r\n return '00:00';\r\n }\r\n private initZero(time: number): string {\r\n return time < 10 ? '0' : '';\r\n }\r\n}\r\n","import { ModuleWithProviders, NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { CapitalizePipe, PluralPipe, RoundPipe, TimingPipe, NumberWithCommasPipe } from \"./pipes\";\r\nimport { SharedModule } from \"../shared/shared.module\";\r\nimport { CallinfoComponent } from \"./components/header/callinfo/callinfo.component\";\r\nimport { HeaderComponent } from \"./components/header/header.component\";\r\nimport { ImportAndExportComponent } from \"./components/header/importandexport/importexport.component\";\r\nimport { backUpComponent } from \"./components/header/backup/backUp.component\";\r\nimport { UpdateWebAppComponent } from \"./components/header/update-web-app/update-web-app.component\";\r\nimport { DelinoNotificationComponent } from \"./components/header/delino-newOrder-notification/delino-notification.component\";\r\n\r\nconst BASE_MODULES = [CommonModule, FormsModule, ReactiveFormsModule];\r\n\r\nconst COMPONENTS = [\r\n HeaderComponent,\r\n CallinfoComponent,\r\n backUpComponent,\r\n ImportAndExportComponent,\r\n UpdateWebAppComponent,\r\n DelinoNotificationComponent,\r\n];\r\n\r\nconst ENTRY_COMPONENTS = [];\r\n\r\nconst PIPES = [CapitalizePipe, PluralPipe, RoundPipe, TimingPipe, NumberWithCommasPipe];\r\n\r\n@NgModule({\r\n imports: [...BASE_MODULES, SharedModule],\r\n exports: [...BASE_MODULES, ...COMPONENTS, ...PIPES],\r\n declarations: [...COMPONENTS, ...PIPES],\r\n})\r\nexport class ThemeModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: ThemeModule,\r\n };\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { AuthService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { CurrentBranch } from \"projects/sepidz-web-framework/src/lib/models/current-branch.model\";\r\nimport { form_control, Branch, FiscalYear } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { BaseFormComponent } from \"../../shared/controls/base/base-form.component\";\r\nimport { TabularService } from \"../../tabular/tabular.service \";\r\nimport { SelectorService } from \"../../shared/controls/base/selector.service\";\r\n@Component({\r\n selector: \"ngx-current-branch-form\",\r\n templateUrl: \"./current-branch-form.component.html\",\r\n styleUrls: [\"./current-branch-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CurrentBranchFormComponent extends BaseFormComponent {\r\n currentBranch: Branch;\r\n currentFiscalYear: FiscalYear;\r\n constructor(\r\n private authService: AuthService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n private _tabularService: TabularService\r\n ) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"FiscalYear/FiscalYear\";\r\n this.areaName = \"General\";\r\n this.label = this.translate(\"ClientApp.Projects.FrameWorkShell.CurrentBranchForm.FiscalYearSelection\");\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (this.authService.currentFiscalYear) {\r\n this.model.BranchId = this.authService.currentFiscalYear.Id;\r\n this.model.Year = this.authService.currentFiscalYear.Year;\r\n this.model.FiscalYearId = this.authService.currentFiscalYear.Id;\r\n this.model.Year = this.authService.currentFiscalYear.Year;\r\n }\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.Projects.FrameWorkShell.CurrentBranchForm.FiscalYear\"),\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: this.apiName,\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.orignalColumns = this.columns;\r\n this.setFormGroup(this.model);\r\n }\r\n addControl() {\r\n this.setValue(\"FiscalYearId\", this.model.FiscalYearId);\r\n }\r\n async save() {\r\n if (this.currentFiscalYear) this.authService.saveFiscalYear(this.currentFiscalYear);\r\n this._tabularService.closeAll();\r\n this.close();\r\n }\r\n onChanged($event) {\r\n if ($event.Year) {\r\n this.currentFiscalYear = $event as FiscalYear;\r\n this.authService.saveFiscalYear(this.currentFiscalYear);\r\n }\r\n }\r\n}\r\n","0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [group]=\"formGroup\"\r\n [areaName]=\"areaName\"\r\n [model]=\"model\"\r\n [columns]=\"columns\"\r\n (valueChange)=\"onChanged($event)\"\r\n (cancelChange)=\"cancel()\"\r\n (submitChange)=\"save()\">\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CurrentBranchFormComponent } from './current-branch-form.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from '../../shared/shared.module';\r\n@NgModule({\r\n declarations: [CurrentBranchFormComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n ],\r\n exports: [CurrentBranchFormComponent]\r\n})\r\nexport class CurrentBranchModule { }","import { Directive, HostListener, Input, Output, EventEmitter, OnInit } from \"@angular/core\";\r\nimport { NgControl } from \"@angular/forms\";\r\nimport { PersianService } from \"projects/sepidz-web-framework/src/lib/services/persian.service\";\r\n\r\n@Directive({\r\n selector: \"input[SsgMask]\",\r\n})\r\nexport class SsgMaskDirective implements OnInit {\r\n @Input(\"SsgMask\") _SsgMask: string;\r\n @Output() retornoKzMask = new EventEmitter();\r\n constructor(public model: NgControl, private persianService: PersianService) {}\r\n ngOnInit(): void {}\r\n\r\n @HostListener(\"keyup\", [\"$event\"])\r\n onKeyup($event: any) {\r\n if ($event.keyCode === 8 || $event.keyCode === 37 || $event.keyCode === 39 || !this._SsgMask || this._SsgMask.length <= 0) {\r\n return;\r\n }\r\n if ($event.keyCode === 65) $event.target.value = \"\";\r\n\r\n var PrevValue = this.persianService.toEnglishNumberString($event.target.value.toString().replace(/\\_/g, \"\").replace(/\\:/g, \"\"));\r\n if (PrevValue === \"NaN\") PrevValue = \"\";\r\n if (isNaN($event.target.value)) valor = \"\";\r\n\r\n // codigo\r\n var valor = PrevValue.replace(/D\\0/g, \"\");\r\n\r\n var pad = this._SsgMask.replace(/\\D/g, \"\").replace(/0/g, \"_\");\r\n var valorMask = valor + pad.substring(0, pad.length - valor.length);\r\n\r\n var valorMaskPos = 0;\r\n valor = \"\";\r\n for (var i = 0; i < this._SsgMask.length; i++) {\r\n if (isNaN(parseInt(this._SsgMask.charAt(i)))) {\r\n valor += this._SsgMask.charAt(i);\r\n } else {\r\n valor += valorMask[valorMaskPos++];\r\n }\r\n }\r\n $event.target.value = valor;\r\n this.retornoKzMask.emit($event.target.value);\r\n }\r\n\r\n @HostListener(\"blur\", [\"$event\"])\r\n onBlur($event: any) {\r\n // codigo\r\n if (!this._SsgMask || $event.target.value.length === this._SsgMask.length || this._SsgMask.length <= 0) {\r\n return;\r\n }\r\n $event.target.value = \"\";\r\n this.retornoKzMask.emit($event.target.value);\r\n }\r\n}\r\n","import {\r\n OnInit,\r\n EventEmitter,\r\n Output,\r\n Input,\r\n Directive,\r\n OnDestroy,\r\n AfterViewChecked,\r\n AfterViewInit,\r\n HostBinding,\r\n ChangeDetectorRef,\r\n OnChanges,\r\n SimpleChanges,\r\n} from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SelectorService } from \"./selector.service\";\r\nimport { Subject } from \"rxjs\";\r\n@Directive()\r\nexport abstract class BaseControlComponent implements OnInit, OnDestroy, AfterViewChecked, AfterViewInit {\r\n get isValid() {\r\n return this.group.controls[this.name].valid;\r\n }\r\n @Input() valueFieldName: string;\r\n @Input() textFieldName: string;\r\n @Input() apiName: string;\r\n @Input() systemName: string;\r\n @Input() category: string;\r\n @Input() tabOrder?: number = 0;\r\n @Input() textColumnsName: string;\r\n @Input() columnsTitleName: string;\r\n @Input() defaultHeight: number = 40;\r\n @Output() onEnter: EventEmitter = new EventEmitter();\r\n ngUnsubscribe = new Subject();\r\n _pattern: string;\r\n @Output() valueChange = new EventEmitter();\r\n @Output() valueChangeWithName = new EventEmitter();\r\n @Output() valueChangeByApiName = new EventEmitter();\r\n @Input() label: string;\r\n @Input() name: string;\r\n @Input() id: string;\r\n @Input() required: boolean = false;\r\n @Input() hidden: boolean = false;\r\n @Input() disabled: boolean = false;\r\n @Input() textType: string = \"text\";\r\n @Input() isDecimal: boolean = false;\r\n @Input() minLength: string;\r\n @Input() maxLength: string;\r\n @Input() min: number;\r\n @Input() max: number;\r\n @Input() placeholder: string = \"\";\r\n @Input() multiple: boolean = false;\r\n @Input() isNullable: boolean = false;\r\n @Input() patternKey: string;\r\n @HostBinding(\"style.width.px\") width: Number;\r\n @HostBinding(\"style.height.px\") height: Number;\r\n @HostBinding(\"style.margin-bottom.px\") marginbottom: Number = 15;\r\n get f() {\r\n return this.group?.controls;\r\n }\r\n @Input() userClass: string;\r\n @Input() group: UntypedFormGroup;\r\n //private _formBuilder: FormBuilder;\r\n public patterns = {\r\n email: \"([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+\",\r\n url: \"(https?)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]\",\r\n mobile: \"^[0-0][9-9]\\\\d{9}\",\r\n telephone: \"^[1-9]\\\\d{3,7}\",\r\n nationalcode: \"^[0-9]\\\\d{9}\",\r\n lockserial: \"^d{4}-d{4}-d{4}\",\r\n number: \"^\\\\d+$\",\r\n minMax: \"^$|^([0-9]|[1-9][0-9]|[1][0][0])?\",\r\n };\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {}\r\n ngAfterViewInit(): void {}\r\n\r\n ngAfterViewChecked(): void {}\r\n\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n }\r\n ngOnInit() {\r\n if (this.name && this.group?.controls && this.group?.controls[this.name]) {\r\n this.group?.controls[this.name]?.valueChanges?.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && this.group?.controls) {\r\n this.group?.controls[this.name]?.markAllAsTouched();\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n this.selectorService.onSubmited.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && this.group?.controls && this.name) {\r\n this.group?.controls[this.name]?.markAllAsTouched();\r\n this.height = this.defaultHeight;\r\n this.marginbottom = this.defaultHeight - 25;\r\n this.cd.markForCheck();\r\n }\r\n });\r\n this.defaultHeight = this.defaultHeight ?? 40;\r\n this.height = this.defaultHeight;\r\n this.marginbottom = this.defaultHeight - 25;\r\n this.cd.markForCheck();\r\n }\r\n\r\n onChange(value: any) {\r\n this.valueChange.emit(value);\r\n this.valueChangeWithName.emit({ name: this.name, value: value });\r\n this.valueChangeByApiName.emit({ data: value, apiName: this.apiName, KeyName: this.name });\r\n this.cd.markForCheck();\r\n }\r\n formControl() {\r\n return this.group.get(this.name);\r\n }\r\n}\r\n","import { Input, OnInit, OnDestroy, AfterViewInit, Directive, Type, ChangeDetectorRef } from \"@angular/core\";\r\nimport { Permission, form_control, PermissionValues, actionInfo, SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { HttpCommonService, AccountService, ShowToastrService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { AppInjector } from \"../../shared.module\";\r\nimport { ITab, TabularService } from \"../../../tabular/tabular.service \";\r\nimport { UntypedFormGroup, UntypedFormControl, Validators, ValidatorFn, ValidationErrors } from \"@angular/forms\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { FormContainerModel } from \"../../../tabular/form-container-model\";\r\nimport { VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { FormCanDeactivate } from \"./form-can-deactivate\";\r\nimport { SelectorService } from \"./selector.service\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { ReportKindInfo } from \"projects/sepidz-web-framework-data-grid/src/lib/report-kind\";\r\nimport { ReportInfo, StimulSoftReportComponent } from \"src/app/stimul-soft-report/stimul-soft-report.component\";\r\nimport { ReportKind, RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { UserSystemLog } from \"projects/sepidz-web-framework/src/lib/models/user-System-Log.model\";\r\nimport * as XLSX from \"xlsx\";\r\nexport function isNullOrUndefined(value: any) {\r\n return value === null || value === undefined;\r\n}\r\n\r\nexport function isNumber(value: any) {\r\n return typeof value === \"number\";\r\n}\r\n\r\n@Directive()\r\nexport class BaseFormComponent extends FormCanDeactivate implements OnInit, OnDestroy, AfterViewInit {\r\n @Input() public apiName: string;\r\n @Input() public areaName: string;\r\n @Input() label: string;\r\n @Input() currentrow: any = {};\r\n @Input() parentrow: any = {};\r\n\r\n public isClosing: boolean;\r\n public detailName: string;\r\n public isCanceling: boolean = false;\r\n public afterDataLoaded: BehaviorSubject;\r\n public ignoreFormGroupWithDetailName = false;\r\n public model: T = {};\r\n public changeNoCheck: boolean = false;\r\n public ReportSelectorForm: Type;\r\n public ReportCopyForm: Type;\r\n public currentReport: string = \"print\";\r\n public defaultCoumnNumber: number = 4;\r\n public reportName: string;\r\n public reportList: SaveReportFile[];\r\n public reportKinds = ReportKindInfo.reportKinds;\r\n public pathPreFix: string;\r\n public ngUnsubscribe = new Subject();\r\n public noLoadData: boolean = false;\r\n public id: number;\r\n public columns: form_control[] = [];\r\n public orignalColumns: form_control[] = [];\r\n public managePermission: PermissionValues = Permission.managePermission;\r\n public createPermission: PermissionValues = Permission.createPermission;\r\n public editPermission: PermissionValues = Permission.editPermission;\r\n public deletePermission: PermissionValues = Permission.deletePermission;\r\n public actionList: actionInfo[] = [];\r\n public isNewRow = false;\r\n public isSaving: boolean;\r\n public isFocusFinish: boolean;\r\n public isSaved: boolean = false;\r\n public showValidationErrors: boolean = true;\r\n public customColumnInfoApi: string = \"\";\r\n public selectedValues: { [key: string]: boolean } = {};\r\n public controls: Array;\r\n public formGroup: UntypedFormGroup;\r\n public isMultiBranch: boolean;\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n protected submitted = false;\r\n protected NoMaxCode = false;\r\n protected route: ActivatedRoute;\r\n protected dialogService: SimpleModalService;\r\n protected tabsservice: TabularService;\r\n protected accountService: AccountService;\r\n protected translateText: TranslateService;\r\n protected _id: FormContainerModel;\r\n protected VoucherKind: VoucherKindInfo;\r\n protected sts: ShowToastrService;\r\n protected httpCommonService: HttpCommonService;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super();\r\n this.httpCommonService = AppInjector.get(HttpCommonService);\r\n this.route = AppInjector.get(ActivatedRoute);\r\n this.accountService = AppInjector.get(AccountService);\r\n this.translateText = AppInjector.get(TranslateService);\r\n this.dialogService = AppInjector.get(SimpleModalService);\r\n this.sts = AppInjector.get(ShowToastrService);\r\n this.afterDataLoaded = new BehaviorSubject(false);\r\n const info = this.accountService.authService.currentInformation();\r\n this.isMultiBranch =\r\n (info.BranchingAdvancedEnabled || info.BranchingLightEnabled || info.RestaurantCallCenter) &&\r\n this.accountService.authService.currentBranch?.AccessToAllBranches;\r\n }\r\n\r\n async ngOnInit() {\r\n if (this._id?.metadata?.id) {\r\n if (!this.tabsservice.tabItemOnCloseableIds.some((x) => x === this._id?.metadata?.id))\r\n this.tabsservice.tabItemOnCloseableIds.push(this._id?.metadata?.id);\r\n this.tabsservice.tabItemOnCloseableIds.push();\r\n this.tabsservice.tabItemOnClosing.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && x === this._id.metadata.id && !this.isClosing && this.canDeactivate()) {\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.tabsservice.tabItemOnCanClosing.next(this._id.metadata.id);\r\n this.loadReports();\r\n }\r\n });\r\n }\r\n if (this.noLoadData && this.currentrow) this.model = Object.assign({}, this.currentrow as T);\r\n await this.setColumns();\r\n if (this.currentrow && this.currentrow.Id) this.id = !this.id ? this.currentrow.Id : this.id;\r\n else if (!this.noLoadData) this.newRow();\r\n if (this.id && !this.noLoadData) {\r\n try {\r\n const data = await this.httpCommonService.getItem(this.apiName, this.id).pipe(take(1)).toPromise();\r\n if (data) {\r\n this.model = {};\r\n Object.assign(this.model, data as T);\r\n this.isNewRow = this.model === undefined;\r\n this.afterDefult();\r\n this.setdefault();\r\n this.setColumnAttribute();\r\n if (this.detailName && !this.ignoreFormGroupWithDetailName) this.setFormGroup(this.model[this.detailName]);\r\n else this.setFormGroup(this.model);\r\n this.afterDataLoaded.next(true);\r\n this.formGroup.markAsPristine();\r\n }\r\n } catch (error) {\r\n this.getFailedHelper(error);\r\n }\r\n } else {\r\n this.setdefault();\r\n this.afterDefult();\r\n if (this.detailName && !this.ignoreFormGroupWithDetailName) this.setFormGroup(this.model[this.detailName]);\r\n else this.setFormGroup(this.model);\r\n }\r\n this.setUserSystemLog();\r\n if (this.cd) this.cd.markForCheck();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.columns = undefined;\r\n this.orignalColumns = undefined;\r\n this.formGroup = undefined;\r\n this.managePermission = undefined;\r\n this.actionList = undefined;\r\n this.model = undefined;\r\n this.currentrow = undefined;\r\n this.parentrow = undefined;\r\n this.ReportSelectorForm = undefined;\r\n this.ReportCopyForm = undefined;\r\n this.reportList = undefined;\r\n }\r\n\r\n translate(str: string): string {\r\n return this.translateText.instant(str);\r\n }\r\n\r\n setdefault(): void {\r\n if (this.detailName && !this.ignoreFormGroupWithDetailName) this.setFormGroup(this.model[this.detailName]);\r\n else this.setFormGroup(this.model);\r\n }\r\n\r\n afterDefult(): void {\r\n this.cd.markForCheck();\r\n }\r\n\r\n setValue(key: string, value: any, validator: boolean = false, patternKey: string = undefined): void {\r\n if (!this.formGroup) {\r\n let group: any = {};\r\n this.formGroup = new UntypedFormGroup(group);\r\n }\r\n\r\n const controls = this.formGroup.controls;\r\n if (!controls[key]) this.formGroup.addControl(key, new UntypedFormControl(value));\r\n else controls[key].setValue(value);\r\n\r\n controls[key].clearValidators();\r\n if (validator && controls[key]) controls[key].setValidators(Validators.required);\r\n if (patternKey) controls[key].setValidators(Validators.pattern(patternKey));\r\n }\r\n\r\n addControl(): void {\r\n this.cd.markForCheck();\r\n }\r\n\r\n setUserSystemLog(): void {\r\n if (!this.httpCommonService) return;\r\n let log: UserSystemLog = {};\r\n const currentUser = this.accountService.authService.currentUser;\r\n log.UserId = currentUser.Id;\r\n log.UserName = currentUser.UserName;\r\n log.DisplayName = currentUser.DisplayName;\r\n log.SystemName = this.areaName?.length > 20 ? this.areaName.substring(20) : this.areaName;\r\n log.FormName = this.constructor.name.length > 100 ? this.constructor.name.substring(100) : this.constructor.name;\r\n log.FormTitle = this.getFormTitle() ?? this.label;\r\n if (log.FormTitle.length > 100) log.FormTitle = log.FormTitle.substring(100);\r\n this.httpCommonService\r\n .create(\"UserSystemLog/SaveData\", log)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then(\r\n (x) => {},\r\n (error) => {\r\n console.timeLog(error);\r\n }\r\n );\r\n }\r\n\r\n async setColumns() {\r\n if (!this.apiName) return;\r\n try {\r\n const data = await this.httpCommonService\r\n .getControlsList(this.customColumnInfoApi ? this.customColumnInfoApi : this.apiName.split(\"/\")[0], this.customColumnInfoApi ? true : false)\r\n .pipe(take(1))\r\n .toPromise();\r\n if (data) {\r\n (data as form_control[]).forEach((x) => {\r\n x.tabOrder = 0;\r\n });\r\n if (this.detailName) {\r\n this.orignalColumns = (data as form_control[]).find((f) => f.name === this.detailName).DetailControlModels[this.detailName];\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnAttribute();\r\n this.setColumnNumber(this.columns);\r\n this.setFormGroup(this.model[this.detailName]);\r\n } else {\r\n this.orignalColumns = data as form_control[];\r\n this.columns = (data as form_control[]).filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnAttribute();\r\n this.setColumnNumber(this.columns);\r\n this.setFormGroup(this.model);\r\n }\r\n this.cd.markForCheck();\r\n }\r\n } catch (error) {\r\n this.getFailedHelper(error);\r\n }\r\n }\r\n\r\n setColumnNumber(columns: form_control[], columnNumber = this.defaultCoumnNumber): void {\r\n if (columns.some((x) => x.columnNumber && x.isFloat && x.formVisible)) return;\r\n let index: number = 0;\r\n columns\r\n .filter((x) => !x.columnNumber && !x.isFloat && x.formVisible)\r\n .forEach((x) => {\r\n index++;\r\n x.userClass = \"select-sm\";\r\n x.columnNumber = 1;\r\n if (index % columnNumber === 0) x.isFloat = 0;\r\n else x.isFloat = 1;\r\n });\r\n }\r\n\r\n setColumnAttribute(): void {}\r\n\r\n getDetailControlModels(keyName: string): any {\r\n const detailControlModels = this.orignalColumns?.find((x) => x.name === keyName)?.DetailControlModels;\r\n if (detailControlModels) return detailControlModels[keyName];\r\n return [];\r\n }\r\n\r\n setMaxCode(): void {\r\n this.setdefault();\r\n }\r\n\r\n protected getDataFromFormGroup(): T {\r\n Object.keys(this.formGroup.controls).forEach((key) => {\r\n if (this.detailName && !this.ignoreFormGroupWithDetailName) this.model[this.detailName][key] = this.formGroup.controls[key].value;\r\n else this.model[key] = this.formGroup.controls[key].value;\r\n });\r\n return this.model;\r\n }\r\n\r\n preSave(): void {}\r\n\r\n public async save() {\r\n try {\r\n this.preSave();\r\n if (!this.isSaving) {\r\n if (this.isValid()) {\r\n this.beforupdate();\r\n this.sts.showToast(\"info\", \"\", this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.SavingChanges\"));\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n if (this.isNewRow || this.id === undefined || this.id === 0 || Number.isNaN(this.id) || this.id === null) {\r\n await this.httpCommonService\r\n .create(this.apiName, this.getDataFromFormGroup())\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => this.saveSuccessHelper(row),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n } else {\r\n await this.httpCommonService\r\n .update(this.apiName, this.getDataFromFormGroup())\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (response) => this.saveSuccessHelper(),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } catch (e) {\r\n this.saveFailedHelper(e);\r\n }\r\n }\r\n\r\n protected isCloseable(): boolean {\r\n return true;\r\n }\r\n\r\n public saveSuccessHelper(row?: any): void {\r\n this.isClosing = false;\r\n this.submitted = true;\r\n this.selectorService.submitted$.next(this.submitted);\r\n if (row) {\r\n this.model[\"Id\"] = row;\r\n this.id = row;\r\n }\r\n this.isSaving = false;\r\n this.showValidationErrors = false;\r\n if (this.isNewRow)\r\n this.sts.showToast(\r\n \"success\",\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.Successful\"),\r\n `${this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.Information\")} ${this.label} ${this.translate(\r\n \"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.SuccessfullyCreated\"\r\n )}`\r\n );\r\n else\r\n this.sts.showToast(\r\n \"success\",\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.Successful\"),\r\n `${this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.InformationChanges\")} ${this.label} ${this.translate(\r\n \"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.SavedSuccessfully\"\r\n )} `\r\n );\r\n if (this.changesSavedCallback) this.changesSavedCallback();\r\n this.currentrow = this.model;\r\n this.afterupdate();\r\n this.isSaved = true;\r\n this.result = this.model;\r\n if (this.isCloseable()) this.close();\r\n this.selectorService.submitted$.next(false);\r\n }\r\n\r\n protected saveFailedHelper(error: any): void {\r\n this.submitted = false;\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.isClosing = false;\r\n this.isSaving = false;\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.SaveError\"),\r\n `${this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.ErrorSavingChanges\")}: ${Utilities.getHttpResponseMessage(error)}`\r\n );\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.ErrorSavingChanges\")}: ${Utilities.getHttpResponseMessage(error)}`,\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.ErrorMessage\")\r\n );\r\n if (this.changesFailedCallback) this.changesFailedCallback();\r\n this.saveHasError();\r\n }\r\n\r\n protected saveHasError(): void {}\r\n\r\n protected getFailedHelper(error: any): void {\r\n this.isSaving = false;\r\n var errr = Utilities.getHttpResponseMessage(error);\r\n if (!errr.includes(\"Nullable object must have a value.\"))\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.ErrorLoadingInformation\")}: ${Utilities.getHttpResponseMessage(\r\n error\r\n )}`,\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.ErrorMessage\")\r\n );\r\n if (this.changesFailedCallback) this.changesFailedCallback();\r\n }\r\n\r\n public cancel(): void {\r\n this.isCanceling = true;\r\n if (!this.isClosing && this.canDeactivate()) {\r\n this.showValidationErrors = false;\r\n this.sts.showToast(\r\n \"primary\",\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.OptOut\"),\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.OperationAbortedUser\")\r\n );\r\n this.close();\r\n }\r\n }\r\n\r\n newRow(): void {\r\n this.id = 0;\r\n this.isNewRow = true;\r\n this.showValidationErrors = true;\r\n this.selectedValues = {};\r\n this.model = {};\r\n this.setdefault();\r\n if ((!this.id || this.id <= 0 ) && !this.NoMaxCode) this.setMaxCode();\r\n if (this.detailName && !this.ignoreFormGroupWithDetailName) this.setFormGroup(this.model[this.detailName]);\r\n else this.setFormGroup(this.model);\r\n this.setColumnAttribute();\r\n }\r\n\r\n close(): void {\r\n if (this._id) {\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.tabsservice.closeById(this._id.metadata.id);\r\n } else this.closeModal();\r\n }\r\n\r\n isValid(): boolean {\r\n return this.formGroup?.valid;\r\n }\r\n\r\n getFormTitle(): string {\r\n return (\r\n (this.label ?? \"\") +\r\n \"-\" +\r\n (this.isNewRow\r\n ? ` ${this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.New\")}`\r\n : `${this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.Edit\")} `)\r\n );\r\n }\r\n\r\n afterupdate(): void {\r\n this.isNewRow = false;\r\n this.currentrow = this.model;\r\n if (!this.isCloseable()) this.ngOnInit().then();\r\n }\r\n\r\n beforupdate(): void {}\r\n\r\n ngAfterViewInit(): void {}\r\n\r\n getColumnCaption(key: string): string {\r\n let column = this.orignalColumns.find((x) => x.name === key);\r\n if (column !== undefined) return column.label;\r\n return key;\r\n }\r\n\r\n setFormGroup(entity: any = null, col: form_control[] = null): UntypedFormGroup {\r\n let hasOut: boolean = false;\r\n if (entity === null) entity = this.model;\r\n let group: any = {};\r\n if (!col) col = this.orignalColumns ? this.orignalColumns : [];\r\n else hasOut = true;\r\n if (col.length > 0) col = col.sort((a, b) => a.order - b.order);\r\n col.forEach((question) => {\r\n switch (question.textType) {\r\n case \"text\":\r\n case \"password\":\r\n {\r\n let validator: ValidatorFn[] = [];\r\n if (question.required && !question.disabled) validator.push(Validators.required);\r\n if (question.minLength && question.minLength > 0) validator.push(Validators.minLength(question.minLength));\r\n if (question.maxLength && question.maxLength > 0) validator.push(Validators.maxLength(question.maxLength));\r\n if (question.max && question.max > 0) validator.push(Validators.max(question.max));\r\n if (question.min && question.min > 0) validator.push(Validators.min(question.min));\r\n if (question.patternKey) validator.push(Validators.pattern(question.patternKey));\r\n group[question.name] =\r\n !question.disabled && validator.length > 0\r\n ? new UntypedFormControl({ value: !entity ? null : entity[question.name], disabled: question.disabled }, validator)\r\n : new UntypedFormControl({ value: !entity ? null : entity[question.name], disabled: question.disabled });\r\n }\r\n break;\r\n case \"checkbox\":\r\n group[question.name] =\r\n !question.disabled && question.required\r\n ? new UntypedFormControl({ value: !entity ? null : entity[question.name], disabled: question.disabled }, Validators.required)\r\n : new UntypedFormControl({ value: !entity ? null : entity[question.name], disabled: question.disabled });\r\n break;\r\n case \"number\":\r\n {\r\n let validator: ValidatorFn[] = [];\r\n if (question.required && !question.disabled) validator.push(Validators.required);\r\n if (question.minLength && question.minLength > 0) validator.push(Validators.minLength(question.minLength));\r\n if (question.maxLength && question.maxLength > 0) validator.push(Validators.maxLength(question.maxLength));\r\n if (question.max && question.max > 0) validator.push(Validators.max(question.max));\r\n if (question.min && question.min > 0) validator.push(Validators.min(question.min));\r\n group[question.name] =\r\n !question.disabled && validator.length > 0\r\n ? new UntypedFormControl({ value: !entity ? null : entity[question.name], disabled: question.disabled }, validator)\r\n : new UntypedFormControl({ value: !entity ? null : entity[question.name], disabled: question.disabled });\r\n }\r\n break;\r\n case \"date\":\r\n group[question.name] =\r\n !question.disabled && question.required\r\n ? new UntypedFormControl({ value: !entity ? null : entity[question.name], disabled: question.disabled }, Validators.required)\r\n : new UntypedFormControl({ value: !entity ? null : entity[question.name], disabled: question.disabled });\r\n break;\r\n default:\r\n if (question.controlType)\r\n group[question.name] =\r\n !question.disabled && question.required\r\n ? new UntypedFormControl({ value: !entity ? null : entity[question.name], disabled: question.disabled }, Validators.required)\r\n : new UntypedFormControl({ value: !entity ? null : entity[question.name], disabled: question.disabled });\r\n break;\r\n }\r\n });\r\n if (col && col.length > 0 && entity) {\r\n if (entity[\"BranchId\"]) group[\"BranchId\"] = new UntypedFormControl(!entity ? 0 : entity[\"BranchId\"]);\r\n group[\"Id\"] = new UntypedFormControl(!entity[\"Id\"] ? 0 : entity[\"Id\"]);\r\n if (hasOut === true) return new UntypedFormGroup(group);\r\n this.formGroup = new UntypedFormGroup(group);\r\n this.formGroup.updateValueAndValidity();\r\n this.cd.markForCheck();\r\n this.addControl();\r\n }\r\n }\r\n\r\n setFormGroupErrors(): any[] {\r\n if (!this.formGroup?.valid) {\r\n const result = [];\r\n Object.keys(this.formGroup.controls).forEach((key) => {\r\n const controlErrors: ValidationErrors = this.formGroup.get(key).errors;\r\n if (controlErrors) {\r\n Object.keys(controlErrors).forEach((keyError) => {\r\n result.push({\r\n control: key,\r\n error: keyError,\r\n caption: this.getColumnCaption(key),\r\n value: controlErrors[keyError],\r\n });\r\n });\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n }\r\n\r\n getSumWithKey(list: any[], key: string): number {\r\n if (list.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).length <= 0) return 0;\r\n return list\r\n .filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached)\r\n .reduce((s: number, b: number) => (s ?? 0) + (b[key] ?? 0), 0);\r\n }\r\n\r\n closeForm(flag: boolean = false): void {\r\n if (flag && (this.isCanceling || this.isCloseable())) {\r\n if (this._id?.metadata?.id) {\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.tabsservice.tabItemOnCanClosing.next(this._id?.metadata?.id);\r\n }\r\n this.close();\r\n }\r\n this.isClosing = false;\r\n }\r\n\r\n setAllUnTouched() {\r\n const controls = this.formGroup.controls;\r\n Object.keys(controls).forEach((key) => {\r\n if (controls[key].touched === true) controls[key].markAsUntouched();\r\n });\r\n }\r\n\r\n canDeactivate(): boolean | Observable {\r\n if (!this.isClosing) {\r\n this.isClosing = true;\r\n if (!(this.formGroup && this.formGroup.dirty && this.formGroup.touched) || this.changeNoCheck) return true;\r\n\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.UnsavedDataWillExit\"),\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.Warning\"),\r\n DialogType.confirm,\r\n () => this.closeForm(true),\r\n () => this.closeForm(false)\r\n );\r\n }\r\n return false;\r\n }\r\n\r\n loadReports(): void {\r\n if (!this.apiName) return;\r\n let SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) SystemKindName = `${SystemKindName}_${this.VoucherKind?.VoucherKindId}`;\r\n this.httpCommonService\r\n .getList(this.apiName.split(\"/\")[0] + \"/GetReportInfo/\" + SystemKindName + \"/\" + this.apiName.split(\"/\")[0])\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data) => {\r\n if (data) this.reportList = data as [];\r\n if (this.reportName) this.reportList = this.reportList.filter((x) => x.FileName === this.reportName);\r\n });\r\n }\r\n\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n {\r\n dataList: this.reportList,\r\n currentrow: null,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.SelectReport\"),\r\n },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.setReport(reprtName, saveReportFile);\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.setReport(reprtName, saveReportFile);\r\n }\r\n\r\n deleteReport(saveReportFile: SaveReportFile): void {\r\n if (!this.apiName) return;\r\n this.httpCommonService\r\n .deleteByParameter(this.apiName.split(\"/\")[0] + \"/DeleteReportInfo/?id=\" + saveReportFile.Id)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.ReportDeletedSuccessfully\"));\r\n setTimeout(() => this.loadReports(), 200);\r\n },\r\n (error) => {\r\n this.sts.showDialog(\r\n `${this.label}: ${Utilities.getHttpResponseMessage(error)}`,\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.ErrorDeletingReport\")\r\n );\r\n }\r\n );\r\n }\r\n\r\n setReport(reportName: string, saveReportFile: SaveReportFile, data: any = null): void {\r\n if (reportName === \"deleteReport\") {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.SureWantDeleteReport\")}`,\r\n this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.DeleteReport\"),\r\n DialogType.confirm,\r\n () => this.deleteReport(saveReportFile)\r\n );\r\n return;\r\n }\r\n if (this.model) {\r\n switch (reportName) {\r\n case \"print\":\r\n this.print(saveReportFile, this.apiName, data?.length ? data : [this.model]);\r\n break;\r\n case \"preview\":\r\n this.preview(saveReportFile, this.apiName, data?.length ? data : [this.model]);\r\n break;\r\n case \"editReport\":\r\n this.editReport(saveReportFile, this.apiName, data?.length ? data : [this.model]);\r\n break;\r\n case \"copyReport\":\r\n this.copyReport(saveReportFile, data?.length ? data : [this.model]);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n print(saveReportFile: SaveReportFile, apiName: string, dataList: any[]): void {\r\n let reportInfo: ReportInfo = {};\r\n reportInfo.reportKind = ReportKind.print;\r\n reportInfo.apiName = apiName;\r\n reportInfo.reportName = saveReportFile.FileName;\r\n reportInfo.dataList = dataList;\r\n reportInfo.saveReportFile = saveReportFile;\r\n const menu = {\r\n title: saveReportFile.ReportTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n\r\n preview(saveReportFile: SaveReportFile, apiName: string, dataList: any[]): void {\r\n let reportInfo: ReportInfo = {};\r\n reportInfo.reportKind = ReportKind.preview;\r\n reportInfo.apiName = apiName;\r\n reportInfo.reportName = saveReportFile.FileName;\r\n reportInfo.dataList = dataList;\r\n reportInfo.saveReportFile = saveReportFile;\r\n reportInfo.pathPreFix = this.pathPreFix;\r\n reportInfo.startDate = saveReportFile.startDate;\r\n reportInfo.endDate = saveReportFile.endDate;\r\n reportInfo.startNumber = saveReportFile.startNumber;\r\n reportInfo.endNumber = saveReportFile.endNumber;\r\n\r\n const menu = {\r\n title: saveReportFile.ReportTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n\r\n copyReport(saveReportFile: SaveReportFile, dataList: any[]) {\r\n this.dialogService\r\n .open(\r\n this.ReportCopyForm,\r\n {\r\n currentrow: null,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.translate(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Base.ReportDuplication\"),\r\n },\r\n { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile.ReportTitle = model.ReportTitle;\r\n saveReportFile.Id = 0;\r\n this.copyNewReport(saveReportFile, saveReportFile.FileName, this.apiName, dataList);\r\n }\r\n });\r\n }\r\n\r\n copyNewReport(saveReportFile: SaveReportFile, oldReportName: string, apiName: string, dataList: any[]): void {\r\n let reportInfo: ReportInfo = {};\r\n\r\n reportInfo.reportKind = ReportKind.editReport;\r\n reportInfo.apiName = apiName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}_${this.reportList.length}`;\r\n else saveReportFile.FileName = `${this.reportName}_${this.reportList.length}`;\r\n reportInfo.reportTitle = this.label;\r\n reportInfo.dataList = dataList;\r\n reportInfo.oldReportName = oldReportName;\r\n reportInfo.pathPreFix = this.pathPreFix;\r\n reportInfo.saveReportFile = saveReportFile;\r\n reportInfo.startDate = saveReportFile.startDate;\r\n reportInfo.endDate = saveReportFile.endDate;\r\n reportInfo.startNumber = saveReportFile.startNumber;\r\n reportInfo.endNumber = saveReportFile.endNumber;\r\n const menu = {\r\n title: saveReportFile.ReportTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n setTimeout(() => this.loadReports(), 200);\r\n }\r\n\r\n editReport(saveReportFile: SaveReportFile, apiName: string, dataList: any[]): void {\r\n let reportInfo: ReportInfo = {};\r\n reportInfo.reportKind = ReportKind.editReport;\r\n reportInfo.apiName = apiName;\r\n reportInfo.reportName = saveReportFile.FileName;\r\n reportInfo.reportTitle = saveReportFile.ReportTitle;\r\n reportInfo.dataList = dataList;\r\n reportInfo.pathPreFix = this.pathPreFix;\r\n reportInfo.saveReportFile = saveReportFile;\r\n reportInfo.startDate = saveReportFile.startDate;\r\n reportInfo.endDate = saveReportFile.endDate;\r\n reportInfo.startNumber = saveReportFile.startNumber;\r\n reportInfo.endNumber = saveReportFile.endNumber;\r\n const menu = {\r\n title: saveReportFile.ReportTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n\r\n parseExcelDoc(file: File): Promise {\r\n let reader = new FileReader();\r\n return new Promise((resolve, reject) => {\r\n reader.onload = (e: any) => {\r\n const bstr: string = e.target.result;\r\n const wb: XLSX.WorkBook = XLSX.read(bstr, { type: \"binary\" });\r\n const wsname = wb.SheetNames[0];\r\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\r\n let data = XLSX.utils.sheet_to_json(ws, { header: 1 });\r\n resolve(data);\r\n };\r\n reader.onerror = reject;\r\n reader.readAsArrayBuffer(file);\r\n });\r\n }\r\n}\r\n","import { AfterViewInit, Directive, Input, OnDestroy, OnInit, Type } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { UserSystemLog } from \"projects/sepidz-web-framework/src/lib/models/user-System-Log.model\";\r\nimport { AccountService, HttpCommonService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { Subject } from \"rxjs\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { AppInjector } from \"../../shared.module\";\r\n\r\n@Directive()\r\nexport class BaseListComponent implements OnInit, OnDestroy, AfterViewInit {\r\n protected defaultSortKey: string;\r\n protected accountService: AccountService;\r\n @Input() apiName: string = \"\";\r\n @Input() areaName: string = \"\";\r\n @Input() reportName: string = \"\";\r\n public label: string = \"\";\r\n public pagingSize: number = 15;\r\n public noToolBar: boolean = false;\r\n public paging: boolean = true;\r\n public filtrableFields: string = \"\";\r\n public isAdd: boolean = true;\r\n public NoLog: boolean = false;\r\n public isEdit: boolean = true;\r\n public isDelete: boolean = true;\r\n public isMulti: boolean = false;\r\n public isModal: boolean = true;\r\n public isHideFooter: boolean = false;\r\n public systemName: string;\r\n public category: string;\r\n public columns: form_control[] = [];\r\n public orignalColumns: form_control[] = [];\r\n public inputEditorform: Type;\r\n public target?: any;\r\n public actions: any[];\r\n public dataList: any[];\r\n protected ngUnsubscribe = new Subject();\r\n protected dialogService: SimpleModalService;\r\n protected translateText: TranslateService;\r\n protected httpCommonService: HttpCommonService;\r\n public currentTabId: string = \"\";\r\n public group: UntypedFormGroup;\r\n public isMultiBranch: boolean;\r\n\r\n public get sts() {\r\n return AppInjector.get(ShowToastrService);\r\n }\r\n\r\n constructor() {\r\n this.accountService = AppInjector.get(AccountService);\r\n this.dialogService = AppInjector.get(SimpleModalService);\r\n this.translateText = AppInjector.get(TranslateService);\r\n this.httpCommonService = AppInjector.get(HttpCommonService);\r\n\r\n const info = this.accountService.authService.currentInformation();\r\n this.isMultiBranch =\r\n (info.BranchingAdvancedEnabled || info.BranchingLightEnabled || info.RestaurantCallCenter) &&\r\n this.accountService.authService.currentBranch?.AccessToAllBranches;\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n ngAfterViewInit(): void {\r\n if (!this.NoLog) this.setUserSystemLog();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.columns = undefined;\r\n this.orignalColumns = undefined;\r\n this.group = undefined;\r\n this.inputEditorform = undefined;\r\n this.target = undefined;\r\n this.actions = undefined;\r\n this.dataList = undefined;\r\n this.dialogService = undefined;\r\n this.httpCommonService = undefined;\r\n }\r\n\r\n onCreate(event: any) {}\r\n onEdit(event: any) {}\r\n onDelete(event: any) {}\r\n onRowSelected(event: any) {}\r\n\r\n translate(str: string): string {\r\n return this.translateText.instant(str);\r\n }\r\n\r\n protected getDataFromFormGroup(model: any) {\r\n Object.keys(this.group.controls).forEach((key) => {\r\n model[key] = this.group.controls[key].value;\r\n });\r\n return model;\r\n }\r\n\r\n filterColumns(view: any) {\r\n const filterObject = Object.keys(view);\r\n const main = [];\r\n filterObject.forEach((ele) => {\r\n const findItem = this.columns.find((f) => f.name === ele.toString());\r\n if (findItem) main.push(findItem);\r\n });\r\n this.columns = main;\r\n }\r\n\r\n setUserSystemLog() {\r\n if (!this.httpCommonService) return;\r\n let log: UserSystemLog = {};\r\n const currentUser = this.accountService.authService.currentUser;\r\n log.UserId = currentUser.Id;\r\n log.UserName = currentUser.UserName;\r\n log.DisplayName = currentUser.DisplayName;\r\n log.SystemName = this.areaName.length > 20 ? this.areaName.substring(20) : this.areaName;\r\n log.FormName = this.constructor.name.length > 100 ? this.constructor.name.substring(100) : this.constructor.name;\r\n log.FormTitle = this.label.length > 100 ? this.label.substring(100) : this.label;\r\n this.httpCommonService\r\n .create(\"UserSystemLog\", log)\r\n .pipe(take(1))\r\n .subscribe(\r\n (x) => {},\r\n (error) => {\r\n console.timeLog(error);\r\n }\r\n );\r\n }\r\n\r\n setValue(key: string, value: any, validator: boolean = false, patternKey: string = undefined) {\r\n if (!this.group) {\r\n let groupCustom: any = {};\r\n this.group = new UntypedFormGroup(groupCustom);\r\n }\r\n\r\n const controls = this.group.controls;\r\n if (!controls[key]) this.group.addControl(key, new UntypedFormControl(value));\r\n else controls[key].setValue(value);\r\n controls[key].clearValidators();\r\n\r\n if (validator && controls[key]) controls[key].setValidators(Validators.required);\r\n if (patternKey) controls[key].setValidators(Validators.pattern(patternKey));\r\n }\r\n}\r\n","import { AfterContentInit, AfterViewChecked, AfterViewInit, Injectable, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { AccountService, HttpCommonService, LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { Subject } from \"rxjs\";\r\nimport { AppInjector } from \"../../shared.module\";\r\nimport { ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { UntypedFormControl, UntypedFormGroup, ValidatorFn, Validators } from \"@angular/forms\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class BaseService implements OnInit, OnDestroy, AfterViewChecked, AfterViewInit, AfterContentInit {\r\n protected ngUnsubscribe = new Subject();\r\n protected dialogService: SimpleModalService;\r\n protected translateText: TranslateService;\r\n protected httpCommonService: HttpCommonService;\r\n protected accountService: AccountService;\r\n protected storage: LocalStoreManager;\r\n public formGroup: UntypedFormGroup;\r\n public isMultiBranch: boolean;\r\n constructor() {\r\n this.dialogService = AppInjector.get(SimpleModalService);\r\n this.translateText = AppInjector.get(TranslateService);\r\n this.httpCommonService = AppInjector.get(HttpCommonService);\r\n this.accountService = AppInjector.get(AccountService);\r\n this.storage = AppInjector.get(LocalStoreManager);\r\n const info = this.accountService.authService.currentInformation();\r\n this.isMultiBranch =\r\n (info?.BranchingAdvancedEnabled || info?.BranchingLightEnabled || info?.RestaurantCallCenter) &&\r\n this.accountService.authService.currentBranch?.AccessToAllBranches;\r\n }\r\n public get sts() {\r\n return AppInjector.get(ShowToastrService);\r\n }\r\n ngOnInit() {}\r\n translate(str: string): string {\r\n return this.translateText.instant(str);\r\n }\r\n ngAfterViewChecked(): void {}\r\n ngAfterViewInit() {}\r\n ngAfterContentInit() {}\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n }\r\n setValue(key: string, value: any, requiredvalidator: boolean = false, validator?: ValidatorFn) {\r\n if (!this.formGroup) {\r\n let newGroup = {};\r\n this.formGroup = new UntypedFormGroup(newGroup);\r\n }\r\n if (this.formGroup) {\r\n if (!this.formGroup.controls[key]) this.formGroup.addControl(key, new UntypedFormControl(value));\r\n else this.formGroup.controls[key].setValue(value);\r\n }\r\n if (requiredvalidator && this.formGroup && this.formGroup.controls[key]) this.formGroup.controls[key].setValidators(Validators.required);\r\n if (validator && this.formGroup && this.formGroup.controls[key]) this.formGroup.controls[key].setValidators(validator);\r\n }\r\n}\r\n","import {Directive, Output, EventEmitter} from '@angular/core';\r\nimport {NgControl} from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[formControlName][currency]',\r\n host: {\r\n '(ngModelChange)': 'onInputChange($event)',\r\n '(keydown.backspace)':'onInputChange($event.target.value, true)'\r\n }\r\n})\r\nexport class CurrencyMask {\r\n constructor(public model: NgControl) {}\r\n\r\n @Output() rawChange:EventEmitter = new EventEmitter();\r\n\r\n onInputChange(event: any, backspace: any) {\r\n // remove all mask characters (keep only numeric)\r\n var newVal = event.replace(/\\D/g, '');\r\n var rawValue = newVal;\r\n var str = (newVal=='0'?'0.0':newVal).split('.');\r\n str[1] = str[1] || '0';\r\n newVal= str[0].replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1,') + '.' + (str[1].length==1?str[1]+'0':str[1]);\r\n // set the new value\r\n this.model.valueAccessor.writeValue(newVal);\r\n this.rawChange.emit(rawValue)\r\n }\r\n}","import { Directive } from '@angular/core';\r\nimport { ComponentCanDeactivate } from 'projects/sepidz-web-framework/src/lib/can-deactivate/component-can-deactivate';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Directive()\r\nexport class FormCanDeactivate extends ComponentCanDeactivate {\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","import { Directive, Input } from \"@angular/core\";\r\nimport { NG_VALIDATORS, Validator, ValidatorFn, AbstractControl, Validators } from \"@angular/forms\";\r\n@Directive({\r\n selector: \"[min][formControlName],[min][formControl],[min][ngModel]\",\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: MinDirective,\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class MinDirective implements Validator {\r\n private _validator: ValidatorFn;\r\n @Input() public set min(value: string) {\r\n this._validator = Validators.min(parseInt(value, 10));\r\n }\r\n public validate(control: AbstractControl): { [key: string]: any } {\r\n return this._validator(control);\r\n }\r\n}\r\n@Directive({\r\n selector: \"[max][formControlName],[max][formControl],[max][ngModel]\",\r\n providers: [\r\n {\r\n provide: NG_VALIDATORS,\r\n useExisting: MaxDirective,\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class MaxDirective implements Validator {\r\n private _validator: ValidatorFn;\r\n @Input() public set max(value: string) {\r\n this._validator = Validators.max(parseInt(value, 10));\r\n }\r\n public validate(control: AbstractControl): { [key: string]: any } {\r\n return this._validator(control);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Dictionary } from 'projects/sepidz-web-framework/src/lib/models/dictionary';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SelectorService {\r\n dataList: Dictionary = [];\r\n dataStateChange: Dictionary = [];\r\n columns: Dictionary = [];\r\n takeValue: Dictionary = [];\r\n pathsValue: Dictionary = [];\r\n hasDefaultValue: Dictionary = [];\r\n ParetnIdValue: Dictionary = [];\r\n DisabledValue: Dictionary = [];\r\n isMultiValue: Dictionary = [];\r\n isFloatValue: Dictionary = [];\r\n submitted$: BehaviorSubject;\r\n onSubmited: BehaviorSubject;\r\n onDataListChanged: BehaviorSubject;\r\n onParetnIdValueChanged: BehaviorSubject;\r\n onFocused: boolean = false;\r\n constructor() {\r\n this.submitted$ = new BehaviorSubject(false);\r\n this.onSubmited = new BehaviorSubject(false);\r\n this.onDataListChanged = new BehaviorSubject(false);\r\n this.onParetnIdValueChanged = new BehaviorSubject(false);\r\n }\r\n setDataList(key: string, value: any[]) {\r\n this.dataList[key] = value;\r\n this.onDataListChanged.next(true);\r\n }\r\n getDataList(key: string) {\r\n return this.dataList[key];\r\n }\r\n setTakeValue(key: string, value: number) {\r\n this.takeValue[key] = value;\r\n }\r\n getTakeValue(key: string) {\r\n return this.takeValue[key];\r\n }\r\n setColumns(key: string, value: any[]) {\r\n this.columns[key] = value;\r\n }\r\n getColumns(key: string) {\r\n return this.columns[key];\r\n }\r\n setHasDefaultValue(key: string, value: any) {\r\n this.hasDefaultValue[key] = value;\r\n this.onDataListChanged.next(true);\r\n }\r\n getHasDefaultValue(key: string) {\r\n return this.hasDefaultValue[key];\r\n }\r\n setPathsValue(key: string, value: any) {\r\n this.pathsValue[key] = value;\r\n }\r\n getPathsValue(key: string) {\r\n return this.pathsValue[key];\r\n }\r\n setDataStateChange(key: string, value: any) {\r\n this.dataStateChange[key] = value;\r\n }\r\n getDataStateChange(key: string) {\r\n return this.dataStateChange[key];\r\n }\r\n setDisabledValue(key: string, value: any) {\r\n this.DisabledValue[key] = value;\r\n }\r\n getDisabledValue(key: string) {\r\n return this.DisabledValue[key];\r\n }\r\n setisMultiValue(key: string, value: any) {\r\n this.isMultiValue[key] = value;\r\n }\r\n getisMultiValue(key: string) {\r\n return this.isMultiValue[key];\r\n }\r\n setParetnIdValue(key: string, value: any) {\r\n this.ParetnIdValue[key] = value;\r\n this.onParetnIdValueChanged.next(true);\r\n }\r\n getParetnIdValue(key: string) {\r\n return this.ParetnIdValue[key];\r\n }\r\n setIsFloat(key: string, value: any) {\r\n this.isFloatValue[key] = value;\r\n }\r\n getIsFloat(key: string) {\r\n return this.isFloatValue[key];\r\n }\r\n}\r\n","import { Component, Input, ChangeDetectorRef, HostBinding } from \"@angular/core\";\r\nimport { BaseControlComponent } from \"../base/base-control.component\";\r\nimport { SelectorService } from \"../base/selector.service\";\r\n@Component({\r\n selector: \"ssg-button\",\r\n templateUrl: \"button.component.html\",\r\n styleUrls: [\"button.component.scss\"],\r\n})\r\nexport class ButtonComponent extends BaseControlComponent {\r\n @Input() icon: string = \"\";\r\n @Input() appearance: string;\r\n @Input() size: string;\r\n @Input() buttontype: string;\r\n @Input() title: string;\r\n @HostBinding(\"style.margin-bottom.px\") marginbottom: number = 0;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n
\r\n {{ label }}\r\n
\r\n\r\n","import { Component, Input, Output, EventEmitter, ChangeDetectorRef, ChangeDetectionStrategy } from \"@angular/core\";\r\nimport { BaseControlComponent } from \"../base/base-control.component\";\r\nimport { HttpCommonService, LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CheckboxLlist } from \"./checkbox-list.model\";\r\nimport { SelectorService } from \"../base/selector.service\";\r\n\r\n@Component({\r\n //moduleId: module.id,\r\n selector: \"ssg-checkbox-list\",\r\n templateUrl: \"./checkbox-list.component.html\",\r\n styleUrls: [\"./checkbox-list.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CheckboxListComponent extends BaseControlComponent {\r\n ids: number[] = [];\r\n _list: CheckboxLlist[] = [];\r\n selist() {\r\n if (!this._list || this._list.length === 0) {\r\n if (this.items && this.items.length > 0) {\r\n this.items.forEach((x) => {\r\n let item: CheckboxLlist = {};\r\n item.Id = x[this.valueFieldName];\r\n item.Title = x[this.textFieldName];\r\n item.Selected = this.isSelect(item.Id);\r\n this._list.push(item);\r\n setTimeout(() => this.cd.markForCheck(), 50);\r\n });\r\n } else if (this.items[\"Data\"] && this.items[\"Data\"].length > 0) {\r\n this.items[\"Data\"].forEach((element) => {\r\n let item: CheckboxLlist = {};\r\n item.Id = element[this.valueFieldName];\r\n item.Title = element[this.textFieldName];\r\n item.Selected = this.isSelect(item.Id);\r\n this._list.push(item);\r\n setTimeout(() => this.cd.markForCheck(), 50);\r\n });\r\n }\r\n }\r\n }\r\n _items: any[] = [];\r\n get items(): any[] {\r\n return this._items;\r\n }\r\n set items(value: any[]) {\r\n this._items = value;\r\n this.selist();\r\n }\r\n @Input()\r\n get checkboxLlist(): CheckboxLlist[] {\r\n return this._list;\r\n }\r\n set checkboxLlist(value: CheckboxLlist[]) {\r\n this._list = value;\r\n }\r\n @Input()\r\n get dataList(): any[] {\r\n return this.items;\r\n }\r\n set dataList(value: any[]) {\r\n this._items = value;\r\n this.selist();\r\n }\r\n @Input() userClass1: string = \"\";\r\n @Input() userClass2: string = \"\";\r\n constructor(\r\n private _httpCommonService: HttpCommonService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n private lookupservice: LookupService\r\n ) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n if (!this.items) this.items = [];\r\n super.ngOnInit();\r\n\r\n if (this.f[this.name].value) {\r\n this.ids = this.f[this.name].value;\r\n }\r\n\r\n if (this.name && this.f && this.f[this.name]) {\r\n this.f[this.name]?.valueChanges?.subscribe((x) => {\r\n if (x && x.length > 0) this.ids = x;\r\n });\r\n }\r\n\r\n if (this.apiName) {\r\n if (!this.systemName && !this.category) {\r\n this._httpCommonService\r\n .getList(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe({\r\n next: (data) => {\r\n this._items = data as [];\r\n this.selist();\r\n },\r\n error: (error) => {\r\n console.error(error);\r\n },\r\n });\r\n } else {\r\n this.lookupservice\r\n .getLookupbyCategory(this.systemName, this.category)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n this._items = data as [];\r\n this.selist();\r\n });\r\n }\r\n }\r\n }\r\n\r\n isSelect(id: number) {\r\n return this.ids.some((x) => x === id);\r\n }\r\n onChange(event: any) {\r\n if (typeof event.Id == \"number\") {\r\n if (!event.Selected && this.ids.some((x) => x === event.Id)) this.ids = this.ids.filter((x) => x !== event.Id);\r\n else if (!this.ids.some((x) => x === event.Id)) this.ids.push(event.Id);\r\n this.f[this.name].setValue(this.ids);\r\n super.onChange(event);\r\n }\r\n }\r\n}\r\n","
{{ label }}
\r\n
0\">\r\n \r\n
\r\n \r\n
{{ name }} is required
\r\n
\r\n
\r\n","import { Component, ChangeDetectorRef, ChangeDetectionStrategy, OnChanges, SimpleChanges } from \"@angular/core\";\r\nimport { BaseControlComponent } from \"../base/base-control.component\";\r\nimport { SelectorService } from \"../base/selector.service\";\r\n@Component({\r\n selector: \"ssg-checkbox\",\r\n templateUrl: \"checkbox.template.html\",\r\n styleUrls: [\"checkbox.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SepCheckboxComponent extends BaseControlComponent implements OnChanges {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n ngAfterViewChecked() {\r\n super.ngAfterViewChecked();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {}\r\n /**\r\n * keypress binding ngx way\r\n * @param evt\r\n */\r\n key(event) {\r\n if (this.disabled) return;\r\n if (event.code === \"Space\") {\r\n if (this.f[this.name].value) this.f[this.name].setValue(false);\r\n else {\r\n this.f[this.name].setValue(true);\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, Renderer2, ViewChild } from \"@angular/core\";\r\nimport { BaseControlComponent } from \"../base/base-control.component\";\r\nimport { NgModel } from \"@angular/forms\";\r\n\r\nimport { Moment } from \"jalali-moment\";\r\nimport { IDatePickerConfig, ECalendarValue } from \"projects/persian-date-picker/src/lib\";\r\nimport { SelectorService } from \"../base/selector.service\";\r\n\r\nimport * as moment from \"jalali-moment\";\r\n@Component({\r\n //moduleId: module.id,\r\n selector: \"date-picker\",\r\n templateUrl: \"date-picker.template.html\",\r\n styleUrls: [\"date-picker.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DatePickerComponent extends BaseControlComponent {\r\n @ViewChild(NgModel, { static: false }) model: NgModel;\r\n displayDate: Moment | string;\r\n validationMinDate: Moment;\r\n validationMaxDate: Moment;\r\n @Input() mode: string = \"time\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private renderer: Renderer2, private elRef: ElementRef) {\r\n super(selectorService, cd);\r\n }\r\n jalaliConfigExtension: IDatePickerConfig = {\r\n firstDayOfWeek: \"sa\",\r\n monthFormat: \"MMMM YYYY\",\r\n weekDayFormat: \"dd\",\r\n dayBtnFormat: \"D\",\r\n monthBtnFormat: \"MMMM\",\r\n locale: \"fa\",\r\n };\r\n gregorianSystemDefaults: IDatePickerConfig = {\r\n firstDayOfWeek: \"su\",\r\n monthFormat: \"MMM, YYYY\",\r\n disableKeypress: false,\r\n allowMultiSelect: false,\r\n closeOnSelect: undefined,\r\n closeOnSelectDelay: 100,\r\n openOnFocus: true,\r\n openOnClick: true,\r\n onOpenDelay: 0,\r\n weekDayFormat: \"ddd\",\r\n appendTo: document.body,\r\n showNearMonthDays: true,\r\n showWeekNumbers: false,\r\n enableMonthSelector: true,\r\n yearFormat: \"YYYY\",\r\n showGoToCurrent: true,\r\n dayBtnFormat: \"DD\",\r\n monthBtnFormat: \"MMM\",\r\n hours12Format: \"hh\",\r\n hours24Format: \"HH\",\r\n meridiemFormat: \"A\",\r\n minutesFormat: \"mm\",\r\n minutesInterval: 1,\r\n secondsFormat: \"ss\",\r\n secondsInterval: 1,\r\n showSeconds: false,\r\n showTwentyFourHours: false,\r\n timeSeparator: \":\",\r\n multipleYearsNavigateBy: 10,\r\n showMultipleYearsNavigation: false,\r\n locale: \"en\",\r\n hideInputContainer: false,\r\n returnedValueType: ECalendarValue.String,\r\n unSelectOnClick: true,\r\n hideOnOutsideClick: true,\r\n };\r\n\r\n config: IDatePickerConfig = { ...this.gregorianSystemDefaults, ...this.jalaliConfigExtension };\r\n _selectedDate: Moment;\r\n lastDate: Date;\r\n get selectedDate(): Moment {\r\n if (\r\n this.name &&\r\n this.group?.controls &&\r\n this.group?.controls[this.name] &&\r\n this.group?.controls[this.name].value &&\r\n this.lastDate !== this.group?.controls[this.name].value\r\n ) {\r\n this.lastDate = this.group?.controls[this.name].value;\r\n this._selectedDate = moment(this.group?.controls[this.name].value.toString()).locale(\"fa\");\r\n }\r\n return this._selectedDate;\r\n }\r\n set selectedDate(value: Moment) {\r\n this._selectedDate = value;\r\n }\r\n ngAfterViewChecked() {\r\n super.ngAfterViewChecked();\r\n this.renderer.setStyle(this.elRef.nativeElement.querySelector(\".dp-input-container\"), \"height\", this.defaultHeight + \"px\");\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this.config.format = \"YYYY/MM/DD\";\r\n }\r\n change(newValue: any) {\r\n if (newValue) {\r\n var _dateValue = moment.from(newValue, \"fa\", \"YYYY/MM/DD HH:mm:ss\").format(\"YYYY/MM/DD HH:mm:ss\") as any;\r\n const datetime = new Date(_dateValue);\r\n datetime.setHours(12, 0, 0);\r\n new Date(this.group?.controls[this.name].value).setHours(12, 0, 0);\r\n if (new Date(this.group?.controls[this.name].value).getTime() !== datetime.getTime()) {\r\n this.group?.controls[this.name].setValue(datetime);\r\n this.group?.controls[this.name].markAsDirty();\r\n } else if (this.group?.controls[this.name].dirty) this.group?.controls[this.name].markAsPristine();\r\n } else {\r\n this.group?.controls[this.name].setValue(newValue);\r\n }\r\n super.onChange(newValue);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {{'ClientApp.Projects.FrameWorkShell.Shared.Controls.Date.DateNotSelected' | translate}}\r\n \r\n {{group?.controls[name].errors?.dateRange}} \r\n
\r\n
\r\n","import { NgModel, ValidatorFn, NG_VALIDATORS, Validator, UntypedFormControl } from '@angular/forms';\r\nimport { Directive } from '@angular/core';\r\nimport { validateJuriNameFactory } from './validate-juri-name-factory';\r\n@Directive({\r\n selector: '[juriName][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: JuriNameValidator, multi: true }\r\n ]\r\n})\r\nexport class JuriNameValidator implements Validator {\r\n validator: ValidatorFn;\r\n constructor() {\r\n this.validator = validateJuriNameFactory();\r\n }\r\n validate(c: UntypedFormControl) {\r\n return this.validator(c);\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n QueryList,\r\n ViewChildren,\r\n} from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { form_control, Permission, PermissionValues } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { AccountService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ErrorDialogService } from \"projects/sepidz-web-framework/src/lib/services/error-dialog/error-dialog.service\";\r\nimport { Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CommonService } from \"../../../../../../sepidz-web-framework/src/lib/services/common.service\";\r\nimport { SelectorService } from \"../base/selector.service\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"dynamic-form\",\r\n templateUrl: \"dynamic-form.component.html\",\r\n styleUrls: [\"dynamic-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DynamicFormComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @ViewChildren(\"input\") private inputElems: QueryList;\r\n @Input() isSaved: boolean = false;\r\n @Input() isSavedFinish: boolean = false;\r\n @Input() submitButtonDisabled: boolean = false;\r\n @Input() isSubmitted: boolean = false;\r\n @Input() defaultHeight: number = 40;\r\n @Input() group: UntypedFormGroup;\r\n @Input() erroremessage: string;\r\n @Input() hasCheckBoxLookUpTree: boolean = true;\r\n @Input() apiName: string;\r\n @Input() areaName: string;\r\n @Input() label: string;\r\n @Input() model: any;\r\n @Input() saveLabel: string;\r\n @Input() savingLabel: string;\r\n @Input() noChangeLabel: boolean = false;\r\n @Input() isShowModal: boolean = true;\r\n @Input() noSubmit: boolean = false;\r\n @Input() noClose: boolean = false;\r\n @Input() showCloseBtn: boolean = true;\r\n @Input() secondClass: string;\r\n @Input() columns: Array;\r\n @Input() hasDefault: boolean;\r\n @Input() hasfocus: string;\r\n @Input() samePermission: boolean;\r\n @Input() filterLookUp: any[] = [];\r\n @Input() hasManageAccess = false;\r\n @Output() cancelChange = new EventEmitter();\r\n @Output() submitChange = new EventEmitter();\r\n @Output() valueChange = new EventEmitter();\r\n @Output() valueChangeWithName = new EventEmitter();\r\n @Output() valueChangeByApiName = new EventEmitter();\r\n @Output() onRowSelected = new EventEmitter();\r\n @Output() onRowsSelected = new EventEmitter();\r\n @Output() CompleteData = new EventEmitter(true);\r\n\r\n public createPermission: PermissionValues = Permission.createPermission;\r\n public editPermission: PermissionValues = Permission.editPermission;\r\n public deletePermission: PermissionValues = Permission.deletePermission;\r\n\r\n isNewRow: boolean = false;\r\n isloaded: boolean = false;\r\n ngUnsubscribe = new Subject();\r\n managePermission: boolean;\r\n headerLabel: string;\r\n\r\n @HostListener(\"window:keydown\", [\"$event\"])\r\n cs(e: KeyboardEvent) {\r\n if (e.ctrlKey && (e.key.toUpperCase() === \"S\" || e.key === \"س\")) {\r\n e.preventDefault();\r\n this.onsubmitChange(this.group);\r\n }\r\n }\r\n\r\n constructor(\r\n private accountService: AccountService,\r\n private cd: ChangeDetectorRef,\r\n protected errorDialogService: ErrorDialogService,\r\n private selectorService: SelectorService,\r\n private translate: TranslateService,\r\n public CommonService: CommonService\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.defaultHeight = this.defaultHeight ?? 40;\r\n this.selectorService.onFocused = false;\r\n this.selectorService.submitted$.next(this.isSaved);\r\n this.selectorService.submitted$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n this.isSaved = x;\r\n this.isSubmitted = x;\r\n this.cd.markForCheck();\r\n });\r\n this.managePermission = this.canManageForms();\r\n this.cd.markForCheck();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.isloaded = true;\r\n this.inputElems?.first?.nativeElement?.focus();\r\n if (this.group) this.group.markAsUntouched();\r\n this.headerLabel = this.formViewCaption();\r\n this.cd.markForCheck();\r\n }\r\n\r\n canManageForms(): boolean {\r\n if (!this.areaName || !this.apiName) return true;\r\n this.isNewRow = this.model[\"State\"] === RowState.New;\r\n if (this.isloaded || this.hasManageAccess) return true;\r\n return this.accountService.userHasPermission(\r\n `${this.areaName}:${this.apiName}`,\r\n !this.samePermission ? Permission.managePermission : Permission.samePermission\r\n );\r\n }\r\n\r\n formViewCaption(): string {\r\n if (this.noChangeLabel) return this.label;\r\n return `${this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.Form.Show\")} ` + this.label;\r\n }\r\n\r\n isValid(form: UntypedFormGroup) {\r\n let valid: boolean = this.erroremessage === undefined;\r\n if (!valid) this.isSaved = false;\r\n\r\n Object.keys(form.controls).forEach((key) => {\r\n if (form.controls[key].invalid) {\r\n valid = false;\r\n }\r\n });\r\n if (!valid) this.isSaved = false;\r\n return valid;\r\n }\r\n onsubmitChange(form: UntypedFormGroup) {\r\n this.isSubmitted = true;\r\n form.markAllAsTouched();\r\n this.cd.markForCheck();\r\n this.selectorService.onSubmited.next(true);\r\n if (!this.columns || !this.columns.some((x) => x.formVisible) || form.valid || form.disabled) {\r\n this.isSaved = true;\r\n this.submitChange.emit();\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n onCancelChange() {\r\n this.group.markAllAsTouched();\r\n this.cd.markForCheck();\r\n this.selectorService.onSubmited.next(true);\r\n this.cancelChange.emit();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n {{ headerLabel }}\r\n
\r\n
\r\n
\r\n
\r\n 0\"\r\n [columns]=\"columns\"\r\n [group]=\"group\"\r\n [model]=\"model\"\r\n [isShowModal]=\"isShowModal\"\r\n [defaultHeight]=\"defaultHeight\"\r\n (valueChange)=\"valueChange.emit($event)\"\r\n (valueChangeWithName)=\"valueChangeWithName.emit($event)\"\r\n (CompleteData)=\"CompleteData.emit($event)\"\r\n (valueChangeByApiName)=\"valueChangeByApiName.emit($event)\"\r\n [hasDefault]=\"hasDefault\"\r\n [hasfocus]=\"hasfocus\"\r\n [filterLookUp]=\"filterLookUp\"\r\n [hasCheckBoxLookUpTree]=\"hasCheckBoxLookUpTree\"\r\n (onRowsSelected)=\"onRowsSelected.emit($event)\"\r\n (onRowSelected)=\"onRowSelected.emit($event)\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n
\r\n {{ erroremessage }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n AfterViewInit,\r\n OnChanges,\r\n SimpleChanges,\r\n ChangeDetectorRef,\r\n} from \"@angular/core\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { ControlContainer, NgForm, UntypedFormGroup } from \"@angular/forms\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\n@Component({\r\n selector: \"form-control-model\",\r\n templateUrl: \"form-control-model.component.html\",\r\n styleUrls: [\"form-control-model.component.scss\"],\r\n viewProviders: [{ provide: ControlContainer, useExisting: NgForm }],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FormControlModelComponent implements OnInit, AfterViewInit, OnChanges {\r\n @Input() columns: Array;\r\n @Input() _columns: Array;\r\n @Input() model: any;\r\n @Input() public isShowModal: boolean = true;\r\n @Input() public group: UntypedFormGroup;\r\n @Input() hasDefault: boolean;\r\n @Input() defaultHeight: number;\r\n @Input() hasfocus: string;\r\n @Input() hasCheckBoxLookUpTree: boolean = true;\r\n @Input() filterLookUp: any[] = [];\r\n @Output() valueChange = new EventEmitter();\r\n @Output() valueChangeByApiName = new EventEmitter();\r\n @Output() onRowSelected = new EventEmitter();\r\n @Output() onRowsSelected = new EventEmitter();\r\n @Output() valueChangeWithName = new EventEmitter();\r\n @Output() CompleteData = new EventEmitter(true);\r\n\r\n groupColumns: any;\r\n public FormControlTypes = FormControlTypes;\r\n public isFloat: number;\r\n\r\n get stylestring(): string {\r\n return `height:${this.defaultHeight + 0.7}px;margin-bottom:${this.defaultHeight - 20}px`;\r\n }\r\n\r\n constructor(private cd: ChangeDetectorRef) {}\r\n\r\n change(newValue: any) {\r\n this.valueChange.emit(newValue);\r\n this.cd.markForCheck();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this._columns && !this.columns) this._columns = this.columns;\r\n this.columns = this.columns ? this.columns.filter((x) => x.formVisible) : [];\r\n this.columns.forEach((x) => {\r\n if (!x.isFloat) x.isFloat = 0;\r\n });\r\n this.groupColumns = this.groupBy(this.columns, \"columnNumber\");\r\n for (var i = 1; i < this.groupColumns?.length; i++) {\r\n if (Number(this.groupColumns[i].key) - Number(this.groupColumns[i - 1].key) !== 1) {\r\n const diff = Number(this.groupColumns[i].key) - Number(this.groupColumns[i - 1].key);\r\n for (var j = 1; j < diff; j++) {\r\n this.groupColumns.push({ key: (i + j).toString(), value: null });\r\n }\r\n this.groupColumns = this.groupColumns.sort(function (a, b) {\r\n return a.key - b.key;\r\n });\r\n }\r\n }\r\n\r\n this.groupColumns.forEach((element) => {\r\n for (let index = 0; index < element?.value?.length; index++) {\r\n element.value[index].tabOrder = index + 1;\r\n }\r\n });\r\n this.cd.markForCheck();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes[\"columns\"] && this.columns) {\r\n this.groupColumns = this.groupBy(this.columns, \"ColumnNumber\");\r\n for (var i = 1; i < this.groupColumns?.length; i++) {\r\n if (Number(this.groupColumns[i].key) - Number(this.groupColumns[i - 1].key) !== 1) {\r\n const diff = Number(this.groupColumns[i].key) - Number(this.groupColumns[i - 1].key);\r\n for (var j = 1; j < diff; j++) {\r\n this.groupColumns.push({ key: (i + j).toString(), value: null });\r\n }\r\n this.groupColumns = this.groupColumns.sort(function (a, b) {\r\n return a.key - b.key;\r\n });\r\n }\r\n }\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.defaultHeight = this.defaultHeight ?? 40;\r\n\r\n if (this.columns.some((s) => s.name === this.hasfocus)) {\r\n const focusEle = this.columns.find((f) => f.name === this.hasfocus);\r\n if (focusEle) {\r\n const findFocusElement = document.getElementById(focusEle.name);\r\n if (findFocusElement) findFocusElement.focus();\r\n }\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n groupBy(value: Array, field: string): Array {\r\n const groupedObj = value.reduce((prev, cur) => {\r\n if (!prev[cur[field]]) {\r\n prev[cur[field]] = [cur];\r\n } else {\r\n prev[cur[field]].push(cur);\r\n }\r\n return prev;\r\n }, {});\r\n return Object.keys(groupedObj).map((key) => ({\r\n key,\r\n value: groupedObj[key],\r\n }));\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\r\n// validation function\r\nexport function validateJuriNameFactory(): ValidatorFn {\r\n return (c: AbstractControl) => {\r\n let isValid = c.value === 'Juri';\r\n if (isValid) {\r\n return null;\r\n }\r\n else {\r\n return {\r\n juriName: {\r\n valid: false\r\n }\r\n };\r\n }\r\n };\r\n}\r\n","export * from './base/base-control.component';\r\nexport * from './checkbox-new/checkbox.component';\r\nexport * from './date/date-picker.component';\r\nexport * from './form/custom-validitor';\r\nexport * from './radiobox/radiobox.component';\r\nexport * from './input/input.component';\r\nexport * from './validators/hexadecimal-validator';\r\nexport * from './validators/validation';\r\nexport * from './button/button.component';\r\nexport * from './textarea/textarea.component';\r\nexport * from './sepidzmenu/menu.component';\r\n\r\n","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, ViewChild, ElementRef } from \"@angular/core\";\r\nimport { BaseControlComponent } from \"../base/base-control.component\";\r\nimport { CorrectYeKeService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { SelectorService } from \"../base/selector.service\";\r\nimport { formatNumber } from \"@angular/common\";\r\nimport { PersianService } from \"projects/sepidz-web-framework/src/lib/services/persian.service\";\r\nimport { InputDataModel } from \"./inputdata.model\";\r\nimport { isNullOrUndefined } from \"projects/persian-date-picker/src/public-api\";\r\nimport { Validators } from \"@angular/forms\";\r\n\r\n@Component({\r\n selector: \"ssg-input\",\r\n styleUrls: [\"input.component.scss\"],\r\n templateUrl: \"input.component.html\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InputComponent extends BaseControlComponent {\r\n @Input() hideBorder: boolean = false;\r\n @Input() isshow: boolean;\r\n @Input() accept: string;\r\n @Input() isGetPath: boolean;\r\n @Input() labletop: boolean;\r\n\r\n inputFocus: boolean;\r\n orignalTextType: string = \"text\";\r\n externalicon: string;\r\n isFinish: boolean;\r\n inputDataModel: InputDataModel = new InputDataModel();\r\n // maxValidatorIsAdded = false;\r\n private _isPassword = false;\r\n ngAfterViewChecked() {\r\n const ctrl = this.group?.controls[this.name];\r\n if (this.isNumberOnly && this.name && ctrl && ctrl?.value < 0) {\r\n ctrl.setValue(ctrl?.value * -1);\r\n }\r\n if (this.name && ctrl && ctrl.value !== undefined && ctrl.value !== null) {\r\n this.isshow = true;\r\n }\r\n if (this.isReadOnly) {\r\n this.id = this.name;\r\n }\r\n if (!ctrl?.value && (this.inputDataModel.FormControlValue === \"\" || !this.inputDataModel.FormControlValue)) {\r\n this.inputDataModel.FormControlValue = ctrl?.value === null ? null : undefined;\r\n }\r\n if (!this.inputDataModel.FormControlValue && ctrl?.value === \"\") {\r\n this.inputDataModel.FormControlValue = \"\";\r\n }\r\n if (ctrl?.value === 0 && !this.inputDataModel.FormControlValue) this.inputDataModel.FormControlValue = 0;\r\n if (`${ctrl?.value}` !== `${this.inputDataModel.FormControlValue}`) {\r\n this.inputValueCustomizeChange();\r\n }\r\n }\r\n\r\n show() {\r\n this.isshow = !this.isshow;\r\n }\r\n focusFunction($event) {\r\n const ctrl = this.f[this.name];\r\n if (this.max > 0) {\r\n if (this.textType !== \"text\" || this.isNumberOnly || this.isDecimal || this.isFloat /*&& !this.maxValidatorIsAdded*/) {\r\n ctrl.addValidators(Validators.max(this.max));\r\n // this.maxValidatorIsAdded = true;\r\n } //if (!this.maxValidatorIsAdded) {\r\n else ctrl.addValidators(Validators.maxLength(this.max));\r\n // this.maxValidatorIsAdded = true;\r\n // }\r\n }\r\n if (this.patternKey && !ctrl.hasValidator(Validators.pattern(this.patternKey))) {\r\n ctrl.addValidators([Validators.pattern(this.patternKey)]);\r\n }\r\n this.isshow = true;\r\n this.inputFocus = true;\r\n const finItem = document.getElementById(this.name);\r\n if ($event && finItem) {\r\n finItem.focus();\r\n if (this.textType === \"number\") {\r\n finItem.select();\r\n }\r\n }\r\n this.group?.controls[this.name]?.markAsUntouched();\r\n this.focus.emit();\r\n }\r\n focusOutFunction($event) {\r\n if (!this.group?.controls[this.name]?.value || this.group?.controls[this.name]?.value === \"\" || !this.inputDataModel.currentValue) {\r\n this.isshow = false;\r\n this.inputFocus = false;\r\n }\r\n this.group?.controls[this.name]?.markAsTouched();\r\n this.focusout.emit(this.group?.controls[this.name]?.value);\r\n }\r\n @Input() hasClear: boolean;\r\n @Input() isReadOnly: boolean;\r\n @Input() class: string;\r\n @Input() hint: string;\r\n @Input() icon: string;\r\n @Input() righticon: string;\r\n @Input() autocomplete: string = \"off\";\r\n @Input() withComma: boolean = false;\r\n @Input() inputMask: string;\r\n @Input() isNumberOnly: boolean;\r\n @Input() isFloat: boolean;\r\n @Input() inputMode: any;\r\n @Output() iconClick = new EventEmitter();\r\n @Output() focusout = new EventEmitter();\r\n @Output() rightIconClick = new EventEmitter();\r\n @Output() clear = new EventEmitter();\r\n @Output() focus = new EventEmitter();\r\n @Output() externalIconClick = new EventEmitter();\r\n @Output() oninput = new EventEmitter();\r\n @Output() change = new EventEmitter();\r\n @ViewChild(\"inp\") inpElement: ElementRef;\r\n constructor(protected cd: ChangeDetectorRef, protected selectorService: SelectorService, private persianService: PersianService) {\r\n super(selectorService, cd);\r\n\r\n if (!this.autocomplete) {\r\n this.autocomplete = \"off\";\r\n }\r\n }\r\n ngOnInit() {\r\n super.ngOnInit();\r\n if (this.textType === \"password\") {\r\n this._isPassword = true;\r\n this.icon = \"icon-visibility-o\";\r\n }\r\n if (!this.isFloat) this.isFloat = this.selectorService.getIsFloat(this.name);\r\n }\r\n testHasValue(): boolean {\r\n if (this.isshow) return true;\r\n if (this.name && this.group?.controls) {\r\n if (this.isNumberOnly && this.group?.controls[this.name]?.value < 0) {\r\n this.group?.controls[this.name].setValue(this.group?.controls[this.name].value * -1);\r\n }\r\n if (\r\n this.group?.controls[this.name]?.value !== \"\" &&\r\n this.inputDataModel?.currentValue &&\r\n this.group?.controls[this.name]?.value !== undefined &&\r\n this.group?.controls[this.name]?.value !== null\r\n ) {\r\n this.isshow = true;\r\n } else if (this.isReadOnly) {\r\n this.id = this.name;\r\n }\r\n if (this.isReadOnly) {\r\n this.id = this.name;\r\n }\r\n }\r\n return true;\r\n }\r\n getInputValue(value, isInputValue?: boolean) {\r\n if (\r\n !this.required &&\r\n !this.isNullable &&\r\n !value &&\r\n value !== 0 &&\r\n !this.group?.controls[this.name]?.value &&\r\n this.group?.controls[this.name]?.value !== 0 &&\r\n (this.textType === \"number\" || this.textType === \"currency\")\r\n ) {\r\n this.inputDataModel.FormControlValue = \"0\";\r\n if (this.group?.controls[this.name]?.value !== 0 && !this.disabled) this.group?.controls[this.name]?.markAsDirty();\r\n this.group?.controls[this.name].setValue(0);\r\n this.inputDataModel.currentValue = null;\r\n this.focusOutFunction(null);\r\n this.cd.markForCheck();\r\n return;\r\n }\r\n if (\r\n !this.group?.controls[this.name]?.value &&\r\n this.group?.controls[this.name]?.value === 0 &&\r\n (!value || value === 0) &&\r\n isNullOrUndefined(this.inputDataModel.currentValue)\r\n )\r\n if (value.toString().indexOf(\"_\") > -1) {\r\n value = value.replace(/\\_/g, \"\").replace(/\\:/g, \"\");\r\n }\r\n if (this.inputDataModel.currentValue?.toString()?.indexOf(\"_\") > -1) {\r\n this.inputDataModel.currentValue = this.inputDataModel.currentValue.replace(/\\_/g, \"\").replace(/\\:/g, \"\");\r\n }\r\n if (!this.f[this.name]?.value && this.f[this.name]?.value === 0 && (!value || value === 0) && isNullOrUndefined(this.inputDataModel.currentValue))\r\n return;\r\n if (this.textType === \"number\" && this.withComma) this.textType = \"currency\";\r\n if (\r\n this.textType === \"currency\" &&\r\n this.inputDataModel.currentValue &&\r\n this.group?.controls[this.name]?.value ===\r\n this.persianService.toEnglishNumber(this.inputDataModel.currentValue.toString().replace(/,/g, \"\")).toString()\r\n )\r\n return;\r\n if (this.textType !== \"currency\" && this.inputDataModel.currentValue === this.group?.controls[this.name]?.value) return;\r\n\r\n if ((this.textType === \"currency\" || this.textType == \"number\") && value) {\r\n let v = value;\r\n if (typeof value !== \"string\") {\r\n v = value.toString();\r\n }\r\n const number = this.persianService.toEnglishNumber(v.replaceAll(\",\", \"\"));\r\n //return if value have not correct character\r\n if (isNaN(+number) || number.toString().includes(\"e+\")) {\r\n this.setLastValue();\r\n return;\r\n }\r\n }\r\n\r\n if (this.textType === \"decimal\") {\r\n this.handleDecimal(value);\r\n return;\r\n }\r\n\r\n if (this.textType === \"currency\" && value) {\r\n if (this.withComma) {\r\n this.inputDataModel.currentValue =\r\n value && value !== \"\"\r\n ? this.persianService.toPersianNumber(\r\n formatNumber(Number(this.persianService.toEnglishNumber(value.toString().replace(/,/g, \"\"))), \"en-US\", \"1.0-0\")\r\n )\r\n : \"\";\r\n } else {\r\n this.inputDataModel.currentValue = this.persianService.toPersianNumber(value);\r\n }\r\n this.inputDataModel.FormControlValue = this.persianService.toEnglishNumber(value.toString().replace(/,/g, \"\"));\r\n if (this.group?.controls[this.name]?.value !== this.persianService.toEnglishNumber(value.toString().replace(/,/g, \"\")) && !this.disabled)\r\n this.group?.controls[this.name].markAsDirty();\r\n this.group?.controls[this.name].setValue(this.persianService.toEnglishNumber(value.toString().replace(/,/g, \"\")));\r\n } else {\r\n if (this.textType === \"number\" || this.textType === \"custom\") {\r\n this.textType = \"custom\";\r\n this.inputDataModel.currentValue = value ? JSON.parse(JSON.stringify(this.persianService.toPersianNumber(value))) : value;\r\n this.inputDataModel.FormControlValue = value ? JSON.parse(JSON.stringify(this.persianService.toEnglishNumber(value))) : value;\r\n if (this.group?.controls[this.name]?.value !== this.inputDataModel.FormControlValue && !this.disabled)\r\n this.group?.controls[this.name].markAsDirty();\r\n this.group?.controls[this.name].setValue(this.inputDataModel.FormControlValue);\r\n } else {\r\n this.inputDataModel.currentValue = value\r\n ? JSON.parse(JSON.stringify(this.persianService.toPersianNumber(CorrectYeKeService.getCorrectYeKe(value))))\r\n : value;\r\n this.inputDataModel.FormControlValue = value\r\n ? JSON.parse(JSON.stringify(this.persianService.toEnglishNumberString(CorrectYeKeService.getCorrectYeKe(value))))\r\n : value;\r\n if (this.group?.controls[this.name]?.value !== this.inputDataModel.FormControlValue && !this.disabled)\r\n this.group?.controls[this.name].markAsDirty();\r\n this.group?.controls[this.name].setValue(this.inputDataModel.FormControlValue);\r\n }\r\n }\r\n setTimeout(() => {\r\n this.cd.markForCheck();\r\n }, 10);\r\n this.onChange(this.group?.controls[this.name]?.value);\r\n if (isInputValue) this.oninput.emit(this.group?.controls[this.name]?.value);\r\n }\r\n\r\n inputValueCustomizeChange() {\r\n if (this.group?.controls) this.getInputValue(this.group?.controls[this.name]?.value);\r\n }\r\n onEnterKeyDown(event: any) {\r\n if (this.group?.controls[this.name]?.value) {\r\n this.onEnter.emit(this.group?.controls[this.name]?.value);\r\n } else this.onEnter.emit();\r\n }\r\n onIconClick() {\r\n this.iconClick.emit();\r\n this.onPasswordClick();\r\n this.cd.markForCheck();\r\n }\r\n\r\n onExternalIconClick() {\r\n this.externalIconClick.emit();\r\n this.cd.markForCheck();\r\n }\r\n onRightIconClick() {\r\n this.rightIconClick.emit();\r\n this.cd.markForCheck();\r\n }\r\n onClear() {\r\n this.getInputValue(null);\r\n this.clear.emit();\r\n }\r\n numberOnly(event): boolean {\r\n if (\r\n ((this.textType != \"number\" && this.textType != \"custom\" && this.textType != \"currency\") ||\r\n this.isDecimal === false ||\r\n Boolean(this.isDecimal) === false) &&\r\n !this.isNumberOnly\r\n )\r\n return true;\r\n const charCode = event.which ? event.which : event.keyCode;\r\n if (charCode > 31 && (charCode < 48 || charCode > 57) && charCode !== 44) {\r\n if (this.isFloat && (charCode == 46 || charCode == 47)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n changeEvent($event) {\r\n this.change.emit($event);\r\n }\r\n\r\n private setLastValue() {\r\n this.inputDataModel.FormControlValue = this.group?.controls[this.name]?.value;\r\n this.group?.controls[this.name].setValue(this.group?.controls[this.name]?.value);\r\n this.inputDataModel.currentValue = this.group?.controls[this.name]?.value;\r\n this.group?.controls[this.name].markAsDirty();\r\n if (this.inpElement && this.inpElement.nativeElement) {\r\n this.inpElement.nativeElement.value = this.group?.controls[this.name]?.value;\r\n }\r\n\r\n this.cd.markForCheck();\r\n }\r\n\r\n private onPasswordClick() {\r\n if (this._isPassword) {\r\n if (this.textType === \"password\") {\r\n this.textType = \"text\";\r\n this.icon = \"icon-visibility_off-o\";\r\n } else {\r\n this.textType = \"password\";\r\n this.icon = \"icon-visibility-o\";\r\n }\r\n }\r\n }\r\n\r\n private handleDecimal(value: any) {\r\n const isValidValue = this.isValidDecimalValue(value);\r\n if (!isValidValue && value !== \"-\" && value !== \"\") {\r\n this.setLastValue();\r\n return;\r\n }\r\n this.inputDataModel.currentValue = value\r\n ? JSON.parse(JSON.stringify(this.persianService.toPersianNumber(CorrectYeKeService.getCorrectYeKe(value))))\r\n : value;\r\n this.inputDataModel.FormControlValue = value\r\n ? JSON.parse(JSON.stringify(this.persianService.toEnglishNumberString(CorrectYeKeService.getCorrectYeKe(value))))\r\n : value;\r\n const ctrl = this.group?.controls[this.name];\r\n if (ctrl?.value !== this.inputDataModel.FormControlValue && !this.disabled) ctrl.markAsDirty();\r\n ctrl.setValue(this.inputDataModel.FormControlValue);\r\n this.onChange(this.group?.controls[this.name]?.value);\r\n }\r\n\r\n isValidDecimalValue(value: string): boolean {\r\n // Regular expression to match valid numbers (including negative and decimal numbers)\r\n const regex = /^-?\\d+(\\.\\d+)?$/;\r\n // Test if the input value matches the regex\r\n return regex.test(value);\r\n }\r\n}\r\n","
\r\n \r\n \r\n {{ label }}\r\n \r\n \r\n *\r\n \r\n
\r\n
\r\n \r\n \r\n {{ inputDataModel.currentValue }}\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n {{ hint }}\r\n
\r\n \r\n {{ label }} {{ \"Errors.Required\" | translate }} \r\n {{ label }} {{ \"Errors.Pattern\" | translate }} \r\n \r\n {{ (\"Errors.Minlength\" | translate).replace(\"[0]\", label).replace(\"[1]\", min) }}\r\n \r\n \r\n {{ (\"Errors.Maxlength\" | translate).replace(\"[0]\", label).replace(\"[1]\", max ? max : maxLength) }}\r\n \r\n \r\n \r\n {{ f[name].errors?.customerror }}\r\n \r\n \r\n \r\n\r\n","export class InputDataModel {\r\n public currentValue: string;\r\n public FormControlValue: any;\r\n constructor() {\r\n this.currentValue = '';\r\n this.FormControlValue = '';\r\n }\r\n}\r\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, ChangeDetectionStrategy } from \"@angular/core\";\r\nimport { BaseControlComponent } from \"../base/base-control.component\";\r\nimport { HttpCommonService, LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CheckableSettings, TreeItemLookup, TreeViewComponent } from \"@progress/kendo-angular-treeview\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { SelectorService } from \"../base/selector.service\";\r\n\r\n@Component({\r\n selector: \"tree-lookup\",\r\n templateUrl: \"./lookup-tree.component.html\",\r\n styleUrls: [\"./lookup-tree.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LookupTreeComponent extends BaseControlComponent {\r\n _dataList: any[] = [];\r\n @Input() get dataList(): any[] {\r\n return this._dataList;\r\n }\r\n @Input() hasCheckBoxLookUpTree: boolean = true;\r\n set dataList(value: any[]) {\r\n this._dataList = value;\r\n }\r\n\r\n isshow: boolean;\r\n filterdList: any[] = [];\r\n openToggle: boolean = false;\r\n top: string;\r\n left: string;\r\n right: string;\r\n isInside: boolean;\r\n\r\n @Input() isModal: boolean;\r\n @Input() class: string;\r\n public keys: string[] = [];\r\n public children = (dataItem: any): Observable => of(this.dataList.filter((x) => x[this.parentIdName] === dataItem[this.valueFieldName]));\r\n public hasChildren = (dataItem: any): boolean => this.dataList.some((x) => x[this.parentIdName] === dataItem[this.valueFieldName]);\r\n get customWidth() {\r\n return document.getElementById(\"inputbox\").clientWidth - 30;\r\n }\r\n ngAfterViewChecked() {\r\n super.ngAfterViewChecked();\r\n if (this.f[this.name].value || (this.f[this.name].value !== undefined && this.f[this.name].value !== null)) {\r\n this.isshow = true;\r\n }\r\n }\r\n show() {\r\n this.isshow = !this.isshow;\r\n }\r\n focusFunction() {\r\n this.isshow = true;\r\n if (document.getElementById(this.name)) document.getElementById(this.name).focus();\r\n }\r\n focusOutFunction() {\r\n if (!this.f[this.name].value || this.f[this.name].value === \"\") {\r\n this.isshow = false;\r\n }\r\n }\r\n @Input() isPaging: boolean = false;\r\n @Input() autocomplete: string = \"off\";\r\n @Input() ParentId: number;\r\n searchValue: string = \"\";\r\n isFiltering: boolean = false;\r\n @ViewChild(TreeViewComponent, { static: false }) public treeview: TreeViewComponent;\r\n _currentValue: number;\r\n @Output() currentValueChange: EventEmitter = new EventEmitter();\r\n @Input()\r\n set currentValue(value: number) {\r\n this._currentValue = value;\r\n }\r\n get currentValue(): number {\r\n if (!this.filterdList || this.filterdList.length <= 0) this.filterdList = this.dataList;\r\n if (\r\n !this._currentValue ||\r\n (this.name && this.SelectRow && this.f[this.name].value && this.f[this.name].value !== this.SelectRow[this.valueFieldName])\r\n )\r\n this.setCurrentValue();\r\n\r\n return this._currentValue;\r\n }\r\n SelectRow: any;\r\n @Input() apiName: string;\r\n @Input() systemName: string;\r\n @Input() category: string;\r\n @Input() valueFieldName: string;\r\n @Input() textFieldName: string;\r\n @Input() textColumnsName: string;\r\n _paretnIdValue: number;\r\n _parentIdName: string;\r\n\r\n @Input()\r\n get parentIdName(): string {\r\n return this._parentIdName;\r\n }\r\n set parentIdName(value: string) {\r\n this._parentIdName = value;\r\n }\r\n loading = false;\r\n @Output() onRowsSelected = new EventEmitter();\r\n @Output() onRowSelected = new EventEmitter();\r\n @Input() filterKey: string;\r\n @Input() checkedKeys: any[] = [];\r\n public _checkedKeys: any[] = [];\r\n public get checkableSettings(): CheckableSettings {\r\n return {\r\n checkChildren: true,\r\n checkParents: true,\r\n enabled: true,\r\n mode: this.multiple ? \"multiple\" : \"single\",\r\n checkOnClick: true,\r\n };\r\n }\r\n\r\n ngOnInit() {\r\n this.multiple = !this.multiple && this.parentIdName && this.filterKey === \"multi\";\r\n super.ngOnInit();\r\n this._checkedKeys.push(...this.checkedKeys);\r\n window.addEventListener(\"scroll\", this.scroll, true); //third parameter\r\n this.refreshData();\r\n }\r\n async refreshData() {\r\n this.loading = true;\r\n if (this.apiName) {\r\n if (!this.dataList || this.dataList.length <= 0) {\r\n await this._httpCommonService\r\n .getList(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.dataList = data;\r\n this.filterdList = data;\r\n this.loading = false;\r\n this.setCurrentValue();\r\n });\r\n }\r\n }\r\n }\r\n constructor(\r\n private _httpCommonService: HttpCommonService,\r\n private lookupservice: LookupService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n }\r\n setCurrentValue() {\r\n if (!this.SelectRow && this.f[this.name].value) {\r\n if (this.filterdList && this.filterdList.length > 0) {\r\n this.SelectRow = this.filterdList.find((x) => x[this.valueFieldName] === this.f[this.name].value);\r\n this._currentValue = this.SelectRow[this.textFieldName];\r\n this.onRowSelected.emit(this.SelectRow);\r\n this.valueChange.emit(this.currentValue);\r\n }\r\n } else if (this.SelectRow && !this.isFiltering) {\r\n this._currentValue = this.SelectRow[this.textFieldName];\r\n }\r\n }\r\n public onkeyup(value: string): void {\r\n this.filterdList = this.search(this.dataList, value);\r\n }\r\n public search(items: any[], term: string): any[] {\r\n return items.reduce((acc, item) => {\r\n if (this.contains(item.Title, term)) {\r\n acc.push(item);\r\n } else if (item.items && item.items.length > 0) {\r\n const newItems = this.search(item.items, term);\r\n\r\n if (newItems.length > 0) {\r\n acc.push({ Title: item.Title, items: newItems });\r\n }\r\n }\r\n\r\n return acc;\r\n }, []);\r\n }\r\n public isExpanded = (dataItem: any, index: string) => {\r\n return this.keys.indexOf(index) > -1;\r\n };\r\n\r\n public handleCollapse(node) {\r\n this.keys = this.keys.filter((k) => k !== node.index);\r\n }\r\n\r\n public handleExpand(node) {\r\n this.keys = this.keys.concat(node.index);\r\n }\r\n public contains(text: string, term: string): boolean {\r\n return text.toLowerCase().indexOf(term.toLowerCase()) >= 0;\r\n }\r\n\r\n showClear(): boolean {\r\n return (\r\n this.name &&\r\n ((this.f[this.name] && this.f[this.name].value != null && this.f[this.name].value !== undefined && this.f[this.name].value > 0) ||\r\n this.searchValue.length > 0) &&\r\n !this.disabled\r\n );\r\n }\r\n clearValue() {\r\n this.isshow = false;\r\n this._checkedKeys = [];\r\n this._checkedKeys.push(...this.checkedKeys);\r\n if (this.f[this.name].value && !this.disabled) this.f[this.name].markAsDirty();\r\n this.f[this.name].setValue(undefined);\r\n this.valueChange.emit(this.f[this.name].value);\r\n this._currentValue = undefined;\r\n this.searchValue = \"\";\r\n this.SelectRow = undefined;\r\n this.refreshData();\r\n }\r\n setChildren(value: any, list: any[]) {\r\n this.children(value).forEach((x) => {\r\n x.forEach((xx) => {\r\n if (!list.some((f) => f[this.valueFieldName] === xx[this.valueFieldName])) list.push(xx);\r\n if (this.hasChildren(xx)) this.setChildren(xx, list);\r\n });\r\n });\r\n }\r\n openPopover() {\r\n if (this.openToggle && this.multiple && this._checkedKeys && this._checkedKeys.length > 0) {\r\n let list: any[] = [];\r\n this._checkedKeys.forEach((x) => {\r\n let seleted = this.filterdList.find((f) => f[this.valueFieldName] === x);\r\n if (!list.some((f) => f[this.valueFieldName] === x)) list.push(seleted);\r\n if (this.hasChildren(seleted)) this.setChildren(seleted, list);\r\n });\r\n this.valueChangeByApiName.emit({ data: list, apiName: this.apiName });\r\n }\r\n this.openToggle = !this.openToggle;\r\n //this.top = 'auto';\r\n }\r\n onResize(event) {\r\n if (this.openToggle) {\r\n setTimeout(() => {\r\n this.cd.markForCheck();\r\n }, 100);\r\n }\r\n }\r\n scroll = (event): void => {\r\n const currentPos = this.top;\r\n setTimeout(() => {\r\n this.cd.markForCheck();\r\n if (currentPos !== this.top) this.closePopOver();\r\n }, 100);\r\n };\r\n closePopOver() {\r\n if (this.openToggle) {\r\n this.openToggle = false;\r\n this.top = \"auto\";\r\n this.cd.markForCheck();\r\n }\r\n }\r\n closeout() {\r\n if (this.openToggle) {\r\n this.openToggle = false;\r\n // this.top = \"auto\";\r\n if (this.multiple && this._checkedKeys && this._checkedKeys.length > 0) {\r\n let list: any[] = [];\r\n this._checkedKeys.forEach((x) => {\r\n let seleted = this.filterdList.find((f) => f[this.valueFieldName] === x);\r\n if (!list.some((f) => f[this.valueFieldName] === x)) list.push(seleted);\r\n if (this.hasChildren(seleted)) this.setChildren(seleted, list);\r\n });\r\n this.valueChangeByApiName.emit({ data: list, apiName: this.apiName });\r\n }\r\n this.cd.markForCheck();\r\n }\r\n }\r\n inside() {\r\n this.isInside = true;\r\n }\r\n handleSelection($event) {\r\n if ($event.dataItem && !this.dataList.some((x) => x[this.parentIdName] === $event.dataItem[this.valueFieldName])) {\r\n this.SelectRow = $event.dataItem;\r\n this.isFiltering = false;\r\n if (this.SelectRow) this._currentValue = this.SelectRow[this.textFieldName];\r\n this.currentValueChange.emit(this.SelectRow[this.valueFieldName]);\r\n if (this.f[this.name].value !== this.SelectRow[this.valueFieldName] && !this.disabled) this.f[this.name].markAsDirty();\r\n this.f[this.name].setValue(this.SelectRow[this.valueFieldName]);\r\n this.onRowSelected.emit(this.SelectRow);\r\n this.valueChange.emit(this.currentValue);\r\n this.valueChangeByApiName.emit({ data: this.SelectRow, apiName: this.apiName });\r\n if (this.openToggle) this.closePopOver();\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n * \r\n
\r\n
\r\n \r\n \r\n ×\r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
{{ label }} {{ \"ClientApp.Projects.FrameWorkShell.Shared.Controls.LookUpTree.Delete\" | translate }}
\r\n
\r\n {{ label }} {{ \"ClientApp.Projects.FrameWorkShell.LookUpTree.MustMoreThan\" | translate }} {{ minLength }}\r\n {{ \"ClientApp.Projects.FrameWorkShell.Shared.Controls.LookUpTree.BeCharacter\" | translate }}\r\n
\r\n
\r\n {{ label }} {{ \"ClientApp.Projects.FrameWorkShell.Shared.Controls.LookUpTree.Over\" | translate }} {{ maxLength }}\r\n {{ \"ClientApp.Projects.FrameWorkShell.Shared.Controls.LookUpTree.CharacterCanNotBe\" | translate }}\r\n
\r\n
\r\n \r\n\r\n\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n","import {\r\n Component,\r\n ViewChild,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n HostListener,\r\n ElementRef,\r\n} from \"@angular/core\";\r\nimport { BaseControlComponent } from \"../base/base-control.component\";\r\nimport { LookupService, CorrectYeKeService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GroupDescriptor, State, process } from \"@progress/kendo-data-query\";\r\nimport {\r\n GridDataResult,\r\n DataStateChangeEvent,\r\n GridComponent,\r\n SelectAllCheckboxState,\r\n SelectableMode,\r\n SelectionEvent,\r\n GroupKey,\r\n PageSizeItem,\r\n RowArgs,\r\n} from \"@progress/kendo-angular-grid\";\r\nimport { delay, takeUntil } from \"rxjs/operators\";\r\nimport { SelectorService } from \"../base/selector.service\";\r\nimport { HttpCommonService, PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services/http-common.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nexport function isNullOrUndefined(value: any) {\r\n return value === null || value === undefined;\r\n}\r\n\r\n@Component({\r\n selector: \"st-lookup\",\r\n templateUrl: \"./lookup.component.html\",\r\n styleUrls: [\"./lookup.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LookupComponent extends BaseControlComponent {\r\n public pageSizes: PageSizeItem[] = [\r\n {\r\n text: \"5\",\r\n value: 5,\r\n },\r\n {\r\n text: \"10\",\r\n value: 10,\r\n },\r\n {\r\n text: \"15\",\r\n value: 15,\r\n },\r\n {\r\n text: \"20\",\r\n value: 20,\r\n },\r\n {\r\n text: this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Shared.Controls.LookUp.All\"),\r\n value: \"all\",\r\n },\r\n ];\r\n dataStateChanged: boolean = false;\r\n public gridView: GridDataResult;\r\n isshow: boolean;\r\n filterTimeout: number;\r\n public expandedGroupKeys: Array = [];\r\n customWidth: number;\r\n _idName: string;\r\n temporaryData: any[];\r\n @Input() set idName(value: string) {\r\n this._idName = value;\r\n }\r\n get idName(): string {\r\n return this._idName ?? `lkp${this.name}`;\r\n }\r\n @Input() class: string;\r\n @Input() isModalParent: any;\r\n @Input() defaultSortKey: string;\r\n @Input() defaultSortKeyKind: \"asc\" | \"desc\" = \"desc\";\r\n @Input() filtering: boolean = false;\r\n @Input() filterLookUp: any[] = [];\r\n selectedRows: any[] = [];\r\n groupable: boolean = true;\r\n public groups: GroupDescriptor[] = [];\r\n public mySelection: number[] = [];\r\n defaultPageHeight: number = 300;\r\n @Input() pageHeight: number = 300;\r\n @Output() CompleteData = new EventEmitter();\r\n myVar: any;\r\n loadTime: number = 0;\r\n public mode: SelectableMode = \"multiple\";\r\n public selectAllState: SelectAllCheckboxState = \"unchecked\";\r\n previesValue: any;\r\n top: string;\r\n left: string;\r\n right: string;\r\n isInside: boolean;\r\n\r\n @HostListener(\"window:keyup\", [\"$event\"])\r\n handleKeyboardEvent(event: KeyboardEvent) {\r\n if (document.hidden || !this.openToggle) return;\r\n }\r\n public isRowSelected = (e: RowArgs) => this.mySelection.indexOf(e.dataItem.Id) >= 0;\r\n @HostListener(\"window:keydown\", [\"$event\"])\r\n @HostListener(\"keydown.arrowUp\", [\"$event\"])\r\n @HostListener(\"keydown.escape\", [\"$event\"])\r\n @HostListener(\"keydown.arrowDown\", [\"$event\"])\r\n @HostListener(\"keydown.tab\", [\"$event\"])\r\n cArrowDown(e: KeyboardEvent) {\r\n if (document.hidden || (document.activeElement.id && document.activeElement.id !== this.idName)) return;\r\n if (document.activeElement.innerHTML.includes(\"kendo.grid.gridLabel\")) return;\r\n if (e.key === \"ArrowDown\") {\r\n if (this.openToggle && this.grid) this.grid.focus();\r\n } else if (e.key === \"ArrowUp\") {\r\n if (this.openToggle && this.grid) this.grid.focus();\r\n } else if (\r\n e.key !== \"ArrowLeft\" &&\r\n e.key !== \"ArrowRight\" &&\r\n e.key !== \"Tab\" &&\r\n e.key !== \"Alt\" &&\r\n document.getElementById(this.idName) &&\r\n this.openToggle\r\n )\r\n document.getElementById(this.idName).focus();\r\n if ((e.key === \"ArrowUp\" && e.altKey) || e.key === \"Escape\") {\r\n if (this.openToggle) {\r\n if (this.openToggle) {\r\n this.closePopOver();\r\n if (this.selectedRows?.length > 1) this.onRowsSelected.emit(this.selectedRows);\r\n }\r\n }\r\n e.returnValue = false;\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n if (e.altKey && e.key === \"ArrowDown\" && document.getElementById(this.idName) === document.activeElement) {\r\n if (this.searchValue && this.searchValue?.length >= 0) this.refreshData();\r\n this.openPopover();\r\n e.preventDefault();\r\n }\r\n\r\n if (e.key === \"Tab\") {\r\n if (this.selectedRows?.length > 1) this.onRowsSelected.emit(this.selectedRows);\r\n if (this.searchValue && this.searchValue?.length >= 0) {\r\n this.refreshData();\r\n e.preventDefault();\r\n }\r\n }\r\n }\r\n bindable: boolean = false;\r\n orignalData: any[];\r\n setGrid_View() {\r\n if (this.selectorService.getDataList(this.name) && this.selectorService.getDataList(this.name)?.length <= 0) {\r\n this.gridView = process(this.selectorService?.getDataList(this.name) as any[], this.state);\r\n this.gridView.total = this.selectorService?.getDataList(this.name)?.length;\r\n this.bindable = !this.state.filter || this.state?.filter?.filters?.length <= 0;\r\n this.orignalData = this.selectorService?.getDataList(this.name) as any[];\r\n this.fitColumns();\r\n return;\r\n }\r\n if (this.selectorService.getDataList(this.name)) {\r\n this.state.take = this.selectorService.getDataList(this.name)?.length;\r\n this.loading = false;\r\n if (this.state.group && this.state.group?.length > 0)\r\n this.gridView = process(this.selectorService.getDataList(this.name) as any[], {\r\n group: this.state.group,\r\n sort: this.state.sort,\r\n filter: this.state.filter,\r\n take: this.state.take,\r\n });\r\n else this.gridView = process(this.selectorService.getDataList(this.name) as any[], this.state);\r\n this.gridView.total = this.selectorService.getDataList(this.name)?.length;\r\n this.bindable = !this.state.filter || this.state.filter.filters?.length <= 0;\r\n this.orignalData = this.selectorService.getDataList(this.name) as any[];\r\n this.fitColumns();\r\n\r\n this.cd.markForCheck();\r\n if ((!this.grid || !this.grid.data || this.grid.data[\"total\"] <= 0) && this.gridView && this.gridView.data?.length > 0) {\r\n this.loading = false;\r\n let temp = Object.assign({}, this.gridView);\r\n this.gridView = process(temp.data as any[], {\r\n group: this.state.group,\r\n sort: this.state.sort,\r\n filter: this.state.filter,\r\n take: this.state.take,\r\n });\r\n if (!this.gridView.data || this.gridView.data?.length !== temp.data?.length) this.gridView.data = temp.data;\r\n this.gridView.total = temp.total;\r\n if (this.grid) this.grid.data[\"total\"] = this.gridView.total;\r\n this.fitColumns();\r\n }\r\n this.setGridData();\r\n return;\r\n } else if (!this.gridView && this.dataList && this.dataList?.length > 0) {\r\n this.loading = false;\r\n this.state.take = this.dataList?.length;\r\n this.gridView = process(this.dataList as any[], {\r\n group: this.state.group,\r\n sort: this.state.sort,\r\n filter: this.state.filter,\r\n take: this.state.take,\r\n });\r\n if (!this.gridView.data || this.gridView.data?.length !== this.dataList?.length) this.gridView.data = this.dataList;\r\n this.orignalData = this.dataList;\r\n this.gridView.total = this.dataList?.length;\r\n this.fitColumns();\r\n this.setGridData();\r\n return;\r\n }\r\n\r\n if (\r\n this.bindable &&\r\n this.isFiltering &&\r\n this.searchValue !== undefined &&\r\n this.searchValue?.length > 0 &&\r\n this.gridView !== undefined &&\r\n this.gridView.data?.length > 0\r\n ) {\r\n var columns = this.textColumnsName.split(\",\");\r\n\r\n let _list: any[] = this.gridView.data as [];\r\n if (columns?.length >= 3)\r\n _list = _list.filter(\r\n (f) =>\r\n f[columns[0]].toString().includes(this.searchValue) ||\r\n f[columns[1]].toString().includes(this.searchValue) ||\r\n f[columns[2]].toString().includes(this.searchValue)\r\n );\r\n else if (columns?.length >= 2)\r\n _list = _list.filter((f) => f[columns[0]].toString().includes(this.searchValue) || f[columns[1]].toString().includes(this.searchValue));\r\n else _list = _list.filter((f) => f[this.textFieldName].toString().includes(this.searchValue));\r\n this.gridView = process(_list as any[], { group: this.state.group, sort: this.state.sort, filter: this.state.filter, take: this.state.take });\r\n this.gridView.total = _list?.length;\r\n this.isFiltering = false;\r\n this.fitColumns();\r\n return;\r\n }\r\n if ((!this.grid || !this.grid.data || this.grid.data[\"total\"] <= 0) && this.gridView && this.gridView.data?.length > 0) {\r\n this.loading = false;\r\n let temp = Object.assign({}, this.gridView);\r\n this.gridView = process(temp.data as any[], {\r\n group: this.state.group,\r\n sort: this.state.sort,\r\n filter: this.state.filter,\r\n take: this.state.take,\r\n });\r\n if (!this.gridView.data || this.gridView.data?.length !== temp.data?.length) this.gridView.data = temp.data;\r\n this.gridView.total = temp.total;\r\n if (this.grid) this.grid.data[\"total\"] = this.gridView.total;\r\n this.fitColumns();\r\n return;\r\n }\r\n if (this.gridView && this.gridView.data?.length > 0) this.loading = false;\r\n if (!this.filtering)\r\n this.filtering =\r\n (this.dataList !== undefined && this.dataList !== null && this.dataList?.length > 0) ||\r\n (this.selectorService.getDataList(this.name) !== undefined && this.selectorService.getDataList(this.name)?.length > 0);\r\n }\r\n @Input() getdataList: (apiName: string, valueFieldName) => Observable;\r\n @Input() shouldBeChangedData: (columnName: string) => boolean;\r\n @Input() onDataStateChange: (columnName: string, searchValue: string, skip: number, take: number) => Observable>;\r\n _isMulti: boolean = false;\r\n @Input() get isMulti() {\r\n return this._isMulti;\r\n }\r\n set isMulti(value: boolean) {\r\n this._isMulti = value;\r\n }\r\n @Input() isPaging: boolean = false;\r\n @Input() groupsName: string;\r\n @Input() autocomplete: string = \"off\";\r\n searchValue: string = \"\";\r\n isFiltering: boolean = false;\r\n openToggle: boolean = false;\r\n _currentValue: string;\r\n @Input()\r\n set currentValue(value: string) {\r\n if (this.selectorService.getDisabledValue(this.name) === true) this._currentValue = this.selectorService.getDisabledValue(this.name);\r\n this._currentValue = value;\r\n }\r\n get currentValue(): string {\r\n if (!this.f[this.name]?.value && this._currentValue && this.SelectRow) {\r\n this.SelectRow = {};\r\n this._currentValue = undefined;\r\n }\r\n if (this.f[this.name]?.value && !this._currentValue) this.setCurrentValue();\r\n\r\n if (this.gridView && this.gridView.data && this.gridView.data?.length > 0 && this.f[this.name]?.value) {\r\n this.SelectRow = this.gridView.data.find((x) => x[this.valueFieldName] === this.f[this.name].value);\r\n if (this.SelectRow) {\r\n this._currentValue = this.SelectRow[this.textFieldName];\r\n }\r\n }\r\n return !this._currentValue ? \"\" : this._currentValue;\r\n }\r\n SelectRow: any;\r\n @Input() columns: form_control[] = [];\r\n @Input() orignalColumns: form_control[] = [];\r\n get _orignalColumns() {\r\n if (this.selectorService.getColumns(this.name) && this.selectorService.getColumns(this.name)?.length > 0)\r\n return this.selectorService.getColumns(this.name);\r\n return this.orignalColumns;\r\n }\r\n _paretnIdValue: number;\r\n _parentIdName: string;\r\n _dataList: any[];\r\n @Input() set dataList(value: any[]) {\r\n this._dataList = value;\r\n this.setGrid_View();\r\n }\r\n get dataList(): any[] {\r\n return this._dataList;\r\n }\r\n orignalList: any[];\r\n @Input() parentIdName: string;\r\n\r\n loading = false;\r\n @Output() onRowsSelected = new EventEmitter();\r\n @Output() onRowSelected = new EventEmitter();\r\n public state: State = {\r\n skip: 0,\r\n take: 5,\r\n filter: {\r\n logic: \"and\",\r\n filters: [],\r\n },\r\n group: [],\r\n //SortColumn : \"\",\r\n };\r\n\r\n ngAfterViewChecked() {\r\n if ((this.f[this.name]?.value !== undefined && this.f[this.name]?.value !== null) || this.searchValue) {\r\n this.isshow = true;\r\n }\r\n this.height = this.defaultHeight;\r\n this.marginbottom = this.defaultHeight - 25;\r\n }\r\n\r\n show() {\r\n this.isshow = !this.isshow;\r\n }\r\n focusFunction() {\r\n if (this.openToggle) this.openToggle = true;\r\n this.isshow = true;\r\n }\r\n focusOutFunction() {\r\n if ((!this.f[this.name]?.value || this.f[this.name]?.value === \"\") && (!this.searchValue || this.searchValue === \"\")) {\r\n this.isshow = false;\r\n } else {\r\n this.isshow = true;\r\n }\r\n }\r\n @ViewChild(\"lookupGgrid\") public grid: GridComponent;\r\n @ViewChild(\"inp\") inpElement: ElementRef;\r\n constructor(\r\n private _httpCommonService: HttpCommonService,\r\n private lookupservice: LookupService,\r\n private translate: TranslateService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n window.removeEventListener(\"scroll\", this.scroll, true);\r\n this.onDataStateChange = null;\r\n this.selectedRows = undefined;\r\n this.mySelection = undefined;\r\n }\r\n scroll = (event): void => {\r\n const currentPos = this.top;\r\n setTimeout(() => {\r\n this.setPositionPopover();\r\n this.cd.markForCheck();\r\n if (currentPos !== this.top) this.closePopOver();\r\n }, 100);\r\n //}\r\n\r\n //if (!this.isInside) {\r\n // if (this.openToggle) {\r\n // this.openToggle = false;\r\n // this.cd.markForCheck();\r\n // setTimeout(() => {\r\n // this.openToggle = true;\r\n // }, 50);\r\n\r\n // this.top = 'auto';\r\n // if (this.openToggle) {\r\n // setTimeout(() => {\r\n // this.setPositionPopover();\r\n // this.cd.markForCheck();\r\n // }, 100);\r\n // }\r\n // }\r\n //}\r\n };\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this.selectorService.onDataListChanged.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n this.setGrid_View();\r\n });\r\n window.addEventListener(\"scroll\", this.scroll, true); //third parameter\r\n if (!this.pageHeight) this.pageHeight = this.defaultPageHeight;\r\n else if (this.defaultPageHeight !== this.pageHeight) this.pageHeight = this.defaultPageHeight * this.pageHeight;\r\n this.loading = false;\r\n this.setColumns();\r\n if (this.name && this.f && this.f[this.name]) {\r\n this.f[this.name]?.valueChanges?.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n this.currentValue = x;\r\n this.setCurrentValue();\r\n });\r\n }\r\n if (this.isPaging === true && this.onDataStateChange !== undefined) this.isPaging = true;\r\n else\r\n this.isPaging =\r\n this.selectorService.getDataStateChange(this.name) !== undefined ||\r\n !this.apiName ||\r\n this.apiName.includes(\"Paging\") ||\r\n this.apiName.includes(\"Pagining\");\r\n if (this.isMulti) this.mode = \"multiple\";\r\n else this.mode = \"single\";\r\n if (!isNullOrUndefined(this.groupsName)) {\r\n this.groups = [];\r\n let groups = this.groupsName.split(\",\");\r\n groups.forEach((x) => {\r\n this.groups.push({ field: x });\r\n });\r\n this.state.group = this.groups;\r\n this.groupable = this.groups?.length > 0;\r\n }\r\n this.bindable =\r\n !this.isPaging ||\r\n this.groups?.length > 0 ||\r\n (this.dataList !== undefined && this.dataList !== null && this.dataList?.length > 0) ||\r\n (this.selectorService.getDataList(this.name) !== undefined && this.selectorService.getDataList(this.name)?.length > 0);\r\n this.refreshData();\r\n }\r\n async setColumns() {\r\n if (this.columns && this.columns?.length > 0) this.orignalColumns = this.columns;\r\n var columns = this.textColumnsName.split(\",\");\r\n if (this._orignalColumns && this._orignalColumns?.length > 0) {\r\n var c = this._orignalColumns.filter((f) => columns.some((c) => c === f.name)).sort((a, b) => a.order - b.order);\r\n this.columns = c;\r\n this.columns.map((x) => {\r\n if (!x.maxLength) x.listVisible = true;\r\n });\r\n this.setColumnWidth();\r\n return;\r\n }\r\n await this._httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.orignalColumns = data as form_control[];\r\n var c = (data as form_control[]).filter((f) => columns.some((c) => c === f.name)).sort((a, b) => a.order - b.order);\r\n this.columns = c;\r\n this.columns.map((x) => {\r\n x.listVisible = true;\r\n });\r\n }\r\n },\r\n (error) => (this.loading = false)\r\n );\r\n this.setColumnWidth();\r\n }\r\n getmodelName(name: string) {\r\n var modelName = this._orignalColumns.find((x) => x.name === name);\r\n if (modelName && modelName.modelName) return modelName.modelName;\r\n return name;\r\n }\r\n\r\n setDefaultSortKey() {\r\n if (this.defaultSortKey) {\r\n var keys = this.defaultSortKey?.split(\",\");\r\n this.state.sort = [];\r\n keys.forEach((x) => {\r\n this.state.sort.push({\r\n field: `${x}`,\r\n dir: this.defaultSortKeyKind,\r\n });\r\n });\r\n }\r\n }\r\n\r\n showClear(): boolean {\r\n const flag =\r\n this.name &&\r\n ((this.f[this.name] && this.f[this.name]?.value !== null && this.f[this.name]?.value !== undefined && this.f[this.name]?.value > 0) ||\r\n this.searchValue?.length > 0) &&\r\n !this.disabled;\r\n return flag;\r\n }\r\n clearValue() {\r\n this.isshow = false;\r\n this.SelectRow = undefined;\r\n if (this.f[this.name]?.value && !this.disabled) this.f[this.name].markAsDirty();\r\n this.f[this.name].setValue(undefined);\r\n this.valueChange.emit(this.f[this.name]?.value);\r\n this.valueChangeByApiName.emit({ data: undefined, apiName: this.apiName, KeyName: this.name });\r\n this._currentValue = \"\";\r\n this.searchValue = \"\";\r\n this.SelectRow = undefined;\r\n this.loading = false;\r\n if (this.onDataStateChange || this.selectorService.getDataStateChange(this.name)) this.setDataFromFunction();\r\n else this.refreshData();\r\n }\r\n setPositionPopover(event?) {\r\n // if (!document.getElementById(\"inputbox\" + this.name)) return;\r\n // const pos = document.getElementById(\"inputbox\" + this.name).getBoundingClientRect();\r\n // const popover = document.getElementById(this.name).getBoundingClientRect();\r\n // //const bodyWidth = document.documentElement.clientWidth;\r\n // const Modal = document.getElementsByTagName(\"simple-modal-wrapper\");\r\n // if (pos.top < window.innerHeight / 2) {\r\n\r\n // if (Modal?.length > 0) {\r\n // this.top = pos.top + pos.height + \"px\";\r\n // } else {\r\n // if (pos.top < popover.top && popover.top - pos.top !== pos.height) {\r\n // this.top = pos.top + pos.height + \"px\";\r\n // if (pos.top - (50 - pos.height) <= 0) {\r\n // this.top = \"auto\";\r\n // }\r\n // }\r\n // }\r\n // } else {\r\n // if (Modal?.length > 0) this.top = pos.top + popover.height + \"px\";\r\n // else this.top = pos.top - (popover.height + 80) + \"px\";\r\n // }\r\n // if (popover.left < 0) {\r\n // this.left = 0 + \"px\";\r\n // } else {\r\n // this.left = null;\r\n // }\r\n // if (popover.right < 0) {\r\n // this.right = 0 + \"px\";\r\n // } else {\r\n // this.right = null;\r\n // }\r\n // const selectRect: ClientRect = modal.getBoundingClientRect();\r\n // const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\r\n // const offsetTop = selectRect.top + window.pageYOffset;\r\n // const height = selectRect.height;\r\n // const dropdownHeight = dropdownEl.getBoundingClientRect().height;\r\n // if ((offsetTop + height + dropdownHeight+100) > (scrollTop + document.documentElement.clientHeight)) {\r\n // return 'top';\r\n // } else {\r\n // return 'bottom';\r\n // }\r\n this.cd.markForCheck();\r\n }\r\n private _calculateCurrentPosition(dropdownEl: HTMLElement) {}\r\n openPopover(onlyOpen: boolean = false) {\r\n if (this.disabled) return;\r\n if (!this.columns || this.columns.length <= 0) this.setColumns();\r\n if (this.openToggle && onlyOpen) return;\r\n if (this.openToggle && !onlyOpen) {\r\n if (this.selectedRows?.length > 1) this.onRowsSelected.emit(this.selectedRows);\r\n this.closePopOver();\r\n return;\r\n }\r\n this.loading = false;\r\n if (!this.apiName && this.dataList && this.dataList?.length > 0) {\r\n this.fitColumns();\r\n this.setGrid_View();\r\n }\r\n if (this.shouldBeChangedData && this.shouldBeChangedData(this.name)) {\r\n this._currentValue = undefined;\r\n this.searchValue = \"\";\r\n this.refreshData();\r\n } else if (!this.gridView || this.gridView.data?.length <= 0) this.refreshData();\r\n if (this.gridView && this.gridView.data?.length > 0 && (!this.grid?.data[\"total\"] || this.grid?.data[\"total\"] <= 0)) this.refreshData();\r\n if (!onlyOpen) this.openToggle = !this.openToggle;\r\n else this.openToggle = onlyOpen;\r\n //this.top = 'auto';\r\n if (this.openToggle) {\r\n this.setPositionPopover();\r\n }\r\n\r\n if (this.openToggle) {\r\n this.mySelection = [];\r\n this.fitColumns();\r\n } else {\r\n if (this.selectedRows?.length > 1) this.onRowsSelected.emit(this.selectedRows);\r\n this.closePopOver();\r\n }\r\n this.setGrid_View();\r\n }\r\n onResize(event) {\r\n if (this.openToggle) {\r\n // setTimeout(() => {\r\n this.setPositionPopover();\r\n this.cd.markForCheck();\r\n // }, 100);\r\n }\r\n }\r\n setDataFromFunction() {\r\n if (!this.loading) {\r\n if (this._currentValue || this.searchValue) {\r\n if (this._currentValue) this.searchValue = this._currentValue.toString();\r\n }\r\n if (!this.searchValue && this.f[this.name]?.value) this.searchValue = this.f[this.name].value;\r\n if (this.selectorService.getDataStateChange(this.name)) {\r\n this.loading = true;\r\n this.selectorService\r\n .getDataStateChange(this.name)(this.name, this.searchValue, this.state.skip, this.state.take)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.loading = false;\r\n if (x) {\r\n this.gridView = process(x.Data as any[], {\r\n group: this.state.group,\r\n sort: this.state.sort,\r\n filter: this.state.filter,\r\n take: this.state.take,\r\n });\r\n if (!this.gridView.data || this.gridView.data?.length != x.Data?.length) this.gridView.data = x.Data;\r\n this.gridView.total = x.TotalPage;\r\n this.setCurrentValue();\r\n this.fitColumns();\r\n this.setGridData();\r\n }\r\n },\r\n (error) => (this.loading = false)\r\n );\r\n } else {\r\n this.loading = true;\r\n this.onDataStateChange(this.name, this.searchValue, this.state.skip, this.state.take)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.loading = false;\r\n if (x && x.Data) {\r\n this.gridView = process(x.Data as any[], {\r\n group: this.state.group,\r\n sort: this.state.sort,\r\n filter: this.state.filter,\r\n take: this.state.take,\r\n });\r\n if (!this.gridView.data || this.gridView.data?.length != x.Data?.length) this.gridView.data = x.Data;\r\n this.gridView.total = x.TotalPage > 0 ? x.TotalPage : x.Data?.length;\r\n this.orignalData = x.Data as any[];\r\n this.setCurrentValue();\r\n this.setGridData();\r\n setTimeout(() => {\r\n this.fitColumns();\r\n this.setGrid_View();\r\n if (this.openToggle && this.grid) {\r\n if (!this.grid.data || this.grid.data[\"total\"] <= 0) {\r\n this.gridView = process(x.Data as any[], { group: this.state.group, sort: this.state.sort, filter: this.state.filter });\r\n this.gridView.total = x.TotalPage;\r\n if (this.grid) {\r\n this.grid.data = this.gridView.data;\r\n this.grid.data[\"total\"] = this.gridView.total;\r\n }\r\n }\r\n }\r\n }, 200);\r\n }\r\n },\r\n (error) => (this.loading = false)\r\n );\r\n }\r\n }\r\n }\r\n setGridData() {\r\n if (this.grid && (this.grid.data != this.gridView.data || this.grid.data[\"total\"].length !== this.gridView.total)) {\r\n this.grid.data = this.gridView.data;\r\n this.grid.data[\"total\"] = this.gridView.total;\r\n setTimeout(() => {\r\n this.cd.markForCheck();\r\n }, 200);\r\n } else if (!this.grid)\r\n setTimeout(() => {\r\n this.setGridData();\r\n }, 100);\r\n }\r\n async refreshData() {\r\n if (this.loading || this.selectorService.getDataList(this.name)) return;\r\n if (this.selectorService.getTakeValue(this.name)) {\r\n this.state.take = this.selectorService.getTakeValue(this.name);\r\n }\r\n this.setDefaultSortKey();\r\n if (this.getdataList) {\r\n this.loading = true;\r\n await this.getdataList(this.apiName, this.valueFieldName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x) => {\r\n if (x) {\r\n this.orignalList = x as any[];\r\n this.isFiltering = false;\r\n this.gridView = process(x as any[], { group: this.state.group, sort: this.state.sort, filter: this.state.filter });\r\n this.gridView.total = x?.length;\r\n this.grid.data = this.gridView.data;\r\n this.grid.data[\"total\"] = this.gridView.total;\r\n setTimeout(() => {\r\n this.fitColumns();\r\n this.setGrid_View();\r\n }, 10);\r\n this.setGridData();\r\n }\r\n this.loading = false;\r\n },\r\n (error) => {\r\n this.loading = false;\r\n this.isFiltering = false;\r\n }\r\n );\r\n }\r\n if (!this.apiName && this.dataList && this.dataList?.length > 0) {\r\n this.fitColumns();\r\n this.setGrid_View();\r\n } else if (this.apiName) {\r\n if (this.onDataStateChange || this.selectorService.getDataStateChange(this.name)) {\r\n this.setDataFromFunction();\r\n return;\r\n }\r\n if (!this.systemName && !this.category) {\r\n if (this.isPaging) {\r\n let temp = this.textColumnsName.split(\",\");\r\n let temp2 = this.textColumnsName.split(\",\");\r\n let columnsName: string;\r\n if (this.searchValue) {\r\n temp2 = [];\r\n temp.forEach((x) => {\r\n temp2.push(this.getmodelName(x));\r\n });\r\n columnsName = temp2.join();\r\n } else if (this.f[this.name]?.value && !this.searchValue) {\r\n columnsName = this.valueFieldName;\r\n this.searchValue = this.f[this.name].value.toString();\r\n }\r\n this.loading = true;\r\n //if (this.searchValue)\r\n // this.state.skip = 0;\r\n await this._httpCommonService\r\n .GetPagining>(this.apiName, columnsName, this.searchValue, this.state.skip, this.state.take)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x: PagingDataResult) => {\r\n if (x) {\r\n if (this.filterLookUp && this.filterLookUp?.length > 0 && this.apiName.includes(\"Warehouse/GetPagining\")) {\r\n this.filterLookUp.map((s: { key: string; value: boolean }) => {\r\n this.temporaryData = x.Data?.filter((c) => c[s.key] === s.value);\r\n });\r\n x.Data = this.temporaryData;\r\n }\r\n \r\n this.isFiltering = false;\r\n this.loading = false;\r\n this.gridView = process(x?.Data as any[], {\r\n group: this.state.group,\r\n sort: this.state.sort,\r\n filter: this.state.filter,\r\n take: this.state.take,\r\n });\r\n if (!this.gridView.data || this.gridView.data?.length != x.Data?.length) this.gridView.data = x.Data;\r\n this.gridView.total = x.TotalPage;\r\n this.setCurrentValue();\r\n this.setGridData();\r\n setTimeout(() => {\r\n this.fitColumns();\r\n this.setGrid_View();\r\n if (this.openToggle && this.grid) {\r\n if (!this.grid.data || this.grid.data[\"total\"] <= 0) {\r\n this.gridView = process(x.Data as any[], { group: this.state.group, sort: this.state.sort, filter: this.state.filter });\r\n this.gridView.total = x.TotalPage;\r\n this.grid.data = this.gridView.data;\r\n this.grid.data[\"total\"] = x.TotalPage;\r\n }\r\n }\r\n this.CompleteData.emit({ apiName: this.apiName, data: x.Data });\r\n }, 200);\r\n }\r\n },\r\n (error) => {\r\n this.loading = false;\r\n this.isFiltering = false;\r\n }\r\n );\r\n } else {\r\n if (!this.dataList || this.dataList?.length <= 0) {\r\n this.loading = true;\r\n if (this.gridView && this.gridView.data && this.orignalList && this.gridView.data?.length === this.orignalList?.length) {\r\n if (this.f[this.name]?.value && !this.searchValue) {\r\n //columnsName = this.valueFieldName;\r\n this.searchValue = this.f[this.name].value.toString();\r\n }\r\n let data: any[] = Object.assign([], this.orignalList);\r\n\r\n let temp = this.textColumnsName.split(\",\");\r\n if (this.searchValue) {\r\n data = data.filter(\r\n (f) =>\r\n (temp && temp?.length >= 1 && f[temp[0]].includes(this.searchValue)) ||\r\n (temp && temp?.length >= 2 && f[temp[1]].includes(this.searchValue)) ||\r\n (temp && temp?.length >= 3 && f[temp[2]].includes(this.searchValue)) ||\r\n (temp && temp?.length >= 4 && f[temp[3]].includes(this.searchValue))\r\n );\r\n }\r\n this.gridView = process(data, { group: this.state.group, sort: this.state.sort, filter: this.state.filter, take: this.state.take });\r\n this.gridView.total = data?.length;\r\n this.loading = false;\r\n this.setCurrentValue();\r\n this.setGridData();\r\n this.fitColumns();\r\n return;\r\n }\r\n await this._httpCommonService\r\n .getList(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data: any[]) => {\r\n this.isFiltering = false;\r\n this.orignalList = data as any[];\r\n this.gridView = process(data as any[], {\r\n group: this.state.group,\r\n sort: this.state.sort,\r\n filter: this.state.filter,\r\n take: this.state.take,\r\n });\r\n if (this.gridView.data.length <= 0 && data && data?.length > 0) this.gridView.data = data;\r\n this.gridView.total = data?.length;\r\n this.loading = false;\r\n this.setCurrentValue();\r\n this.setGridData();\r\n this.fitColumns();\r\n this.CompleteData.emit({ apiName: this.apiName, data: data });\r\n },\r\n (error) => {\r\n this.loading = false;\r\n this.isFiltering = false;\r\n }\r\n );\r\n }\r\n }\r\n } else if (!this.dataList || this.dataList?.length <= 0) {\r\n this.loading = true;\r\n this.lookupservice\r\n .getLookupbyCategory(this.systemName, this.category)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any[]) => {\r\n this.gridView = process(data as any[], {\r\n group: this.state.group,\r\n sort: this.state.sort,\r\n filter: this.state.filter,\r\n take: this.state.take,\r\n });\r\n this.gridView.total = data?.length;\r\n this.loading = false;\r\n this.isFiltering = false;\r\n this.setCurrentValue();\r\n this.setGridData();\r\n this.fitColumns();\r\n },\r\n (error) => {\r\n this.loading = false;\r\n this.isFiltering = false;\r\n }\r\n );\r\n }\r\n }\r\n }\r\n setColumnWidth() {\r\n this.columns.forEach((x) => {\r\n if (\r\n x.textType === \"number\" &&\r\n x.withComma &&\r\n !x.name.toUpperCase().includes(\"NUMBER\") &&\r\n !x.name.toUpperCase().includes(\"CODE\") &&\r\n !x.name.toUpperCase().includes(\".ID\")\r\n )\r\n x.format = \"#,#.#####;(#,#.#####)\";\r\n else x.format = \"\";\r\n if (!x.columnWidth || x.columnWidth <= 100) {\r\n if (x.textType === \"text\") x.columnWidth = 250;\r\n else x.columnWidth = 150;\r\n }\r\n });\r\n }\r\n setCurrentValue() {\r\n if (!this.gridView && this.dataList !== undefined && this.dataList !== null && this.dataList?.length > 0) {\r\n this.loading = false;\r\n this.gridView = {\r\n data: this.dataList,\r\n total: this.dataList?.length,\r\n };\r\n this.fitColumns();\r\n }\r\n\r\n if (!this.SelectRow && this.f[this.name]?.value) {\r\n if (!this.gridView || !this.gridView.data || this.gridView.data?.length <= 0) {\r\n if (!this.loading && this.f[this.name] && this.f[this.name]?.value && this.loadTime <= 2) {\r\n this.loadTime++;\r\n this.isFiltering = true;\r\n this.refreshData();\r\n }\r\n }\r\n if (this.gridView && this.gridView.data && this.gridView.data?.length > 0) {\r\n this.SelectRow = this.gridView.data.find((x) => x[this.valueFieldName] === this.f[this.name].value);\r\n if (this.SelectRow && this.SelectRow[this.valueFieldName]) {\r\n this._currentValue = this.SelectRow[this.textFieldName];\r\n if (this.f[this.name]?.value !== this.SelectRow[this.valueFieldName] && !this.disabled) this.f[this.name].markAsDirty();\r\n this.f[this.name].setValue(this.SelectRow[this.valueFieldName]);\r\n this.valueChange.emit(this.SelectRow[this.valueFieldName]);\r\n this.valueChangeByApiName.emit({ data: this.SelectRow, apiName: this.apiName, KeyName: this.name });\r\n this.onRowSelected.emit(this.SelectRow);\r\n if (this.openToggle) this.openToggle = false;\r\n this.searchValue = \"\";\r\n } else if (!this.loading && this.f[this.name] && this.f[this.name]?.value && this.loadTime <= 2) {\r\n this.loadTime++;\r\n this.isFiltering = true;\r\n this.refreshData();\r\n }\r\n }\r\n } else if (this.SelectRow && !this.isFiltering && this.SelectRow[this.textFieldName]) {\r\n this._currentValue = this.SelectRow[this.textFieldName];\r\n if (this.f[this.name]?.value !== this.SelectRow[this.valueFieldName] && !this.disabled) this.f[this.name].markAsDirty();\r\n if (this.f[this.name]?.value !== this.SelectRow[this.valueFieldName]) this.f[this.name].setValue(this.SelectRow[this.valueFieldName]);\r\n this.valueChange.emit(this.SelectRow[this.valueFieldName]);\r\n this.onRowSelected.emit(this.SelectRow);\r\n this.valueChangeByApiName.emit({ data: this.SelectRow, apiName: this.apiName, KeyName: this.name });\r\n this.searchValue = \"\";\r\n }\r\n if (\r\n this.searchValue !== undefined &&\r\n this.searchValue?.length > 0 &&\r\n this.searchValue !== this.f[this.name]?.value &&\r\n this.gridView &&\r\n !this.openToggle &&\r\n this.gridView.total > 1\r\n ) {\r\n this.mySelection = [];\r\n if (!this.disabled) this.openPopover();\r\n this.fitColumns();\r\n } else if (this.searchValue && this.searchValue?.length > 0 && this.gridView && this.gridView.total === 1) {\r\n this.SelectRow = this.gridView.data[0];\r\n if (this.SelectRow && this.SelectRow[this.valueFieldName]) {\r\n this._currentValue = this.SelectRow[this.textFieldName];\r\n if (this.f[this.name]?.value !== this.SelectRow[this.valueFieldName] && !this.disabled) this.f[this.name].markAsDirty();\r\n this.f[this.name].setValue(this.SelectRow[this.valueFieldName]);\r\n this.valueChange.emit(this.SelectRow[this.valueFieldName]);\r\n this.onRowSelected.emit(this.SelectRow);\r\n this.valueChangeByApiName.emit({ data: this.SelectRow, apiName: this.apiName, KeyName: this.name });\r\n if (this.openToggle) {\r\n this.closePopOver();\r\n }\r\n this.searchValue = \"\";\r\n this.cd.markForCheck();\r\n }\r\n }\r\n if (this.searchValue) this.isshow = true;\r\n this.cd.markForCheck();\r\n }\r\n public onUserRowSelect({ sender, column, rowIndex, columnIndex, dataItem }): void {\r\n this.SelectRow = dataItem;\r\n this.isFiltering = false;\r\n if (this.SelectRow && this.SelectRow[this.valueFieldName]) {\r\n this._currentValue = this.SelectRow[this.textFieldName];\r\n if (this.f[this.name]?.value !== this.SelectRow[this.valueFieldName] && !this.disabled) this.f[this.name].markAsDirty();\r\n this.f[this.name].setValue(this.SelectRow[this.valueFieldName]);\r\n this.onRowSelected.emit(this.SelectRow);\r\n this.valueChange.emit(this.SelectRow[this.valueFieldName]);\r\n this.valueChangeByApiName.emit({ data: this.SelectRow, apiName: this.apiName, KeyName: this.name });\r\n this.searchValue = \"\";\r\n }\r\n this.cd.markForCheck();\r\n this.closePopOver();\r\n }\r\n public dataStateChange(state: DataStateChangeEvent): void {\r\n this.state = state;\r\n this.dataStateChanged = true;\r\n this.state.sort = state.sort.filter((x) => x.dir !== undefined);\r\n this.groups = state.group;\r\n if (this.onDataStateChange || this.selectorService.getDataStateChange(this.name)) {\r\n this.setDataFromFunction();\r\n } else {\r\n if (this.isPaging) this.refreshData();\r\n }\r\n if (this.openToggle) this.openToggle = false;\r\n this.top = \"auto\";\r\n this.openPopover();\r\n if (this.openToggle) {\r\n setTimeout(() => {\r\n this.setPositionPopover();\r\n }, 200);\r\n }\r\n }\r\n fitColumns(): void {\r\n setTimeout(() => {\r\n if (this.grid) {\r\n this.grid.autoFitColumns();\r\n const minColumnWidth = 90; // Set your desired minimum width here\r\n this.grid.columns?.forEach((column) => {\r\n if (column.width && column.width < minColumnWidth) {\r\n column.width = minColumnWidth;\r\n }\r\n });\r\n }\r\n }, 50);\r\n this.cd.markForCheck();\r\n }\r\n\r\n public onFilter(inputValue: string) {\r\n this.filterTimeout = new Date().getMilliseconds();\r\n this.isFiltering = true;\r\n this.searchValue = CorrectYeKeService.getCorrectYeKe(inputValue);\r\n setTimeout(async () => {\r\n this.loading = false;\r\n this.isFiltering = false;\r\n await this.refreshData();\r\n }, 500);\r\n this.isFiltering = false;\r\n }\r\n onGridSelectionChange(event: SelectionEvent) {\r\n if (this.isMulti) {\r\n event.selectedRows.forEach((x) => {\r\n this.selectedRows.push(x.dataItem);\r\n });\r\n }\r\n }\r\n public onSelectAllChange(checkedState: SelectAllCheckboxState) {\r\n if (checkedState === \"unchecked\" && this.mySelection?.length <= 0) {\r\n //this.mySelection = this.orignalData.map((item) => item.Id);\r\n this.onSelectedKeysChange(this.mySelection);\r\n } else {\r\n if (checkedState === \"checked\") {\r\n //this.mySelection = this.orignalData.map((item) => item.Id);\r\n this.selectAllState = \"checked\";\r\n } else {\r\n this.mySelection = [];\r\n this.selectAllState = \"unchecked\";\r\n }\r\n }\r\n }\r\n public onSelectedKeysChange(e) {\r\n const len = e?.length;\r\n this.isFiltering = false;\r\n if (len === 0) {\r\n this.selectAllState = \"unchecked\";\r\n } else if (len > 0 && len < this.gridView.total) {\r\n this.selectAllState = \"indeterminate\";\r\n } else {\r\n this.selectAllState = \"checked\";\r\n }\r\n if (this.isMulti) {\r\n this.mySelection = e;\r\n if (e && e?.length > 0) {\r\n this.selectedRows = this.orignalData?.filter((x) => e.some((s) => s === x.Id));\r\n if (!this.selectedRows) this.selectedRows = this.gridView?.data?.filter((x) => e.some((s) => s === x.Id));\r\n } else this.selectedRows = [];\r\n }\r\n\r\n if (!this.isMulti && e?.length === 1) {\r\n this.SelectRow = this.orignalData?.find((x) => x[this.valueFieldName] === e[0] || x[\"Id\"] === e[0]);\r\n if (!this.SelectRow) this.SelectRow = this.gridView?.data?.find((x) => x[this.valueFieldName] === e[0] || x[\"Id\"] === e[0]);\r\n this.setCurrentValue();\r\n this.closePopOver();\r\n }\r\n this.cd.markForCheck();\r\n this.show();\r\n }\r\n\r\n closePopOver() {\r\n if (this.openToggle) {\r\n this.openToggle = false;\r\n // this.top = \"auto\";\r\n this.cd.markForCheck();\r\n }\r\n }\r\n onKey() {\r\n if (this.openToggle) {\r\n if (this.selectedRows?.length > 1) this.onRowsSelected.emit(this.selectedRows);\r\n this.closePopOver();\r\n }\r\n }\r\n closeout() {\r\n setTimeout(() => {\r\n if (this.dataStateChanged) {\r\n this.dataStateChanged = false;\r\n return;\r\n }\r\n this.OkClicked();\r\n if (this.openToggle) {\r\n this.openToggle = false;\r\n // this.top = \"auto\";\r\n this.cd.markForCheck();\r\n }\r\n }, 100);\r\n }\r\n inside() {\r\n this.isInside = true;\r\n }\r\n OkClicked() {\r\n if (this.openToggle) {\r\n if (this.selectedRows?.length > 0) this.onRowsSelected.emit(this.selectedRows);\r\n else this.onRowSelected.emit(this.selectedRows[0]);\r\n this.closePopOver();\r\n }\r\n }\r\n CancelClicked() {\r\n this.closePopOver();\r\n }\r\n getSelctedChange(keyName: string, value: any) {\r\n if (!value) return false;\r\n let result = true;\r\n let items = this.orignalData.filter((x) => x[keyName] === value).map((item) => item.Id);\r\n items.forEach((item) => {\r\n if (!this.mySelection.some((s) => s === item)) result = false;\r\n });\r\n return result;\r\n }\r\n gridGroupHeader(keyName: string, value: any, checked: any) {\r\n let items = this.orignalData.filter((x) => x[keyName] === value).map((item) => item.Id);\r\n items.forEach((item) => {\r\n if (!this.mySelection.some((s) => s === item) && checked.target.checked) this.mySelection.push(item);\r\n else this.mySelection = this.mySelection.filter((f) => f !== item);\r\n });\r\n this.onSelectedKeysChange(this.mySelection);\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","
\r\n \r\n \r\n * \r\n
\r\n \r\n \r\n \r\n ×\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n
\r\n {{ label }} {{ \"Errors.Required\" | translate }} \r\n
\r\n\r\n\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ column.label }} :{{ value }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class NgSelectConfig {\r\n placeholder: string;\r\n notFoundText = \"ClientApp.Projects.FrameWorkShell.Shared.Controls.NgSelect.NoPenFound\";\r\n typeToSearchText = \"ClientApp.Projects.FrameWorkShell.Shared.Controls.NgSelect.TypeToSearch\";\r\n addTagText = \"ClientApp.Projects.FrameWorkShell.Shared.Controls.NgSelect.AddPen\";\r\n loadingText = \"ClientApp.Projects.FrameWorkShell.Shared.Controls.NgSelect.Loading\";\r\n clearAllText = \"ClientApp.Projects.FrameWorkShell.Shared.Controls.NgSelect.DeleteAll\";\r\n disableVirtualScroll = true;\r\n openOnEnter = true;\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ConsoleService {\r\n warn(message: string) {\r\n console.warn(message)\r\n }\r\n}\r\n","export function newId() {\r\n // First character is an 'a', it's good practice to tag id to begin with a letter\r\n return 'axxxxxxxxxxx'.replace(/[x]/g, function (_) {\r\n // tslint:disable-next-line:no-bitwise\r\n const val = Math.random() * 16 | 0;\r\n return val.toString(16);\r\n });\r\n}\r\n","import { NgOption } from \"./ng-select.types\";\r\nimport * as searchHelper from \"./search-helper\";\r\nimport { NgSelectComponent } from \"./ng-select.component\";\r\nimport { isDefined, isFunction, isObject } from \"./value-utils\";\r\nimport { newId } from \"./id\";\r\nimport { SelectionModel } from \"./selection-model\";\r\n\r\ntype OptionGroups = Map;\r\n\r\nexport class ItemsList {\r\n private _groups: OptionGroups;\r\n\r\n constructor(private _ngSelect: NgSelectComponent, private _selectionModel: SelectionModel) {}\r\n\r\n private _items: NgOption[] = [];\r\n isSelectedAll: boolean;\r\n\r\n get items(): NgOption[] {\r\n return this._items;\r\n }\r\n\r\n private _filteredItems: NgOption[] = [];\r\n\r\n get filteredItems(): NgOption[] {\r\n return this._filteredItems;\r\n }\r\n\r\n private _markedIndex = -1;\r\n\r\n get markedIndex(): number {\r\n return this._markedIndex;\r\n }\r\n\r\n get selectedItems() {\r\n return this._selectionModel.value;\r\n }\r\n\r\n get markedItem(): NgOption {\r\n return this._filteredItems[this._markedIndex];\r\n }\r\n\r\n get noItemsToSelect(): boolean {\r\n return this._ngSelect.hideSelected && this._items.length === this.selectedItems.length;\r\n }\r\n\r\n get maxItemsSelected(): boolean {\r\n return this._ngSelect.multiple && this._ngSelect.maxSelectedItems <= this.selectedItems.length;\r\n }\r\n get repeatable(): boolean {\r\n return this._ngSelect.required;\r\n }\r\n get lastSelectedItem() {\r\n return this.selectedItems[this.selectedItems.length - 1];\r\n }\r\n\r\n setItems(items: any[]) {\r\n if (!items.length && items[\"Data\"]) {\r\n items = items[\"Data\"];\r\n }\r\n this._items = items.map((item, index) => this.mapItem(item, index));\r\n if (this._ngSelect.groupBy) {\r\n this._groups = this._groupBy(this._items, this._ngSelect.groupBy);\r\n this._items = this._flatten(this._groups);\r\n } else {\r\n this._groups = new Map();\r\n this._groups.set(undefined, this._items);\r\n }\r\n this._filteredItems = [...this._items];\r\n }\r\n\r\n select(item: NgOption) {\r\n if ((item.selected && !this._ngSelect.repeatable) || this.maxItemsSelected) {\r\n return;\r\n }\r\n const multiple = this._ngSelect.multiple;\r\n if (!multiple) {\r\n this.clearSelected();\r\n }\r\n\r\n this._selectionModel.select(item, multiple, this._ngSelect.selectableGroupAsModel, true);\r\n if (this._ngSelect.hideSelected && multiple) {\r\n this._hideSelected(item);\r\n }\r\n }\r\n unselect(item: NgOption, open?: boolean) {\r\n if ((this._ngSelect.repeatable, !this._ngSelect.isIconClick)) {\r\n this.select(item);\r\n if (!open && (this._ngSelect.limitSelection <= 0 || !this._ngSelect.limitSelection)) this._ngSelect.close();\r\n }\r\n if (!item.selected) {\r\n return;\r\n }\r\n this._selectionModel.unselect(item, this._ngSelect.multiple, this._ngSelect.repeatable, this._ngSelect.isIconClick);\r\n if (this._ngSelect.hideSelected && isDefined(item.index) && this._ngSelect.multiple) {\r\n this._showSelected(item);\r\n }\r\n this.isSelectedAll = false;\r\n }\r\n\r\n findItem(value: any): NgOption {\r\n let findBy: (item: NgOption) => boolean;\r\n if (this._ngSelect.compareWith) {\r\n findBy = (item) => this._ngSelect.compareWith(item.value, value);\r\n } else if (this._ngSelect.bindValue) {\r\n findBy = (item) => !item.children && this.resolveNested(item.value, this._ngSelect.bindValue) === value;\r\n } else {\r\n findBy = (item) => item.value === value || (!item.children && item.label && item.label === this.resolveNested(value, this._ngSelect.bindLabel));\r\n }\r\n return this._items.find((item) => findBy(item));\r\n }\r\n\r\n addItem(item: any) {\r\n const option = this.mapItem(item, this._items.length);\r\n this._items.push(option);\r\n this._filteredItems.push(option);\r\n return option;\r\n }\r\n\r\n clearSelected() {\r\n this._selectionModel.clear();\r\n this._items.forEach((item) => {\r\n item.selected = false;\r\n item.marked = false;\r\n });\r\n if (this._ngSelect.hideSelected) {\r\n this.resetFilteredItems();\r\n }\r\n }\r\n\r\n findByLabel(term: string) {\r\n term = searchHelper.stripSpecialChars(term).toLocaleLowerCase();\r\n return this.filteredItems.find((item) => {\r\n const label = searchHelper.stripSpecialChars(item.label).toLocaleLowerCase();\r\n return label.substr(0, term.length) === term;\r\n });\r\n }\r\n\r\n filter(term: string): void {\r\n if (!term) {\r\n this.resetFilteredItems();\r\n return;\r\n }\r\n\r\n this._filteredItems = [];\r\n term = this._ngSelect.searchFn ? term : searchHelper.stripSpecialChars(term).toLocaleLowerCase();\r\n const match = this._ngSelect.searchFn || this._defaultSearchFn;\r\n const hideSelected = this._ngSelect.hideSelected;\r\n\r\n for (const key of Array.from(this._groups.keys())) {\r\n const matchedItems = [];\r\n for (const item of this._groups.get(key)) {\r\n if (hideSelected && ((item.parent && item.parent.selected) || item.selected)) {\r\n continue;\r\n }\r\n const searchItem = this._ngSelect.searchFn ? item.value : item;\r\n if (match(term, searchItem) || this._ngSelect.isMultiColumns) {\r\n matchedItems.push(item);\r\n }\r\n }\r\n if (matchedItems.length > 0) {\r\n const [last] = matchedItems.slice(-1);\r\n if (last.parent) {\r\n const head = this._items.find((x) => x === last.parent);\r\n this._filteredItems.push(head);\r\n }\r\n this._filteredItems.push(...matchedItems);\r\n }\r\n }\r\n }\r\n\r\n resetFilteredItems() {\r\n if (this._filteredItems.length === this._items.length) {\r\n return;\r\n }\r\n\r\n if (this._ngSelect.hideSelected && this.selectedItems.length > 0) {\r\n this._filteredItems = this._items.filter((x) => !x.selected);\r\n } else {\r\n this._filteredItems = this._items;\r\n }\r\n }\r\n\r\n unmarkItem() {\r\n this._markedIndex = -1;\r\n }\r\n\r\n markNextItem() {\r\n this._stepToItem(+1);\r\n }\r\n\r\n markPreviousItem() {\r\n this._stepToItem(-1);\r\n }\r\n\r\n markItem(item: NgOption) {\r\n this._markedIndex = this._filteredItems.indexOf(item);\r\n }\r\n\r\n markSelectedOrDefault(markDefault?: boolean) {\r\n if (this._filteredItems.length === 0) {\r\n return;\r\n }\r\n const indexOfLastSelected = this._ngSelect.hideSelected ? -1 : this._filteredItems.indexOf(this.lastSelectedItem);\r\n if (this.lastSelectedItem && indexOfLastSelected > -1) {\r\n this._markedIndex = indexOfLastSelected;\r\n } else {\r\n if (this._ngSelect.excludeGroupsFromDefaultSelection) {\r\n this._markedIndex = markDefault ? this.filteredItems.findIndex((x) => !x.disabled && !x.children) : -1;\r\n } else {\r\n this._markedIndex = markDefault ? this.filteredItems.findIndex((x) => !x.disabled) : -1;\r\n }\r\n }\r\n }\r\n\r\n resolveNested(option: any, key: string): any {\r\n if (!isObject(option)) {\r\n return option;\r\n }\r\n if (key.indexOf(\".\") === -1) {\r\n return option[key];\r\n } else {\r\n let keys: string[] = key.split(\".\");\r\n let value = option;\r\n for (let i = 0, len = keys.length; i < len; ++i) {\r\n if (value === null) {\r\n return null;\r\n }\r\n value = value[keys[i]];\r\n }\r\n return value;\r\n }\r\n }\r\n\r\n mapItem(item: any, index: number): NgOption {\r\n const label = isDefined(item.$ngOptionLabel) ? item.$ngOptionLabel : this.resolveNested(item, this._ngSelect.bindLabel);\r\n const value = isDefined(item.$ngOptionValue) ? item.$ngOptionValue : item;\r\n return {\r\n index: index,\r\n label: isDefined(label) ? label.toString() : \"\",\r\n value: value,\r\n disabled: item.disabled,\r\n htmlId: newId(),\r\n };\r\n }\r\n\r\n mapSelectedItems() {\r\n const multiple = this._ngSelect.multiple;\r\n for (const selected of this.selectedItems) {\r\n const value = this._ngSelect.bindValue ? this.resolveNested(selected.value, this._ngSelect.bindValue) : selected.value;\r\n const item = isDefined(value) ? this.findItem(value) : null;\r\n this._selectionModel.unselect(selected, multiple);\r\n this._selectionModel.select(item || selected, multiple, this._ngSelect.selectableGroupAsModel);\r\n }\r\n\r\n if (this._ngSelect.hideSelected) {\r\n this._filteredItems = this.filteredItems.filter((x) => this.selectedItems.indexOf(x) === -1);\r\n }\r\n }\r\n\r\n private _showSelected(item: NgOption) {\r\n this._filteredItems.push(item);\r\n if (item.parent) {\r\n const parent = item.parent;\r\n const parentExists = this._filteredItems.find((x) => x === parent);\r\n if (!parentExists) {\r\n this._filteredItems.push(parent);\r\n }\r\n } else if (item.children) {\r\n for (const child of item.children) {\r\n child.selected = false;\r\n this._filteredItems.push(child);\r\n }\r\n }\r\n this._filteredItems = [...this._filteredItems.sort((a, b) => a.index - b.index)];\r\n }\r\n\r\n private _hideSelected(item: NgOption) {\r\n this._filteredItems = this._filteredItems.filter((x) => x !== item);\r\n if (item.parent) {\r\n const children = item.parent.children;\r\n if (children.every((x) => x.selected)) {\r\n this._filteredItems = this._filteredItems.filter((x) => x !== item.parent);\r\n }\r\n } else if (item.children) {\r\n this._filteredItems = this.filteredItems.filter((x) => x.parent !== item);\r\n }\r\n }\r\n\r\n private _defaultSearchFn(search: string, opt: NgOption) {\r\n const label = searchHelper.stripSpecialChars(opt.label).toLocaleLowerCase();\r\n return label.indexOf(search) > -1;\r\n }\r\n\r\n private _getNextItemIndex(steps: number) {\r\n if (steps > 0) {\r\n return this._markedIndex === this._filteredItems.length - 1 ? 0 : this._markedIndex + 1;\r\n }\r\n return this._markedIndex <= 0 ? this._filteredItems.length - 1 : this._markedIndex - 1;\r\n }\r\n\r\n private _stepToItem(steps: number) {\r\n if (this._filteredItems.length === 0 || this._filteredItems.every((x) => x.disabled)) {\r\n return;\r\n }\r\n\r\n this._markedIndex = this._getNextItemIndex(steps);\r\n if (this.markedItem.disabled) {\r\n this._stepToItem(steps);\r\n }\r\n }\r\n\r\n private _groupBy(items: NgOption[], prop: string | Function): OptionGroups {\r\n const isFn = isFunction(this._ngSelect.groupBy);\r\n const groups = new Map();\r\n for (const item of items) {\r\n let key = isFn ? (prop)(item.value) : item.value[prop];\r\n key = isDefined(key) ? key : undefined;\r\n const group = groups.get(key);\r\n if (group) {\r\n group.push(item);\r\n } else {\r\n groups.set(key, [item]);\r\n }\r\n }\r\n return groups;\r\n }\r\n\r\n private _flatten(groups: OptionGroups) {\r\n const isFn = isFunction(this._ngSelect.groupBy);\r\n const items = [];\r\n const withoutGroup = groups.get(undefined) || [];\r\n items.push(...withoutGroup);\r\n let i = withoutGroup.length;\r\n for (const key of Array.from(groups.keys())) {\r\n if (!isDefined(key)) {\r\n continue;\r\n }\r\n const parent: NgOption = {\r\n label: key,\r\n children: undefined,\r\n parent: null,\r\n index: i++,\r\n disabled: !this._ngSelect.selectableGroup,\r\n htmlId: newId(),\r\n };\r\n const groupKey = isFn ? this._ngSelect.bindLabel : this._ngSelect.groupBy;\r\n const groupValue = this._ngSelect.groupValue || (() => ({ [groupKey]: key }));\r\n const children = groups.get(key).map((x) => {\r\n x.parent = parent;\r\n x.children = undefined;\r\n x.index = i++;\r\n return x;\r\n });\r\n parent.children = children;\r\n parent.value = groupValue(\r\n key,\r\n children.map((x) => x.value)\r\n );\r\n items.push(parent);\r\n items.push(...children);\r\n }\r\n return items;\r\n }\r\n}\r\n","import {\r\n Component,\r\n OnDestroy,\r\n Renderer2,\r\n ElementRef,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n ViewChild,\r\n SimpleChanges,\r\n NgZone,\r\n TemplateRef,\r\n ViewEncapsulation,\r\n AfterContentInit,\r\n OnInit,\r\n OnChanges,\r\n HostListener,\r\n Optional,\r\n Inject\r\n} from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\nimport { NgOption } from './ng-select.types';\r\nimport { DropdownPosition } from './ng-select.component';\r\nimport { WindowService } from './window.service';\r\nimport { VirtualScrollService } from './virtual-scroll.service';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { Subject, fromEvent, merge } from 'rxjs';\r\n\r\nconst TOP_CSS_CLASS = 'ng-select-top';\r\nconst BOTTOM_CSS_CLASS = 'ng-select-bottom';\r\n\r\n@Component({\r\n encapsulation: ViewEncapsulation.None,\r\n selector: 'ng-dropdown-panel',\r\n template: `\r\n
\r\n \r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n `\r\n})\r\nexport class NgDropdownPanelComponent implements OnInit, OnChanges, OnDestroy, AfterContentInit {\r\n @Input() items: NgOption[] = [];\r\n @Input() markedItem: NgOption;\r\n @Input() position: DropdownPosition = 'auto';\r\n @Input() appendTo: string;\r\n @Input() bufferAmount = 4;\r\n @Input() virtualScroll = false;\r\n @Input() headerTemplate: TemplateRef;\r\n @Input() footerTemplate: TemplateRef;\r\n @Input() filterValue: string = null;\r\n\r\n @Output() update = new EventEmitter();\r\n @Output() scroll = new EventEmitter<{ start: number; end: number }>();\r\n @Output() scrollToEnd = new EventEmitter();\r\n @Output() outsideClick = new EventEmitter();\r\n\r\n @ViewChild('content', { read: ElementRef, static: true }) contentElementRef: ElementRef;\r\n @ViewChild('scroll', { read: ElementRef, static: true }) scrollElementRef: ElementRef;\r\n @ViewChild('padding', { read: ElementRef, static: true }) paddingElementRef: ElementRef;\r\n\r\n private readonly _destroy$ = new Subject();\r\n private readonly _dropdown: HTMLElement;\r\n private _select: HTMLElement;\r\n private _previousStart: number;\r\n private _previousEnd: number;\r\n private _startupLoop = true;\r\n private _isScrolledToMarked = false;\r\n private _scrollToEndFired = false;\r\n private _currentPosition: DropdownPosition;\r\n private _disposeScrollListener = () => { };\r\n private _disposeDocumentResizeListener = () => { };\r\n\r\n constructor(\r\n private _renderer: Renderer2,\r\n private _zone: NgZone,\r\n private _virtualScrollService: VirtualScrollService,\r\n private _window: WindowService,\r\n _elementRef: ElementRef,\r\n @Optional() @Inject(DOCUMENT) private _document: any\r\n ) {\r\n this._dropdown = _elementRef.nativeElement;\r\n }\r\n\r\n @HostListener('mousedown', ['$event'])\r\n handleMousedown($event: MouseEvent) {\r\n const target = $event.target as HTMLElement;\r\n if (target.tagName === 'INPUT') {\r\n return;\r\n }\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n\r\n ngOnInit() {\r\n this._select = this._dropdown.parentElement;\r\n this._handleScroll();\r\n if (this._document) {\r\n merge(\r\n fromEvent(this._document, 'touchstart', { capture: true }),\r\n fromEvent(this._document, 'mousedown', { capture: true })\r\n )\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(($event) => this._handleOutsideClick($event));\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.items) {\r\n this._isScrolledToMarked = false;\r\n this._handleItemsChange(changes.items);\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this._disposeDocumentResizeListener();\r\n this._disposeScrollListener();\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n if (this.appendTo) {\r\n this._renderer.removeChild(this._dropdown.parentNode, this._dropdown);\r\n }\r\n }\r\n\r\n ngAfterContentInit() {\r\n this._whenContentReady().then(() => {\r\n if (this.appendTo) {\r\n this._appendDropdown();\r\n this._handleDocumentResize();\r\n }\r\n this.updateDropdownPosition();\r\n });\r\n }\r\n\r\n refresh(): Promise {\r\n return new Promise(resolve => {\r\n this._zone.runOutsideAngular(() => {\r\n this._window.requestAnimationFrame(() => {\r\n this._updateItems().then(resolve);\r\n });\r\n });\r\n })\r\n }\r\n\r\n scrollInto(item: NgOption) {\r\n if (!item) {\r\n return;\r\n }\r\n const index = this.items.indexOf(item);\r\n if (index < 0 || index >= this.items.length) {\r\n return;\r\n }\r\n\r\n const d = this._calculateDimensions(this.virtualScroll ? 0 : index);\r\n const scrollEl: Element = this.scrollElementRef.nativeElement;\r\n const buffer = Math.floor(d.viewHeight / d.childHeight) - 1;\r\n if (this.virtualScroll) {\r\n scrollEl.scrollTop = (index * d.childHeight) - (d.childHeight * Math.min(index, buffer));\r\n } else {\r\n const contentEl: HTMLElement = this.contentElementRef.nativeElement;\r\n const childrenHeight = Array.from(contentEl.children).slice(0, index).reduce((c, n) => c + n.clientHeight, 0);\r\n scrollEl.scrollTop = childrenHeight - (d.childHeight * Math.min(index, buffer));\r\n }\r\n }\r\n\r\n scrollIntoTag() {\r\n const el: Element = this.scrollElementRef.nativeElement;\r\n const d = this._calculateDimensions();\r\n el.scrollTop = d.childHeight * (d.itemsLength + 1);\r\n }\r\n\r\n updateDropdownPosition() {\r\n this._currentPosition = this._calculateCurrentPosition(this._dropdown);\r\n if (this._currentPosition === 'top') {\r\n this._renderer.addClass(this._dropdown, TOP_CSS_CLASS);\r\n this._renderer.removeClass(this._dropdown, BOTTOM_CSS_CLASS);\r\n this._renderer.addClass(this._select, TOP_CSS_CLASS);\r\n this._renderer.removeClass(this._select, BOTTOM_CSS_CLASS)\r\n } else {\r\n this._renderer.addClass(this._dropdown, BOTTOM_CSS_CLASS);\r\n this._renderer.removeClass(this._dropdown, TOP_CSS_CLASS);\r\n this._renderer.addClass(this._select, BOTTOM_CSS_CLASS);\r\n this._renderer.removeClass(this._select, TOP_CSS_CLASS);\r\n }\r\n\r\n if (this.appendTo) {\r\n this._updateAppendedDropdownPosition();\r\n }\r\n\r\n this._dropdown.style.opacity = '1';\r\n }\r\n\r\n private _handleOutsideClick($event: any) {\r\n if (this._select.contains($event.target)) {\r\n return;\r\n }\r\n\r\n if (this._dropdown.contains($event.target)) {\r\n return;\r\n }\r\n\r\n const path = $event.path || ($event.composedPath && $event.composedPath());\r\n if ($event.target && $event.target.shadowRoot && path && path[0] && this._select.contains(path[0])) {\r\n return;\r\n }\r\n\r\n this.outsideClick.emit();\r\n }\r\n\r\n private _handleScroll() {\r\n this._disposeScrollListener = this._renderer.listen(this.scrollElementRef.nativeElement, 'scroll', () => {\r\n this.refresh();\r\n this._fireScrollToEnd();\r\n });\r\n }\r\n\r\n private _handleItemsChange(items: { previousValue: NgOption[], currentValue: NgOption[] }) {\r\n this._scrollToEndFired = false;\r\n this._previousStart = undefined;\r\n this._previousEnd = undefined;\r\n if (items !== undefined && items.previousValue === undefined ||\r\n (items.previousValue !== undefined && items.previousValue.length === 0)) {\r\n this._startupLoop = true;\r\n }\r\n this.items = items.currentValue || [];\r\n this.refresh().then(() => {\r\n if (this.appendTo && this._currentPosition === 'top') {\r\n this._updateAppendedDropdownPosition();\r\n }\r\n });\r\n }\r\n\r\n private _updateItems(): Promise {\r\n NgZone.assertNotInAngularZone();\r\n\r\n if (!this.virtualScroll) {\r\n this._zone.run(() => {\r\n this.update.emit(this.items.slice());\r\n this._scrollToMarked();\r\n });\r\n return Promise.resolve();\r\n }\r\n\r\n const loop = (resolve) => {\r\n const d = this._calculateDimensions();\r\n const res = this._virtualScrollService.calculateItems(d, this.scrollElementRef.nativeElement, this.bufferAmount || 0);\r\n\r\n (this.paddingElementRef.nativeElement).style.height = `${res.scrollHeight}px`;\r\n (this.contentElementRef.nativeElement).style.transform = 'translateY(' + res.topPadding + 'px)';\r\n\r\n if (res.start !== this._previousStart || res.end !== this._previousEnd) {\r\n this._zone.run(() => {\r\n this.update.emit(this.items.slice(res.start, res.end));\r\n this.scroll.emit({ start: res.start, end: res.end });\r\n });\r\n this._previousStart = res.start;\r\n this._previousEnd = res.end;\r\n\r\n if (this._startupLoop === true) {\r\n loop(resolve)\r\n }\r\n } else if (this._startupLoop === true) {\r\n this._startupLoop = false;\r\n this._scrollToMarked();\r\n resolve();\r\n }\r\n };\r\n return new Promise((resolve) => loop(resolve))\r\n }\r\n\r\n private _fireScrollToEnd() {\r\n if (this._scrollToEndFired) {\r\n return;\r\n }\r\n const scroll: HTMLElement = this.scrollElementRef.nativeElement;\r\n const padding: HTMLElement = this.virtualScroll ?\r\n this.paddingElementRef.nativeElement :\r\n this.contentElementRef.nativeElement;\r\n\r\n if (scroll.scrollTop + this._dropdown.clientHeight >= padding.clientHeight) {\r\n this.scrollToEnd.emit();\r\n this._scrollToEndFired = true;\r\n }\r\n }\r\n\r\n private _calculateDimensions(index = 0) {\r\n return this._virtualScrollService.calculateDimensions(\r\n this.items.length,\r\n index,\r\n this.scrollElementRef.nativeElement,\r\n this.contentElementRef.nativeElement\r\n )\r\n }\r\n\r\n private _handleDocumentResize() {\r\n if (!this.appendTo) {\r\n return;\r\n }\r\n this._disposeDocumentResizeListener = this._renderer.listen('window', 'resize', () => {\r\n this._updateAppendedDropdownPosition();\r\n });\r\n }\r\n\r\n private _scrollToMarked() {\r\n if (this._isScrolledToMarked || !this.markedItem) {\r\n return;\r\n }\r\n this._isScrolledToMarked = true;\r\n this.scrollInto(this.markedItem);\r\n }\r\n\r\n private _calculateCurrentPosition(dropdownEl: HTMLElement) {\r\n if (this.position !== 'auto') {\r\n return this.position;\r\n }\r\n const selectRect: ClientRect = this._select.getBoundingClientRect();\r\n const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;\r\n const offsetTop = selectRect.top + window.pageYOffset;\r\n const height = selectRect.height;\r\n const dropdownHeight = dropdownEl.getBoundingClientRect().height;\r\n if ((offsetTop + height + dropdownHeight+100) > (scrollTop + document.documentElement.clientHeight)) {\r\n return 'top';\r\n } else {\r\n return 'bottom';\r\n }\r\n }\r\n\r\n private _appendDropdown() {\r\n const parent = document.querySelector(this.appendTo);\r\n if (!parent) {\r\n throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`)\r\n }\r\n parent.appendChild(this._dropdown);\r\n }\r\n\r\n private _updateAppendedDropdownPosition() {\r\n const parent = document.querySelector(this.appendTo) || document.body;\r\n this._dropdown.style.display = 'none';\r\n const selectRect: ClientRect = this._select.getBoundingClientRect();\r\n const boundingRect = parent.getBoundingClientRect();\r\n this._dropdown.style.display = '';\r\n const offsetTop = selectRect.top - boundingRect.top;\r\n const offsetLeft = selectRect.left - boundingRect.left;\r\n const topDelta = this._currentPosition === 'bottom' ? selectRect.height : -this._dropdown.clientHeight;\r\n this._dropdown.style.top = offsetTop + topDelta + 'px';\r\n this._dropdown.style.bottom = 'auto';\r\n this._dropdown.style.left = offsetLeft + 'px';\r\n this._dropdown.style.width = selectRect.width + 'px';\r\n this._dropdown.style.minWidth = selectRect.width + 'px';\r\n }\r\n\r\n private _whenContentReady(): Promise {\r\n if (this.items.length === 0) {\r\n return Promise.resolve();\r\n }\r\n const ready = (resolve) => {\r\n const ngOption = this._dropdown.querySelector('.ng-option');\r\n if (ngOption) {\r\n resolve();\r\n return;\r\n }\r\n this._zone.runOutsideAngular(() => {\r\n setTimeout(() => ready(resolve), 5);\r\n });\r\n };\r\n return new Promise((resolve) => ready(resolve))\r\n }\r\n}\r\n","import * as searchHelper from './search-helper';\r\nimport {\r\n AfterViewInit,\r\n Directive,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n Renderer2\r\n} from '@angular/core';\r\nimport { isDefined } from './value-utils';\r\n\r\n@Directive({\r\n selector: '[ngOptionHighlight]'\r\n})\r\nexport class NgOptionHighlightDirective implements OnChanges, AfterViewInit {\r\n @Input('ngOptionHighlight') term: string;\r\n\r\n private element: HTMLElement;\r\n private label: string;\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private renderer: Renderer2) {\r\n this.element = this.elementRef.nativeElement;\r\n }\r\n\r\n ngOnChanges() {\r\n if (this._canHighlight) {\r\n this._highlightLabel();\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.label = this.element.innerHTML;\r\n if (this._canHighlight) {\r\n this._highlightLabel();\r\n }\r\n }\r\n\r\n private _highlightLabel() {\r\n const label = this.label;\r\n if (!this.term) {\r\n this._setInnerHtml(label);\r\n return;\r\n }\r\n\r\n const indexOfTerm = searchHelper.stripSpecialChars(label)\r\n .toLowerCase()\r\n .indexOf(searchHelper.stripSpecialChars(this.term).toLowerCase());\r\n if (indexOfTerm > -1) {\r\n this._setInnerHtml(\r\n label.substring(0, indexOfTerm)\r\n + `${label.substr(indexOfTerm, this.term.length)}`\r\n + label.substring(indexOfTerm + this.term.length, label.length));\r\n } else {\r\n this._setInnerHtml(label);\r\n }\r\n }\r\n\r\n private get _canHighlight() {\r\n return isDefined(this.term) && isDefined(this.label);\r\n }\r\n\r\n private _setInnerHtml(html) {\r\n this.renderer.setProperty(this.elementRef.nativeElement, 'innerHTML', html);\r\n }\r\n}\r\n","import {\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'ng-option',\r\n template: ``\r\n})\r\nexport class NgOptionComponent implements OnChanges {\r\n @Input() value: any;\r\n @Input()\r\n get disabled() { return this._disabled; }\r\n set disabled(value: any) { this._disabled = this._isDisabled(value) }\r\n\r\n readonly stateChange$ = new Subject<{ value: any, disabled: boolean }>();\r\n private _disabled = false;\r\n\r\n constructor(public elementRef: ElementRef) { }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.disabled) {\r\n this.stateChange$.next({\r\n value: this.value,\r\n disabled: this._disabled\r\n });\r\n }\r\n }\r\n\r\n private _isDisabled(value) {\r\n return value != null && `${value}` !== 'false';\r\n }\r\n}\r\n","import {\r\n Component,\r\n OnDestroy,\r\n OnChanges,\r\n AfterViewInit,\r\n forwardRef,\r\n ChangeDetectorRef,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ContentChild,\r\n TemplateRef,\r\n ViewEncapsulation,\r\n HostListener,\r\n HostBinding,\r\n ViewChild,\r\n ElementRef,\r\n Inject,\r\n SimpleChanges,\r\n ContentChildren,\r\n QueryList,\r\n InjectionToken,\r\n Attribute,\r\n} from \"@angular/core\";\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, NgModel } from \"@angular/forms\";\r\nimport { takeUntil, startWith, tap, debounceTime, map, filter } from \"rxjs/operators\";\r\nimport { Subject, merge } from \"rxjs\";\r\n\r\nimport {\r\n NgOptionTemplateDirective,\r\n NgLabelTemplateDirective,\r\n NgHeaderTemplateDirective,\r\n NgFooterTemplateDirective,\r\n NgOptgroupTemplateDirective,\r\n NgNotFoundTemplateDirective,\r\n NgTypeToSearchTemplateDirective,\r\n NgLoadingTextTemplateDirective,\r\n NgMultiLabelTemplateDirective,\r\n NgTagTemplateDirective,\r\n} from \"./ng-templates.directive\";\r\n\r\nimport { ConsoleService } from \"./console.service\";\r\nimport { isDefined, isFunction, isPromise, isObject } from \"./value-utils\";\r\nimport { ItemsList } from \"./items-list\";\r\nimport { NgOption, KeyCode } from \"./ng-select.types\";\r\nimport { newId } from \"./id\";\r\nimport { NgDropdownPanelComponent } from \"./ng-dropdown-panel.component\";\r\nimport { NgOptionComponent } from \"./ng-option.component\";\r\nimport { SelectionModelFactory } from \"./selection-model\";\r\nimport { NgSelectConfig } from \"./config.service\";\r\nimport { CorrectYeKeService } from \"projects/sepidz-web-framework/src/lib/services\";\r\n\r\nexport const SELECTION_MODEL_FACTORY = new InjectionToken(\"ng-select-selection-model\");\r\nexport type DropdownPosition = \"bottom\" | \"top\" | \"auto\";\r\nexport type AutoCorrect = \"off\" | \"on\";\r\nexport type AutoCapitalize = \"off\" | \"on\";\r\nexport type AddTagFn = (term: string) => any | Promise;\r\nexport type CompareWithFn = (a: any, b: any) => boolean;\r\n\r\n@Component({\r\n selector: \"ng-select\",\r\n templateUrl: \"./ng-select.component.html\",\r\n styleUrls: [\"./ng-select.component.scss\"],\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => NgSelectComponent),\r\n multi: true,\r\n },\r\n ],\r\n encapsulation: ViewEncapsulation.None,\r\n host: {\r\n role: \"listbox\",\r\n class: \"ng-select\",\r\n \"[class.ng-select-single]\": \"!multiple\",\r\n },\r\n})\r\nexport class NgSelectComponent implements OnDestroy, OnChanges, AfterViewInit, ControlValueAccessor {\r\n // inputs\r\n @Input() items: any[] = [];\r\n @Input() bindLabel: string;\r\n @Input() bindValue: string;\r\n @Input() clearable = true;\r\n @Input() markFirst = true;\r\n @Input() placeholder: string;\r\n @Input() notFoundText: string;\r\n @Input() typeToSearchText: string;\r\n @Input() addTagText: string;\r\n @Input() loadingText: string;\r\n @Input() clearAllText: string;\r\n @Input() dropdownPosition: DropdownPosition = \"auto\";\r\n @Input() appendTo: string;\r\n @Input() loading = false;\r\n @Input() closeOnSelect = true;\r\n @Input() hideSelected = false;\r\n @Input() selectOnTab = false;\r\n @Input() openOnEnter: boolean;\r\n @Input() repeatable: boolean;\r\n @Input() isIconClick: boolean;\r\n @Input() maxSelectedItems: number;\r\n @Input() groupBy: string | Function;\r\n @Input() groupValue: Function;\r\n @Input() bufferAmount = 4;\r\n @Input() virtualScroll: boolean;\r\n @Input() hasSelectAll: boolean;\r\n @Input() selectableGroup = false;\r\n @Input() selectableGroupAsModel = true;\r\n @Input() searchFn = null;\r\n @Input() excludeGroupsFromDefaultSelection = false;\r\n @Input() clearOnBackspace = true;\r\n @Input() limitSelection: number;\r\n @Input() filterSelectionList: any[];\r\n @Input() labelForId = null;\r\n @Input() autoCorrect: AutoCorrect = \"off\";\r\n @Input() autoCapitalize: AutoCapitalize = \"off\";\r\n @Input() @HostBinding(\"class.ng-select-typeahead\") typeahead: Subject;\r\n @Input() @HostBinding(\"class.ng-select-multiple\") multiple = false;\r\n // @Input() @HostBinding('class.ng-select-repeatable') repeatable = false;\r\n @Input() @HostBinding(\"class.ng-select-taggable\") addTag: boolean | AddTagFn = false;\r\n @Input() @HostBinding(\"class.ng-select-searchable\") searchable = true;\r\n @Input() @HostBinding(\"class.ng-select-opened\") isOpen = false;\r\n\r\n @Input() required = false;\r\n @Input() isMultiColumns = false;\r\n @Input()\r\n get compareWith() {\r\n return this._compareWith;\r\n }\r\n set compareWith(fn: CompareWithFn) {\r\n if (!isFunction(fn)) {\r\n throw Error(\"`compareWith` must be a function.\");\r\n }\r\n this._compareWith = fn;\r\n }\r\n\r\n @Input()\r\n get clearSearchOnAdd() {\r\n return isDefined(this._clearSearchOnAdd) ? this._clearSearchOnAdd : this.closeOnSelect;\r\n }\r\n set clearSearchOnAdd(value) {\r\n this._clearSearchOnAdd = value;\r\n }\r\n\r\n // output events\r\n @Output(\"blur\") blurEvent = new EventEmitter();\r\n @Output(\"focus\") focusEvent = new EventEmitter();\r\n @Output(\"change\") changeEvent = new EventEmitter();\r\n @Output(\"open\") openEvent = new EventEmitter();\r\n @Output(\"close\") closeEvent = new EventEmitter();\r\n @Output(\"search\") searchEvent = new EventEmitter();\r\n @Output(\"clear\") clearEvent = new EventEmitter();\r\n @Output(\"add\") addEvent = new EventEmitter();\r\n\r\n @Output(\"remove\") removeEvent = new EventEmitter();\r\n @Output(\"scroll\") scroll = new EventEmitter<{ start: number; end: number }>();\r\n @Output(\"scrollToEnd\") scrollToEnd = new EventEmitter();\r\n @Output(\"onSelectAll\") onSelectAll = new EventEmitter();\r\n @Output(\"onDeSelectAll\") onDeSelectAll = new EventEmitter();\r\n\r\n // custom templates\r\n @ContentChild(NgOptionTemplateDirective, { read: TemplateRef, static: true }) optionTemplate: TemplateRef;\r\n @ContentChild(NgOptgroupTemplateDirective, { read: TemplateRef, static: true }) optgroupTemplate: TemplateRef;\r\n @ContentChild(NgLabelTemplateDirective, { read: TemplateRef, static: true }) labelTemplate: TemplateRef;\r\n @ContentChild(NgMultiLabelTemplateDirective, { read: TemplateRef, static: true }) multiLabelTemplate: TemplateRef;\r\n @ContentChild(NgHeaderTemplateDirective, { read: TemplateRef, static: true }) headerTemplate: TemplateRef;\r\n @ContentChild(NgFooterTemplateDirective, { read: TemplateRef, static: true }) footerTemplate: TemplateRef;\r\n @ContentChild(NgNotFoundTemplateDirective, { read: TemplateRef, static: true }) notFoundTemplate: TemplateRef;\r\n @ContentChild(NgTypeToSearchTemplateDirective, { read: TemplateRef, static: true }) typeToSearchTemplate: TemplateRef;\r\n @ContentChild(NgLoadingTextTemplateDirective, { read: TemplateRef, static: true }) loadingTextTemplate: TemplateRef;\r\n @ContentChild(NgTagTemplateDirective, { read: TemplateRef, static: true }) tagTemplate: TemplateRef;\r\n\r\n //@ViewChild(forwardRef(() => NgDropdownPanelComponent), { static: true }) dropdownPanel: NgDropdownPanelComponent;\r\n @ViewChild(\"ngdropdownpanel\") dropdownPanel: NgDropdownPanelComponent;\r\n @ContentChildren(NgOptionComponent, { descendants: true }) ngOptions: QueryList;\r\n @ViewChild(\"filterInput\", { static: true }) filterInput: ElementRef;\r\n\r\n @HostBinding(\"class.ng-select-disabled\") disabled = false;\r\n @HostBinding(\"class.ng-select-filtered\") get filtered() {\r\n return !!this.filterValue && this.searchable;\r\n }\r\n\r\n itemsList: ItemsList;\r\n viewPortItems: NgOption[] = [];\r\n filterValue: string = null;\r\n dropdownId = newId();\r\n selectedItemId = 0;\r\n element: HTMLElement;\r\n focused: boolean;\r\n\r\n private _defaultLabel = \"label\";\r\n private _primitive = true;\r\n private _manualOpen: boolean;\r\n private _pressedKeys: string[] = [];\r\n private _compareWith: CompareWithFn;\r\n private _clearSearchOnAdd: boolean;\r\n isSelectedAll: boolean;\r\n limitSelectedItems: NgOption[];\r\n\r\n private readonly _destroy$ = new Subject();\r\n private readonly _keyPress$ = new Subject();\r\n private _onChange = (_: any) => {};\r\n private _onTouched = () => {};\r\n\r\n clearItem = (item: any) => {\r\n const option = this.selectedItems.find((x) => x.value === item);\r\n this.unselect(option, null);\r\n };\r\n\r\n constructor(\r\n @Attribute(\"class\") public classes: string,\r\n @Attribute(\"tabindex\") public tabIndex: string,\r\n @Attribute(\"autofocus\") private autoFocus: any,\r\n config: NgSelectConfig,\r\n @Inject(SELECTION_MODEL_FACTORY) newSelectionModel: SelectionModelFactory,\r\n _elementRef: ElementRef,\r\n private _cd: ChangeDetectorRef,\r\n private _console: ConsoleService\r\n ) {\r\n this._mergeGlobalConfig(config);\r\n this.itemsList = new ItemsList(this, newSelectionModel());\r\n this.element = _elementRef.nativeElement;\r\n }\r\n\r\n get selectedItems(): NgOption[] {\r\n if (this.limitSelection && this.itemsList.selectedItems && this.itemsList.selectedItems.length > this.limitSelection) {\r\n this.filterSelectionList = JSON.parse(JSON.stringify(this.itemsList.selectedItems.slice(0, this.limitSelection)));\r\n } else {\r\n this.filterSelectionList = [];\r\n }\r\n return this.itemsList.selectedItems;\r\n }\r\n\r\n get selectedValues() {\r\n return this.selectedItems.map((x) => x.value);\r\n }\r\n\r\n get hasValue() {\r\n return this.selectedItems.length > 0;\r\n }\r\n\r\n ngOnInit() {\r\n let t = this.items;\r\n this._handleKeyPresses();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.multiple) {\r\n this.itemsList.clearSelected();\r\n }\r\n if (changes.items) {\r\n this._setItems(changes.items.currentValue || []);\r\n }\r\n if (changes.isOpen) {\r\n this._manualOpen = isDefined(changes.isOpen.currentValue);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.items && this.items.length === 0) {\r\n this._setItemsFromNgOptions();\r\n }\r\n\r\n if (isDefined(this.autoFocus)) {\r\n this.focus();\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n }\r\n\r\n @HostListener(\"keydown\", [\"$event\"])\r\n handleKeyDown($event: KeyboardEvent) {\r\n if (KeyCode[$event.which]) {\r\n switch ($event.which) {\r\n case KeyCode.ArrowDown:\r\n this._handleArrowDown($event);\r\n break;\r\n case KeyCode.ArrowUp:\r\n this._handleArrowUp($event);\r\n break;\r\n case KeyCode.Space:\r\n this._handleSpace($event);\r\n break;\r\n case KeyCode.Enter:\r\n this._handleEnter($event);\r\n break;\r\n case KeyCode.Tab:\r\n this._handleTab($event);\r\n break;\r\n case KeyCode.Esc:\r\n this.close();\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n break;\r\n case KeyCode.Backspace:\r\n this._handleBackspace();\r\n break;\r\n }\r\n } else if ($event.key && $event.key.length === 1) {\r\n this._keyPress$.next($event.key.toLocaleLowerCase());\r\n }\r\n }\r\n\r\n handleMousedown($event: MouseEvent) {\r\n const target = $event.target as HTMLElement;\r\n if (target.tagName !== \"INPUT\") {\r\n $event.preventDefault();\r\n }\r\n $event.stopPropagation();\r\n\r\n if (target.classList.contains(\"ng-clear-wrapper\")) {\r\n this.handleClearClick();\r\n return;\r\n }\r\n\r\n if (target.classList.contains(\"ng-arrow-wrapper\")) {\r\n this.handleArrowClick();\r\n return;\r\n }\r\n\r\n if (target.classList.contains(\"ng-value-icon\")) {\r\n return;\r\n }\r\n\r\n if (!this.focused) {\r\n this.focus();\r\n }\r\n\r\n if (this.searchable) {\r\n this.open();\r\n } else {\r\n this.toggle();\r\n }\r\n }\r\n\r\n handleArrowClick() {\r\n if (this.isOpen) {\r\n this.close();\r\n } else {\r\n this.open();\r\n }\r\n }\r\n\r\n handleClearClick() {\r\n if (this.hasValue) {\r\n this.clearModel();\r\n }\r\n this._clearSearch();\r\n this.focus();\r\n if (this._isTypeahead) {\r\n this.typeahead.next(null);\r\n }\r\n this.itemsList.isSelectedAll = false;\r\n this.clearEvent.emit();\r\n }\r\n\r\n clearModel() {\r\n if (!this.clearable) {\r\n return;\r\n }\r\n this.itemsList.clearSelected();\r\n this._updateNgModel();\r\n }\r\n\r\n writeValue(value: any | any[]): void {\r\n this.itemsList.clearSelected();\r\n this._handleWriteValue(value);\r\n this._cd.markForCheck();\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this._onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this._onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n this.disabled = isDisabled;\r\n this._cd.markForCheck();\r\n }\r\n\r\n toggle() {\r\n if (!this.isOpen) {\r\n this.open();\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n open() {\r\n if (this.disabled || this.isOpen || this.itemsList.maxItemsSelected || this._manualOpen || this.items?.length <= 0) {\r\n return;\r\n }\r\n if (!this._isTypeahead && !this.addTag && this.itemsList.noItemsToSelect) {\r\n return;\r\n }\r\n this.isOpen = true;\r\n this.itemsList.markSelectedOrDefault(this.markFirst);\r\n this.openEvent.emit();\r\n if (!this.filterValue) {\r\n this.focus();\r\n }\r\n this.detectChanges();\r\n }\r\n\r\n close() {\r\n if (!this.isOpen || this._manualOpen) {\r\n return;\r\n }\r\n this.isOpen = false;\r\n this._clearSearch();\r\n this._onTouched();\r\n this.closeEvent.emit();\r\n this._cd.markForCheck();\r\n }\r\n\r\n toggleItem(item: NgOption) {\r\n const dropdown = document.getElementById(this.dropdownId);\r\n const styles = window.getComputedStyle(dropdown);\r\n const opacity = styles.opacity;\r\n if (!item || item.disabled || this.disabled || opacity != \"1\") {\r\n return;\r\n }\r\n\r\n if (this.multiple && item.selected) {\r\n if (this.repeatable) {\r\n if (this.isIconClick) this.unselect(item, null);\r\n else this.select(item);\r\n } else {\r\n this.unselect(item, null);\r\n }\r\n } else {\r\n this.select(item);\r\n }\r\n }\r\n\r\n select(item: NgOption) {\r\n if (!item.selected || this.repeatable) {\r\n this.itemsList.select(item);\r\n if (this.clearSearchOnAdd) {\r\n this._clearSearch();\r\n }\r\n\r\n if (this.multiple) {\r\n this.addEvent.emit(item.value);\r\n }\r\n this._updateNgModel();\r\n }\r\n\r\n if (this.closeOnSelect || this.itemsList.noItemsToSelect) {\r\n this.close();\r\n }\r\n }\r\n\r\n focus() {\r\n this.filterInput.nativeElement.focus();\r\n }\r\n\r\n unselect(item: NgOption, isIconClick?: boolean) {\r\n this.isIconClick = isIconClick;\r\n this.itemsList.unselect(item);\r\n this.focus();\r\n this._updateNgModel();\r\n this.removeEvent.emit(item);\r\n this.isIconClick = false;\r\n }\r\n\r\n selectTag() {\r\n let tag;\r\n if (isFunction(this.addTag)) {\r\n tag = (this.addTag)(this.filterValue);\r\n } else {\r\n tag = this._primitive ? this.filterValue : { [this.bindLabel]: this.filterValue };\r\n }\r\n\r\n const handleTag = (item) => (this._isTypeahead || !this.isOpen ? this.itemsList.mapItem(item, null) : this.itemsList.addItem(item));\r\n if (isPromise(tag)) {\r\n tag.then((item) => this.select(handleTag(item))).catch(() => {});\r\n } else if (tag) {\r\n this.select(handleTag(tag));\r\n }\r\n }\r\n\r\n get showAddTag() {\r\n if (!this.filterValue) {\r\n return false;\r\n }\r\n\r\n const term = this.filterValue.toLowerCase();\r\n return (\r\n this.addTag &&\r\n !this.itemsList.filteredItems.some((x) => x.label.toLowerCase() === term) &&\r\n ((!this.hideSelected && this.isOpen) || !this.selectedItems.some((x) => x.label.toLowerCase() === term)) &&\r\n !this.loading\r\n );\r\n }\r\n\r\n filter(term: string) {\r\n //if(!this.isMultiColumns){\r\n this.filterValue = CorrectYeKeService.getCorrectYeKe(term);\r\n this.open();\r\n\r\n if (this._isTypeahead) {\r\n this.typeahead.next(this.filterValue);\r\n } else {\r\n this.itemsList.filter(this.filterValue);\r\n if (this.isOpen) {\r\n this.itemsList.markSelectedOrDefault(this.markFirst);\r\n }\r\n }\r\n //}\r\n this.searchEvent.emit(term);\r\n }\r\n\r\n onInputFocus($event) {\r\n if (this.focused) {\r\n return;\r\n }\r\n\r\n this.element.classList.add(\"ng-select-focused\");\r\n this.focusEvent.emit($event);\r\n this.focused = true;\r\n }\r\n\r\n onInputBlur($event) {\r\n this.element.classList.remove(\"ng-select-focused\");\r\n this.blurEvent.emit($event);\r\n if (!this.isOpen && !this.disabled) {\r\n this._onTouched();\r\n }\r\n this.focused = false;\r\n }\r\n\r\n onItemHover(item: NgOption) {\r\n if (item.disabled) {\r\n return;\r\n }\r\n this.itemsList.markItem(item);\r\n }\r\n\r\n detectChanges() {\r\n if (!(this._cd).destroyed) {\r\n this._cd.detectChanges();\r\n }\r\n }\r\n\r\n updateDropdownPosition() {\r\n if (this.dropdownPanel) {\r\n this.dropdownPanel.updateDropdownPosition();\r\n }\r\n }\r\n\r\n private _setItems(items: any[]) {\r\n const firstItem = items[0];\r\n this.bindLabel = this.bindLabel || this._defaultLabel;\r\n this._primitive = isDefined(firstItem) ? !isObject(firstItem) : this._primitive;\r\n this.itemsList.setItems(items);\r\n if (items.length > 0 && this.hasValue) {\r\n this.itemsList.mapSelectedItems();\r\n }\r\n if (this.isOpen && isDefined(this.filterValue) && !this._isTypeahead) {\r\n this.itemsList.filter(this.filterValue);\r\n }\r\n if (this._isTypeahead || this.isOpen) {\r\n this.itemsList.markSelectedOrDefault(this.markFirst);\r\n }\r\n }\r\n\r\n private _setItemsFromNgOptions() {\r\n const handleNgOptions = (options: QueryList) => {\r\n this.items = options.map((option) => ({\r\n $ngOptionValue: option.value,\r\n $ngOptionLabel: option.elementRef.nativeElement.innerHTML,\r\n disabled: option.disabled,\r\n }));\r\n this.itemsList.setItems(this.items);\r\n if (this.hasValue) {\r\n this.itemsList.mapSelectedItems();\r\n }\r\n this.detectChanges();\r\n };\r\n\r\n const handleOptionChange = () => {\r\n const changedOrDestroyed = merge(this.ngOptions.changes, this._destroy$);\r\n merge(...this.ngOptions.map((option) => option.stateChange$))\r\n .pipe(takeUntil(changedOrDestroyed))\r\n .subscribe((option) => {\r\n const item = this.itemsList.findItem(option.value);\r\n item.disabled = option.disabled;\r\n this._cd.markForCheck();\r\n });\r\n };\r\n\r\n this.ngOptions.changes\r\n .pipe(\r\n startWith(this.ngOptions),\r\n takeUntil(this._destroy$),\r\n filter((items: QueryList) => !!items.length)\r\n )\r\n .subscribe((options) => {\r\n this.bindLabel = this._defaultLabel;\r\n handleNgOptions(options);\r\n handleOptionChange();\r\n });\r\n }\r\n\r\n private _isValidWriteValue(value: any): boolean {\r\n if (!isDefined(value) || (this.multiple && value === \"\") || (Array.isArray(value) && value.length === 0)) {\r\n return false;\r\n }\r\n\r\n const validateBinding = (item: any): boolean => {\r\n if (!isDefined(this.compareWith) && isObject(item) && this.bindValue) {\r\n this._console.warn(`Binding object(${JSON.stringify(item)}) with bindValue is not allowed.`);\r\n return false;\r\n }\r\n return true;\r\n };\r\n\r\n if (this.multiple) {\r\n if (!Array.isArray(value)) {\r\n this._console.warn(\"Multiple select ngModel should be array.\");\r\n return false;\r\n }\r\n return value.every((item) => validateBinding(item));\r\n } else {\r\n return validateBinding(value);\r\n }\r\n }\r\n\r\n private _handleWriteValue(ngModel: any | any[]) {\r\n if (!this._isValidWriteValue(ngModel)) {\r\n return;\r\n }\r\n\r\n const select = (val: any) => {\r\n let item = this.itemsList.findItem(val);\r\n if (item) {\r\n this.itemsList.select(item);\r\n } else {\r\n const isValObject = isObject(val);\r\n const isPrimitive = !isValObject && !this.bindValue;\r\n if (isValObject || isPrimitive) {\r\n this.itemsList.select(this.itemsList.mapItem(val, null));\r\n } else if (this.bindValue) {\r\n item = {\r\n [this.bindLabel]: null,\r\n [this.bindValue]: val,\r\n };\r\n this.itemsList.select(this.itemsList.mapItem(item, null));\r\n }\r\n }\r\n };\r\n\r\n if (this.multiple) {\r\n (ngModel).forEach((item) => select(item));\r\n } else {\r\n select(ngModel);\r\n }\r\n }\r\n\r\n private _handleKeyPresses() {\r\n if (this.searchable) {\r\n return;\r\n }\r\n\r\n this._keyPress$\r\n .pipe(\r\n takeUntil(this._destroy$),\r\n tap((letter) => this._pressedKeys.push(letter)),\r\n debounceTime(200),\r\n filter(() => this._pressedKeys.length > 0),\r\n map(() => this._pressedKeys.join(\"\"))\r\n )\r\n .subscribe((term) => {\r\n const item = this.itemsList.findByLabel(term);\r\n if (item) {\r\n if (this.isOpen) {\r\n this.itemsList.markItem(item);\r\n this._cd.markForCheck();\r\n } else {\r\n this.select(item);\r\n }\r\n }\r\n this._pressedKeys = [];\r\n });\r\n }\r\n\r\n private _updateNgModel() {\r\n const model = [];\r\n for (const item of this.selectedItems) {\r\n if (this.bindValue) {\r\n let value = null;\r\n if (item.children) {\r\n value = item.value[this.groupBy];\r\n } else {\r\n value = this.itemsList.resolveNested(item.value, this.bindValue);\r\n }\r\n model.push(value);\r\n } else {\r\n model.push(item.value);\r\n }\r\n }\r\n const selected = this.selectedItems.map((x) => x.value);\r\n if (this.multiple) {\r\n this._onChange(model);\r\n this.changeEvent.emit(selected);\r\n } else {\r\n this._onChange(isDefined(model[0]) ? model[0] : null);\r\n this.changeEvent.emit(selected[0]);\r\n }\r\n\r\n this._cd.markForCheck();\r\n }\r\n\r\n private _clearSearch() {\r\n if (!this.filterValue) {\r\n return;\r\n }\r\n\r\n this.filterValue = null;\r\n this.itemsList.resetFilteredItems();\r\n }\r\n\r\n private _scrollToMarked() {\r\n if (!this.isOpen || !this.dropdownPanel) {\r\n return;\r\n }\r\n this.dropdownPanel.scrollInto(this.itemsList.markedItem);\r\n }\r\n\r\n private _scrollToTag() {\r\n if (!this.isOpen || !this.dropdownPanel) {\r\n return;\r\n }\r\n this.dropdownPanel.scrollIntoTag();\r\n }\r\n\r\n private _handleTab($event: KeyboardEvent) {\r\n if (!this.isOpen) {\r\n return;\r\n }\r\n if (this.selectOnTab) {\r\n if (this.itemsList.markedItem) {\r\n this.toggleItem(this.itemsList.markedItem);\r\n $event.preventDefault();\r\n } else if (this.showAddTag) {\r\n this.selectTag();\r\n $event.preventDefault();\r\n } else {\r\n this.close();\r\n }\r\n } else {\r\n this.close();\r\n }\r\n }\r\n\r\n private _handleEnter($event: KeyboardEvent) {\r\n if (this.isOpen || this._manualOpen) {\r\n if (this.itemsList.markedItem) {\r\n this.toggleItem(this.itemsList.markedItem);\r\n } else if (this.showAddTag) {\r\n this.selectTag();\r\n }\r\n } else if (this.openOnEnter) {\r\n this.open();\r\n } else {\r\n return;\r\n }\r\n\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n\r\n private _handleSpace($event: KeyboardEvent) {\r\n if (this.isOpen || this._manualOpen) {\r\n return;\r\n }\r\n this.open();\r\n $event.preventDefault();\r\n }\r\n\r\n private _handleArrowDown($event: KeyboardEvent) {\r\n if (this._nextItemIsTag(+1)) {\r\n this.itemsList.unmarkItem();\r\n this._scrollToTag();\r\n } else {\r\n this.itemsList.markNextItem();\r\n this._scrollToMarked();\r\n }\r\n this.open();\r\n $event.preventDefault();\r\n }\r\n\r\n private _handleArrowUp($event: KeyboardEvent) {\r\n if (!this.isOpen) {\r\n return;\r\n }\r\n\r\n if (this._nextItemIsTag(-1)) {\r\n this.itemsList.unmarkItem();\r\n this._scrollToTag();\r\n } else {\r\n this.itemsList.markPreviousItem();\r\n this._scrollToMarked();\r\n }\r\n $event.preventDefault();\r\n }\r\n\r\n private _nextItemIsTag(nextStep: number): boolean {\r\n const nextIndex = this.itemsList.markedIndex + nextStep;\r\n return this.addTag && this.filterValue && this.itemsList.markedItem && (nextIndex < 0 || nextIndex === this.itemsList.filteredItems.length);\r\n }\r\n\r\n private _handleBackspace() {\r\n if (this.filterValue || !this.clearable || !this.clearOnBackspace || !this.hasValue) {\r\n return;\r\n }\r\n\r\n if (this.multiple) {\r\n this.unselect(this.itemsList.lastSelectedItem, null);\r\n } else {\r\n this.clearModel();\r\n }\r\n }\r\n\r\n private get _isTypeahead() {\r\n return this.typeahead && this.typeahead.observers.length > 0;\r\n }\r\n\r\n private _mergeGlobalConfig(config: NgSelectConfig) {\r\n this.placeholder = this.placeholder || config.placeholder;\r\n this.notFoundText = this.notFoundText || config.notFoundText;\r\n this.typeToSearchText = this.typeToSearchText || config.typeToSearchText;\r\n this.addTagText = this.addTagText || config.addTagText;\r\n this.loadingText = this.loadingText || config.loadingText;\r\n this.clearAllText = this.clearAllText || config.clearAllText;\r\n this.virtualScroll = isDefined(this.virtualScroll)\r\n ? this.virtualScroll\r\n : isDefined(config.disableVirtualScroll)\r\n ? !config.disableVirtualScroll\r\n : false;\r\n this.openOnEnter = isDefined(this.openOnEnter) ? this.openOnEnter : config.openOnEnter;\r\n }\r\n selectAll() {\r\n this.itemsList.items.forEach((element) => {\r\n this.select(element);\r\n });\r\n this.itemsList.isSelectedAll = true;\r\n this.onSelectAll.emit();\r\n }\r\n unselectAll() {\r\n this.itemsList.items.forEach((element) => {\r\n this.unselect(element, true);\r\n });\r\n this.onDeSelectAll.emit();\r\n }\r\n}\r\n","
\r\n
\r\n
{{ placeholder }}
\r\n\r\n 0\">\r\n \r\n
\r\n \r\n ×\r\n {{ item.label }}\r\n \r\n \r\n \r\n
\r\n
\r\n 0\">\r\n
\r\n \r\n ×\r\n {{ item.label }}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n 0\"\r\n [ngTemplateOutlet]=\"multiLabelTemplate\"\r\n [ngTemplateOutletContext]=\"{ items: selectedValues, clear: clearItem }\">\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
is required
\r\n
must be at least characters long.
\r\n
cannot be more than characters long.
\r\n
\r\n
\r\n limitSelection\">{{\r\n itemsList.selectedItems.length - limitSelection\r\n }}\r\n \r\n ×\r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n\r\n \r\n
انتخاب کل
\r\n
پاک کردن کل
\r\n \r\n \r\n {{ item.label }}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ addTagText }}\"{{ filterValue }}\"
\r\n \r\n\r\n \r\n \r\n \r\n\r\n 0 && !loading) ||\r\n (itemsList?.filteredItems?.length === 0 && typeahead && typeahead?.observers?.length > 0 && filterValue && !loading)) &&\r\n !showAddTag\r\n \">\r\n \r\n
{{ notFoundText }}
\r\n
\r\n\r\n \r\n \r\n \r\n\r\n 0 && !filterValue && !loading\">\r\n \r\n
{{ typeToSearchText }}
\r\n
\r\n\r\n \r\n
\r\n\r\n \r\n \r\n
{{ loadingText }}
\r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgSelectComponent, SELECTION_MODEL_FACTORY } from './ng-select.component';\r\nimport {\r\n NgFooterTemplateDirective,\r\n NgHeaderTemplateDirective,\r\n NgLabelTemplateDirective,\r\n NgLoadingTextTemplateDirective,\r\n NgMultiLabelTemplateDirective,\r\n NgNotFoundTemplateDirective,\r\n NgOptgroupTemplateDirective,\r\n NgOptionTemplateDirective,\r\n NgTagTemplateDirective,\r\n NgTypeToSearchTemplateDirective\r\n} from './ng-templates.directive';\r\nimport { NgOptionComponent } from './ng-option.component';\r\nimport { NgOptionHighlightDirective } from './ng-option-highlight.directive';\r\nimport { NgDropdownPanelComponent } from './ng-dropdown-panel.component';\r\nimport { DefaultSelectionModelFactory } from './selection-model';\r\n\r\n@NgModule({\r\n declarations: [\r\n NgDropdownPanelComponent,\r\n NgOptionComponent,\r\n NgSelectComponent,\r\n NgOptionHighlightDirective,\r\n NgOptgroupTemplateDirective,\r\n NgOptionTemplateDirective,\r\n NgLabelTemplateDirective,\r\n NgMultiLabelTemplateDirective,\r\n NgHeaderTemplateDirective,\r\n NgFooterTemplateDirective,\r\n NgNotFoundTemplateDirective,\r\n NgTypeToSearchTemplateDirective,\r\n NgLoadingTextTemplateDirective,\r\n NgTagTemplateDirective,\r\n ],\r\n imports: [\r\n CommonModule\r\n ],\r\n exports: [\r\n NgSelectComponent,\r\n NgOptionComponent,\r\n NgOptionHighlightDirective,\r\n NgOptgroupTemplateDirective,\r\n NgOptionTemplateDirective,\r\n NgLabelTemplateDirective,\r\n NgMultiLabelTemplateDirective,\r\n NgHeaderTemplateDirective,\r\n NgFooterTemplateDirective,\r\n NgNotFoundTemplateDirective,\r\n NgTypeToSearchTemplateDirective,\r\n NgLoadingTextTemplateDirective,\r\n NgTagTemplateDirective\r\n ],\r\n providers: [\r\n { provide: SELECTION_MODEL_FACTORY, useValue: DefaultSelectionModelFactory }\r\n ]\r\n})\r\nexport class NgSelectModule { }\r\n","export interface NgOption {\r\n [name: string]: any;\r\n index?: number;\r\n qty?: number;\r\n htmlId?: string;\r\n selected?: boolean;\r\n disabled?: boolean;\r\n marked?: boolean;\r\n label?: string;\r\n value?: string | Object;\r\n parent?: NgOption;\r\n children?: NgOption[];\r\n}\r\n\r\nexport enum KeyCode {\r\n Tab = 9,\r\n Enter = 13,\r\n Esc = 27,\r\n Space = 32,\r\n ArrowUp = 38,\r\n ArrowDown = 40,\r\n Backspace = 8\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({ selector: '[ng-option-tmp]' })\r\nexport class NgOptionTemplateDirective {\r\n constructor(public template: TemplateRef) { }\r\n}\r\n\r\n@Directive({ selector: '[ng-optgroup-tmp]' })\r\nexport class NgOptgroupTemplateDirective {\r\n constructor(public template: TemplateRef) { }\r\n}\r\n\r\n@Directive({ selector: '[ng-label-tmp]' })\r\nexport class NgLabelTemplateDirective {\r\n constructor(public template: TemplateRef) { }\r\n}\r\n\r\n@Directive({ selector: '[ng-multi-label-tmp]' })\r\nexport class NgMultiLabelTemplateDirective {\r\n constructor(public template: TemplateRef) { }\r\n}\r\n\r\n@Directive({ selector: '[ng-header-tmp]' })\r\nexport class NgHeaderTemplateDirective {\r\n constructor(public template: TemplateRef) { }\r\n}\r\n\r\n@Directive({ selector: '[ng-footer-tmp]' })\r\nexport class NgFooterTemplateDirective {\r\n constructor(public template: TemplateRef) { }\r\n}\r\n\r\n@Directive({ selector: '[ng-notfound-tmp]' })\r\nexport class NgNotFoundTemplateDirective {\r\n constructor(public template: TemplateRef) { }\r\n}\r\n\r\n@Directive({ selector: '[ng-typetosearch-tmp]' })\r\nexport class NgTypeToSearchTemplateDirective {\r\n constructor(public template: TemplateRef) { }\r\n}\r\n\r\n@Directive({ selector: '[ng-loadingtext-tmp]' })\r\nexport class NgLoadingTextTemplateDirective {\r\n constructor(public template: TemplateRef) { }\r\n}\r\n\r\n@Directive({ selector: '[ng-tag-tmp]' })\r\nexport class NgTagTemplateDirective {\r\n constructor(public template: TemplateRef) { }\r\n}\r\n","const diacritics = {\r\n '\\u24B6': 'A',\r\n '\\uFF21': 'A',\r\n '\\u00C0': 'A',\r\n '\\u00C1': 'A',\r\n '\\u00C2': 'A',\r\n '\\u1EA6': 'A',\r\n '\\u1EA4': 'A',\r\n '\\u1EAA': 'A',\r\n '\\u1EA8': 'A',\r\n '\\u00C3': 'A',\r\n '\\u0100': 'A',\r\n '\\u0102': 'A',\r\n '\\u1EB0': 'A',\r\n '\\u1EAE': 'A',\r\n '\\u1EB4': 'A',\r\n '\\u1EB2': 'A',\r\n '\\u0226': 'A',\r\n '\\u01E0': 'A',\r\n '\\u00C4': 'A',\r\n '\\u01DE': 'A',\r\n '\\u1EA2': 'A',\r\n '\\u00C5': 'A',\r\n '\\u01FA': 'A',\r\n '\\u01CD': 'A',\r\n '\\u0200': 'A',\r\n '\\u0202': 'A',\r\n '\\u1EA0': 'A',\r\n '\\u1EAC': 'A',\r\n '\\u1EB6': 'A',\r\n '\\u1E00': 'A',\r\n '\\u0104': 'A',\r\n '\\u023A': 'A',\r\n '\\u2C6F': 'A',\r\n '\\uA732': 'AA',\r\n '\\u00C6': 'AE',\r\n '\\u01FC': 'AE',\r\n '\\u01E2': 'AE',\r\n '\\uA734': 'AO',\r\n '\\uA736': 'AU',\r\n '\\uA738': 'AV',\r\n '\\uA73A': 'AV',\r\n '\\uA73C': 'AY',\r\n '\\u24B7': 'B',\r\n '\\uFF22': 'B',\r\n '\\u1E02': 'B',\r\n '\\u1E04': 'B',\r\n '\\u1E06': 'B',\r\n '\\u0243': 'B',\r\n '\\u0182': 'B',\r\n '\\u0181': 'B',\r\n '\\u24B8': 'C',\r\n '\\uFF23': 'C',\r\n '\\u0106': 'C',\r\n '\\u0108': 'C',\r\n '\\u010A': 'C',\r\n '\\u010C': 'C',\r\n '\\u00C7': 'C',\r\n '\\u1E08': 'C',\r\n '\\u0187': 'C',\r\n '\\u023B': 'C',\r\n '\\uA73E': 'C',\r\n '\\u24B9': 'D',\r\n '\\uFF24': 'D',\r\n '\\u1E0A': 'D',\r\n '\\u010E': 'D',\r\n '\\u1E0C': 'D',\r\n '\\u1E10': 'D',\r\n '\\u1E12': 'D',\r\n '\\u1E0E': 'D',\r\n '\\u0110': 'D',\r\n '\\u018B': 'D',\r\n '\\u018A': 'D',\r\n '\\u0189': 'D',\r\n '\\uA779': 'D',\r\n '\\u01F1': 'DZ',\r\n '\\u01C4': 'DZ',\r\n '\\u01F2': 'Dz',\r\n '\\u01C5': 'Dz',\r\n '\\u24BA': 'E',\r\n '\\uFF25': 'E',\r\n '\\u00C8': 'E',\r\n '\\u00C9': 'E',\r\n '\\u00CA': 'E',\r\n '\\u1EC0': 'E',\r\n '\\u1EBE': 'E',\r\n '\\u1EC4': 'E',\r\n '\\u1EC2': 'E',\r\n '\\u1EBC': 'E',\r\n '\\u0112': 'E',\r\n '\\u1E14': 'E',\r\n '\\u1E16': 'E',\r\n '\\u0114': 'E',\r\n '\\u0116': 'E',\r\n '\\u00CB': 'E',\r\n '\\u1EBA': 'E',\r\n '\\u011A': 'E',\r\n '\\u0204': 'E',\r\n '\\u0206': 'E',\r\n '\\u1EB8': 'E',\r\n '\\u1EC6': 'E',\r\n '\\u0228': 'E',\r\n '\\u1E1C': 'E',\r\n '\\u0118': 'E',\r\n '\\u1E18': 'E',\r\n '\\u1E1A': 'E',\r\n '\\u0190': 'E',\r\n '\\u018E': 'E',\r\n '\\u24BB': 'F',\r\n '\\uFF26': 'F',\r\n '\\u1E1E': 'F',\r\n '\\u0191': 'F',\r\n '\\uA77B': 'F',\r\n '\\u24BC': 'G',\r\n '\\uFF27': 'G',\r\n '\\u01F4': 'G',\r\n '\\u011C': 'G',\r\n '\\u1E20': 'G',\r\n '\\u011E': 'G',\r\n '\\u0120': 'G',\r\n '\\u01E6': 'G',\r\n '\\u0122': 'G',\r\n '\\u01E4': 'G',\r\n '\\u0193': 'G',\r\n '\\uA7A0': 'G',\r\n '\\uA77D': 'G',\r\n '\\uA77E': 'G',\r\n '\\u24BD': 'H',\r\n '\\uFF28': 'H',\r\n '\\u0124': 'H',\r\n '\\u1E22': 'H',\r\n '\\u1E26': 'H',\r\n '\\u021E': 'H',\r\n '\\u1E24': 'H',\r\n '\\u1E28': 'H',\r\n '\\u1E2A': 'H',\r\n '\\u0126': 'H',\r\n '\\u2C67': 'H',\r\n '\\u2C75': 'H',\r\n '\\uA78D': 'H',\r\n '\\u24BE': 'I',\r\n '\\uFF29': 'I',\r\n '\\u00CC': 'I',\r\n '\\u00CD': 'I',\r\n '\\u00CE': 'I',\r\n '\\u0128': 'I',\r\n '\\u012A': 'I',\r\n '\\u012C': 'I',\r\n '\\u0130': 'I',\r\n '\\u00CF': 'I',\r\n '\\u1E2E': 'I',\r\n '\\u1EC8': 'I',\r\n '\\u01CF': 'I',\r\n '\\u0208': 'I',\r\n '\\u020A': 'I',\r\n '\\u1ECA': 'I',\r\n '\\u012E': 'I',\r\n '\\u1E2C': 'I',\r\n '\\u0197': 'I',\r\n '\\u24BF': 'J',\r\n '\\uFF2A': 'J',\r\n '\\u0134': 'J',\r\n '\\u0248': 'J',\r\n '\\u24C0': 'K',\r\n '\\uFF2B': 'K',\r\n '\\u1E30': 'K',\r\n '\\u01E8': 'K',\r\n '\\u1E32': 'K',\r\n '\\u0136': 'K',\r\n '\\u1E34': 'K',\r\n '\\u0198': 'K',\r\n '\\u2C69': 'K',\r\n '\\uA740': 'K',\r\n '\\uA742': 'K',\r\n '\\uA744': 'K',\r\n '\\uA7A2': 'K',\r\n '\\u24C1': 'L',\r\n '\\uFF2C': 'L',\r\n '\\u013F': 'L',\r\n '\\u0139': 'L',\r\n '\\u013D': 'L',\r\n '\\u1E36': 'L',\r\n '\\u1E38': 'L',\r\n '\\u013B': 'L',\r\n '\\u1E3C': 'L',\r\n '\\u1E3A': 'L',\r\n '\\u0141': 'L',\r\n '\\u023D': 'L',\r\n '\\u2C62': 'L',\r\n '\\u2C60': 'L',\r\n '\\uA748': 'L',\r\n '\\uA746': 'L',\r\n '\\uA780': 'L',\r\n '\\u01C7': 'LJ',\r\n '\\u01C8': 'Lj',\r\n '\\u24C2': 'M',\r\n '\\uFF2D': 'M',\r\n '\\u1E3E': 'M',\r\n '\\u1E40': 'M',\r\n '\\u1E42': 'M',\r\n '\\u2C6E': 'M',\r\n '\\u019C': 'M',\r\n '\\u24C3': 'N',\r\n '\\uFF2E': 'N',\r\n '\\u01F8': 'N',\r\n '\\u0143': 'N',\r\n '\\u00D1': 'N',\r\n '\\u1E44': 'N',\r\n '\\u0147': 'N',\r\n '\\u1E46': 'N',\r\n '\\u0145': 'N',\r\n '\\u1E4A': 'N',\r\n '\\u1E48': 'N',\r\n '\\u0220': 'N',\r\n '\\u019D': 'N',\r\n '\\uA790': 'N',\r\n '\\uA7A4': 'N',\r\n '\\u01CA': 'NJ',\r\n '\\u01CB': 'Nj',\r\n '\\u24C4': 'O',\r\n '\\uFF2F': 'O',\r\n '\\u00D2': 'O',\r\n '\\u00D3': 'O',\r\n '\\u00D4': 'O',\r\n '\\u1ED2': 'O',\r\n '\\u1ED0': 'O',\r\n '\\u1ED6': 'O',\r\n '\\u1ED4': 'O',\r\n '\\u00D5': 'O',\r\n '\\u1E4C': 'O',\r\n '\\u022C': 'O',\r\n '\\u1E4E': 'O',\r\n '\\u014C': 'O',\r\n '\\u1E50': 'O',\r\n '\\u1E52': 'O',\r\n '\\u014E': 'O',\r\n '\\u022E': 'O',\r\n '\\u0230': 'O',\r\n '\\u00D6': 'O',\r\n '\\u022A': 'O',\r\n '\\u1ECE': 'O',\r\n '\\u0150': 'O',\r\n '\\u01D1': 'O',\r\n '\\u020C': 'O',\r\n '\\u020E': 'O',\r\n '\\u01A0': 'O',\r\n '\\u1EDC': 'O',\r\n '\\u1EDA': 'O',\r\n '\\u1EE0': 'O',\r\n '\\u1EDE': 'O',\r\n '\\u1EE2': 'O',\r\n '\\u1ECC': 'O',\r\n '\\u1ED8': 'O',\r\n '\\u01EA': 'O',\r\n '\\u01EC': 'O',\r\n '\\u00D8': 'O',\r\n '\\u01FE': 'O',\r\n '\\u0186': 'O',\r\n '\\u019F': 'O',\r\n '\\uA74A': 'O',\r\n '\\uA74C': 'O',\r\n '\\u01A2': 'OI',\r\n '\\uA74E': 'OO',\r\n '\\u0222': 'OU',\r\n '\\u24C5': 'P',\r\n '\\uFF30': 'P',\r\n '\\u1E54': 'P',\r\n '\\u1E56': 'P',\r\n '\\u01A4': 'P',\r\n '\\u2C63': 'P',\r\n '\\uA750': 'P',\r\n '\\uA752': 'P',\r\n '\\uA754': 'P',\r\n '\\u24C6': 'Q',\r\n '\\uFF31': 'Q',\r\n '\\uA756': 'Q',\r\n '\\uA758': 'Q',\r\n '\\u024A': 'Q',\r\n '\\u24C7': 'R',\r\n '\\uFF32': 'R',\r\n '\\u0154': 'R',\r\n '\\u1E58': 'R',\r\n '\\u0158': 'R',\r\n '\\u0210': 'R',\r\n '\\u0212': 'R',\r\n '\\u1E5A': 'R',\r\n '\\u1E5C': 'R',\r\n '\\u0156': 'R',\r\n '\\u1E5E': 'R',\r\n '\\u024C': 'R',\r\n '\\u2C64': 'R',\r\n '\\uA75A': 'R',\r\n '\\uA7A6': 'R',\r\n '\\uA782': 'R',\r\n '\\u24C8': 'S',\r\n '\\uFF33': 'S',\r\n '\\u1E9E': 'S',\r\n '\\u015A': 'S',\r\n '\\u1E64': 'S',\r\n '\\u015C': 'S',\r\n '\\u1E60': 'S',\r\n '\\u0160': 'S',\r\n '\\u1E66': 'S',\r\n '\\u1E62': 'S',\r\n '\\u1E68': 'S',\r\n '\\u0218': 'S',\r\n '\\u015E': 'S',\r\n '\\u2C7E': 'S',\r\n '\\uA7A8': 'S',\r\n '\\uA784': 'S',\r\n '\\u24C9': 'T',\r\n '\\uFF34': 'T',\r\n '\\u1E6A': 'T',\r\n '\\u0164': 'T',\r\n '\\u1E6C': 'T',\r\n '\\u021A': 'T',\r\n '\\u0162': 'T',\r\n '\\u1E70': 'T',\r\n '\\u1E6E': 'T',\r\n '\\u0166': 'T',\r\n '\\u01AC': 'T',\r\n '\\u01AE': 'T',\r\n '\\u023E': 'T',\r\n '\\uA786': 'T',\r\n '\\uA728': 'TZ',\r\n '\\u24CA': 'U',\r\n '\\uFF35': 'U',\r\n '\\u00D9': 'U',\r\n '\\u00DA': 'U',\r\n '\\u00DB': 'U',\r\n '\\u0168': 'U',\r\n '\\u1E78': 'U',\r\n '\\u016A': 'U',\r\n '\\u1E7A': 'U',\r\n '\\u016C': 'U',\r\n '\\u00DC': 'U',\r\n '\\u01DB': 'U',\r\n '\\u01D7': 'U',\r\n '\\u01D5': 'U',\r\n '\\u01D9': 'U',\r\n '\\u1EE6': 'U',\r\n '\\u016E': 'U',\r\n '\\u0170': 'U',\r\n '\\u01D3': 'U',\r\n '\\u0214': 'U',\r\n '\\u0216': 'U',\r\n '\\u01AF': 'U',\r\n '\\u1EEA': 'U',\r\n '\\u1EE8': 'U',\r\n '\\u1EEE': 'U',\r\n '\\u1EEC': 'U',\r\n '\\u1EF0': 'U',\r\n '\\u1EE4': 'U',\r\n '\\u1E72': 'U',\r\n '\\u0172': 'U',\r\n '\\u1E76': 'U',\r\n '\\u1E74': 'U',\r\n '\\u0244': 'U',\r\n '\\u24CB': 'V',\r\n '\\uFF36': 'V',\r\n '\\u1E7C': 'V',\r\n '\\u1E7E': 'V',\r\n '\\u01B2': 'V',\r\n '\\uA75E': 'V',\r\n '\\u0245': 'V',\r\n '\\uA760': 'VY',\r\n '\\u24CC': 'W',\r\n '\\uFF37': 'W',\r\n '\\u1E80': 'W',\r\n '\\u1E82': 'W',\r\n '\\u0174': 'W',\r\n '\\u1E86': 'W',\r\n '\\u1E84': 'W',\r\n '\\u1E88': 'W',\r\n '\\u2C72': 'W',\r\n '\\u24CD': 'X',\r\n '\\uFF38': 'X',\r\n '\\u1E8A': 'X',\r\n '\\u1E8C': 'X',\r\n '\\u24CE': 'Y',\r\n '\\uFF39': 'Y',\r\n '\\u1EF2': 'Y',\r\n '\\u00DD': 'Y',\r\n '\\u0176': 'Y',\r\n '\\u1EF8': 'Y',\r\n '\\u0232': 'Y',\r\n '\\u1E8E': 'Y',\r\n '\\u0178': 'Y',\r\n '\\u1EF6': 'Y',\r\n '\\u1EF4': 'Y',\r\n '\\u01B3': 'Y',\r\n '\\u024E': 'Y',\r\n '\\u1EFE': 'Y',\r\n '\\u24CF': 'Z',\r\n '\\uFF3A': 'Z',\r\n '\\u0179': 'Z',\r\n '\\u1E90': 'Z',\r\n '\\u017B': 'Z',\r\n '\\u017D': 'Z',\r\n '\\u1E92': 'Z',\r\n '\\u1E94': 'Z',\r\n '\\u01B5': 'Z',\r\n '\\u0224': 'Z',\r\n '\\u2C7F': 'Z',\r\n '\\u2C6B': 'Z',\r\n '\\uA762': 'Z',\r\n '\\u24D0': 'a',\r\n '\\uFF41': 'a',\r\n '\\u1E9A': 'a',\r\n '\\u00E0': 'a',\r\n '\\u00E1': 'a',\r\n '\\u00E2': 'a',\r\n '\\u1EA7': 'a',\r\n '\\u1EA5': 'a',\r\n '\\u1EAB': 'a',\r\n '\\u1EA9': 'a',\r\n '\\u00E3': 'a',\r\n '\\u0101': 'a',\r\n '\\u0103': 'a',\r\n '\\u1EB1': 'a',\r\n '\\u1EAF': 'a',\r\n '\\u1EB5': 'a',\r\n '\\u1EB3': 'a',\r\n '\\u0227': 'a',\r\n '\\u01E1': 'a',\r\n '\\u00E4': 'a',\r\n '\\u01DF': 'a',\r\n '\\u1EA3': 'a',\r\n '\\u00E5': 'a',\r\n '\\u01FB': 'a',\r\n '\\u01CE': 'a',\r\n '\\u0201': 'a',\r\n '\\u0203': 'a',\r\n '\\u1EA1': 'a',\r\n '\\u1EAD': 'a',\r\n '\\u1EB7': 'a',\r\n '\\u1E01': 'a',\r\n '\\u0105': 'a',\r\n '\\u2C65': 'a',\r\n '\\u0250': 'a',\r\n '\\uA733': 'aa',\r\n '\\u00E6': 'ae',\r\n '\\u01FD': 'ae',\r\n '\\u01E3': 'ae',\r\n '\\uA735': 'ao',\r\n '\\uA737': 'au',\r\n '\\uA739': 'av',\r\n '\\uA73B': 'av',\r\n '\\uA73D': 'ay',\r\n '\\u24D1': 'b',\r\n '\\uFF42': 'b',\r\n '\\u1E03': 'b',\r\n '\\u1E05': 'b',\r\n '\\u1E07': 'b',\r\n '\\u0180': 'b',\r\n '\\u0183': 'b',\r\n '\\u0253': 'b',\r\n '\\u24D2': 'c',\r\n '\\uFF43': 'c',\r\n '\\u0107': 'c',\r\n '\\u0109': 'c',\r\n '\\u010B': 'c',\r\n '\\u010D': 'c',\r\n '\\u00E7': 'c',\r\n '\\u1E09': 'c',\r\n '\\u0188': 'c',\r\n '\\u023C': 'c',\r\n '\\uA73F': 'c',\r\n '\\u2184': 'c',\r\n '\\u24D3': 'd',\r\n '\\uFF44': 'd',\r\n '\\u1E0B': 'd',\r\n '\\u010F': 'd',\r\n '\\u1E0D': 'd',\r\n '\\u1E11': 'd',\r\n '\\u1E13': 'd',\r\n '\\u1E0F': 'd',\r\n '\\u0111': 'd',\r\n '\\u018C': 'd',\r\n '\\u0256': 'd',\r\n '\\u0257': 'd',\r\n '\\uA77A': 'd',\r\n '\\u01F3': 'dz',\r\n '\\u01C6': 'dz',\r\n '\\u24D4': 'e',\r\n '\\uFF45': 'e',\r\n '\\u00E8': 'e',\r\n '\\u00E9': 'e',\r\n '\\u00EA': 'e',\r\n '\\u1EC1': 'e',\r\n '\\u1EBF': 'e',\r\n '\\u1EC5': 'e',\r\n '\\u1EC3': 'e',\r\n '\\u1EBD': 'e',\r\n '\\u0113': 'e',\r\n '\\u1E15': 'e',\r\n '\\u1E17': 'e',\r\n '\\u0115': 'e',\r\n '\\u0117': 'e',\r\n '\\u00EB': 'e',\r\n '\\u1EBB': 'e',\r\n '\\u011B': 'e',\r\n '\\u0205': 'e',\r\n '\\u0207': 'e',\r\n '\\u1EB9': 'e',\r\n '\\u1EC7': 'e',\r\n '\\u0229': 'e',\r\n '\\u1E1D': 'e',\r\n '\\u0119': 'e',\r\n '\\u1E19': 'e',\r\n '\\u1E1B': 'e',\r\n '\\u0247': 'e',\r\n '\\u025B': 'e',\r\n '\\u01DD': 'e',\r\n '\\u24D5': 'f',\r\n '\\uFF46': 'f',\r\n '\\u1E1F': 'f',\r\n '\\u0192': 'f',\r\n '\\uA77C': 'f',\r\n '\\u24D6': 'g',\r\n '\\uFF47': 'g',\r\n '\\u01F5': 'g',\r\n '\\u011D': 'g',\r\n '\\u1E21': 'g',\r\n '\\u011F': 'g',\r\n '\\u0121': 'g',\r\n '\\u01E7': 'g',\r\n '\\u0123': 'g',\r\n '\\u01E5': 'g',\r\n '\\u0260': 'g',\r\n '\\uA7A1': 'g',\r\n '\\u1D79': 'g',\r\n '\\uA77F': 'g',\r\n '\\u24D7': 'h',\r\n '\\uFF48': 'h',\r\n '\\u0125': 'h',\r\n '\\u1E23': 'h',\r\n '\\u1E27': 'h',\r\n '\\u021F': 'h',\r\n '\\u1E25': 'h',\r\n '\\u1E29': 'h',\r\n '\\u1E2B': 'h',\r\n '\\u1E96': 'h',\r\n '\\u0127': 'h',\r\n '\\u2C68': 'h',\r\n '\\u2C76': 'h',\r\n '\\u0265': 'h',\r\n '\\u0195': 'hv',\r\n '\\u24D8': 'i',\r\n '\\uFF49': 'i',\r\n '\\u00EC': 'i',\r\n '\\u00ED': 'i',\r\n '\\u00EE': 'i',\r\n '\\u0129': 'i',\r\n '\\u012B': 'i',\r\n '\\u012D': 'i',\r\n '\\u00EF': 'i',\r\n '\\u1E2F': 'i',\r\n '\\u1EC9': 'i',\r\n '\\u01D0': 'i',\r\n '\\u0209': 'i',\r\n '\\u020B': 'i',\r\n '\\u1ECB': 'i',\r\n '\\u012F': 'i',\r\n '\\u1E2D': 'i',\r\n '\\u0268': 'i',\r\n '\\u0131': 'i',\r\n '\\u24D9': 'j',\r\n '\\uFF4A': 'j',\r\n '\\u0135': 'j',\r\n '\\u01F0': 'j',\r\n '\\u0249': 'j',\r\n '\\u24DA': 'k',\r\n '\\uFF4B': 'k',\r\n '\\u1E31': 'k',\r\n '\\u01E9': 'k',\r\n '\\u1E33': 'k',\r\n '\\u0137': 'k',\r\n '\\u1E35': 'k',\r\n '\\u0199': 'k',\r\n '\\u2C6A': 'k',\r\n '\\uA741': 'k',\r\n '\\uA743': 'k',\r\n '\\uA745': 'k',\r\n '\\uA7A3': 'k',\r\n '\\u24DB': 'l',\r\n '\\uFF4C': 'l',\r\n '\\u0140': 'l',\r\n '\\u013A': 'l',\r\n '\\u013E': 'l',\r\n '\\u1E37': 'l',\r\n '\\u1E39': 'l',\r\n '\\u013C': 'l',\r\n '\\u1E3D': 'l',\r\n '\\u1E3B': 'l',\r\n '\\u017F': 'l',\r\n '\\u0142': 'l',\r\n '\\u019A': 'l',\r\n '\\u026B': 'l',\r\n '\\u2C61': 'l',\r\n '\\uA749': 'l',\r\n '\\uA781': 'l',\r\n '\\uA747': 'l',\r\n '\\u01C9': 'lj',\r\n '\\u24DC': 'm',\r\n '\\uFF4D': 'm',\r\n '\\u1E3F': 'm',\r\n '\\u1E41': 'm',\r\n '\\u1E43': 'm',\r\n '\\u0271': 'm',\r\n '\\u026F': 'm',\r\n '\\u24DD': 'n',\r\n '\\uFF4E': 'n',\r\n '\\u01F9': 'n',\r\n '\\u0144': 'n',\r\n '\\u00F1': 'n',\r\n '\\u1E45': 'n',\r\n '\\u0148': 'n',\r\n '\\u1E47': 'n',\r\n '\\u0146': 'n',\r\n '\\u1E4B': 'n',\r\n '\\u1E49': 'n',\r\n '\\u019E': 'n',\r\n '\\u0272': 'n',\r\n '\\u0149': 'n',\r\n '\\uA791': 'n',\r\n '\\uA7A5': 'n',\r\n '\\u01CC': 'nj',\r\n '\\u24DE': 'o',\r\n '\\uFF4F': 'o',\r\n '\\u00F2': 'o',\r\n '\\u00F3': 'o',\r\n '\\u00F4': 'o',\r\n '\\u1ED3': 'o',\r\n '\\u1ED1': 'o',\r\n '\\u1ED7': 'o',\r\n '\\u1ED5': 'o',\r\n '\\u00F5': 'o',\r\n '\\u1E4D': 'o',\r\n '\\u022D': 'o',\r\n '\\u1E4F': 'o',\r\n '\\u014D': 'o',\r\n '\\u1E51': 'o',\r\n '\\u1E53': 'o',\r\n '\\u014F': 'o',\r\n '\\u022F': 'o',\r\n '\\u0231': 'o',\r\n '\\u00F6': 'o',\r\n '\\u022B': 'o',\r\n '\\u1ECF': 'o',\r\n '\\u0151': 'o',\r\n '\\u01D2': 'o',\r\n '\\u020D': 'o',\r\n '\\u020F': 'o',\r\n '\\u01A1': 'o',\r\n '\\u1EDD': 'o',\r\n '\\u1EDB': 'o',\r\n '\\u1EE1': 'o',\r\n '\\u1EDF': 'o',\r\n '\\u1EE3': 'o',\r\n '\\u1ECD': 'o',\r\n '\\u1ED9': 'o',\r\n '\\u01EB': 'o',\r\n '\\u01ED': 'o',\r\n '\\u00F8': 'o',\r\n '\\u01FF': 'o',\r\n '\\u0254': 'o',\r\n '\\uA74B': 'o',\r\n '\\uA74D': 'o',\r\n '\\u0275': 'o',\r\n '\\u01A3': 'oi',\r\n '\\u0223': 'ou',\r\n '\\uA74F': 'oo',\r\n '\\u24DF': 'p',\r\n '\\uFF50': 'p',\r\n '\\u1E55': 'p',\r\n '\\u1E57': 'p',\r\n '\\u01A5': 'p',\r\n '\\u1D7D': 'p',\r\n '\\uA751': 'p',\r\n '\\uA753': 'p',\r\n '\\uA755': 'p',\r\n '\\u24E0': 'q',\r\n '\\uFF51': 'q',\r\n '\\u024B': 'q',\r\n '\\uA757': 'q',\r\n '\\uA759': 'q',\r\n '\\u24E1': 'r',\r\n '\\uFF52': 'r',\r\n '\\u0155': 'r',\r\n '\\u1E59': 'r',\r\n '\\u0159': 'r',\r\n '\\u0211': 'r',\r\n '\\u0213': 'r',\r\n '\\u1E5B': 'r',\r\n '\\u1E5D': 'r',\r\n '\\u0157': 'r',\r\n '\\u1E5F': 'r',\r\n '\\u024D': 'r',\r\n '\\u027D': 'r',\r\n '\\uA75B': 'r',\r\n '\\uA7A7': 'r',\r\n '\\uA783': 'r',\r\n '\\u24E2': 's',\r\n '\\uFF53': 's',\r\n '\\u00DF': 's',\r\n '\\u015B': 's',\r\n '\\u1E65': 's',\r\n '\\u015D': 's',\r\n '\\u1E61': 's',\r\n '\\u0161': 's',\r\n '\\u1E67': 's',\r\n '\\u1E63': 's',\r\n '\\u1E69': 's',\r\n '\\u0219': 's',\r\n '\\u015F': 's',\r\n '\\u023F': 's',\r\n '\\uA7A9': 's',\r\n '\\uA785': 's',\r\n '\\u1E9B': 's',\r\n '\\u24E3': 't',\r\n '\\uFF54': 't',\r\n '\\u1E6B': 't',\r\n '\\u1E97': 't',\r\n '\\u0165': 't',\r\n '\\u1E6D': 't',\r\n '\\u021B': 't',\r\n '\\u0163': 't',\r\n '\\u1E71': 't',\r\n '\\u1E6F': 't',\r\n '\\u0167': 't',\r\n '\\u01AD': 't',\r\n '\\u0288': 't',\r\n '\\u2C66': 't',\r\n '\\uA787': 't',\r\n '\\uA729': 'tz',\r\n '\\u24E4': 'u',\r\n '\\uFF55': 'u',\r\n '\\u00F9': 'u',\r\n '\\u00FA': 'u',\r\n '\\u00FB': 'u',\r\n '\\u0169': 'u',\r\n '\\u1E79': 'u',\r\n '\\u016B': 'u',\r\n '\\u1E7B': 'u',\r\n '\\u016D': 'u',\r\n '\\u00FC': 'u',\r\n '\\u01DC': 'u',\r\n '\\u01D8': 'u',\r\n '\\u01D6': 'u',\r\n '\\u01DA': 'u',\r\n '\\u1EE7': 'u',\r\n '\\u016F': 'u',\r\n '\\u0171': 'u',\r\n '\\u01D4': 'u',\r\n '\\u0215': 'u',\r\n '\\u0217': 'u',\r\n '\\u01B0': 'u',\r\n '\\u1EEB': 'u',\r\n '\\u1EE9': 'u',\r\n '\\u1EEF': 'u',\r\n '\\u1EED': 'u',\r\n '\\u1EF1': 'u',\r\n '\\u1EE5': 'u',\r\n '\\u1E73': 'u',\r\n '\\u0173': 'u',\r\n '\\u1E77': 'u',\r\n '\\u1E75': 'u',\r\n '\\u0289': 'u',\r\n '\\u24E5': 'v',\r\n '\\uFF56': 'v',\r\n '\\u1E7D': 'v',\r\n '\\u1E7F': 'v',\r\n '\\u028B': 'v',\r\n '\\uA75F': 'v',\r\n '\\u028C': 'v',\r\n '\\uA761': 'vy',\r\n '\\u24E6': 'w',\r\n '\\uFF57': 'w',\r\n '\\u1E81': 'w',\r\n '\\u1E83': 'w',\r\n '\\u0175': 'w',\r\n '\\u1E87': 'w',\r\n '\\u1E85': 'w',\r\n '\\u1E98': 'w',\r\n '\\u1E89': 'w',\r\n '\\u2C73': 'w',\r\n '\\u24E7': 'x',\r\n '\\uFF58': 'x',\r\n '\\u1E8B': 'x',\r\n '\\u1E8D': 'x',\r\n '\\u24E8': 'y',\r\n '\\uFF59': 'y',\r\n '\\u1EF3': 'y',\r\n '\\u00FD': 'y',\r\n '\\u0177': 'y',\r\n '\\u1EF9': 'y',\r\n '\\u0233': 'y',\r\n '\\u1E8F': 'y',\r\n '\\u00FF': 'y',\r\n '\\u1EF7': 'y',\r\n '\\u1E99': 'y',\r\n '\\u1EF5': 'y',\r\n '\\u01B4': 'y',\r\n '\\u024F': 'y',\r\n '\\u1EFF': 'y',\r\n '\\u24E9': 'z',\r\n '\\uFF5A': 'z',\r\n '\\u017A': 'z',\r\n '\\u1E91': 'z',\r\n '\\u017C': 'z',\r\n '\\u017E': 'z',\r\n '\\u1E93': 'z',\r\n '\\u1E95': 'z',\r\n '\\u01B6': 'z',\r\n '\\u0225': 'z',\r\n '\\u0240': 'z',\r\n '\\u2C6C': 'z',\r\n '\\uA763': 'z',\r\n '\\u0386': '\\u0391',\r\n '\\u0388': '\\u0395',\r\n '\\u0389': '\\u0397',\r\n '\\u038A': '\\u0399',\r\n '\\u03AA': '\\u0399',\r\n '\\u038C': '\\u039F',\r\n '\\u038E': '\\u03A5',\r\n '\\u03AB': '\\u03A5',\r\n '\\u038F': '\\u03A9',\r\n '\\u03AC': '\\u03B1',\r\n '\\u03AD': '\\u03B5',\r\n '\\u03AE': '\\u03B7',\r\n '\\u03AF': '\\u03B9',\r\n '\\u03CA': '\\u03B9',\r\n '\\u0390': '\\u03B9',\r\n '\\u03CC': '\\u03BF',\r\n '\\u03CD': '\\u03C5',\r\n '\\u03CB': '\\u03C5',\r\n '\\u03B0': '\\u03C5',\r\n '\\u03C9': '\\u03C9',\r\n '\\u03C2': '\\u03C3'\r\n};\r\n\r\nexport function stripSpecialChars(text: string): string {\r\n const match = (a: string): string => {\r\n return diacritics[a] || a;\r\n };\r\n return text.replace(/[^\\u0000-\\u007E]/g, match);\r\n}\r\n","import { NgOption } from './ng-select.types';\r\n\r\nexport type SelectionModelFactory = () => SelectionModel;\r\n\r\nexport function DefaultSelectionModelFactory() {\r\n return new DefaultSelectionModel();\r\n}\r\n\r\nexport interface SelectionModel {\r\n value: NgOption[];\r\n select(item: NgOption, multiple: boolean, selectableGroupAsModel: boolean, repeatable?: boolean);\r\n unselect(item: NgOption, multiple: boolean, repeatable?: boolean, isIconClick?: boolean );\r\n clear();\r\n}\r\n\r\nexport class DefaultSelectionModel implements SelectionModel {\r\n private _selected: NgOption[] = [];\r\n\r\n get value(): NgOption[] {\r\n return this._selected;\r\n }\r\n\r\n select(item: NgOption, multiple: boolean, selectableGroupAsModel: boolean, repeatable?: boolean) {\r\n item.selected = true;\r\n if (selectableGroupAsModel || !item.children) {\r\n if (multiple && repeatable && this._selected.some(s=>s === item)) {\r\n const newItem = JSON.parse(JSON.stringify(item))\r\n newItem.index = this._selected.length;\r\n this._selected.push(newItem);\r\n }\r\n else {\r\n this._selected.push(item);\r\n\r\n }\r\n }\r\n if (multiple) {\r\n if (item.parent) {\r\n const childrenCount = item.parent.children.length;\r\n const selectedCount = item.parent.children.filter(x => x.selected).length;\r\n item.parent.selected = childrenCount === selectedCount;\r\n } else if (item.children) {\r\n this._setChildrenSelectedState(item.children, true);\r\n this._removeChildren(item);\r\n if (!selectableGroupAsModel) {\r\n this._selected = [...this._selected, ...item.children];\r\n }\r\n }\r\n }\r\n }\r\n\r\n unselect(item: NgOption, multiple: boolean, repeatable?: boolean, isIconClick?: boolean) {\r\n if (multiple && repeatable && !isIconClick) {\r\n //let find: number = this._selected.findIndex(x => x.index === item.index);\r\n this._selected = this._selected.filter(f => f.index !== item.index);\r\n item.selected = false;\r\n this.value.find(f => f === item).selected = false;\r\n if (multiple) {\r\n if (item.parent && item.parent.selected) {\r\n const children = item.parent.children;\r\n this._removeParent(item.parent);\r\n this._removeChildren(item.parent);\r\n this._selected.push(...children.filter(x => x !== item));\r\n item.parent.selected = false;\r\n } else if (item.children) {\r\n this._setChildrenSelectedState(item.children, false);\r\n this._removeChildren(item);\r\n }\r\n }\r\n } else {\r\n this._selected = this._selected.filter(x => x !== item);\r\n item.selected = false;\r\n if (multiple) {\r\n if (item.parent && item.parent.selected) {\r\n const children = item.parent.children;\r\n this._removeParent(item.parent);\r\n this._removeChildren(item.parent);\r\n this._selected.push(...children.filter(x => x !== item));\r\n item.parent.selected = false;\r\n } else if (item.children) {\r\n this._setChildrenSelectedState(item.children, false);\r\n this._removeChildren(item);\r\n }\r\n }\r\n }\r\n }\r\n\r\n clear() {\r\n this._selected = [];\r\n }\r\n\r\n private _setChildrenSelectedState(children: NgOption[], selected: boolean) {\r\n children.forEach(x => x.selected = selected);\r\n }\r\n\r\n private _removeChildren(parent: NgOption) {\r\n this._selected = this._selected.filter(x => x.parent !== parent);\r\n }\r\n\r\n private _removeParent(parent: NgOption) {\r\n this._selected = this._selected.filter(x => x !== parent)\r\n }\r\n}\r\n","export function isDefined(value: any) {\r\n return value !== undefined && value !== null;\r\n}\r\n\r\nexport function isObject(value: any) {\r\n return typeof value === 'object' && isDefined(value);\r\n}\r\n\r\nexport function isPromise(value: any) {\r\n return value instanceof Promise;\r\n}\r\n\r\nexport function isFunction(value: any) {\r\n return value instanceof Function;\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport interface ItemsDimensions {\r\n itemsLength: number;\r\n viewWidth: number;\r\n viewHeight: number;\r\n childWidth: number;\r\n childHeight: number;\r\n itemsPerCol: number;\r\n}\r\n\r\nexport interface ItemsRangeResult {\r\n scrollHeight: number;\r\n topPadding: number;\r\n start: number;\r\n end: number;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class VirtualScrollService {\r\n calculateItems(d: ItemsDimensions, dropdownEl: HTMLElement, bufferAmount: number): ItemsRangeResult {\r\n const scrollHeight = d.childHeight * d.itemsLength;\r\n if (dropdownEl.scrollTop > scrollHeight) {\r\n dropdownEl.scrollTop = scrollHeight;\r\n }\r\n\r\n const scrollTop = Math.max(0, dropdownEl.scrollTop);\r\n const indexByScrollTop = scrollTop / scrollHeight * d.itemsLength;\r\n let end = Math.min(d.itemsLength, Math.ceil(indexByScrollTop) + (d.itemsPerCol + 1));\r\n\r\n const maxStartEnd = end;\r\n const maxStart = Math.max(0, maxStartEnd - d.itemsPerCol - 1);\r\n let start = Math.min(maxStart, Math.floor(indexByScrollTop));\r\n\r\n let topPadding = d.childHeight * Math.ceil(start) - (d.childHeight * Math.min(start, bufferAmount));\r\n topPadding = !isNaN(topPadding) ? topPadding : 0;\r\n start = !isNaN(start) ? start : -1;\r\n end = !isNaN(end) ? end : -1;\r\n start -= bufferAmount;\r\n start = Math.max(0, start);\r\n end += bufferAmount;\r\n end = Math.min(d.itemsLength, end);\r\n\r\n return {\r\n topPadding: topPadding,\r\n scrollHeight: scrollHeight,\r\n start: start,\r\n end: end\r\n }\r\n }\r\n\r\n calculateDimensions(itemsLength: number, index: number, panelEl: HTMLElement, contentEl: HTMLElement): ItemsDimensions {\r\n const panelRect = panelEl.getBoundingClientRect();\r\n const itemRect = contentEl.children[index] ? contentEl.children[index].getBoundingClientRect() : {\r\n width: panelRect.width,\r\n height: panelRect.height,\r\n top: 0,\r\n };\r\n const itemsPerCol = Math.max(1, Math.floor(panelRect.height / itemRect.height));\r\n\r\n return {\r\n itemsLength: itemsLength,\r\n viewWidth: panelRect.width,\r\n viewHeight: panelRect.height,\r\n childWidth: itemRect.width,\r\n childHeight: itemRect.height,\r\n itemsPerCol: itemsPerCol,\r\n };\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class WindowService {\r\n requestAnimationFrame(fn) {\r\n return window.requestAnimationFrame(fn);\r\n }\r\n\r\n setTimeout(handler: (...args: any[]) => void, timeout: number): number {\r\n return window.setTimeout(handler, timeout);\r\n }\r\n}\r\n","import {\r\n Component,\r\n OnDestroy,\r\n Renderer2,\r\n ElementRef,\r\n Input,\r\n EventEmitter,\r\n Output,\r\n ViewChild,\r\n SimpleChanges,\r\n NgZone,\r\n TemplateRef,\r\n ViewEncapsulation,\r\n AfterContentInit,\r\n OnInit,\r\n OnChanges,\r\n HostListener,\r\n Optional,\r\n Inject,\r\n} from \"@angular/core\";\r\nimport { DOCUMENT } from \"@angular/common\";\r\n\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Subject, fromEvent, merge } from \"rxjs\";\r\n\r\nconst TOP_CSS_CLASS = \"ng-select-top\";\r\nconst BOTTOM_CSS_CLASS = \"ng-select-bottom\";\r\n\r\n@Component({\r\n encapsulation: ViewEncapsulation.None,\r\n selector: \"ssg-popover\",\r\n template: `\r\n \r\n \r\n `,\r\n})\r\nexport class SSGPopOverComponent implements OnInit, OnChanges, OnDestroy, AfterContentInit {\r\n @Input() appendTo: string = \"body\";\r\n @Input() bufferAmount = 4;\r\n @Input() hasRefresh: boolean = false;\r\n @Input() currentPosition: string = null;\r\n @Input() position: string = \"auto\";\r\n\r\n @Output() update = new EventEmitter();\r\n @Output() scroll = new EventEmitter<{ start: number; end: number }>();\r\n @Output() scrollToEnd = new EventEmitter();\r\n @Output() outsideClick = new EventEmitter();\r\n @Output() onSelectItem = new EventEmitter();\r\n @Output() selectContains = new EventEmitter();\r\n\r\n @ViewChild(\"content\", { read: ElementRef, static: true }) contentElementRef: ElementRef;\r\n @ViewChild(\"scroll\", { read: ElementRef, static: true }) scrollElementRef: ElementRef;\r\n @ViewChild(\"padding\", { read: ElementRef, static: true }) paddingElementRef: ElementRef;\r\n\r\n private readonly _destroy$ = new Subject();\r\n private readonly _dropdown: HTMLElement;\r\n private _select: HTMLElement;\r\n private _isScrolledToMarked = false;\r\n private _disposeScrollListener = () => {};\r\n private _disposeDocumentResizeListener = () => {};\r\n\r\n constructor(private _renderer: Renderer2, private _zone: NgZone, _elementRef: ElementRef, @Optional() @Inject(DOCUMENT) private _document: any) {\r\n this._dropdown = _elementRef.nativeElement;\r\n }\r\n\r\n @HostListener(\"mousedown\", [\"$event\"])\r\n handleMousedown($event: MouseEvent) {\r\n const target = $event.target as HTMLElement;\r\n if (target.tagName === \"INPUT\") {\r\n return;\r\n }\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n }\r\n\r\n ngOnInit() {\r\n this._select = this._dropdown.parentElement;\r\n if (this._document) {\r\n merge(fromEvent(this._document, \"touchstart\", { capture: true }), fromEvent(this._document, \"mousedown\", { capture: true }))\r\n .pipe(takeUntil(this._destroy$))\r\n .subscribe(($event) => this._handleOutsideClick($event));\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.items) this._isScrolledToMarked = false;\r\n }\r\n\r\n async ngOnDestroy() {\r\n this._disposeDocumentResizeListener();\r\n this._disposeScrollListener();\r\n this._destroy$.next();\r\n this._destroy$.complete();\r\n if (this.appendTo) this._renderer.removeChild(this._dropdown.parentNode, this._dropdown);\r\n }\r\n\r\n ngAfterContentInit() {\r\n this._whenContentReady().then(() => {\r\n if (this.appendTo) {\r\n this._appendDropdown();\r\n this._handleDocumentResize();\r\n }\r\n this.updateDropdownPosition();\r\n });\r\n }\r\n\r\n refresh(): Promise {\r\n return new Promise((resolve) => {\r\n this._zone.runOutsideAngular(() => {\r\n // this._window.requestAnimationFrame(() => {\r\n // this._updateItems().then(resolve);\r\n // });\r\n });\r\n });\r\n }\r\n updateDropdownPosition() {\r\n this.currentPosition = this._calculateCurrentPosition(this._dropdown);\r\n if (this.currentPosition === \"top\") {\r\n this._renderer.addClass(this._dropdown, TOP_CSS_CLASS);\r\n this._renderer.removeClass(this._dropdown, BOTTOM_CSS_CLASS);\r\n this._renderer.addClass(this._select, TOP_CSS_CLASS);\r\n this._renderer.removeClass(this._select, BOTTOM_CSS_CLASS);\r\n } else {\r\n this._renderer.addClass(this._dropdown, BOTTOM_CSS_CLASS);\r\n this._renderer.removeClass(this._dropdown, TOP_CSS_CLASS);\r\n this._renderer.addClass(this._select, BOTTOM_CSS_CLASS);\r\n this._renderer.removeClass(this._select, TOP_CSS_CLASS);\r\n }\r\n\r\n this._dropdown.style.width = \"fit-content\";\r\n if (this.appendTo) {\r\n this._updateAppendedDropdownPosition();\r\n }\r\n this._dropdown.style.opacity = \"1\";\r\n this._dropdown.style.position = \"fixed\";\r\n this._dropdown.style.zIndex = \"9999999\";\r\n this._updateAppendedDropdownPosition();\r\n }\r\n\r\n private _handleOutsideClick($event: any) {\r\n if (this._select.contains($event.target)) {\r\n this.selectContains.emit();\r\n return;\r\n }\r\n\r\n if (this._dropdown.contains($event.target)) {\r\n this.onSelectItem.emit();\r\n return;\r\n }\r\n\r\n const path = $event.path || ($event.composedPath && $event.composedPath());\r\n if ($event.target && $event.target.shadowRoot && path && path[0] && this._select.contains(path[0])) {\r\n return;\r\n }\r\n\r\n this.outsideClick.emit();\r\n }\r\n\r\n private _handleScroll() {\r\n this._disposeScrollListener = this._renderer.listen(this.scrollElementRef.nativeElement, \"scroll\", () => {\r\n this.refresh();\r\n });\r\n }\r\n\r\n private _handleDocumentResize() {\r\n if (!this.appendTo) {\r\n return;\r\n }\r\n this._disposeDocumentResizeListener = this._renderer.listen(\"window\", \"resize\", () => {\r\n this._updateAppendedDropdownPosition();\r\n });\r\n }\r\n\r\n private _calculateCurrentPosition(dropdownEl: HTMLElement) {\r\n if (this.position !== \"auto\") {\r\n return this.position;\r\n }\r\n const selectRect: ClientRect = this._select.getBoundingClientRect();\r\n const offsetTop = selectRect.top + window.pageYOffset;\r\n if (offsetTop > document.body.getBoundingClientRect().height / 2) {\r\n return \"top\";\r\n } else {\r\n return \"bottom\";\r\n }\r\n }\r\n\r\n private _appendDropdown() {\r\n const parent = document.querySelector(this.appendTo);\r\n if (!parent) {\r\n throw new Error(`appendTo selector ${this.appendTo} did not found any parent element`);\r\n }\r\n parent.appendChild(this._dropdown);\r\n }\r\n\r\n private _updateAppendedDropdownPosition() {\r\n const parent = document.querySelector(this.appendTo) || document.body;\r\n this._dropdown.style.width = \"fit-content\";\r\n this._dropdown.style.display = \"none\";\r\n const selectRect: ClientRect = this._select.getBoundingClientRect();\r\n const boundingRect = parent.getBoundingClientRect();\r\n this._dropdown.style.display = \"\";\r\n const offsetTop = selectRect.top - boundingRect.top;\r\n let bod = document.body.getBoundingClientRect();\r\n let dropdownEl = this._dropdown?.getBoundingClientRect();\r\n let offsetLeft = selectRect.left - boundingRect.left >= 0 ? selectRect.left - boundingRect.left : 0;\r\n let offsetRight = bod.width - selectRect.right;\r\n if (offsetLeft < 0) offsetLeft = 0;\r\n const topDelta = this.currentPosition === \"bottom\" ? selectRect.height : -this._dropdown.clientHeight;\r\n if (offsetTop + topDelta > bod.height) {\r\n this._dropdown.style.top = bod.height + \"px\";\r\n } else if (offsetTop + topDelta < 0) {\r\n this._dropdown.style.top = 0 + \"px\";\r\n } else this._dropdown.style.top = offsetTop + topDelta + \"px\";\r\n\r\n this._dropdown.style.bottom = \"auto\";\r\n this._dropdown.style.left = dropdownEl?.left + dropdownEl?.width > boundingRect.width / 2 ? null : offsetLeft + \"px\";\r\n this._dropdown.style.right = dropdownEl?.left + dropdownEl?.width > boundingRect.width / 2 ? offsetRight + \"px\" : null;\r\n this._dropdown.style.position = \"fixed\";\r\n this._dropdown.style.zIndex = \"1000000000000000000000000\";\r\n }\r\n\r\n private _whenContentReady(): Promise {\r\n return Promise.resolve();\r\n }\r\n}\r\n","import { Component, ViewChild, Optional, Inject, Input, ChangeDetectorRef, ChangeDetectionStrategy, EventEmitter, Output } from \"@angular/core\";\r\nimport { NG_VALUE_ACCESSOR, NG_VALIDATORS, NgModel, NG_ASYNC_VALIDATORS, ControlContainer, NgForm } from \"@angular/forms\";\r\nimport { BaseControlComponent } from \"../base/base-control.component\";\r\nimport { HttpCommonService, LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SelectorService } from \"../base/selector.service\";\r\n@Component({\r\n //moduleId: module.id,\r\n selector: \"ssg-radiobox\",\r\n templateUrl: \"./radiobox.component.html\",\r\n styleUrls: [\"./radiobox.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RadioboxComponent extends BaseControlComponent {\r\n get Currentvalue() {\r\n return this.f[this.name].value;\r\n }\r\n _items: any[] = [];\r\n @Input()\r\n set items(value: any[]) {\r\n this._items = value;\r\n }\r\n get items(): any[] {\r\n return this._items;\r\n }\r\n get dataList(): any[] {\r\n return this.items;\r\n }\r\n set dataList(value: any[]) {\r\n this._items = value;\r\n }\r\n\r\n constructor(\r\n private _httpCommonService: HttpCommonService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n private lookupservice: LookupService\r\n ) {\r\n super(selectorService, cd);\r\n }\r\n @Output() CompleteData = new EventEmitter();\r\n\r\n async ngOnInit() {\r\n if (!this.items) this.items = [];\r\n super.ngOnInit();\r\n if (!this.dataList || this.dataList.length <= 0) {\r\n if (this.apiName) {\r\n if (!this.systemName && !this.category) {\r\n await this._httpCommonService\r\n .getList(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then((data) => {\r\n this._items = data as [];\r\n this.selectorService.setDataList(this.name , this._items);\r\n this.CompleteData.emit({ apiName: this.apiName, data: data });\r\n });\r\n } else\r\n this.lookupservice\r\n .getLookupbyCategory(this.systemName, this.category)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n this._items = data.sort((a, b) => a.Code - b.Code) as [];\r\n this.selectorService.setDataList(this.name , this._items);\r\n this.CompleteData.emit({ apiName: this.apiName, Category: this.category, data: data });\r\n });\r\n }\r\n }\r\n }\r\n onChange(value: any) {\r\n if (!this.f[this.name].value) this.f[this.name].setValue(value[this.valueFieldName]);\r\n this.valueChange.emit(value);\r\n }\r\n}\r\n","
\r\n
\r\n {{ label }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ label }} {{ \"Errors.Required\" | translate }} \r\n
\r\n","import {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n Renderer2,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { AngularResizeElementEvent, Position } from './angular-resize-element-event.interface';\r\nimport { AngularResizeElementDirection } from './angular-resize-element.enum';\r\n\r\n@Directive({\r\n selector: '[resize], [resizeStart], [resizeEnd]'\r\n})\r\nexport class AngularResizeElementDirective implements OnChanges, OnDestroy {\r\n private mouseClickListener: () => void;\r\n private mouseUpListener: () => void;\r\n private mouseMoveListener: () => void;\r\n\r\n private targetElementWidthValue: number;\r\n private targetElementHeightValue: number;\r\n\r\n private targetElementTopValue: number;\r\n private targetElementLeftValue: number;\r\n\r\n private originalEvent: MouseEvent;\r\n\r\n @Input()\r\n public targetElement: HTMLElement | ElementRef;\r\n\r\n @Input()\r\n public direction: AngularResizeElementDirection;\r\n\r\n @Input()\r\n public proportionalResize: boolean;\r\n\r\n @Input()\r\n public rect: Position;\r\n\r\n @Input()\r\n public applyClass = 'resizing';\r\n\r\n @Output()\r\n public readonly resizeStart: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public readonly resize: EventEmitter = new EventEmitter();\r\n\r\n @Output()\r\n public readonly resizeEnd: EventEmitter = new EventEmitter();\r\n\r\n @Input()\r\n @HostBinding('attr.draggable')\r\n public useDrag;\r\n\r\n constructor(private readonly elementRef: ElementRef,\r\n private readonly renderer2: Renderer2\r\n ) {\r\n this.listenMouseDownEvent();\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes.useDrag) {\r\n this.listenMouseDownEvent();\r\n }\r\n }\r\n\r\n public ngOnDestroy() {\r\n if (this.mouseClickListener) {\r\n this.mouseClickListener();\r\n }\r\n if (this.mouseUpListener) {\r\n this.mouseUpListener();\r\n }\r\n if (this.mouseMoveListener) {\r\n this.mouseMoveListener();\r\n }\r\n }\r\n\r\n public listenMouseDownEvent(): void {\r\n //if (!this.targetNativeElement) return;\r\n if (this.mouseClickListener) {\r\n this.mouseClickListener();\r\n }\r\n\r\n const event = this.useDrag ? 'dragstart' : 'mousedown';\r\n this.mouseClickListener = this.renderer2.listen(this.elementRef.nativeElement, event, evt => this.onMouseDown(evt));\r\n }\r\n\r\n public onMouseDown(evt: MouseEvent): void {\r\n if (!this.targetNativeElement) return;\r\n evt.preventDefault();\r\n\r\n this.setOriginalData(evt);\r\n\r\n this.resizeStart.emit(this.generateValuesForEvent(evt));\r\n\r\n this.mouseUpListener = this.renderer2.listen('document', 'mouseup', event => this.onMouseUp(event));\r\n this.mouseMoveListener = this.renderer2.listen('document', 'mousemove', event => this.onMouseMove(event));\r\n console.log(this.renderer2);\r\n this.renderer2.addClass(this.targetNativeElement, this.applyClass);\r\n }\r\n\r\n\r\n private onMouseUp(evt: MouseEvent): void {\r\n const eventValues = this.generateValuesForEvent(evt);\r\n this.resize.emit(eventValues);\r\n this.mouseMoveListener();\r\n this.mouseUpListener();\r\n\r\n this.renderer2.removeClass(this.targetNativeElement, this.applyClass);\r\n this.resizeEnd.emit(eventValues);\r\n }\r\n\r\n\r\n private onMouseMove(evt: MouseEvent): void {\r\n this.resize.emit(this.generateValuesForEvent(evt));\r\n }\r\n\r\n\r\n private setOriginalData(originalEvent: MouseEvent) {\r\n this.originalEvent = originalEvent;\r\n\r\n if (this.targetElement) {\r\n const dataSource = this.targetNativeElement;\r\n this.targetElementWidthValue = dataSource.offsetWidth;\r\n this.targetElementHeightValue = dataSource.offsetHeight;\r\n this.targetElementTopValue = dataSource.offsetTop;\r\n this.targetElementLeftValue = dataSource.offsetLeft;\r\n } else {\r\n this.targetElementWidthValue = 0;\r\n this.targetElementHeightValue = 0;\r\n this.targetElementTopValue = 0;\r\n this.targetElementLeftValue = 0;\r\n }\r\n }\r\n\r\n private get targetNativeElement(): HTMLElement {\r\n return this.targetElement instanceof ElementRef ? this.targetElement.nativeElement : this.targetElement;\r\n }\r\n\r\n private generateValuesForEvent(evt: MouseEvent): AngularResizeElementEvent {\r\n const originalXValue = this.originalEvent.clientX;\r\n const originalYValue = this.originalEvent.clientY;\r\n\r\n let diffWidthValue = evt.clientX - originalXValue;\r\n let diffHeightValue = evt.clientY - originalYValue;\r\n let diffTopValue = diffHeightValue;\r\n let diffLeftValue = diffWidthValue;\r\n\r\n switch (this.direction) {\r\n case AngularResizeElementDirection.TOP: {\r\n diffHeightValue *= -1;\r\n diffWidthValue = 0;\r\n diffLeftValue = 0;\r\n break;\r\n }\r\n case AngularResizeElementDirection.TOP_RIGHT: {\r\n diffHeightValue *= -1;\r\n diffLeftValue = 0;\r\n break;\r\n }\r\n case AngularResizeElementDirection.RIGHT: {\r\n diffHeightValue = 0;\r\n diffTopValue = 0;\r\n diffLeftValue = 0;\r\n break;\r\n }\r\n case AngularResizeElementDirection.BOTTOM_RIGHT: {\r\n diffTopValue = 0;\r\n diffLeftValue = 0;\r\n break;\r\n }\r\n case AngularResizeElementDirection.BOTTOM: {\r\n diffWidthValue = 0;\r\n diffLeftValue = 0;\r\n diffTopValue = 0;\r\n break;\r\n }\r\n case AngularResizeElementDirection.BOTTOM_LEFT: {\r\n diffWidthValue *= -1;\r\n diffTopValue = 0;\r\n break;\r\n }\r\n case AngularResizeElementDirection.LEFT: {\r\n diffWidthValue *= -1;\r\n diffHeightValue = 0;\r\n diffTopValue = 0;\r\n break;\r\n }\r\n case AngularResizeElementDirection.TOP_LEFT: {\r\n diffHeightValue *= -1;\r\n diffWidthValue *= -1;\r\n }\r\n }\r\n\r\n let currentWidthValue = this.targetElementWidthValue + diffWidthValue;\r\n let currentHeightValue = this.targetElementHeightValue + diffHeightValue;\r\n\r\n if (this.proportionalResize) {\r\n if (currentWidthValue > currentHeightValue) {\r\n currentWidthValue = currentHeightValue;\r\n } else {\r\n currentHeightValue = currentWidthValue;\r\n }\r\n }\r\n\r\n if (currentHeightValue <= 1) {\r\n diffTopValue += currentHeightValue;\r\n }\r\n\r\n if (currentWidthValue <= 1) {\r\n diffLeftValue += currentWidthValue;\r\n }\r\n\r\n if (currentWidthValue <= 0) {\r\n currentWidthValue = 0;\r\n }\r\n\r\n if (currentHeightValue <= 0) {\r\n currentHeightValue = 0;\r\n }\r\n\r\n let currentTopValue = this.targetElementTopValue + diffTopValue;\r\n let currentLeftValue = this.targetElementLeftValue + diffLeftValue;\r\n\r\n if (this.rect) {\r\n if (currentTopValue < this.rect.top) {\r\n currentHeightValue = this.targetElementHeightValue + this.targetElementTopValue - this.rect.top;\r\n currentTopValue = this.rect.top;\r\n }\r\n if (currentHeightValue + currentTopValue > this.rect.height) {\r\n currentHeightValue = this.rect.height - currentTopValue;\r\n }\r\n\r\n if (currentLeftValue < this.rect.left) {\r\n currentWidthValue = this.targetElementWidthValue + this.targetElementLeftValue - this.rect.left;\r\n currentLeftValue = this.rect.left;\r\n }\r\n if (currentWidthValue + currentLeftValue > this.rect.width) {\r\n currentWidthValue = this.rect.width - currentLeftValue;\r\n }\r\n }\r\n\r\n return {\r\n originalEvent: this.originalEvent,\r\n currentWidthValue,\r\n currentHeightValue,\r\n currentTopValue,\r\n currentLeftValue,\r\n originalWidthValue: this.targetElementWidthValue,\r\n originalHeightValue: this.targetElementHeightValue,\r\n originalTopValue: this.targetElementTopValue,\r\n originalLeftValue: this.targetElementLeftValue,\r\n differenceWidthValue: currentWidthValue - this.targetElementWidthValue,\r\n differenceHeightValue: currentHeightValue - this.targetElementHeightValue,\r\n differenceTopValue: currentTopValue - this.targetElementTopValue,\r\n differenceLeftValue: currentLeftValue - this.targetElementLeftValue,\r\n direction: this.direction,\r\n };\r\n }\r\n}\r\n\r\n","export enum AngularResizeElementDirection {\r\n TOP = 'top',\r\n TOP_RIGHT = 'top-right',\r\n RIGHT = 'right',\r\n BOTTOM_RIGHT = 'bottom-right',\r\n BOTTOM = 'bottom',\r\n BOTTOM_LEFT = 'bottom-left',\r\n LEFT = 'left',\r\n TOP_LEFT = 'top-left'\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {AngularResizeElementDirective} from './angular-resize-element.directive';\r\n\r\n@NgModule({\r\n declarations: [AngularResizeElementDirective],\r\n imports: [],\r\n exports: [AngularResizeElementDirective]\r\n})\r\nexport class AngularResizeElementModule { }\r\n","import { Injector, InjectFlags } from '@angular/core';\r\n\r\nimport { ActiveContextMenuSub } from './context-menu.service';\r\n\r\nexport class MenuPackage {\r\n constructor(public menu: ActiveContextMenuSub, public context: any) {}\r\n}\r\n\r\nexport class MenuInjector implements Injector {\r\n menuContext: MenuPackage;\r\n constructor(\r\n private activeContextMenu: ActiveContextMenuSub,\r\n private parentInjector: Injector,\r\n private context: any,\r\n ) {\r\n this.menuContext = new MenuPackage(activeContextMenu, context);\r\n }\r\n\r\n get(token: any, notFoundValue?: T, flags?:any): T | MenuPackage {\r\n if (token === MenuPackage) {\r\n return this.menuContext;\r\n }\r\n return this.parentInjector.get(token, notFoundValue, flags);\r\n }\r\n}\r\n","import { Directive, HostListener, Input, Output, EventEmitter, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\n\r\nimport { ContextMenuService, ActiveContextMenu } from \"./context-menu.service\";\r\n\r\n@Directive({\r\n selector: \"[contextMenuTrigger]\",\r\n exportAs: \"contextMenuTrigger\",\r\n})\r\nexport class ContextMenuTriggerDirective implements OnDestroy, OnInit {\r\n @Input() contextMenuTrigger: any;\r\n @Input() menuContext: any;\r\n @Input() holdToDisplay = 1000;\r\n @Output() menuAction = new EventEmitter();\r\n @Output() menuClose = new EventEmitter();\r\n @Output() beforeOpen = new EventEmitter();\r\n\r\n menu?: ActiveContextMenu;\r\n visible = false;\r\n private mouseDownTimeoutId: any;\r\n private sub!: Subscription;\r\n\r\n @HostListener(\"contextmenu\", [\"$event\"])\r\n handleMenu($event: MouseEvent) {\r\n let preventOpen = false;\r\n this.beforeOpen.emit({\r\n menuContext: this.menuContext,\r\n event: $event,\r\n preventOpen: () => {\r\n preventOpen = true;\r\n },\r\n });\r\n\r\n if (preventOpen) {\r\n return;\r\n }\r\n\r\n $event.preventDefault();\r\n this.menu = this.contextMenuService.show($event, this.contextMenuTrigger, this.menuContext, this.menuClose, this.menuAction);\r\n this.visible = true;\r\n }\r\n\r\n @HostListener(\"touchstart\", [\"$event\"])\r\n handleMouseDown($event: any) {\r\n if (this.holdToDisplay >= 0) {\r\n $event.stopPropagation();\r\n $event.clientY = $event.touches[0].clientY;\r\n $event.clientX = $event.touches[0].clientX;\r\n\r\n this.mouseDownTimeoutId = setTimeout(() => this.handleMenu($event), this.holdToDisplay);\r\n }\r\n }\r\n\r\n @HostListener(\"touchend\")\r\n handleMouseUp() {\r\n clearTimeout(this.mouseDownTimeoutId);\r\n }\r\n\r\n constructor(private contextMenuService: ContextMenuService) {}\r\n\r\n ngOnInit() {\r\n this.sub = this.menuClose.subscribe(() => (this.visible = false));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { PortalModule } from '@angular/cdk/portal';\r\n\r\nimport { ContextMenuTriggerDirective } from './context-menu-trigger.directive';\r\nimport { ContextSubmenuTriggerDirective } from './context-submenu-trigger.directive';\r\nimport { MenuComponent } from './menu.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n ContextMenuTriggerDirective,\r\n ContextSubmenuTriggerDirective,\r\n MenuComponent,\r\n ],\r\n exports: [ContextMenuTriggerDirective, ContextSubmenuTriggerDirective],\r\n imports: [PortalModule, OverlayModule],\r\n})\r\nexport class ContextMenuModule {}\r\n","import {\r\n Overlay,\r\n OverlayRef,\r\n ScrollStrategyOptions,\r\n} from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport { ElementRef, Injectable, Injector, EventEmitter } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { filter, take } from 'rxjs/operators';\r\n\r\nimport { MenuInjector } from './context-menu-injector';\r\n\r\nexport interface ActiveContextMenuSub {\r\n id: number;\r\n isTriggerHovered: BehaviorSubject;\r\n isMenuHovered: BehaviorSubject;\r\n submenu: boolean;\r\n}\r\nexport interface ActiveContextMenu extends ActiveContextMenuSub {\r\n overlayRef: OverlayRef;\r\n component: any;\r\n menuClose: EventEmitter;\r\n menuAction: EventEmitter;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ContextMenuService {\r\n menus: ActiveContextMenu[] = [];\r\n id = 0;\r\n\r\n constructor(\r\n private overlay: Overlay,\r\n private scrollStrategy: ScrollStrategyOptions,\r\n private injector: Injector,\r\n ) { }\r\n\r\n /**\r\n *\r\n * @param $event triggering event\r\n * @param menuComponent the component to be shown\r\n * @param submenu is a menu within a menu\r\n * @param level if submenu, what level\r\n */\r\n show(\r\n $event: MouseEvent,\r\n menuComponent: any,\r\n context: any,\r\n menuClose: EventEmitter,\r\n menuAction: EventEmitter,\r\n submenu = false,\r\n level?: number,\r\n ): ActiveContextMenu {\r\n let target: any;\r\n if (!submenu) {\r\n this.closeAll();\r\n target = {\r\n getBoundingClientRect: (): ClientRect => ({\r\n bottom: $event.clientY,\r\n height: 0,\r\n left: $event.clientX,\r\n right: $event.clientX,\r\n top: $event.clientY,\r\n width: 0,\r\n x: $event.clientX,\r\n y: $event.clientY,\r\n toJSON: null,\r\n }),\r\n };\r\n } else {\r\n // close other submenus\r\n this.closeAll(undefined, level);\r\n target = $event.target;\r\n }\r\n const el = new ElementRef(target);\r\n const positionStrategy = this.overlay\r\n .position()\r\n .flexibleConnectedTo(el)\r\n .withFlexibleDimensions(false);\r\n\r\n if (!submenu) {\r\n positionStrategy.withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'center',\r\n overlayX: 'start',\r\n overlayY: 'center',\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'center',\r\n overlayX: 'end',\r\n overlayY: 'center',\r\n },\r\n ]);\r\n } else {\r\n positionStrategy.withPositions([\r\n {\r\n originX: 'end',\r\n originY: 'top',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'top',\r\n overlayX: 'end',\r\n overlayY: 'top',\r\n },\r\n {\r\n originX: 'end',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'bottom',\r\n },\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'end',\r\n overlayY: 'bottom',\r\n },\r\n ]);\r\n }\r\n const t: ActiveContextMenuSub = {\r\n submenu,\r\n id: this.id++,\r\n isMenuHovered: new BehaviorSubject(false),\r\n isTriggerHovered: new BehaviorSubject(false),\r\n };\r\n let menuInjector = new MenuInjector(t, this.injector, context);\r\n const componentPortal = new ComponentPortal(\r\n menuComponent,\r\n undefined,\r\n menuInjector,\r\n undefined\r\n );\r\n const overlayRef = this.overlay.create({\r\n positionStrategy,\r\n panelClass: 'ngx-contextmenu',\r\n scrollStrategy: this.scrollStrategy.close(),\r\n });\r\n const component = overlayRef.attach(componentPortal);\r\n const res = { overlayRef, component, ...t, menuClose, menuAction };\r\n this.menus.push(res);\r\n return res;\r\n }\r\n getCurrentLevel() {\r\n return this.menus.length;\r\n }\r\n closeAll(context?: any, idx = 0) {\r\n for (let index = idx; index < this.menus.length; index++) {\r\n const menu = this.menus[index];\r\n this.destroyMenu(menu, context);\r\n }\r\n this.menus.splice(idx, this.menus.length);\r\n }\r\n destroyMenu(menu: ActiveContextMenu, context?: any) {\r\n menu.component.instance._state = 'exit';\r\n if (menu.component.instance.lazy) {\r\n menu.component.instance._animationDone\r\n .pipe(\r\n filter((event: any) => event.toState === 'exit'),\r\n take(1),\r\n )\r\n .subscribe(() => {\r\n menu.overlayRef.detach();\r\n menu.overlayRef.dispose();\r\n });\r\n } else {\r\n menu.overlayRef.detach();\r\n menu.overlayRef.dispose();\r\n }\r\n if (context) {\r\n menu.menuAction.next(context);\r\n }\r\n menu.menuClose.next();\r\n }\r\n close(menu: ActiveContextMenu, menuIndex: number, context?: any) {\r\n this.destroyMenu(menu, context);\r\n this.menus.splice(menuIndex, 1);\r\n }\r\n checkOutsideClick($event: MouseEvent) {\r\n for (const m of this.menus) {\r\n const clickedInside = m.component.location.nativeElement.contains(\r\n $event.target,\r\n );\r\n if (clickedInside) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n return;\r\n }\r\n }\r\n this.closeAll();\r\n }\r\n closeSubMenu(id: number): void {\r\n const menuIndex = this.menus.findIndex(n => n.id === id);\r\n if (menuIndex === -1 || menuIndex !== this.menus.length - 1) {\r\n return;\r\n }\r\n // make sure we can close the current menu\r\n const menu = this.menus[menuIndex];\r\n if (menu.isMenuHovered.getValue() || menu.isTriggerHovered.getValue()) {\r\n return;\r\n }\r\n // close all menus up if possible\r\n for (let index = this.menus.length - 1; index >= 1; index--) {\r\n const m = this.menus[index];\r\n if (!m.isMenuHovered.getValue() && !m.isTriggerHovered.getValue()) {\r\n this.close(m, index);\r\n } else {\r\n return;\r\n }\r\n }\r\n }\r\n}\r\n","import {\r\n Directive,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\n\r\nimport { ActiveContextMenu, ContextMenuService } from './context-menu.service';\r\n\r\n@Directive({ selector: '[contextSubmenuTrigger]' })\r\nexport class ContextSubmenuTriggerDirective implements OnDestroy {\r\n @Input() hoverDelay = 500;\r\n @Input() openDelay = 200;\r\n @Input() contextSubmenuTrigger?: any;\r\n @Input() menuContext?: any;\r\n @Output() menuAction = new EventEmitter();\r\n @Output() menuClose = new EventEmitter();\r\n menu?: ActiveContextMenu;\r\n openTimer: any;\r\n closeTimer: any;\r\n visible = false;\r\n level = 1;\r\n\r\n constructor(private contextMenuService: ContextMenuService) {\r\n // get current level\r\n setTimeout(() => (this.level = this.contextMenuService.getCurrentLevel()));\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n handleSubMenuClick($event: MouseEvent) {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n clearTimeout(this.openTimer);\r\n clearTimeout(this.closeTimer);\r\n this.menu = this.contextMenuService.show(\r\n $event,\r\n this.contextSubmenuTrigger,\r\n this.menuContext,\r\n this.menuClose,\r\n this.menuAction,\r\n true,\r\n this.level,\r\n );\r\n this.visible = true;\r\n }\r\n\r\n @HostListener('mouseover', ['$event'])\r\n handleSubMenuEnter($event: MouseEvent) {\r\n if (this.menu) {\r\n this.menu.isTriggerHovered.next(true);\r\n }\r\n clearTimeout(this.closeTimer);\r\n this.openTimer = setTimeout(() => {\r\n this.menu = this.contextMenuService.show(\r\n $event,\r\n this.contextSubmenuTrigger,\r\n this.menuContext,\r\n this.menuClose,\r\n this.menuAction,\r\n true,\r\n this.level,\r\n );\r\n this.visible = true;\r\n this.openTimer = null;\r\n }, this.openDelay);\r\n }\r\n\r\n /**\r\n * submenu hides after cursor has exited for a period of time\r\n */\r\n @HostListener('mouseout')\r\n handleSubMenuExit() {\r\n clearTimeout(this.openTimer);\r\n if (this.menu) {\r\n this.menu.isTriggerHovered.next(false);\r\n }\r\n this.closeTimer = setTimeout(() => {\r\n if (this.menu) {\r\n this.menu.isTriggerHovered.next(false);\r\n this.contextMenuService.closeSubMenu(this.menu.id);\r\n this.menu = undefined;\r\n }\r\n this.visible = false;\r\n }, this.hoverDelay);\r\n }\r\n\r\n /**\r\n * if overwritten make sure to clear timeouts\r\n */\r\n ngOnDestroy() {\r\n clearTimeout(this.openTimer);\r\n clearTimeout(this.closeTimer);\r\n }\r\n}\r\n","import { Component, HostListener } from \"@angular/core\";\r\nimport { ContextMenuService } from \"./context-menu.service\";\r\nimport { MenuPackage } from \"./context-menu-injector\";\r\n\r\n@Component({\r\n selector: \"app-menu\",\r\n template: ``,\r\n})\r\nexport class MenuComponent {\r\n _state: \"void\" | \"enter\" | \"exit\" = \"enter\";\r\n lazy = true;\r\n closeTimer: any;\r\n\r\n constructor(public menuPackage: MenuPackage, public contextMenuService: ContextMenuService) {}\r\n\r\n @HostListener(\"mouseover\")\r\n handleMouseover() {\r\n if (!this.menuPackage.menu.submenu) return;\r\n this.menuPackage.menu.isMenuHovered.next(true);\r\n clearTimeout(this.closeTimer);\r\n }\r\n\r\n @HostListener(\"mouseleave\")\r\n handleMouseleave() {\r\n if (!this.menuPackage.menu.submenu) return;\r\n this.menuPackage.menu.isMenuHovered.next(false);\r\n this.closeTimer = setTimeout(() => {\r\n this.contextMenuService.closeSubMenu(this.menuPackage.menu.id);\r\n }, 500);\r\n }\r\n\r\n @HostListener(\"document:click\", [\"$event\"])\r\n handleWindowClick($event: MouseEvent) {\r\n this.contextMenuService.checkOutsideClick($event);\r\n }\r\n}\r\n","import { Component, Input, EventEmitter, Output, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\r\nimport { BaseControlComponent } from \"../base/base-control.component\";\r\nimport { HttpCommonService, LookupService, PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\nimport { SelectorService } from \"../base/selector.service\";\r\nimport { DropdownPosition } from \"../ng-select/ng-select.component\";\r\n\r\nimport { MonthsNameService } from \"projects/sepidz-web-framework/src/lib/services/monthe-name.service\";\r\nimport { FormControl, FormGroup, UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nexport function isNullOrUndefined(value: any) {\r\n return value === null || value === undefined;\r\n}\r\n\r\n@Component({\r\n selector: \"ssg-select\",\r\n templateUrl: \"selector.component.html\",\r\n styleUrls: [\"selector.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SelectorComponent extends BaseControlComponent {\r\n isshow: boolean;\r\n isfocus: boolean = false;\r\n canOpen: boolean = false;\r\n mainMultiDataKey: string[] = [];\r\n firstDatakey: string;\r\n multiDataKey: string[] = [];\r\n multiDataKeyTitle: string[] = [];\r\n totalPage: number;\r\n MultiColumnsFilter: string;\r\n @Input() SortColumn: string;\r\n @Input() IsEqual: boolean;\r\n startSearch: boolean;\r\n public formGroup: FormGroup;\r\n paginationEnum: typeof PaginationEnum = PaginationEnum;\r\n _filterdItems: any[] = [];\r\n\r\n @Input() hasDefault: boolean;\r\n @Input() clearable: boolean = true;\r\n @Input() clearOnBackspace: boolean = true;\r\n @Input() searchable: boolean = true;\r\n @Input() selectOnTab: boolean = true;\r\n @Input() dropdownPosition: DropdownPosition = \"auto\";\r\n @Output() valueClear = new EventEmitter();\r\n @Output() CompleteData = new EventEmitter();\r\n @Output() addItem = new EventEmitter();\r\n @Output() removeItem = new EventEmitter();\r\n @Input() apiName: string;\r\n @Input() icon: string;\r\n @Input() size: string;\r\n @Input() systemName: string;\r\n @Input() category: string;\r\n @Input() valueFieldName: string;\r\n @Input() textFieldName: string;\r\n @Input() closeOnSelect: boolean = true;\r\n @Input() isMultiColumns: boolean = false;\r\n mainDataList: PagingDataResult;\r\n // @Input() appendTo: string;\r\n /// محدود سازی انتخاب ها\r\n @Input() limitSelection: number;\r\n // لیست غیرفعال ها\r\n @Input() disabledList: any[] = [];\r\n // اضافه کردن حالت انتخابی\r\n @Input() hasCheckBox: boolean = false;\r\n // اضافه کردن خاصیت انتخاب کل\r\n @Input() hasSelectAll: boolean;\r\n\r\n _paretnIdValue: number;\r\n _parentIdName: string;\r\n _dataList: any[];\r\n @Input() set dataList(value: any[]) {\r\n this._dataList = value;\r\n this.setItems();\r\n }\r\n get dataList(): any[] {\r\n return this._dataList;\r\n }\r\n @Input() repeatable: boolean;\r\n @Input() readonly: boolean;\r\n\r\n @Input()\r\n get paretnIdValue(): number {\r\n return this._paretnIdValue;\r\n }\r\n set paretnIdValue(value: number) {\r\n this._paretnIdValue = value ?? this.selectorService.getParetnIdValue(this.parentIdName);\r\n if (this.dataList && this.selectorService.getParetnIdValue(this.parentIdName))\r\n this._filterdItems = this.dataList?.filter((x) => x[this.parentIdName] === this.selectorService.getParetnIdValue(this.parentIdName));\r\n else if (this.dataList && this._paretnIdValue) this._filterdItems = this.dataList?.filter((x) => x[this.parentIdName] === this._paretnIdValue);\r\n this.cd.markForCheck();\r\n }\r\n @Input()\r\n get parentIdName(): string {\r\n return this._parentIdName;\r\n }\r\n set parentIdName(value: string) {\r\n this._parentIdName = value;\r\n }\r\n loading = false;\r\n @Input() filterKey: string;\r\n _filterValue: any;\r\n @Input()\r\n get filterValue(): any {\r\n return this._filterValue;\r\n }\r\n set filterValue(value: any) {\r\n this._filterValue = value;\r\n }\r\n\r\n constructor(\r\n private _httpCommonService: HttpCommonService,\r\n private lookupservice: LookupService,\r\n protected cd: ChangeDetectorRef,\r\n protected selectorService: SelectorService,\r\n private monthsnameService: MonthsNameService\r\n ) {\r\n super(selectorService, cd);\r\n this.isshow = false;\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n super.ngAfterViewChecked();\r\n this.testHasValue();\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (this.group?.controls && this.name) {\r\n this.group?.controls[this.name]?.valueChanges?.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => this.cd.markForCheck());\r\n }\r\n }\r\n ngOnInit() {\r\n super.ngOnInit();\r\n if (this.isMultiColumns) {\r\n this.setValue(\"PaginationNumber\", 1);\r\n }\r\n this.isshow = false;\r\n this.setDisabledValue();\r\n this.selectorService.onDataListChanged.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n this.setItems();\r\n });\r\n this.selectorService.onParetnIdValueChanged.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && this.parentIdName) {\r\n this.paretnIdValue = this.selectorService.getParetnIdValue(this.parentIdName);\r\n }\r\n });\r\n if (this.apiName && this.apiName.includes(\"MonthsName\")) {\r\n this.dataList = this.monthsnameService.MonthList;\r\n this.setItems();\r\n } else if (\r\n (!this.dataList ||\r\n this.dataList?.length <= 0 ||\r\n !this.selectorService.getDataList(this.name)) &&\r\n this.apiName\r\n ) {\r\n if (this.apiName) {\r\n this.loading = true;\r\n if (!this.systemName && !this.category) {\r\n if (!this.isMultiColumns) {\r\n this._httpCommonService\r\n .getList(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n if (this.isMultiColumns && data) {\r\n this.dataList = (data as any)?.Data;\r\n this.totalPage = Math.trunc(data?.TotalPage / 4) + ((data?.TotalPage / 4) % 1 > 0 ? 1 : 0);\r\n if (this.totalPage <= 0) this.totalPage = 1;\r\n this.mainMultiDataKey = this.textColumnsName.split(\",\");\r\n this.multiDataKeyTitle = this.columnsTitleName.split(\",\");\r\n this.firstDatakey = this.mainMultiDataKey[0];\r\n this.multiDataKey = this.mainMultiDataKey.splice(1, this.mainMultiDataKey?.length);\r\n } else {\r\n this.dataList = data as [];\r\n }\r\n this.loading = false;\r\n this.setDefault();\r\n this.setItems();\r\n this.cd.markForCheck();\r\n this.CompleteData.emit({ apiName: this.apiName, data: data });\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n } else {\r\n this.paginationData();\r\n }\r\n } else\r\n this.lookupservice\r\n .getLookupbyCategory(this.systemName, this.category)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n this.dataList = data as [];\r\n this.loading = false;\r\n this.setDefault();\r\n this.setItems();\r\n this.CompleteData.emit(data);\r\n this.cd.markForCheck();\r\n });\r\n }\r\n }\r\n }\r\n paginationData() {\r\n this._httpCommonService\r\n .GetPagining(this.apiName, \"\", \"\", 0, 4, this.SortColumn, this.IsEqual)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n if (this.isMultiColumns && data) {\r\n this.dataList = (data as any)?.Data;\r\n this.totalPage = Math.trunc(data?.TotalPage / 4) + ((data?.TotalPage / 4) % 1 > 0 ? 1 : 0);\r\n if (this.totalPage <= 0) this.totalPage = 1;\r\n this.mainMultiDataKey = this.textColumnsName.split(\",\");\r\n this.firstDatakey = this.mainMultiDataKey[0];\r\n this.multiDataKeyTitle = this.columnsTitleName.split(\",\");\r\n this.multiDataKey = this.mainMultiDataKey.splice(1, this.mainMultiDataKey?.length);\r\n } else {\r\n this.dataList = data as [];\r\n }\r\n this.loading = false;\r\n this.setDefault();\r\n this.setItems();\r\n this.cd.markForCheck();\r\n this.CompleteData.emit({ apiName: this.apiName, data: data });\r\n this.getDataValueWhenValueIsNotExistInDataList();\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n\r\n setDisabledValue() {\r\n if ((!this.disabledList || this.disabledList.length <= 0) && this.selectorService.getDisabledValue(this.name)) {\r\n this.disabledList = this.selectorService.getDisabledValue(this.name);\r\n }\r\n }\r\n show() {\r\n this.isshow = !this.isshow;\r\n this.cd.markForCheck();\r\n }\r\n focusFunction() {\r\n if (this.group?.controls[this.name]?.disabled) {\r\n this.isshow = false;\r\n this.isfocus = false;\r\n } else {\r\n this.isshow = true;\r\n this.isfocus = true;\r\n }\r\n this.cd.markForCheck();\r\n }\r\n focusOutFunction() {\r\n if (this.name) {\r\n const el = document.getElementById(this.name).innerText;\r\n if (isNullOrUndefined(el) || el === \"\") {\r\n this.isfocus = false;\r\n this.isshow = false;\r\n }\r\n }\r\n }\r\n testHasValue() {\r\n if (this.name && this.group?.controls) {\r\n if (\r\n this.group?.controls[this.name]?.value !== \"\" &&\r\n this.group?.controls[this.name]?.value !== undefined &&\r\n this.group?.controls[this.name]?.value !== null\r\n ) {\r\n if (this.multiple && this.group?.controls[this.name]?.value.length === 0) this.isshow = false;\r\n else this.isshow = true;\r\n } else if (!this.isfocus) this.isshow = false;\r\n }\r\n this.cd.markForCheck();\r\n this.cd.detectChanges();\r\n }\r\n\r\n setItems() {\r\n if (this.parentIdName) this.paretnIdValue = this._paretnIdValue;\r\n this._filterdItems = this.dataList;\r\n if (this.dataList && this.dataList?.length > 0) this._filterdItems = this.dataList;\r\n if (this.dataList && this.dataList?.length > 0 && (!this._filterdItems || this._filterdItems?.length <= 0)) {\r\n this._filterdItems = this.dataList.filter((x) => !this.filterKey || x[this.filterKey] != this.filterValue);\r\n }\r\n if (this.selectorService.getDataList(this.name) && this.selectorService.getDataList(this.name).length > 0)\r\n this._filterdItems = this.selectorService.getDataList(this.name);\r\n\r\n if (this._filterdItems && this._filterdItems?.length > 0 && this._filterdItems[0][\"Code\"])\r\n this._filterdItems = this._filterdItems.sort((a, b) => a[\"Code\"] - b[\"Code\"]);\r\n else this._filterdItems = this._filterdItems;\r\n if (this._filterdItems && this._filterdItems?.length > 0 && this.disabledList && this.disabledList.length > 0) {\r\n this.disabledList.forEach((ele) => {\r\n const find = this._filterdItems.find((f) => f.Id === ele);\r\n if (find) {\r\n find.disabled = true;\r\n }\r\n });\r\n }\r\n if (this.multiple && this.hasCheckBox) this.closeOnSelect = false;\r\n this.cd.markForCheck();\r\n }\r\n\r\n setDefault() {\r\n if (\r\n this.group?.controls &&\r\n this.name &&\r\n this.group?.controls[this.name] &&\r\n (this.hasDefault || this.hasDefault === undefined) &&\r\n (this.selectorService.getHasDefaultValue(this.name) === undefined || this.selectorService.getHasDefaultValue(this.name)) &&\r\n !this.group?.controls[this.name]?.value &&\r\n this.dataList &&\r\n this.dataList?.length === 1\r\n ) {\r\n this.group?.controls[this.name].setValue(this.dataList[0][this.valueFieldName]);\r\n this.valueChange.emit(this.dataList[0]);\r\n this.valueChangeByApiName.emit({ data: this.dataList[0], apiName: this.apiName, KeyName: this.name });\r\n }\r\n }\r\n\r\n public seletedtvalue: any = {};\r\n onChange(value: any) {\r\n this.valueChange.emit(value);\r\n this.valueChangeByApiName.emit({ data: value, apiName: this.apiName, KeyName: this.name });\r\n this.cd.markForCheck();\r\n }\r\n onClear(value: any) {\r\n if (this.isMultiColumns) {\r\n this.setValue(\"PaginationNumber\", 1);\r\n this.MultiColumnsFilter = \"\";\r\n this.paginationData();\r\n }\r\n this.valueClear.emit(value);\r\n this.selectorService.submitted$.next(false);\r\n this.cd.markForCheck();\r\n }\r\n add(value: any) {\r\n this.addItem.emit(value);\r\n this.selectorService.submitted$.next(false);\r\n this.cd.markForCheck();\r\n }\r\n remove(value: any) {\r\n this.removeItem.emit(value);\r\n this.selectorService.submitted$.next(false);\r\n this.cd.markForCheck();\r\n }\r\n protected getFailedHelper(error: any) {\r\n console.log(error);\r\n this.cd.markForCheck();\r\n }\r\n async pagination(action: PaginationEnum, filter: string = \"\") {\r\n if (!filter) filter = this.MultiColumnsFilter;\r\n let PaginationNumber = this.formGroup.controls[\"PaginationNumber\"]?.value;\r\n let skip = this.formGroup.controls[\"PaginationNumber\"]?.value;\r\n switch (action) {\r\n case PaginationEnum.next:\r\n skip = (Number(skip) * 4).toString();\r\n PaginationNumber = (Number(PaginationNumber) + 1).toString();\r\n this.setValue(\"PaginationNumber\", PaginationNumber);\r\n break;\r\n case PaginationEnum.previous:\r\n skip = ((Number(skip) - 2) * 4).toString();\r\n PaginationNumber = (Number(PaginationNumber) - 1).toString();\r\n this.setValue(\"PaginationNumber\", PaginationNumber);\r\n break;\r\n case PaginationEnum.first:\r\n PaginationNumber = 0;\r\n skip = 0;\r\n this.setValue(\"PaginationNumber\", 1);\r\n break;\r\n case PaginationEnum.last:\r\n // PaginationNumber = this.totalPage;\r\n skip = ((Number(this.totalPage) - 1) * 4).toString();\r\n this.setValue(\"PaginationNumber\", this.totalPage);\r\n break;\r\n case PaginationEnum.custom:\r\n skip = ((Number(skip) - 1) * 4).toString();\r\n break;\r\n default:\r\n PaginationNumber = 0;\r\n this.setValue(\"PaginationNumber\", 1);\r\n }\r\n\r\n if (PaginationNumber > this.totalPage - 1) {\r\n skip = ((Number(this.totalPage) - 1) * 4).toString();\r\n this.setValue(\"PaginationNumber\", this.totalPage);\r\n }\r\n if (PaginationNumber < 1) {\r\n PaginationNumber = 1;\r\n skip = 0;\r\n this.setValue(\"PaginationNumber\", 1);\r\n }\r\n await this._httpCommonService\r\n .GetPagining>(this.apiName, this.filterKey, filter, skip, 4, this.SortColumn, this.IsEqual)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then((x: PagingDataResult) => {\r\n this.dataList = (x as any)?.Data;\r\n this.totalPage = Math.trunc(x?.TotalPage / 4) + ((x?.TotalPage / 4) % 1 > 0 ? 1 : 0);\r\n console.log(x);\r\n if (!PaginationEnum) {\r\n this.mainDataList = x;\r\n }\r\n this.cd.markForCheck();\r\n });\r\n }\r\n async setValuePagination($event) {\r\n this.setValue(\"PaginationNumber\", $event.target.value);\r\n await this.pagination(PaginationEnum.custom);\r\n }\r\n search($event) {\r\n if (this.isMultiColumns) {\r\n this.MultiColumnsFilter = $event;\r\n if (this.startSearch) return;\r\n this.startSearch = true;\r\n if (this.MultiColumnsFilter) {\r\n setTimeout(() => {\r\n this.pagination(null, this.MultiColumnsFilter);\r\n this.startSearch = false;\r\n }, 2000);\r\n } else {\r\n this.pagination(null, this.MultiColumnsFilter);\r\n this.startSearch = false;\r\n }\r\n }\r\n this.MultiColumnsFilter = $event;\r\n console.log(\"\");\r\n }\r\n close() {\r\n this.MultiColumnsFilter = \"\";\r\n }\r\n open() {\r\n // this.dataList = Object.assign({}, this.mainDataList?.Data);\r\n // this.totalPage = this.mainDataList?.TotalPage;\r\n if (this.isMultiColumns) {\r\n this.formGroup = new FormGroup({\r\n PaginationNumber: new FormControl(1, [Validators.required, Validators.email]),\r\n });\r\n this.MultiColumnsFilter = \"\";\r\n this.paginationData();\r\n }\r\n }\r\n\r\n private getDataValueWhenValueIsNotExistInDataList(): void {\r\n if (this.group?.controls[this.name].value && !this.dataList.find((x) => x[this.valueFieldName] === this.group?.controls[this.name].value)) {\r\n this._httpCommonService\r\n .GetPagining>(this.apiName, this.valueFieldName, this.group?.controls[this.name].value, 0, 0, null, this.IsEqual)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then((x: PagingDataResult) => {\r\n if (x?.Data?.length) {\r\n const copyDatalist = Object.assign([], this.dataList);\r\n this.dataList = [];\r\n copyDatalist.push(x.Data[0]);\r\n this.dataList = copyDatalist;\r\n this.mainDataList?.Data?.push(x.Data[0]);\r\n this.cd.markForCheck();\r\n this.cd.detectChanges();\r\n }\r\n });\r\n }\r\n }\r\n setValue(key: string, value: any, validator: boolean = false, patternKey: string = undefined) {\r\n if (!this.formGroup) {\r\n let group: any = {};\r\n this.formGroup = new UntypedFormGroup(group);\r\n }\r\n if (this.formGroup) {\r\n if (!this.formGroup.controls[key]) this.formGroup.addControl(key, new UntypedFormControl(value));\r\n else this.formGroup.controls[key].setValue(value);\r\n this.formGroup.controls[key].clearValidators();\r\n }\r\n\r\n if (validator && this.formGroup && this.formGroup.controls[key]) {\r\n this.formGroup.controls[key].setValidators(Validators.required);\r\n }\r\n if (patternKey && this.formGroup) {\r\n this.formGroup.controls[key].setValidators(Validators.pattern(patternKey));\r\n }\r\n }\r\n}\r\nexport enum PaginationEnum {\r\n none = 0,\r\n next = 1,\r\n previous = 2,\r\n last = 3,\r\n first = 4,\r\n custom = 5,\r\n}\r\n","
\r\n \r\n \r\n \r\n *\r\n \r\n
\r\n \r\n \r\n {{ item[textFieldName] }}\r\n 0\">\r\n
\r\n
\r\n {{ multiDataKeyTitle[index] }} : {{ item[multiDataKey[index]] }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n {{ totalPage }} /\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{ label }} {{ \"Errors.Required\" | translate }} \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\r\nimport { BaseControlComponent } from \"../base/base-control.component\";\r\nimport { SelectorService } from '../base/selector.service';\r\n@Component({\r\n // moduleId: module.id,\r\n selector: 'sepidz-color-picker',\r\n templateUrl: './sepidz-color-picker.component.html',\r\n styleUrls: ['./sepidz-color-picker.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SepidzColorPickerComponent extends BaseControlComponent{\r\n isshow: boolean;\r\n orignalTextType: string = \"text\";\r\n cpToggle:boolean;\r\n ngAfterViewChecked() {\r\n super.ngAfterViewChecked();\r\n if (this.f[this.name].value || this.f[this.name].value !== undefined && this.f[this.name].value !== null) {\r\n this.isshow = true;\r\n }\r\n }\r\n show() {\r\n this.isshow = !this.isshow;\r\n }\r\n focusFunction() {\r\n this.isshow = true;\r\n if (document.getElementById(this.name))\r\n document.getElementById(this.name).focus();\r\n }\r\n focusOutFunction() {\r\n if (!this.f[this.name].value || this.f[this.name].value === '') {\r\n this.isshow = false;\r\n }\r\n this.cpToggle = false;\r\n }\r\n get Currentvalue()\r\n {\r\n return this.f[this.name].value;\r\n }\r\n @Input() checked: boolean = false;\r\n @Input() val: string\r\n @Input() autocomplete: string = \"off\";\r\n\r\n constructor(protected selectorService: SelectorService,protected cd: ChangeDetectorRef) {\r\n super(selectorService,cd);\r\n }\r\n\r\n onChange($event) {\r\n this.f[this.name].setValue($event);\r\n this.valueChange.emit($event);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n
\r\n {{ label }} {{ \"Errors.Required\" | translate }} \r\n {{ label }} {{ \"Errors.Pattern\" | translate }} \r\n \r\n {{ (\"Errors.Minlength\" | translate).replace(\"[0]\", label).replace(\"[1]\", minLength) }}\r\n \r\n \r\n {{ (\"Errors.Maxlength\" | translate).replace(\"[0]\", label).replace(\"[1]\", maxLength) }}\r\n \r\n \r\n {{ (\"Errors.Length\" | translate).replace(\"[0]\", label).replace(\"[1]\", min).replace(\"[2]\", max) }}\r\n \r\n
\r\n
\r\n\r\n","import { Component, Input, ChangeDetectorRef } from \"@angular/core\";\r\nimport { BaseControlComponent } from \"../base/base-control.component\";\r\nimport { SelectorService } from \"../base/selector.service\";\r\n@Component({\r\n selector: \"ssg-menu\",\r\n templateUrl: \"menu.component.html\",\r\n styleUrls: [\"menu.component.scss\"],\r\n})\r\nexport class SepidzMenuComponent extends BaseControlComponent {\r\n @Input() icon: string;\r\n @Input() appearance: string;\r\n @Input() size: string;\r\n @Input() up: boolean;\r\n top: string;\r\n left: string;\r\n right: string;\r\n openToggle: boolean;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n if (!this.icon && !this.label) this.icon = \"icon-more_vert-o\";\r\n }\r\n close() {\r\n setTimeout(() => {\r\n if (this.openToggle) this.openToggle = false;\r\n this.cd.markForCheck();\r\n }, 200);\r\n }\r\n openPopOver() {\r\n this.openToggle = !this.openToggle;\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Component, ViewChild, Input, ChangeDetectorRef, Output, EventEmitter } from '@angular/core';\r\nimport { NgModel } from '@angular/forms';\r\nimport { BaseControlComponent } from '../base/base-control.component';\r\nimport { SelectorService } from '../base/selector.service';\r\n@Component({\r\n // moduleId: module.id,\r\n selector: 'ssg-swichbox',\r\n templateUrl: 'swichbox.component.html',\r\n styleUrls: ['swichbox.component.scss'],\r\n})\r\nexport class SwichBoxComponent extends BaseControlComponent {\r\n @Input() icon: string;\r\n @Input() appearance: string;\r\n @Input() size: string;\r\n @Input() buttontype: string;\r\n @Input() check: boolean;\r\n @Output() valueChange = new EventEmitter();\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n change(value: boolean) {\r\n this.valueChange.emit(value);\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n","import { Component, OnInit, ViewChild, ElementRef, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { UntypedFormGroup, UntypedFormBuilder } from '@angular/forms';\r\nimport { find, pull } from 'lodash';\r\nimport { BaseControlComponent } from '../base/base-control.component';\r\nimport { SelectorService } from '../base/selector.service';\r\n\r\n@Component({\r\n selector: 'ssg-tag-input',\r\n templateUrl: './tag-input.component.html',\r\n styleUrls: ['./tag-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TagInputComponent extends BaseControlComponent {\r\n isshow: boolean;\r\n FirstBackspace: boolean = false;\r\n @ViewChild('tagInput') tagInputRef: ElementRef;\r\n _tags: string[] = [];\r\n get tags(): string[] {\r\n if (this.f[this.name].value) {\r\n this._tags = this.f[this.name].value.toString().split(',');\r\n return this.f[this.name].value.toString().split(',');\r\n }\r\n else {\r\n this._tags = [];\r\n return [];\r\n }\r\n }\r\n\r\n form: UntypedFormGroup;\r\n constructor(private fb: UntypedFormBuilder, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this.form = this.fb.group({\r\n tag: [undefined],\r\n });\r\n if (this.f[this.name] && this.f[this.name].value && this.f[this.name].value.length > 0) {\r\n this.f[this.name].value.forEach(x => { this._tags.push(x); });\r\n }\r\n }\r\n focusTagInput(): void {\r\n this.tagInputRef.nativeElement.focus();\r\n }\r\n\r\n onKeyUp(event: KeyboardEvent): void {\r\n this.cd.markForCheck();\r\n const inputValue: string = this.form.controls.tag.value;\r\n if (!this.FirstBackspace && !inputValue)\r\n this.FirstBackspace = true;\r\n else\r\n this.FirstBackspace = false;\r\n if (event.code === 'Backspace' && !this.FirstBackspace && !inputValue) {\r\n this.removeTag();\r\n return;\r\n } else {\r\n if ((event.code === 'Comma' && event.key !== \"و\") || (event.ctrlKey && event.code === \"Space\")) {\r\n this.addTag(inputValue);\r\n this.form.controls.tag.setValue('');\r\n }\r\n }\r\n if (this._tags && this._tags.length > 0)\r\n this.f[this.name].setValue(this._tags);\r\n else\r\n this.f[this.name].setValue(undefined);\r\n }\r\n\r\n addTag(tag: string): void {\r\n if (tag[tag.length - 1] === ',' || tag[tag.length - 1] === ' ') {\r\n tag = tag.slice(0, -1);\r\n }\r\n if (tag.length > 0 && !find(this._tags, tag)) {\r\n this._tags.push(tag);\r\n }\r\n }\r\n\r\n removeTag(tag?: string): void {\r\n if (!!tag) {\r\n pull(this._tags, tag);\r\n } else {\r\n this._tags.splice(-1);\r\n }\r\n if (this._tags && this._tags.length > 0)\r\n this.f[this.name].setValue(this._tags.join(\",\"));\r\n else\r\n this.f[this.name].setValue(\"\");\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n {{ tag }}\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, Input, OnChanges, SimpleChanges, Optional, Inject, ViewChild, Output, EventEmitter, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { NameValue } from 'projects/sepidz-web-framework/src/lib/models/name-value';\r\nimport { BaseControlComponent } from '../base/base-control.component';\r\nimport { SelectorService } from '../base/selector.service';\r\n\r\n@Component({\r\n selector: 'template-input',\r\n templateUrl: './template-input.component.html',\r\n styleUrls: ['./template-input.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TemplateInputComponent extends BaseControlComponent {\r\n @Input() items: NameValue[];\r\n @Input() rows = 10;\r\n @Input() cols = 50;\r\n @Input() placeholder: string;\r\n @Input() hint: string;\r\n @Input() validationRules: { [key: string]: string };\r\n _textValue: string;\r\n @Output() textValueChange: EventEmitter = new EventEmitter();\r\n @Input()\r\n set textValue(value: string) {\r\n this._textValue = value;\r\n if (this.name)\r\n this.setInputControlValue(this._textValue);\r\n }\r\n get textValue(): string {\r\n return this.replaceItemValues(this.f[this.name].value);\r\n }\r\n\r\n constructor(protected selectorService: SelectorService,protected cd: ChangeDetectorRef) {\r\n super(selectorService,cd);\r\n }\r\n\r\n private setInputControlValue(inputValue) {\r\n this.f[this.name].setValue(this.replaceItemNames(inputValue));\r\n }\r\n\r\n private replaceItemValues(value: string): string {\r\n this.items.forEach(t => {\r\n value = value.replace(this.wrap(t.Name), t.Value);\r\n });\r\n return value;\r\n }\r\n\r\n private replaceItemNames(value: string): string {\r\n if (!value) {\r\n return;\r\n }\r\n this.items.forEach(t => {\r\n value = value.replace(t.Value, this.wrap(t.Name));\r\n });\r\n return value;\r\n }\r\n\r\n addItem(name: string, input: HTMLTextAreaElement) {\r\n const text = this.wrap(name);\r\n\r\n const value = input.value;\r\n\r\n const start = input.selectionStart;\r\n const end = input.selectionEnd;\r\n\r\n input.value = `${value.slice(0, start)}${text}${value.slice(end)}`;\r\n\r\n input.selectionStart = input.selectionEnd = start + text.length;\r\n this.f[this.name].setValue(input.value);\r\n this.textValueChange.emit(this.textValue);\r\n input.focus();\r\n }\r\n\r\n wrap(text) {\r\n return `[${text}]`;\r\n }\r\n onChange(value: string) {\r\n if (this.textValue)\r\n this.textValueChange.emit(this.textValue);\r\n }\r\n}\r\n","
0\">\r\n\r\n \r\n\r\n
\r\n
\r\n\r\n
\r\n","import { Component, ViewChild, Input, Output, EventEmitter, ChangeDetectorRef, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CorrectYeKeService } from 'projects/sepidz-web-framework/src/lib/services';\r\nimport { BaseControlComponent } from '../base/base-control.component';\r\nimport { SelectorService } from '../base/selector.service';\r\n@Component({\r\n //moduleId: module.id,\r\n selector: 'ssg-textarea',\r\n styleUrls: ['textarea.component.scss'],\r\n templateUrl: 'textarea.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TextareaComponent extends BaseControlComponent {\r\n isshow: boolean;\r\n inputFocus: boolean;\r\n\r\n ngAfterViewChecked() {\r\n super.ngAfterViewChecked();\r\n if (this.f[this.name].value && (this.f[this.name].value !== '' && this.f[this.name].value !== undefined && this.f[this.name].value !== null)) {\r\n this.isshow = true;\r\n }\r\n }\r\n show() {\r\n this.isshow = !this.isshow;\r\n }\r\n focusFunction() {\r\n this.isshow = true;\r\n this.inputFocus = true;\r\n if (document.getElementById(this.name))\r\n document.getElementById(this.name).focus();\r\n }\r\n focusOutFunction() {\r\n if (!this.f[this.name].value || this.f[this.name].value === '') {\r\n this.isshow = false;\r\n this.inputFocus = false;\r\n }\r\n }\r\n // @HostBinding('class') @Input('class') classList: string = '';\r\n\r\n @Input() class: string\r\n @Input() name: string;\r\n @Input() hint: string;\r\n @Input() icon: string;\r\n @Input() autocomplete: string = \"off\";\r\n @Input() withComma: boolean = true;\r\n @Output() numberValueChange: EventEmitter = new EventEmitter();\r\n @Input() inputMask: string;\r\n @Input()\r\n set numberValue(value: any) {\r\n if (value && this.textType === 'number' && this.withComma.toString().toLowerCase() === 'true') {\r\n var parts = value.toString().split(\".\");\r\n parts[0] = parts[0].replace(/,/g, \"\").replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n this.f[this.name].setValue(parts.join(\".\"));\r\n }\r\n else\r\n this.f[this.name].setValue(value as any)\r\n }\r\n get numberValue(): any {\r\n if (this.textType === 'number' && this.withComma.toString().toLowerCase() === 'true') {\r\n return Number(this.f[this.name].value.replace(/,/g, \"\"));\r\n }\r\n return this.f[this.name].value as any;\r\n }\r\n constructor(private cyk: CorrectYeKeService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n if (!this.autocomplete) {\r\n this.autocomplete = \"off\";\r\n }\r\n }\r\n onChange(value: any) {\r\n if (value && this.textType === 'number' && this.withComma.toString().toLowerCase() === 'true') {\r\n this.valueChange.emit(this.f[this.name].value.replace(/,/g, \"\"));\r\n this.numberValueChange.emit(this.numberValue)\r\n }\r\n else {\r\n value = CorrectYeKeService.getCorrectYeKe(value);\r\n this.f[this.name].setValue(value);\r\n this.valueChange.emit(value);\r\n this.numberValueChange.emit(this.numberValue)\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n * \r\n
\r\n
\r\n \r\n
\r\n {{hint}}\r\n
\r\n
\r\n \r\n {{label}} {{'Errors.Required'| translate}}\r\n \r\n \r\n {{label}} {{'Errors.Pattern' | translate}}\r\n \r\n \r\n {{('Errors.Minlength'| translate ).replace( '[0]' , label).replace( '[1]' , minLength) }}\r\n \r\n \r\n {{('Errors.Maxlength'| translate ).replace( '[0]' , label).replace( '[1]' , maxLength) }}\r\n \r\n \r\n {{('Errors.Length'| translate ).replace( '[0]' , label).replace( '[1]' , min).replace( '[2]' , max) }}\r\n \r\n
\r\n
\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from \"@angular/core\";\r\nimport { BaseControlComponent } from \"../base/base-control.component\";\r\nimport { Moment } from \"jalali-moment\";\r\nimport { IDatePickerConfig, ECalendarValue } from \"projects/persian-date-picker/src/lib\";\r\nimport { SelectorService } from \"../base/selector.service\";\r\n@Component({\r\n //moduleId: module.id,\r\n selector: \"time-picker\",\r\n templateUrl: \"time-picker.template.html\",\r\n styleUrls: [\"time-picker.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TimePickerComponent extends BaseControlComponent {\r\n @Input() showSeconds = true;\r\n displayDate: Moment | string;\r\n validationMinDate: Moment;\r\n validationMaxDate: Moment;\r\n\r\n jalaliConfigExtension: IDatePickerConfig = {\r\n firstDayOfWeek: \"sa\",\r\n monthFormat: \"MMMM YYYY\",\r\n weekDayFormat: \"dd\",\r\n dayBtnFormat: \"D\",\r\n monthBtnFormat: \"MMMM\",\r\n locale: \"fa\",\r\n };\r\n gregorianSystemDefaults: IDatePickerConfig = {\r\n firstDayOfWeek: \"su\",\r\n monthFormat: \"MMM, YYYY\",\r\n disableKeypress: false,\r\n allowMultiSelect: false,\r\n closeOnSelect: undefined,\r\n closeOnSelectDelay: 100,\r\n openOnFocus: true,\r\n openOnClick: true,\r\n onOpenDelay: 0,\r\n weekDayFormat: \"ddd\",\r\n appendTo: document.body,\r\n showNearMonthDays: true,\r\n showWeekNumbers: false,\r\n enableMonthSelector: true,\r\n yearFormat: \"YYYY\",\r\n showGoToCurrent: true,\r\n dayBtnFormat: \"DD\",\r\n monthBtnFormat: \"MMM\",\r\n hours12Format: \"hh\",\r\n hours24Format: \"HH\",\r\n meridiemFormat: \"A\",\r\n minutesFormat: \"mm\",\r\n minutesInterval: 1,\r\n secondsFormat: \"ss\",\r\n secondsInterval: 1,\r\n showTwentyFourHours: false,\r\n timeSeparator: \":\",\r\n multipleYearsNavigateBy: 10,\r\n showMultipleYearsNavigation: false,\r\n locale: \"en\",\r\n hideInputContainer: false,\r\n returnedValueType: ECalendarValue.String,\r\n unSelectOnClick: true,\r\n hideOnOutsideClick: true,\r\n };\r\n\r\n config: IDatePickerConfig = {};\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.config = { ...this.gregorianSystemDefaults, ...this.jalaliConfigExtension, showSeconds: this.showSeconds };\r\n this.cd.detectChanges();\r\n }\r\n\r\n change(newValue: any) {\r\n if (newValue) {\r\n this.valueChange.emit(newValue);\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{label}} {{\"ClientApp.Projects.FrameWorkShell.Shared.Controls.TimePicker.NotEntered\" | translate}}\r\n
\r\n
\r\n
\r\n","export * from './tooltip.component';\r\nexport * from './tooltip.directive';\r\nexport * from './tooltip.module';\r\nexport * from './options.interface';\r\n","export const defaultOptions = {\r\n placement: \"top\",\r\n trigger: \"hover\",\r\n display: true,\r\n displayMobile: true,\r\n theme: \"dark\",\r\n id: false,\r\n};\r\n\r\nexport const backwardCompatibilityOptions: any = {};\r\n","import { Component, ElementRef, HostBinding, Input, EventEmitter, Renderer2 } from \"@angular/core\";\r\nimport { defaultOptions } from \"./options\";\r\n\r\n@Component({\r\n selector: \"tooltip\",\r\n templateUrl: \"./tooltip.component.html\",\r\n host: {\r\n class: \"tooltip\",\r\n },\r\n styleUrls: [\"./tooltip.component.sass\"],\r\n})\r\nexport class TooltipComponent {\r\n events = new EventEmitter();\r\n\r\n @Input() data: any;\r\n\r\n @HostBinding(\"style.top\") hostStyleTop!: string;\r\n @HostBinding(\"style.left\") hostStyleLeft!: string;\r\n @HostBinding(\"style.transition\") hostStyleTransition!: string;\r\n @HostBinding(\"class.tooltip-show\") hostClassShow!: boolean;\r\n @HostBinding(\"class.tooltip-light\") hostClassLight!: boolean;\r\n\r\n _show: boolean = false;\r\n options = defaultOptions;\r\n isThemeLight = defaultOptions.theme === \"light\";\r\n\r\n @Input() set show(value: boolean) {\r\n if (value) this.setPosition();\r\n\r\n this._show = this.hostClassShow = value;\r\n }\r\n get show(): boolean {\r\n return this._show;\r\n }\r\n\r\n get placement() {\r\n return defaultOptions.placement;\r\n }\r\n\r\n get element() {\r\n return this.data.element;\r\n }\r\n\r\n get elementPosition() {\r\n return this.data.elementPosition;\r\n }\r\n\r\n get value() {\r\n return this.data.value;\r\n }\r\n\r\n get tooltipOffset(): number {\r\n return Number(8);\r\n }\r\n\r\n constructor(private elementRef: ElementRef, private renderer: Renderer2) {}\r\n\r\n ngOnInit() {\r\n this.setStyles();\r\n }\r\n\r\n setPosition(): void {\r\n if (this.setHostStyle(this.placement)) {\r\n this.setPlacementClass(this.placement);\r\n return;\r\n } else {\r\n const placements = [\"top\", \"right\", \"bottom\", \"left\"];\r\n\r\n for (const placement of placements) {\r\n if (this.setHostStyle(placement)) {\r\n this.setPlacementClass(placement);\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n\r\n setPlacementClass(placement: string): void {\r\n this.renderer.addClass(this.elementRef.nativeElement, \"tooltip-\" + placement);\r\n }\r\n\r\n setHostStyle(placement: string): boolean {\r\n const isSvg = this.element instanceof SVGElement;\r\n const tooltip = this.elementRef.nativeElement;\r\n const isCustomPosition = !this.elementPosition.right;\r\n\r\n let elementHeight = isSvg ? this.element.getBoundingClientRect().height : this.element.offsetHeight;\r\n let elementWidth = isSvg ? this.element.getBoundingClientRect().width : this.element.offsetWidth;\r\n const tooltipHeight = tooltip.clientHeight;\r\n const tooltipWidth = tooltip.clientWidth;\r\n const scrollY = window.pageYOffset;\r\n\r\n if (isCustomPosition) {\r\n elementHeight = 0;\r\n elementWidth = 0;\r\n }\r\n\r\n let topStyle;\r\n let leftStyle;\r\n\r\n if (placement === \"top\") {\r\n topStyle = this.elementPosition.top + scrollY - (tooltipHeight + this.tooltipOffset);\r\n }\r\n\r\n if (placement === \"bottom\") {\r\n topStyle = this.elementPosition.top + scrollY + elementHeight + this.tooltipOffset;\r\n }\r\n\r\n if (placement === \"top\" || placement === \"bottom\") {\r\n leftStyle = this.elementPosition.left + elementWidth / 2 - tooltipWidth / 2;\r\n }\r\n\r\n if (placement === \"left\") {\r\n leftStyle = this.elementPosition.left - tooltipWidth - this.tooltipOffset;\r\n }\r\n\r\n if (placement === \"right\") {\r\n leftStyle = this.elementPosition.left + elementWidth + this.tooltipOffset;\r\n }\r\n\r\n if (placement === \"left\" || placement === \"right\") {\r\n topStyle = this.elementPosition.top + scrollY + elementHeight / 2 - tooltip.clientHeight / 2;\r\n }\r\n\r\n const topEdge = topStyle;\r\n const bottomEdge = topStyle + tooltipHeight;\r\n const leftEdge = leftStyle;\r\n const rightEdge = leftStyle + tooltipWidth;\r\n const bodyHeight = window.innerHeight + scrollY;\r\n const bodyWidth = document.body.clientWidth;\r\n\r\n if (topEdge < 0 || bottomEdge > bodyHeight || leftEdge < 0 || rightEdge > bodyWidth) {\r\n return false;\r\n }\r\n\r\n this.hostStyleTop = topStyle + \"px\";\r\n this.hostStyleLeft = leftStyle + \"px\";\r\n return true;\r\n }\r\n\r\n setAnimationDuration() {\r\n this.hostStyleTransition = \"opacity \" + 300 + \"ms\";\r\n }\r\n\r\n setStyles() {\r\n this.setAnimationDuration();\r\n\r\n this.hostClassLight = this.isThemeLight;\r\n }\r\n}\r\n","
\r\n\r\n
\r\n","import { Directive, ElementRef, Input, ComponentFactoryResolver, EmbeddedViewRef, ApplicationRef, Injector, OnDestroy } from \"@angular/core\";\r\nimport { TooltipComponent } from \"./tooltip.component\";\r\n\r\nexport interface AdComponent {\r\n data: any;\r\n show: boolean;\r\n close: boolean;\r\n events: any;\r\n}\r\n\r\n@Directive({\r\n selector: \"[tooltip]\",\r\n exportAs: \"tooltip\",\r\n host: {\r\n \"(focusin)\": \"show()\",\r\n \"(mouseenter)\": \"show()\",\r\n \"(focusout)\": \"destroyTooltip()\",\r\n \"(mouseleave)\": \"destroyTooltip()\",\r\n },\r\n})\r\nexport class TooltipDirective implements OnDestroy {\r\n @Input(\"tooltip\") tooltipValue!: string;\r\n @Input(\"placement\") placement!: string;\r\n @Input(\"display\") display!: boolean;\r\n @Input(\"theme\") theme!: \"dark\" | \"light\";\r\n @Input(\"width\") width!: string;\r\n @Input(\"position\") position!: { top: number; left: number };\r\n\r\n showTimeOutId: NodeJS.Timeout;\r\n componentRef: any;\r\n elementPosition: any;\r\n\r\n get isTooltipDestroyed() {\r\n return this.componentRef && this.componentRef.hostView.destroyed;\r\n }\r\n\r\n constructor(\r\n private elementRef: ElementRef,\r\n private componentFactoryResolver: ComponentFactoryResolver,\r\n private appRef: ApplicationRef,\r\n private injector: Injector\r\n ) {}\r\n\r\n ngOnDestroy() {\r\n this.destroyTooltip();\r\n if (this.showTimeOutId) clearTimeout(this.showTimeOutId);\r\n }\r\n\r\n getElementPosition(): void {\r\n this.elementPosition = this.elementRef.nativeElement.getBoundingClientRect();\r\n }\r\n\r\n createTooltip(): void {\r\n this.getElementPosition();\r\n this.appendComponentToBody();\r\n\r\n this.showTimeOutId = setTimeout(() => {\r\n this.showTooltipElem();\r\n }, 0);\r\n }\r\n\r\n destroyTooltip(): void {\r\n if (this.isTooltipDestroyed == false) {\r\n this.hideTooltip();\r\n\r\n if (!this.componentRef || this.isTooltipDestroyed) {\r\n return;\r\n }\r\n this.appRef.detachView(this.componentRef.hostView);\r\n this.componentRef.destroy();\r\n }\r\n }\r\n\r\n showTooltipElem(): void {\r\n (this.componentRef.instance).show = true;\r\n }\r\n\r\n hideTooltip(): void {\r\n if (!this.componentRef || this.isTooltipDestroyed) return;\r\n (this.componentRef.instance).show = false;\r\n }\r\n\r\n appendComponentToBody(): void {\r\n this.componentRef = this.componentFactoryResolver.resolveComponentFactory(TooltipComponent).create(this.injector);\r\n (this.componentRef.instance).data = {\r\n value: this.tooltipValue,\r\n element: this.elementRef.nativeElement,\r\n elementPosition: this.elementPosition,\r\n };\r\n this.appRef.attachView(this.componentRef.hostView);\r\n const domElem = (this.componentRef.hostView as EmbeddedViewRef).rootNodes[0] as HTMLElement;\r\n document.body.appendChild(domElem);\r\n }\r\n\r\n public show() {\r\n if (!this.tooltipValue || this.display === false) return;\r\n\r\n if (!this.componentRef || this.isTooltipDestroyed) {\r\n this.createTooltip();\r\n } else if (!this.isTooltipDestroyed) {\r\n this.showTooltipElem();\r\n }\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { TooltipDirective } from \"./tooltip.directive\";\r\nimport { TooltipComponent } from \"./tooltip.component\";\r\nimport { TooltipOptions } from \"./options.interface\";\r\n\r\n@NgModule({\r\n declarations: [TooltipDirective, TooltipComponent],\r\n imports: [CommonModule],\r\n exports: [TooltipDirective],\r\n})\r\nexport class TooltipModule {\r\n static forRoot(initOptions: TooltipOptions): ModuleWithProviders {\r\n return {\r\n ngModule: TooltipModule,\r\n };\r\n }\r\n}\r\n","import { Directive } from '@angular/core';\r\nimport {\r\n NG_VALIDATORS,\r\n AbstractControl,\r\n} from '@angular/forms';\r\n@Directive({\r\n selector: '[hexadecimal][ngModel]',\r\n providers: [\r\n { provide: NG_VALIDATORS, useExisting: HexadecimalValueValidator, multi: true }\r\n ]\r\n})\r\nexport class HexadecimalValueValidator {\r\n validate(control: AbstractControl): { [validator: string]: string } {\r\n const expression = /^([0-9a-fA-F]+)$/i;\r\n if (!control.value) { // the [required] validator will check presence, not us\r\n return null;\r\n }\r\n const value = control.value.trim();\r\n if (expression.test(value)) {\r\n return null;\r\n }\r\n return { hexadecimal: 'Please enter a hexadecimal value (alphanumeric, 0-9 and A-F)' };\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\n@Component({\r\n selector: 'validation',\r\n template: `\r\n
\r\n
{{message}}
\r\n
\r\n `,\r\n styles: [`\r\n .validation {\r\n color: #999;\r\n margin: 12px;\r\n }`\r\n ]\r\n})\r\nexport class ValidationComponent {\r\n @Input() messages: Array;\r\n}\r\n","import { Directive, AfterViewInit, ElementRef, ChangeDetectorRef, Input } from '@angular/core';\r\nimport { SelectorService } from '../controls/base/selector.service';\r\n@Directive({\r\n selector: '[sepidzAutoFocus]'\r\n})\r\nexport class AutoFocusDirective implements AfterViewInit {\r\n constructor(private el: ElementRef, private selectorService: SelectorService) { }\r\n\r\n ngAfterViewInit() {\r\n setTimeout(() => {\r\n if (!this.selectorService.onFocused) {\r\n const invalidControl = this.el.nativeElement.querySelector('.ng-invalid');\r\n if (invalidControl)\r\n invalidControl.focus();\r\n else\r\n this.el.nativeElement.focus();\r\n this.selectorService.onFocused = true;\r\n }\r\n }, 200);\r\n }\r\n}\r\n","import { ChangeDetectorRef, Directive, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[focusInvalidInput]'\r\n })\r\n export class FormDirective {\r\n constructor(private el: ElementRef,private cd: ChangeDetectorRef) {}\r\n \r\n @HostListener('submit')\r\n onFormSubmit() {\r\n const invalidControl = this.el.nativeElement.querySelector('.ng-invalid');\r\n \r\n if (invalidControl) {\r\n setTimeout(() => {\r\n invalidControl.focus();\r\n }, 200);\r\n }\r\n }\r\n }","import { Directive, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from \"@angular/core\";\r\n\r\nimport { Subscription } from \"rxjs\";\r\nimport { AccountService } from \"projects/sepidz-web-framework/src/lib/services\";\r\n\r\n@Directive({\r\n selector: \"[hasPermission]\",\r\n})\r\nexport class HasPermissionDirective implements OnInit, OnDestroy {\r\n private visible = false;\r\n private subscription: Subscription | null = null;\r\n\r\n @Input(\"hasPermission\")\r\n permissions: string | boolean[] = [];\r\n\r\n // Note, if you don't place the * in front, you won't be able to inject the TemplateRef or ViewContainerRef into your directive.\r\n constructor(private templateRef: TemplateRef, private viewContainer: ViewContainerRef, private accountService: AccountService) {}\r\n\r\n ngOnInit() {\r\n this.applyPermission();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.subscription) {\r\n this.subscription.unsubscribe();\r\n }\r\n }\r\n\r\n private applyPermission() {\r\n let hasPermission = this.accountService.userHasPermission(`${this.permissions[0]}`, `${this.permissions[1]}`);\r\n if (typeof this.permissions[2] === \"boolean\") hasPermission = this.permissions[2] && hasPermission;\r\n if (hasPermission) {\r\n if (!this.visible) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.visible = true;\r\n }\r\n } else {\r\n this.visible = false;\r\n this.viewContainer.clear();\r\n }\r\n }\r\n}\r\n","import { OnInit, Input, OnDestroy, Directive, ElementRef, Renderer2 } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\n\r\nimport { CreateFormGroupArgs, GridComponent } from '@progress/kendo-angular-grid';\r\n\r\n@Directive({\r\n selector: '[inCellTab]'\r\n})\r\nexport class InCellTabDirective implements OnInit, OnDestroy {\r\n /* tslint:disable-next-line:no-input-rename */\r\n @Input('inCellTab')\r\n public createFormGroup: (args: CreateFormGroupArgs) => UntypedFormGroup;\r\n\r\n @Input()\r\n public wrap = true;\r\n\r\n private unsubKeydown: () => void;\r\n\r\n constructor(\r\n private grid: GridComponent,\r\n private el: ElementRef,\r\n private renderer: Renderer2) {\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.unsubKeydown = this.renderer.listen(\r\n this.el.nativeElement, 'keydown', (e) => this.onKeydown(e)\r\n );\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n this.unsubKeydown();\r\n }\r\n\r\n public onKeydown(e: KeyboardEvent): void {\r\n if (e.key !== 'Tab') {\r\n // Handle just tabs\r\n return;\r\n }\r\n\r\n let activeRow = this.grid.activeRow;\r\n if (!activeRow || !activeRow.dataItem) {\r\n // Not on an editable row\r\n return;\r\n }\r\n\r\n if (this.grid.isEditingCell() && !this.grid.closeCell()) {\r\n // Content validation failed, keep focus in cell\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n const nav = e.shiftKey ?\r\n this.grid.focusPrevCell(this.wrap) :\r\n this.grid.focusNextCell(this.wrap);\r\n\r\n if (!nav) {\r\n // No next cell to navigate to\r\n return;\r\n }\r\n\r\n // Prevent the focus from moving to the next element\r\n e.preventDefault();\r\n\r\n activeRow = this.grid.activeRow;\r\n const dataItem = activeRow.dataItem;\r\n if (dataItem) {\r\n // Edit focused cell\r\n const formGroup = this.createFormGroup( dataItem );\r\n this.grid.editCell(activeRow.dataRowIndex, nav.colIndex, formGroup);\r\n }\r\n }\r\n}\r\n","import { NgModule, ModuleWithProviders, Injector } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport {\r\n AppTranslationService,\r\n AccountService,\r\n LocalStoreManager,\r\n AuthGuard,\r\n HttpCommonService,\r\n AnalyticsService,\r\n} from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { TranslateModule, TranslateLoader } from \"@ngx-translate/core\";\r\nimport {\r\n JuriNameValidator,\r\n HexadecimalValueValidator,\r\n ValidationComponent,\r\n DatePickerComponent,\r\n ButtonComponent,\r\n TextareaComponent,\r\n SepidzMenuComponent,\r\n} from \"../shared/controls\";\r\nimport { TreeViewModule } from \"@progress/kendo-angular-treeview\";\r\nimport { FormControlModelComponent } from \"./controls/form/form-control-model.component\";\r\nimport { DynamicFormComponent } from \"./controls/form/dynamic-form.component\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { CorrectYeKeService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { NgSelectModule } from \"./controls/ng-select/ng-select.module\";\r\nimport { ErrorDialogModule } from \"projects/sepidz-web-framework/src/lib/services/error-dialog/error-dialog.module\";\r\nimport { LookupComponent } from \"./controls/lookup/lookup.component\";\r\nimport { HTTP_INTERCEPTORS, HttpClientModule } from \"@angular/common/http\";\r\nimport { MinDirective, MaxDirective } from \"./controls/base/min.max.directive\";\r\nimport { GridModule, ExcelModule, PDFModule } from \"@progress/kendo-angular-grid\";\r\nimport { AlertService } from \"projects/sepidz-web-framework/src/lib/services/alert.service\";\r\nimport { LayoutService } from \"projects/sepidz-web-framework/src/lib/@core/utils/layout.service\";\r\nimport { LookupTreeComponent } from \"./controls/lookup-tree/lookup-tree.component\";\r\nimport { CacheInterceptor } from \"projects/sepidz-web-framework/src/lib/interceptors/cache-interceptor\";\r\nimport { DpDatePickerModule } from \"projects/persian-date-picker/src/lib\";\r\nimport { TranslateLanguageLoader } from \"projects/sepidz-web-framework/src/lib/services/app-translation.service\";\r\nimport { AuthInterceptor } from \"projects/sepidz-web-framework/src/lib/interceptors/auth.interceptor\";\r\nimport { SelectorComponent } from \"./controls/selector/selector.component\";\r\nimport { InputComponent } from \"./controls/input/input.component\";\r\nimport { SepCheckboxComponent } from \"./controls/checkbox-new/checkbox.component\";\r\nimport { RadioboxComponent } from \"./controls/radiobox/radiobox.component\";\r\nimport { TemplateInputComponent } from \"./controls/template-input/template-input.component\";\r\nimport { CheckboxListComponent } from \"./controls/checkbox-list/checkbox-list.component\";\r\nimport { TimePickerComponent } from \"./controls/timepicker/time-picker.component\";\r\nimport { ColorPickerModule } from \"ngx-color-picker\";\r\nimport { SepidzColorPickerComponent } from \"./controls/sepidz-color-picker/sepidz-color-picker.component\";\r\nimport { TagInputComponent } from \"./controls/tag-input/tag-input.component\";\r\nimport { PersianDatePipe } from \"projects/sepidz-web-framework/src/lib/pipes/persian-date.pipe\";\r\nimport { HasPermissionDirective } from \"./directives/has-permission.directive\";\r\nimport { SwichBoxComponent } from \"./controls/swichbox/swichbox.component\";\r\nimport { CurrencyMask } from \"./controls/base/currency-mask.directive\";\r\nimport { RequestCacheService } from \"projects/sepidz-web-framework/src/lib/interceptors/request-cache.service\";\r\nimport { PersianNumberPipe } from \"projects/sepidz-web-framework/src/lib/pipes/persian-number.pipe\";\r\nimport { InCellTabDirective } from \"./directives/incell-tab.directive\";\r\nimport { CanDeactivateGuard } from \"projects/sepidz-web-framework/src/lib/can-deactivate/can-deactivate.guard\";\r\nimport { FormDirective } from \"./directives/focus-invalid-input.directive\";\r\nimport { AutoFocusDirective } from \"./directives/auto-focus.directive\";\r\nimport { SplashFormModule } from \"./splash-form/splash-form.module\";\r\nimport { SsgTabsetModule } from \"../tabular/tabset/tabset.module\";\r\nimport { SimpleModalModule } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.module\";\r\nimport { GroupByPipe } from \"projects/sepidz-web-framework/src/lib/pipes/group-by.pipe\";\r\nimport { ClickOutsideDirective } from \"projects/sepidz-web-framework/src/lib/services/clickoutside.directive\";\r\nimport { JwtHelper } from \"projects/sepidz-web-framework/src/lib/services/jwt-helper\";\r\nimport { MapObjectPipe } from \"projects/sepidz-web-framework/src/lib/pipes/mapobject.pipe\";\r\nimport { FilterPipe } from \"projects/sepidz-web-framework/src/lib/pipes/filter.pipe\";\r\nimport { TooltipModule, TooltipOptions } from \"./controls/tooltip\";\r\nimport { PersianService } from \"../../../../sepidz-web-framework/src/lib/services/persian.service\";\r\nimport { SSGDraggable } from \"projects/sepidz-web-framework/src/lib/services/dragable.directive\";\r\nimport { ContextMenuModule } from \"./controls/rightclick/context-menu.module\";\r\n\r\nimport { AngularResizeElementModule } from \"./controls/resizable/angular-resize-element.module\";\r\nimport { ErrorInterceptor } from \"projects/sepidz-web-framework/src/lib/interceptors/http-error-response-interceptor\";\r\nimport { EncryptDecryptAuthInterceptor } from \"projects/sepidz-web-framework/src/lib/interceptors/encrypt-decrypt/encrypt-decrypt-interceptor\";\r\nimport { ThousandSeparatorPipe } from \"projects/sepidz-web-framework/src/lib/pipes/thousand-separator.pipe\";\r\nimport { TranslateEnum } from \"projects/sepidz-web-framework/src/lib/pipes/translate-enum.pipe\";\r\nimport { SsgMaskDirective } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/SsgMaskDirective\";\r\nimport { SSGPopOverComponent } from \"./controls/popover/ssg-popover.component\";\r\nexport let AppInjector: Injector;\r\n\r\nexport const MyDefaultTooltipOptions: TooltipOptions = {\r\n \"show-delay\": 500,\r\n autoPlacement: true,\r\n};\r\n\r\nconst components = [\r\n DatePickerComponent,\r\n JuriNameValidator,\r\n HexadecimalValueValidator,\r\n ValidationComponent,\r\n FormControlModelComponent,\r\n DynamicFormComponent,\r\n LookupComponent,\r\n MinDirective,\r\n MaxDirective,\r\n CurrencyMask,\r\n LookupTreeComponent,\r\n ButtonComponent,\r\n PersianDatePipe,\r\n TranslateEnum,\r\n MapObjectPipe,\r\n SepidzColorPickerComponent,\r\n SelectorComponent,\r\n InputComponent,\r\n SepCheckboxComponent,\r\n RadioboxComponent,\r\n TemplateInputComponent,\r\n TextareaComponent,\r\n CheckboxListComponent,\r\n TimePickerComponent,\r\n TagInputComponent,\r\n HasPermissionDirective,\r\n InCellTabDirective,\r\n SwichBoxComponent,\r\n PersianNumberPipe,\r\n ThousandSeparatorPipe,\r\n FormDirective,\r\n AutoFocusDirective,\r\n GroupByPipe,\r\n FilterPipe,\r\n SepidzMenuComponent,\r\n ClickOutsideDirective,\r\n SSGDraggable,\r\n SsgMaskDirective,\r\n SSGPopOverComponent,\r\n];\r\nconst providers = [\r\n AppTranslationService,\r\n AccountService,\r\n AuthGuard,\r\n LocalStoreManager,\r\n AlertService,\r\n CorrectYeKeService,\r\n HttpCommonService,\r\n LayoutService,\r\n AnalyticsService,\r\n RequestCacheService,\r\n JwtHelper,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ErrorDialogModule,\r\n SplashFormModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useClass: TranslateLanguageLoader,\r\n },\r\n }),\r\n NgSelectModule,\r\n DpDatePickerModule,\r\n GridModule,\r\n ExcelModule,\r\n PDFModule,\r\n HttpClientModule,\r\n TreeViewModule,\r\n ColorPickerModule,\r\n SsgTabsetModule,\r\n SimpleModalModule.forRoot({ container: document.body }),\r\n TooltipModule.forRoot(MyDefaultTooltipOptions as TooltipOptions),\r\n ContextMenuModule,\r\n AngularResizeElementModule,\r\n ],\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n ...components,\r\n TranslateModule,\r\n NgSelectModule,\r\n PersianDatePipe,\r\n TranslateEnum,\r\n MapObjectPipe,\r\n ColorPickerModule,\r\n DpDatePickerModule,\r\n SimpleModalModule,\r\n SsgTabsetModule,\r\n GroupByPipe,\r\n FilterPipe,\r\n TooltipModule,\r\n ContextMenuModule,\r\n AngularResizeElementModule,\r\n ],\r\n providers: [\r\n ...providers,\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: CacheInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: EncryptDecryptAuthInterceptor, multi: true },\r\n PersianService,\r\n ],\r\n})\r\nexport class SharedModule {\r\n constructor(private injector: Injector) {\r\n AppInjector = this.injector;\r\n }\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: SharedModule,\r\n providers: [...providers, CanDeactivateGuard],\r\n };\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { SplashFormComponent } from \"./splash-form.component\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { Observable } from \"rxjs\";\r\nexport function isNullOrUndefined(value: any) {\r\n return value === null || value === undefined;\r\n}\r\n\r\nexport function isNumber(value: any) {\r\n return typeof value === \"number\";\r\n}\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class SplashFormService {\r\n constructor(private dialogService: SimpleModalService) {}\r\n openDialog(title: string = \"\", loadingMessage: string = \"در حال بارگذاری اطلاعات.....\") {\r\n if (isNullOrUndefined(loadingMessage)) loadingMessage = \"در حال بارگذاری اطلاعات.....\";\r\n this.dialogService\r\n .open(SplashFormComponent, { title: title, errorMessage: loadingMessage , hasCancelButton: false}, { autoFocus: true, closeOnClickOutside: false })\r\n .pipe(take(1))\r\n .subscribe((flag) => {});\r\n }\r\n openDialogwithCancelButton(title: string = \"\", loadingMessage: string = \"در حال بارگذاری اطلاعات.....\"): Observable {\r\n return this.dialogService\r\n .open(\r\n SplashFormComponent,\r\n { title: title, errorMessage: loadingMessage, hasCancelButton: true },\r\n { autoFocus: true, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1));\r\n }\r\n\r\n closeLoading() {\r\n try {\r\n this.dialogService.removeAllLoading();\r\n } catch (e) {}\r\n }\r\n\r\n close() {\r\n this.dialogService.removeModal(new SplashFormComponent());\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject, BehaviorSubject } from \"rxjs\";\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SplashScreenService {\r\n private _loading: boolean = false;\r\n loadingStatus: BehaviorSubject = new BehaviorSubject(null);\r\n get loading(): boolean {\r\n return this._loading;\r\n }\r\n set loading(value) {\r\n this._loading = value;\r\n this.loadingStatus.next(value);\r\n }\r\n startLoading() {\r\n this.loading = true;\r\n }\r\n stopLoading() {\r\n this.loading = false;\r\n }\r\n}\r\n","import { Component } from \"@angular/core\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { SimpleModalComponent } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.component\";\r\nimport { take } from \"rxjs/operators\";\r\n@Component({\r\n selector: \"ngx-splash-form\",\r\n templateUrl: \"./splash-form.component.html\",\r\n styleUrls: [\"./splash-form.component.scss\"],\r\n})\r\nexport class SplashFormComponent extends SimpleModalComponent implements ConfirmModel {\r\n hasCancelButton?: boolean;\r\n title: string;\r\n errorMessage: string;\r\n isLoading: boolean = true;\r\n\r\n close() {\r\n this.result = false;\r\n\r\n this.closeModal();\r\n }\r\n}\r\nexport interface ConfirmModel {\r\n title: string;\r\n errorMessage: string;\r\n hasCancelButton?: boolean;\r\n}\r\n","\r\n
\r\n\r\n
{{errorMessage}}
\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { SplashFormComponent } from \"./splash-form.component\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SplashFormService } from \"./Splash-form.service\";\r\nconst components = [SplashFormComponent];\r\nconst providers = [SplashFormService];\r\n@NgModule({\r\n declarations: [...components],\r\n imports: [CommonModule, FormsModule],\r\n exports: [...components],\r\n providers: [...providers],\r\n})\r\nexport class SplashFormModule {}\r\n","export class FormContainerModel {\r\n type: \"Modal\" | \"Tab\";\r\n metadata: TabMetadata | ModalMetadata;\r\n}\r\nexport interface TabMetadata {\r\n id: string;\r\n}\r\n\r\nexport interface ModalMetadata {\r\n id: string;\r\n}\r\n","import { map, delay, takeUntil, debounceTime } from \"rxjs/operators\";\r\nimport {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ContentChildren,\r\n QueryList,\r\n AfterContentInit,\r\n HostBinding,\r\n ChangeDetectorRef,\r\n ViewChild,\r\n ElementRef,\r\n OnDestroy,\r\n} from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { convertToBoolProperty } from \"projects/sepidz-web-framework/src/lib/@core/utils/helpers\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"ssg-tab\",\r\n template: `\r\n \r\n \r\n \r\n `,\r\n})\r\nexport class SsgTabComponent {\r\n @Input() tabTitle: string;\r\n\r\n @Input() tabIcon: string;\r\n\r\n @Input() route: string;\r\n\r\n @HostBinding(\"class.content-active\")\r\n activeValue: boolean = false;\r\n\r\n @Input()\r\n get active() {\r\n return this.activeValue;\r\n }\r\n set active(val: boolean) {\r\n this.activeValue = convertToBoolProperty(val);\r\n if (this.activeValue) {\r\n this.init = true;\r\n }\r\n }\r\n\r\n @Input() isCloseable: boolean;\r\n\r\n init: boolean = false;\r\n}\r\n\r\n@Component({\r\n selector: \"ssg-tabset\",\r\n styleUrls: [\"./tabset.component.scss\"],\r\n templateUrl: \"tabset.component.html\",\r\n})\r\nexport class SsgTabsetComponent implements AfterContentInit, OnDestroy {\r\n @ContentChildren(SsgTabComponent) tabs: QueryList;\r\n\r\n @ViewChild(\"tabset\", { static: false }) public widgetsContent: ElementRef;\r\n\r\n @HostBinding(\"class.full-width\") fullWidthValue = false;\r\n\r\n @Input() isTabsetRouter: any;\r\n\r\n changeIcon: boolean;\r\n\r\n @Input()\r\n set fullWidth(val: boolean) {\r\n this.fullWidthValue = convertToBoolProperty(val);\r\n }\r\n\r\n @Input() routeParam: string;\r\n\r\n ngUnsubscribe = new Subject();\r\n\r\n @Output() changeTab = new EventEmitter();\r\n @Output() tabChange = new EventEmitter();\r\n @Output() oncloseAllTab = new EventEmitter();\r\n @Output() oncloseTab = new EventEmitter();\r\n\r\n constructor(private route: ActivatedRoute, private changeDetectorRef: ChangeDetectorRef) {}\r\n\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n }\r\n ngAfterContentInit() {\r\n this.route.params.pipe(takeUntil(this.ngUnsubscribe), debounceTime(0)).subscribe(() => {\r\n this.selectTab(this.tabs.first, 0);\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n\r\n this.route.params\r\n .pipe(\r\n map((params: any) => this.tabs.find((tab) => (this.routeParam ? tab.route === params[this.routeParam] : tab.active))),\r\n delay(0)\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((activeTab) => {\r\n this.selectTab(activeTab || this.tabs.first, this.tabs.length - 1);\r\n this.changeDetectorRef.markForCheck();\r\n });\r\n }\r\n\r\n selectTab(selectedTab: SsgTabComponent, index: number) {\r\n if (selectedTab && !selectedTab.active) {\r\n this.tabs.forEach((tab) => {\r\n tab.init = tab === selectedTab;\r\n tab.active = tab === selectedTab;\r\n });\r\n this.changeTab.emit(index);\r\n this.tabChange.emit(selectedTab);\r\n }\r\n }\r\n closeTab(index: number) {\r\n this.oncloseTab.emit(index);\r\n }\r\n get enableBtn() {\r\n if (this.widgetsContent != undefined && this.widgetsContent?.nativeElement != undefined)\r\n return this.widgetsContent?.nativeElement?.scrollWidth > this.widgetsContent?.nativeElement?.offsetWidth;\r\n }\r\n public scrollRight(): void {\r\n if (this.widgetsContent != undefined && this.widgetsContent?.nativeElement != undefined)\r\n this.widgetsContent?.nativeElement?.scrollTo({ left: this.widgetsContent?.nativeElement?.scrollLeft + 40, behavior: \"smooth\" });\r\n }\r\n public scrollLeft(): void {\r\n if (this.widgetsContent != undefined && this.widgetsContent?.nativeElement != undefined)\r\n this.widgetsContent?.nativeElement?.scrollTo({ left: this.widgetsContent?.nativeElement?.scrollLeft - 40, behavior: \"smooth\" });\r\n }\r\n closeAllTabs() {\r\n this.oncloseAllTab.emit();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n\r\n
    \r\n \r\n \r\n {{ tab.tabTitle | translate }}\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n","import { NgModule } from \"@angular/core\";\r\nimport { SsgTabsetComponent, SsgTabComponent } from \"./tabset.component\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { TranslateLoader, TranslateModule } from \"@ngx-translate/core\";\r\nimport { TranslateLanguageLoader } from \"projects/sepidz-web-framework/src/lib/services/app-translation.service\";\r\nconst SSG_TABSET_COMPONENTS = [SsgTabsetComponent, SsgTabComponent];\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useClass: TranslateLanguageLoader,\r\n },\r\n }),\r\n ],\r\n providers: [],\r\n declarations: [...SSG_TABSET_COMPONENTS],\r\n exports: [...SSG_TABSET_COMPONENTS],\r\n})\r\nexport class SsgTabsetModule {}\r\n","import { Component, Input, Output, EventEmitter, HostBinding, AfterContentInit, OnDestroy } from \"@angular/core\";\r\nimport { TabularService, ITab } from \"./tabular.service \";\r\nimport { convertToBoolProperty } from \"projects/sepidz-web-framework/src/lib/@core/utils/helpers\";\r\n@Component({\r\n selector: \"tabular-tabset\",\r\n styleUrls: [\"./tabular.component.scss\"],\r\n template: `\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n `,\r\n})\r\nexport class TabularComponent implements AfterContentInit, OnDestroy {\r\n @HostBinding(\"class.full-width\") fullWidthValue: boolean = false;\r\n @Input() tabItems: Array = [];\r\n @Input() index: number = 0;\r\n @Input() isBookMark: boolean;\r\n @Input()\r\n set fullWidth(val: boolean) {\r\n this.fullWidthValue = convertToBoolProperty(val);\r\n }\r\n @Output() changeTab = new EventEmitter();\r\n @Output() onBookMark = new EventEmitter();\r\n @Input() selected = 0;\r\n\r\n constructor(private tabsservice: TabularService) {}\r\n ngAfterContentInit() {\r\n const activeTabs = this.tabItems.filter((tab) => tab.active);\r\n if (activeTabs.length === 0) {\r\n this.selectTab(0);\r\n }\r\n }\r\n closeTab(index: number) {\r\n this.tabsservice.close(index);\r\n }\r\n closeAllTab() {\r\n this.tabsservice.closeAll();\r\n setTimeout(() => this.tabsservice.closeAll(), 0);\r\n }\r\n onBookMarkClick($event) {\r\n this.onBookMark.emit($event);\r\n }\r\n selectTab(index: number) {\r\n this.changeTab.emit(index);\r\n this.tabsservice.setSelectedTab(index);\r\n }\r\n ngOnDestroy(): void {}\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { TabularComponent } from \"./tabular.component\";\r\nimport { SsgTabsetModule } from \"./tabset/tabset.module\";\r\n@NgModule({\r\n imports: [CommonModule, SsgTabsetModule],\r\n declarations: [TabularComponent],\r\n exports: [TabularComponent],\r\n})\r\nexport class TabularModule {}\r\n","var lodash = require(\"lodash\");\r\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\r\nimport { Injectable, Injector, NgModuleFactory, OnDestroy, Type, ValueProvider } from \"@angular/core\";\r\nimport { TabMetadata, FormContainerModel } from \"./form-container-model\";\r\nimport { VoucherKindInfo } from \"../../../../sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\nexport interface ITab {\r\n id?: string;\r\n icon?: string;\r\n title: string;\r\n VoucherKindId?: number;\r\n responsive: boolean;\r\n isCloseable: boolean;\r\n active: boolean;\r\n componentType: Type;\r\n component: any;\r\n modulePath?: any;\r\n moduleFactory?: any;\r\n injector: Injector;\r\n data?: ValueProvider[];\r\n hasbadge: boolean;\r\n BookMark: boolean;\r\n}\r\nexport function guid() {\r\n return \"xxxxxx4xyx\".replace(/[xy]/g, (c) => {\r\n const r = (Math.random() * 16) | 0,\r\n v = c === \"x\" ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n}\r\n\r\nexport interface IComponent {\r\n hasbadge: boolean;\r\n}\r\n@Injectable({ providedIn: \"root\" })\r\nexport class TabularService implements OnDestroy {\r\n ngUnsubscribe = new Subject();\r\n public tabItemSubject: BehaviorSubject;\r\n public tabItemOnClosing: BehaviorSubject;\r\n public tabItemOnCanClosing: BehaviorSubject;\r\n public tabItemActive: BehaviorSubject;\r\n public selectedTabId: string;\r\n public tabItemOnClose: BehaviorSubject;\r\n public tabItemonCloseAll: BehaviorSubject;\r\n public tabItemonRefreshData: BehaviorSubject;\r\n public tabItemOnCloseableIds: string[] = [];\r\n constructor(private injector: Injector, private sts: ShowToastrService, private translate: TranslateService) {\r\n this.tabItemOnClosing = new BehaviorSubject(\"\");\r\n this.tabItemOnCanClosing = new BehaviorSubject(\"\");\r\n this.tabItemSubject = new BehaviorSubject([]);\r\n this.tabItemOnClose = new BehaviorSubject(\"\");\r\n this.tabItemonCloseAll = new BehaviorSubject(false);\r\n this.tabItemActive = new BehaviorSubject(\"\");\r\n this.tabItemonRefreshData = new BehaviorSubject(\"\");\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n if (this.tabItemOnClosing) this.tabItemOnClosing.unsubscribe();\r\n if (this.tabItemSubject) this.tabItemSubject.unsubscribe();\r\n if (this.tabItemOnClose) this.tabItemOnClose.unsubscribe();\r\n if (this.tabItemonCloseAll) this.tabItemonCloseAll.unsubscribe();\r\n if (this.tabItemActive) this.tabItemActive.unsubscribe();\r\n if (this.tabItemonRefreshData) this.tabItemonRefreshData.unsubscribe();\r\n }\r\n get tabItems(): Observable {\r\n return this.tabItemSubject.asObservable();\r\n }\r\n open(newTab: ITab) {\r\n this.openInternal(newTab);\r\n }\r\n setTabTitle(id: string, title: string) {\r\n this.tabItemSubject.getValue().forEach((x) => {\r\n if (x.id === id) x.title = title;\r\n });\r\n }\r\n openInternal(newTab: ITab) {\r\n const model = lodash.cloneDeep(newTab);\r\n model.data = model.data || [];\r\n if (!model.data) model.data = [];\r\n const metadata = { id: guid() };\r\n if (newTab.VoucherKindId) {\r\n model.data.push({\r\n provide: VoucherKindInfo,\r\n useValue: { VoucherKindId: newTab.VoucherKindId },\r\n });\r\n }\r\n model.data.push({\r\n provide: FormContainerModel,\r\n useValue: { type: \"Tab\", metadata: metadata },\r\n });\r\n\r\n const newTabItem = {\r\n id: metadata.id,\r\n responsive: newTab.responsive,\r\n title: newTab.title,\r\n icon: newTab.icon,\r\n componentType: newTab.componentType,\r\n isCloseable: newTab.isCloseable,\r\n active: newTab.active,\r\n modulePath: newTab.modulePath,\r\n hasbadge: newTab.hasbadge,\r\n injector: newTab.data\r\n ? Injector.create({\r\n providers: model.data,\r\n parent: this.injector,\r\n })\r\n : this.injector,\r\n data: newTab.data,\r\n };\r\n //newTabItem.component = this.getComponent(newTabItem);\r\n this.tabItemSubject.getValue().push(newTabItem);\r\n this.tabItemSubject.next(this.tabItemSubject.getValue());\r\n this.setSelectedTab(this.tabItemSubject.getValue()?.length - 1);\r\n }\r\n getComponent(tab: ITab): any {\r\n if (tab.componentType) {\r\n const module = tab.moduleFactory.create(tab.injector);\r\n const r = module.componentFactoryResolver;\r\n const cmpFactory = r.resolveComponentFactory(tab.componentType);\r\n const componentRef = cmpFactory.create(tab.injector);\r\n return componentRef.instance;\r\n }\r\n return null;\r\n }\r\n gettab(index: number) {\r\n return this.tabItemSubject.getValue()[index];\r\n }\r\n setSelectedTab(index: number) {\r\n let tab = this.gettab(index);\r\n this.selectedTabId = tab?.id;\r\n if (!tab) tab = this.gettab(this.tabItemSubject.getValue()?.length - 1);\r\n this.tabItemSubject.getValue()?.forEach((_tab) => {\r\n _tab.active = tab === _tab;\r\n });\r\n if (tab) this.tabItemActive.next(tab.id);\r\n }\r\n getActiveTabIndex() {\r\n let tabIndex: number = 0;\r\n let index = this.tabItemSubject.getValue().findIndex((it) => it.active);\r\n if (index != -1) tabIndex = index;\r\n return tabIndex;\r\n }\r\n\r\n getActiveTab() {\r\n return this.gettab(this.getActiveTabIndex());\r\n }\r\n closeActiveTab() {\r\n this.close(this.getActiveTabIndex());\r\n }\r\n canCloasTab(index: number) {\r\n if (this.tabItemOnCloseableIds.some((x) => x === this.tabItemSubject.getValue()[index].id)) {\r\n this.tabItemOnClosing.next(this.tabItemSubject.getValue()[index].id);\r\n this.tabItemOnCanClosing.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && index < this.tabItemSubject.getValue().length && x === this.tabItemSubject.getValue()[index].id) {\r\n this.tabItemSubject.getValue().splice(index, 1);\r\n this.tabItemSubject.next(this.tabItemSubject.getValue());\r\n this.setSelectedTab(index > 0 ? index - 1 : 0);\r\n } else this.setSelectedTab(this.tabItemSubject.getValue().length - 1);\r\n });\r\n return false;\r\n } else return true;\r\n }\r\n close(index: number) {\r\n if (this.tabItemOnCloseableIds.some((x) => x === this.tabItemSubject.getValue()[index].id)) {\r\n this.tabItemOnClosing.next(this.tabItemSubject.getValue()[index].id);\r\n this.tabItemOnCanClosing.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && index < this.tabItemSubject.getValue().length && x === this.tabItemSubject.getValue()[index].id) {\r\n this.tabItemSubject.getValue().splice(index, 1);\r\n this.tabItemSubject.next(this.tabItemSubject.getValue());\r\n this.setSelectedTab(index > 0 ? index - 1 : 0);\r\n } else this.setSelectedTab(this.tabItemSubject.getValue().length - 1);\r\n });\r\n } else {\r\n this.tabItemSubject.getValue().splice(index, 1);\r\n this.tabItemSubject.next(this.tabItemSubject.getValue());\r\n this.setSelectedTab(index > 0 ? index - 1 : 0);\r\n }\r\n }\r\n refresh() {\r\n let index = this.getActiveTabIndex();\r\n this.tabItemSubject.next(this.tabItemSubject.getValue());\r\n this.setSelectedTab(index);\r\n }\r\n closeById(id: string) {\r\n const index = this.tabItemSubject.getValue().findIndex((tab) => tab.id === id);\r\n if (index >= 0) {\r\n this.tabItemSubject.getValue().splice(index, 1);\r\n this.tabItemSubject.next(this.tabItemSubject.getValue());\r\n this.setSelectedTab(index > 0 ? index - 1 : 0);\r\n }\r\n }\r\n\r\n gettabById(id: string) {\r\n const index = this.tabItemSubject.getValue().findIndex((tab) => tab.id === id);\r\n return this.tabItemSubject.getValue()[index];\r\n }\r\n\r\n closeAll() {\r\n let length = this.tabItemSubject.getValue().length;\r\n let flag: boolean = true;\r\n let cloaseableIndex: number = 0;\r\n for (let i = 0; i < length - 1; i++) {\r\n if (flag && !this.canCloasTab(i)) {\r\n flag = false;\r\n cloaseableIndex = i;\r\n } else this.close(i);\r\n }\r\n if (flag) {\r\n this.tabItemSubject.getValue().splice(0, length - 0);\r\n this.tabItemSubject.next(this.tabItemSubject.getValue());\r\n this.tabItemonCloseAll.next(true);\r\n }\r\n if (this.tabItemSubject.getValue().length > 0)\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Tabular.OneSomeTabsNotClosed\"),\r\n this.translate.instant(\"ClientApp.Projects.FrameWorkShell.Tabular.Warning\")\r\n );\r\n }\r\n closeAllForce() {\r\n let length = this.tabItemSubject.getValue().length;\r\n this.tabItemSubject.getValue().splice(0, length - 0);\r\n this.tabItemSubject.next(this.tabItemSubject.getValue());\r\n this.tabItemonCloseAll.next(true);\r\n }\r\n changeActiveTabIndex() {\r\n const getActiveIndex = this.getActiveTabIndex();\r\n const getMaxLength = this.tabItemSubject?.getValue()?.length - 1;\r\n if (getActiveIndex < getMaxLength) {\r\n this.setSelectedTab(getActiveIndex + 1);\r\n } else {\r\n this.setSelectedTab(0);\r\n }\r\n }\r\n}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { ModuleWithProviders, NgModule, Optional, SkipSelf } from \"@angular/core\";\r\n\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { BaseService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-service.component\";\r\nimport { AnalyticsService } from \"../services/analytics.service\";\r\nimport { ToastrModule } from \"../services/toaster/public_api\";\r\nimport { throwIfAlreadyLoaded } from \"./module-import-guard\";\r\n\r\nexport const NB_CORE_PROVIDERS = [AnalyticsService];\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n BrowserAnimationsModule, // required animations module\r\n ToastrModule.forRoot(),\r\n ],\r\n exports: [\r\n //NbAuthModule,\r\n ],\r\n})\r\nexport class CoreModule {\r\n constructor(@Optional() @SkipSelf() parentModule: CoreModule) {\r\n throwIfAlreadyLoaded(parentModule, \"CoreModule\");\r\n }\r\n\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: CoreModule,\r\n providers: [AnalyticsService, BaseService],\r\n };\r\n }\r\n}\r\n","export function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {\r\n if (parentModule) {\r\n throw new Error(`${moduleName} has already been loaded. Import Core modules in the AppModule only.`);\r\n }\r\n}\r\n","/**\r\n * @license\r\n * Copyright Akveo. All Rights Reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n */\r\nexport function convertToBoolProperty(val: any): boolean {\r\n if (typeof val === 'string') {\r\n val = val.toLowerCase().trim();\r\n return (val === 'true' || val === '');\r\n }\r\n return !!val;\r\n}\r\nexport function getElementHeight(el) {\r\n const style = window.getComputedStyle(el);\r\n const marginTop = parseInt(style.getPropertyValue('margin-top'), 10);\r\n const marginBottom = parseInt(style.getPropertyValue('margin-bottom'), 10);\r\n return el.offsetHeight + marginTop + marginBottom;\r\n}\r\n","import { LayoutService } from './layout.service';\r\nimport { AnalyticsService } from '../../services/analytics.service';\r\nimport { PlayerService } from './player.service';\r\nexport {\r\n LayoutService,\r\n AnalyticsService,\r\n PlayerService,\r\n};\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { delay, share } from 'rxjs/operators';\r\n@Injectable()\r\nexport class LayoutService {\r\n protected layoutSize$ = new Subject();\r\n changeLayoutSize() {\r\n this.layoutSize$.next();\r\n }\r\n onChangeLayoutSize(): Observable {\r\n return this.layoutSize$.pipe(\r\n share(),\r\n delay(1),\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nexport class Track {\r\n name: string;\r\n artist: string;\r\n url: string;\r\n cover: string;\r\n}\r\n@Injectable()\r\nexport class PlayerService {\r\n current: number;\r\n playlist: Track[] = [\r\n {\r\n name: 'Don\\'t Wanna Fight',\r\n artist: 'Alabama Shakes',\r\n url: 'https://p.scdn.co/mp3-preview/6156cdbca425a894972c02fca9d76c0b70e001af',\r\n cover: 'assets/images/cover1.jpg',\r\n },\r\n {\r\n name: 'Harder',\r\n artist: 'Daft Punk',\r\n url: 'https://p.scdn.co/mp3-preview/92a04c7c0e96bf93a1b1b1cae7dfff1921969a7b',\r\n cover: 'assets/images/cover2.jpg',\r\n },\r\n {\r\n name: 'Come Together',\r\n artist: 'Beatles',\r\n url: 'https://p.scdn.co/mp3-preview/83090a4db6899eaca689ae35f69126dbe65d94c9',\r\n cover: 'assets/images/cover3.jpg',\r\n },\r\n ];\r\n random(): Track {\r\n this.current = Math.floor(Math.random() * this.playlist.length);\r\n return this.playlist[this.current];\r\n }\r\n next(): Track {\r\n return this.getNextTrack();\r\n }\r\n prev() {\r\n return this.getPrevTrack();\r\n }\r\n private getNextTrack(): Track {\r\n if (this.current === this.playlist.length - 1) {\r\n this.current = 0;\r\n } else {\r\n this.current++;\r\n }\r\n return this.playlist[this.current];\r\n }\r\n private getPrevTrack(): Track {\r\n if (this.current === 0) {\r\n this.current = this.playlist.length - 1;\r\n } else {\r\n this.current--;\r\n }\r\n return this.playlist[this.current];\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport {ComponentCanDeactivate} from './component-can-deactivate';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CanDeactivateGuard implements CanDeactivate {\r\n canDeactivate(component: ComponentCanDeactivate): boolean {\r\n \r\n if(!component.canDeactivate()){\r\n if (confirm(\"شما اطلاعات ذخیره نشده دارید! در صورت خروج اطلاعات از دست خواهد رفت.\")) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n","import { HostListener, Injectable } from \"@angular/core\";\r\nimport { Observable } from 'rxjs';\r\nimport { SimpleModalComponent } from \"../services/sepidzmodal/simple-modal.component\";\r\n\r\n@Injectable()\r\nexport abstract class ComponentCanDeactivate extends SimpleModalComponent implements ConfirmModel {\r\n abstract canDeactivate(): boolean | Observable;\r\n\r\n @HostListener('window:beforeunload', ['$event'])\r\n unloadNotification($event: BeforeUnloadEvent) {\r\n if (!this.canDeactivate()) {\r\n //$event.preventDefault();\r\n //$event.returnValue = true;\r\n $event.preventDefault();\r\n $event.returnValue = \"شما اطلاعات ذخیره نشده دارید! در صورت خروج اطلاعات از دست خواهد رفت.\";\r\n }\r\n }\r\n}\r\nexport interface ConfirmModel {\r\n// title:string;\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\r\nimport { Observable, throwError } from \"rxjs\";\r\n\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { catchError, tap } from \"rxjs/operators\";\r\nimport { TokenService } from \"../services/token.service\";\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n retryTime: number = 0;\r\n constructor(private tokenService: TokenService, private router: Router) {}\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n const token = this.tokenService.getRawToken();\r\n if (\r\n token &&\r\n !request.url.includes(\"Login\") &&\r\n !request.url.includes(\"GetPrinters\") &&\r\n !request.url.includes(\"UpdateSoftware\") &&\r\n !request.url.includes(\"PrinterQueue\") &&\r\n !request.url.includes(\"TestConnection\") &&\r\n !request.url.includes(\"PrintDocument\") &&\r\n !request.url.includes(\"https://api.neshan.org\")\r\n ) {\r\n request = request.clone({\r\n headers: request.headers\r\n .set(\"Authorization\", `Bearer ${token}`)\r\n .set(\"Cache-Control\", \"no-cache, no-store, must-revalidate, post-check=0, pre-check=0\")\r\n .set(\"Pragma\", \"no-cache\")\r\n .set(\"Expires\", \"0\"),\r\n });\r\n const start = window.performance.now();\r\n return next.handle(request).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n if (error.status === 401 || (error.status === 503 && this.retryTime === 0)) {\r\n console.log(\"error.status\", error.status);\r\n console.log(error.error);\r\n this.retryTime += 1;\r\n this.router.navigate([\"auth/login\"]).then(() => {\r\n window.location.reload();\r\n });\r\n }\r\n\r\n // this.logApiTimes(start, request);\r\n return throwError(error);\r\n }),\r\n tap((x) => {\r\n // this.logApiTimes(start, request);\r\n })\r\n );\r\n } else {\r\n const start = window.performance.now();\r\n return next.handle(request).pipe(\r\n catchError((error: HttpErrorResponse) => {\r\n if (error.status === 401 || (error.status === 503 && this.retryTime === 0)) {\r\n console.log(error.error);\r\n this.retryTime += 1;\r\n console.log(\"error.status\", error.status);\r\n this.router.navigate([\"auth/login\"]).then(() => {\r\n window.location.reload();\r\n });\r\n }\r\n // this.logApiTimes(start, request);\r\n return throwError(error);\r\n }),\r\n tap((x) => {\r\n // this.logApiTimes(start, request);\r\n })\r\n );\r\n }\r\n }\r\n\r\n private logApiTimes(start: number, request: HttpRequest) {\r\n const end = window.performance.now();\r\n const time = end - start;\r\n let css = \"\";\r\n if (time <= 1600) {\r\n css = \"color: #57b1ee; font-size: 12px\";\r\n } else if (time <= 3000) {\r\n css = \"color: #ff6358; font-size: 12px\";\r\n } else if (time > 3000 && time <= 5000) {\r\n css = \"color: red; font-size: 12px\";\r\n } else if (time > 5000) {\r\n css = \"background-image: linear-gradient(to bottom right, #699167, #cf0000);color: #fff; font-size: 12px\";\r\n }\r\n console.log(\"%c API URL \" + request.url.substring(request.url.indexOf(\"api\")) + \"===> \" + time, css);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpEvent, HttpResponse, HttpErrorResponse } from \"@angular/common/http\";\r\nimport { BehaviorSubject, of, throwError, Subject, Observable } from \"rxjs\";\r\nimport { HttpRequest, HttpHandler, HttpInterceptor } from \"@angular/common/http\";\r\nimport { RequestCacheService } from \"./request-cache.service\";\r\nimport { LoadingScreenService } from \"../services/LoadingScreenService\";\r\nimport { catchError, finalize, tap } from \"rxjs/operators\";\r\nimport { AuthService } from \"../services\";\r\nimport { Router } from \"@angular/router\";\r\n@Injectable()\r\nexport class CacheInterceptor implements HttpInterceptor {\r\n isLoading: boolean = false;\r\n retryTime: number = 0;\r\n testRequest: Subject;\r\n tokenSubject: BehaviorSubject = new BehaviorSubject(null);\r\n constructor(\r\n private cache: RequestCacheService,\r\n private loadingScreenService: LoadingScreenService,\r\n private auth: AuthService,\r\n private router: Router\r\n ) {\r\n auth.freeUrls();\r\n this.testRequest = new Subject();\r\n this.handleError = this.handleError.bind(this);\r\n }\r\n getTTL(url: string) {\r\n if (\r\n (url.includes(\"LookUp\") &&\r\n !url.includes(\"ReadLookUp\") &&\r\n !url.includes(\"ReadSaleMethodLookUp\") &&\r\n !url.includes(\"Personnel/ReadUserLookupItems\") &&\r\n !url.includes(\"ReadMisSetUpLookUp\") &&\r\n !url.includes(\"ReadProductGoodsLookUp\") &&\r\n !url.includes(\"ReadInvDailyGoodsLookUp\") &&\r\n !url.includes(\"ReadBankAccountLookUp\") &&\r\n !url.includes(\"PaymentMethod/PaymentMethodLookUp\") &&\r\n !url.includes(\"SellCustomerGroup/ReadSellCustomerGroupLookUp\") &&\r\n !url.includes(\"SalePriceType/ReadLookUp\") &&\r\n !url.includes(\"PrintPolicy/GetLookupPrintPolicies\") &&\r\n !url.includes(\"SalePriceType/ReadSaleMethodLookUp\") &&\r\n !url.includes(\"GoodsGroup/ReadGoodsGroupLookUp\")) ||\r\n url.includes(\"EntityInfo\")\r\n )\r\n return 3600;\r\n else if (url.includes(\"GetMaxCode\")) return -10;\r\n return 1;\r\n }\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n if (this.isValidUrl(req)) {\r\n if (!this.isCachable(req)) {\r\n if (this.cache.hasValidCachedValue(req.url)) this.cache.delete(req.url);\r\n return next\r\n .handle(req)\r\n .pipe(catchError(this.handleError))\r\n .pipe(\r\n finalize(() => {\r\n this.removeurl(req);\r\n })\r\n );\r\n }\r\n try {\r\n if (!this.loadingScreenService.loading) {\r\n this.loadingScreenService.startLoading();\r\n }\r\n } catch (e) {\r\n this.loadingScreenService.stopLoading();\r\n }\r\n const cachedResponse = this.cache.get(req.url);\r\n if (cachedResponse) {\r\n this.loadingScreenService.stopLoading();\r\n return of(new HttpResponse(cachedResponse));\r\n }\r\n return this.sendRequest(req, next);\r\n } else {\r\n const cachedResponse = this.cache.get(req.url);\r\n this.removeurl(req);\r\n if (cachedResponse) {\r\n this.loadingScreenService.stopLoading();\r\n return of(new HttpResponse(cachedResponse));\r\n } else return this.sendRequest(req, next);\r\n }\r\n }\r\n isCachable(req: HttpRequest) {\r\n if (req.url.includes(\"Invoice/GetInvoiceById\")) return false;\r\n return req.method === \"GET\";\r\n }\r\n isValidUrl(req: HttpRequest) {\r\n var url = this.auth.getUrls(req.url);\r\n if (\r\n req.url.includes(\"GetPrinters\") ||\r\n req.url.includes(\"UpdateSoftware\") ||\r\n req.url.includes(\"PrinterQueue\") ||\r\n req.url.includes(\"TestConnection\") ||\r\n req.url.includes(\"PrintDocument\")\r\n )\r\n return true;\r\n if (!url) this.auth.setUrls(req.url);\r\n return !url && !req.url.includes(\"MonthsName\");\r\n }\r\n removeurl(req: HttpRequest) {\r\n this.auth.removeurl(req.url);\r\n }\r\n sendRequest(req: HttpRequest, next: HttpHandler): any {\r\n return next\r\n .handle(req)\r\n .pipe(\r\n tap((event) => {\r\n this.retryTime = 0;\r\n if (event instanceof HttpResponse) {\r\n this.cache.set(req.url, event.clone(), this.getTTL(req.url));\r\n this.removeurl(req);\r\n }\r\n })\r\n )\r\n .pipe(catchError(this.handleError))\r\n .pipe(\r\n finalize(() => {\r\n this.removeurl(req);\r\n this.loadingScreenService.stopLoading();\r\n })\r\n );\r\n }\r\n // Error handling\r\n handleError(error: any) {\r\n console.log(`error:`, error);\r\n console.log(`statusText:`, (error as HttpErrorResponse)?.statusText);\r\n try {\r\n if (\r\n (error instanceof HttpErrorResponse &&\r\n (error as HttpErrorResponse).status === 200 &&\r\n (error as HttpErrorResponse)?.error?.error?.message.includes(\"Unexpected token\")) ||\r\n (error.status === 500 &&\r\n error &&\r\n !error?.error?.DeveloperMessage &&\r\n ((error?.error &&\r\n (error?.error?.includes(\"The token is expired.\") || error?.error?.includes(\"کاربر دیگری با همین نام کاربری وارد سیستم شده است.\"))) ||\r\n (error && !error?.error && error?.includes(\"The token is expired.\"))))\r\n ) {\r\n console.log(\"logOute:\");\r\n this.auth.localStorage.deleteData(`TOKEN_${AuthService.loggingUserName}`);\r\n this.auth.logout();\r\n\r\n const findModal = document.getElementsByTagName(\"simple-modal-holder\");\r\n\r\n for (let index = 0; index < findModal?.length; index++) {\r\n findModal[index].remove();\r\n }\r\n setTimeout(() => {\r\n const findModal2 = document.getElementsByTagName(\"simple-modal-wrapper\");\r\n\r\n for (let index = 0; index < findModal2?.length; index++) {\r\n findModal2[index].remove();\r\n }\r\n }, 1000);\r\n console.log(error.error);\r\n console.log(\"error.status\", error.status);\r\n this.router.navigate([\"auth/login\"]).then(() => {\r\n window.location.reload();\r\n });\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n\r\n if (error?.req) this.auth.removeurl(error.req.url);\r\n else this.auth.removeurl(error.url);\r\n if (error.req?.url?.includes(\"/connect/token\") || error.url?.includes(\"/connect/token\")) return throwError(error);\r\n if (error instanceof HttpErrorResponse) {\r\n if (error.status === 401 || (error.status === 503 && this.retryTime === 0)) {\r\n this.retryTime += 1;\r\n console.log(error.error);\r\n console.log(\"error.status\", error.status);\r\n console.log(\"logOute:\");\r\n this.auth.logout();\r\n this.auth.localStorage.deleteData(`TOKEN_${AuthService.loggingUserName}`);\r\n this.auth.logout();\r\n this.router.navigate([\"auth/login\"]).then(() => {\r\n window.location.reload();\r\n });\r\n } else {\r\n return throwError(error);\r\n }\r\n } else return throwError(error);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from \"@angular/common/http\";\r\nimport { EncryptDecryptService } from \"./encrypt-decrypt.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { ConfigurationService } from \"../../services\";\r\n\r\n@Injectable()\r\nexport class EncryptDecryptAuthInterceptor implements HttpInterceptor {\r\n ExcludeURLList = [];\r\n apiBaseUrl: string;\r\n constructor(private encryptDecryptService: EncryptDecryptService, private configurations: ConfigurationService) {\r\n this.apiBaseUrl = `${this.configurations.baseUrl}/api/`;\r\n this.ExcludeURLList = [\"/api/SepidzUserInfo/GetSepidzUserCode\"];\r\n }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n let exludeFound = this.ExcludeURLList.filter((element) => {\r\n return req.url.includes(element);\r\n });\r\n if (exludeFound && exludeFound[\"length\"] > 0) {\r\n if (req.method == \"GET\") {\r\n const temp = req.url.replace(this.configurations.baseUrl, \"\");\r\n if (temp.indexOf(\"/\") > 0) {\r\n console.log(req.url);\r\n }\r\n if (req.url.indexOf(\"?\") > 0) {\r\n let encriptURL =\r\n req.url.substr(0, req.url.indexOf(\"?\") + 1) +\r\n this.encryptDecryptService.encryptUsingAES256(req.url.substr(req.url.indexOf(\"?\") + 1, req.url.length));\r\n const cloneReq = req.clone({\r\n url: encriptURL,\r\n });\r\n return next.handle(cloneReq);\r\n }\r\n return next.handle(req);\r\n } else if (req.method == \"POST\" || req.method == \"PUT\") {\r\n if (req.body || req.body.length > 0) {\r\n const cloneReq = req.clone({\r\n body: this.encryptDecryptService.encryptUsingAES256(req.body),\r\n });\r\n return next.handle(cloneReq);\r\n }\r\n return next.handle(req);\r\n }\r\n }\r\n return next.handle(req);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport * as CryptoJS from \"crypto-js\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class EncryptDecryptService {\r\n private key = CryptoJS.enc.Utf8.parse(`${environment.EncryptKey}`);\r\n private iv = CryptoJS.enc.Utf8.parse(`${environment.EncryptIV}`);\r\n constructor() {}\r\n // Methods for the encrypt and decrypt Using AES\r\n encryptUsingAES256(text): any {\r\n var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(text), this.key, {\r\n keySize: 128 / 8,\r\n iv: this.iv,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7,\r\n });\r\n return encrypted.toString();\r\n }\r\n decryptUsingAES256(decString) {\r\n var decrypted = CryptoJS.AES.decrypt(decString, this.key, {\r\n keySize: 128 / 8,\r\n iv: this.iv,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7,\r\n });\r\n if (decrypted.toString()) return decrypted.toString(CryptoJS.enc.Utf8);\r\n return decString;\r\n }\r\n}\r\n","import { RowState } from \"../models/enums\";\r\n\r\ndeclare global {\r\n interface String {\r\n toAddPrefix(prefix: string): string;\r\n }\r\n interface Array {\r\n isValid(): boolean;\r\n }\r\n interface Array {\r\n getSumWithKey(prop: string): number;\r\n }\r\n interface Array {\r\n getMaxWithKey(prop: string): number;\r\n }\r\n interface Array {\r\n getMinWithKey(prop: string): number;\r\n }\r\n interface Map {\r\n SetInArray(this: Map, key: K, value: V): boolean;\r\n }\r\n interface Object {\r\n CustomMap(input: any, output: any, isArray?: boolean): any;\r\n }\r\n}\r\nObject.defineProperty(Array.prototype, \"getSumWithKey\", {\r\n value: function (key: string): number {\r\n if (this.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).length <= 0) return 0;\r\n return this.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).reduce(\r\n (s: number, b: number) => (s ?? 0) + (b[key] ?? 0),\r\n 0\r\n );\r\n },\r\n});\r\nObject.defineProperty(Array.prototype, \"getMaxWithKey\", {\r\n value: function (key: string): number {\r\n if (this.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).length <= 0) return 0;\r\n return Math.max(...this.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).map((o) => o[key]));\r\n },\r\n});\r\n\r\nObject.defineProperty(Array.prototype, \"getMinWithKey\", {\r\n value: function (key: string): number {\r\n if (this.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).length <= 0) return 0;\r\n return Math.min(...this.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).map((o) => o[key]));\r\n },\r\n});\r\nObject.defineProperty(String.prototype, \"toAddPrefix\", {\r\n value: function (prefixStr: string): string {\r\n return `${prefixStr}${this}`;\r\n },\r\n});\r\nObject.defineProperty(Map.prototype, \"SetInArray\", {\r\n value: function (this: Map, key: K, value: V): boolean {\r\n let isNew = false;\r\n if (this.has(key) === false) {\r\n this.set(key, []);\r\n isNew = true;\r\n }\r\n const items: V[] = this.get(key);\r\n items.push(value);\r\n return isNew;\r\n },\r\n});\r\nObject.defineProperty(Object.prototype, \"CustomMap\", {\r\n value: function (input: any, output: any, isArray = false): any {\r\n //var destination_model = new T();\r\n if (!isArray) {\r\n if (!output || !input || typeof input !== \"object\") {\r\n return;\r\n }\r\n const destination = Object.keys(output);\r\n const source = Object.keys(input);\r\n source.forEach((key) => {\r\n if (destination.some((el) => el === key)) {\r\n output[key] = input[key];\r\n }\r\n });\r\n return output;\r\n } else {\r\n if (!output || !input || typeof input !== \"object\") {\r\n return;\r\n }\r\n const arr = [];\r\n const destination = Object.keys(output);\r\n const source = Object.keys(this[0]);\r\n this.forEach((item) => {\r\n const obj = JSON.parse(JSON.stringify(output));\r\n source.forEach((key) => {\r\n if (destination.some((el) => el === key)) {\r\n obj[key] = item[key];\r\n }\r\n });\r\n arr.push(obj);\r\n });\r\n return arr;\r\n }\r\n },\r\n});\r\n\r\nexport {};\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { Observable, throwError } from \"rxjs\";\r\nimport { catchError } from \"rxjs/operators\";\r\nimport { AuthService, LocalStoreManager } from \"../services\";\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(private router: Router, protected localStorage: LocalStoreManager, private authService: AuthService) {}\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(request).pipe(\r\n catchError((err) => {\r\n console.log(\"Error2\", err);\r\n if (err.status === 500 && err.error === null && err.statusText === \"Internal Server Error\") {\r\n console.log(\"statusText\", err);\r\n this.logOute();\r\n }\r\n if (err instanceof HttpErrorResponse) {\r\n if (err.status === 401 || err.status === 503) {\r\n this.logOute();\r\n } else {\r\n try {\r\n const error =\r\n err.status === 500 && err.error === null\r\n ? err.statusText\r\n : err.error?.error?.message ||\r\n err.error?.error?.statusText ||\r\n err.error?.message ||\r\n err.error?.statusText ||\r\n err.error ||\r\n err.statusText;\r\n\r\n console.log(error);\r\n if (\r\n (err.status === 500 && error.includes && error.includes(\"Internal Server Error\")) ||\r\n (err.status === 200 && error.includes && error?.includes(\"Unexpected token\")) ||\r\n error?.includes(\"The token is expired.\") ||\r\n error?.includes(\"کاربر دیگری با همین نام کاربری وارد سیستم شده است.\")\r\n ) {\r\n this.logOute();\r\n }\r\n return throwError(error);\r\n } catch (e) {\r\n console.log(e);\r\n return throwError(err);\r\n }\r\n }\r\n } else {\r\n if (err.status === 500 && err.statusText === \"Internal Server Error\") {\r\n console.log(\"statusText4\", err);\r\n this.logOute();\r\n }\r\n return throwError(err);\r\n }\r\n })\r\n );\r\n }\r\n logOute() {\r\n console.log(\"logOute:\");\r\n this.localStorage.deleteData(`TOKEN_${AuthService.loggingUserName}`);\r\n this.authService.logout();\r\n const findModal = document.getElementsByTagName(\"simple-modal-holder\");\r\n for (let index = 0; index < findModal?.length; index++) {\r\n findModal[index].remove();\r\n }\r\n setTimeout(() => {\r\n const findModal2 = document.getElementsByTagName(\"simple-modal-wrapper\");\r\n\r\n for (let index = 0; index < findModal2?.length; index++) {\r\n findModal2[index].remove();\r\n }\r\n }, 1000);\r\n this.router.navigate([\"auth/login\"]).then(() => {\r\n window.location.reload();\r\n });\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpResponse } from \"@angular/common/http\";\r\nimport { LocalStoreManager } from \"../services\";\r\n@Injectable()\r\nexport class RequestCacheService {\r\n constructor(protected sessionStorage: LocalStoreManager) {}\r\n get(key): HttpResponse {\r\n const item = sessionStorage.getItem(key);\r\n if (item !== null) {\r\n const tuple = JSON.parse(item);\r\n if (!tuple) return null;\r\n const expires = tuple.expires;\r\n const httpResponse = tuple.value as HttpResponse;\r\n // Don't observe expired keys\r\n const now = new Date();\r\n if (expires && new Date(expires).getTime() < now.getTime()) {\r\n this.delete(key);\r\n return null;\r\n }\r\n return httpResponse;\r\n }\r\n return null;\r\n }\r\n clear() {\r\n sessionStorage.clear();\r\n }\r\n delete(key) {\r\n sessionStorage.removeItem(key);\r\n }\r\n has(key: string): boolean {\r\n return sessionStorage.getItem(key) != null;\r\n }\r\n set(key, value, ttl = null) {\r\n try {\r\n if (ttl) {\r\n if (key.includes(\"GetMaxCode\")) ttl = -10;\r\n\r\n const expires = new Date();\r\n expires.setSeconds(expires.getSeconds() + ttl);\r\n try {\r\n sessionStorage.setItem(key, JSON.stringify({ expires: expires, value: value }));\r\n } catch {}\r\n } else {\r\n sessionStorage.setItem(key, JSON.stringify({ expires: null, value: value }));\r\n }\r\n } catch (e) {\r\n console.log(\"Local Storage is full, Please empty data\");\r\n }\r\n }\r\n hasValidCachedValue(key: string): boolean {\r\n if (this.has(key)) {\r\n const item = sessionStorage.getItem(key);\r\n const tuple = JSON.parse(item);\r\n const expires = tuple.expires;\r\n if (expires && new Date(expires).getTime() < Date.now()) {\r\n this.delete(key);\r\n return false;\r\n }\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","import { EntityBase } from \"./entity-base.model\";\r\nimport { Company } from \"./company.model\";\r\nexport class Branch extends EntityBase {\r\n public Code: number;\r\n public Title: string;\r\n public LatinTitle: string;\r\n public CompanyId: number;\r\n public Comment: string;\r\n public LatinComment: string;\r\n public ParticipationPercentage: number;\r\n public Company: Company;\r\n public CompanyTitle: string;\r\n public CompanyLatinTitle: string;\r\n public PhoneNumber: string;\r\n public EconomicalNumber: string;\r\n public PostalCode: string;\r\n public CustomerTitles: string[];\r\n public TaxPercentage: number;\r\n public TollPercentage: number;\r\n public ServicePercentage: number;\r\n public StandardDelayTimeForPreparation: number;\r\n public AlertDelayTimeForPreparation: number;\r\n public TimeForChange: number;\r\n public AddSettlementForUnpaidAndSuspendedInvoices: boolean;\r\n public RoundingAmount: number;\r\n public RoundingTypeId: number;\r\n public RoundingTypeTitle: string;\r\n public RoundingTypeCode?: number;\r\n public ShippingCostReducedKindId: number;\r\n public ShippingCostReducedKindTitle: string;\r\n public ShippingCostReducedKindCode?: number;\r\n public Message: string;\r\n public DisplayLogoInPrintTemplates: boolean;\r\n public DisplayAddressInInvoice: boolean;\r\n public IgnoreBlackBackground: boolean;\r\n public ShowTotalCalories: boolean;\r\n public CurrencyId: number;\r\n public CurrencyTitle: string;\r\n public CurrencyCode?: number;\r\n // public SmsApiKey: string;\r\n // public SmsAdvertisingNumber: string;\r\n // public SmsServiceNumber: string;\r\n public EnableCreateCustomerSms: boolean;\r\n public EnableAssignToDriverSms: boolean;\r\n public AccessToAllBranches: boolean;\r\n public InvDailyBalanceInhibitorId: number;\r\n public BranchDataTransferInfos: BranchDataTransferInfo[];\r\n public HasOrderOnline: boolean;\r\n public ReadyToReceiveOnlineOrders: boolean;\r\n public AutoPrintCash: boolean;\r\n public AutoPrintOnline: boolean;\r\n public CustomerPrintOrderOnile: boolean;\r\n public HasDecimal: boolean;\r\n public HasLocalService: boolean;\r\n public HasAuditorInSalesAmounts: boolean;\r\n public HasTotalDebit: boolean;\r\n public NoDisplayDashboard: boolean;\r\n public FoodTruck: boolean;\r\n public SendVoucherFromCenter: boolean;\r\n public Number: string;\r\n public LocalServiceIp: string;\r\n public PaymentType: number;\r\n public StencilBranchId: number;\r\n public Suspend: boolean;\r\n public IsActive: boolean;\r\n public Latitude: number;\r\n public Longitude: number;\r\n public multiOrder: Boolean;\r\n public BranchAddress: string;\r\n public HasAccounting: boolean;\r\n public DetailLedgerId: number;\r\n public TransferDebtorsTypeId: number;\r\n public TransferDebtorsTypeTitle: string;\r\n public TransferDebtorsTypeCode?: number;\r\n public DebtorsSubLedgerId: number;\r\n public SendingSalesTypeId: number;\r\n public SendingSalesTypeTitle: string;\r\n public SendingSalesTypeCode?: number;\r\n public TaxPayerToken: string;\r\n public PrivateTaxPayerToken: string;\r\n public ProtelAddress: string;\r\n public SendingCashierTypeId: number;\r\n public SendingCashierTypeTitle: string;\r\n public SendingCashierTypeCode?: number;\r\n public SendingSalesTitle: string | string[];\r\n public NationalCode: string;\r\n public AccVoucherSeparatedByDay: boolean;\r\n public ApplyServicesForFee: boolean;\r\n public InvWarehouseId: number;\r\n public FullScreenView: boolean;\r\n public ServiceId?: number;\r\n public PackingPriceId: number;\r\n public ShipingCostId:number;\r\n\r\n constructor() {\r\n super();\r\n this.TaxPercentage = 0;\r\n this.TollPercentage = 0;\r\n this.ServicePercentage = 0;\r\n this.StandardDelayTimeForPreparation = 0;\r\n this.AlertDelayTimeForPreparation = 0;\r\n this.RoundingAmount = 0;\r\n this.ParticipationPercentage = 0;\r\n this.StencilBranchId = 0;\r\n this.Latitude = 0;\r\n this.Longitude = 0;\r\n this.DetailLedgerId = null;\r\n this.InvWarehouseId = null;\r\n }\r\n}\r\n\r\nexport class BranchDataTransferInfo extends EntityBase {\r\n public BranchId: number;\r\n public OppositeBranchUrl: string;\r\n public OppositeBranchId: number;\r\n public OrignalOppositeBranchId: number;\r\n public OppositeBranchTitle: string;\r\n public IsCentralOffice: boolean;\r\n public StartHour1?: number;\r\n public EndHour1?: number;\r\n public StartHour2?: number;\r\n public EndHour2?: number;\r\n public StartHour3?: number;\r\n public EndHour3?: number;\r\n public InterruptTime: number;\r\n public TopRecordCount: number;\r\n public TransferAccountingCode: boolean;\r\n public Number: string;\r\n public TranslateCost: boolean;\r\n}\r\n","import { EntityBase } from \"./entity-base.model\";\r\nexport class City extends EntityBase {\r\n public Code: number;\r\n public Title: string;\r\n public LatinTitle: string;\r\n public ProvinceId: number;\r\n public ProvinceTitle: string;\r\n}\r\n","export enum ClearableCache {\r\n SaleMethodBranch = \"SaleMethodBranch\",\r\n PaymentMethodLookUp = \"PaymentMethodLookUp\",\r\n Branches = \"Branches\",\r\n SalePriceType = \"SalePriceType\",\r\n GetDefalultCustomer = \"GetDefalultCustomer\",\r\n PrintPolicy = \"PrintPolicy\",\r\n PrintTemplate = \"PrintTemplate\",\r\n PrintTemplateLookup = \"PrintTemplateLookup\",\r\n ItemCategoryLookup = \"ItemCategoryLookup\",\r\n FormSetting = \"FormSetting\",\r\n ComputerName = \"ComputerName\",\r\n DashboardSetting = \"DashboardSetting\",\r\n LocalSetting = \"LocalSetting\",\r\n}\r\n","export enum SideMenuState {\r\n open=0,\r\n toggle=1,\r\n close=2,\r\n over=3\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n@Injectable()\r\nexport class Datatransfer {\r\n apiName: string;\r\n areaName: string;\r\n label: string;\r\n currentrow: any;\r\n}\r\nexport class VoucherKindInfo {\r\n VoucherKindId: number;\r\n}\r\n","import { EntityBase } from \"./entity-base.model\";\r\nimport { DetailLedgerKind } from \"./detailledgerkind.model\";\r\nexport class DetailLedger extends EntityBase {\r\n public DetailLedgerKindId: number;\r\n public Active: boolean;\r\n public Code: number;\r\n public Title: string;\r\n public Comment: string;\r\n public DetailLedgerKind: DetailLedgerKind;\r\n public DetailLedgerTitle: string;\r\n public DetailLedgerKindCode:number;\r\n}\r\n","import { EntityBase } from \"./entity-base.model\";\r\nexport class DetailLedgerKind extends EntityBase {\r\n public Code: number;\r\n public Title: string;\r\n public StartCode?: number;\r\n public EndCode?: number;\r\n}\r\n","export enum DialogType {\r\n alert,\r\n confirm,\r\n prompt,\r\n}\r\nexport enum MessageSeverity {\r\n default,\r\n info,\r\n success,\r\n error,\r\n warn,\r\n wait,\r\n}\r\n","import { RowState } from \"./enums\";\r\nexport class EntityBase {\r\n Id: number;\r\n TenantId?: number;\r\n BranchId?: number;\r\n BrandId?: number;\r\n State?: RowState;\r\n CreatedUserId?: number;\r\n ModifiedUserId?: number;\r\n ModifiedDate?: Date;\r\n CreatedDate?: Date;\r\n}\r\n\r\nexport class GridColumnInfo extends EntityBase {\r\n public Key: string;\r\n public ColumnInfo: string;\r\n public Group: string;\r\n}\r\nexport class GridColumnInfoDetail {\r\n public name: string;\r\n public orderindex: number;\r\n public leaftindex: number;\r\n public hidden: boolean;\r\n public width: number;\r\n public minResizableWidth: number;\r\n public title: string;\r\n}\r\n","export class EntityListAction {\r\n public name: string;\r\n public displayName: string;\r\n public iconName: string;\r\n public disabled: boolean;\r\n public Form_Component?: any;\r\n public requireSelectedrows?: boolean;\r\n public apiName: string;\r\n public areaName: string;\r\n public permission?: string | boolean = \"Manage\";\r\n public isModal?: boolean;\r\n public children?: EntityListAction[];\r\n}\r\n","export enum Gender {\r\n None,\r\n Female,\r\n Male,\r\n}\r\nexport enum RowState {\r\n NoChange = 0,\r\n New = 1,\r\n Modify = 2,\r\n Delete = 3,\r\n SoftDelete = 5,\r\n Detached = 6,\r\n}\r\n\r\nexport enum PersonalityKind {\r\n /// \r\n /// شخصیت حقیقی\r\n /// \r\n Real = 1,\r\n /// \r\n /// شخصیت حقوقی\r\n /// \r\n Legal = 2,\r\n}\r\nexport enum InformationKind {\r\n /// \r\n /// سرنخ\r\n /// \r\n Lead = 1,\r\n /// \r\n /// فرصت\r\n /// \r\n Opportunity = 2,\r\n /// \r\n /// طرف حساب\r\n /// \r\n AccountSide = 3,\r\n}\r\nexport enum ProductKind {\r\n /// \r\n /// نرم افزار\r\n /// \r\n SoftWare = 1,\r\n /// \r\n /// سخت افزار\r\n /// \r\n Hardware = 2,\r\n}\r\nexport enum SoftWareKind {\r\n /// \r\n /// سپیدز\r\n /// \r\n Sepidz = 1,\r\n /// \r\n /// سیما\r\n /// \r\n Sima = 2,\r\n}\r\nexport enum GoodsKind {\r\n /// \r\n /// کالا\r\n /// \r\n Goods = 1,\r\n /// \r\n /// خدمت\r\n /// \r\n Service = 2,\r\n /// \r\n /// امکانات\r\n /// \r\n Facilities = 3,\r\n /// \r\n /// سیستم\r\n /// \r\n System = 4,\r\n /// \r\n /// سیستم\r\n /// \r\n Package = 5,\r\n}\r\nexport enum GoodsUnit {\r\n /// \r\n /// نسخه\r\n /// \r\n Version = 1,\r\n /// \r\n /// عددد\r\n /// \r\n NUmber = 2,\r\n /// \r\n /// ساعت\r\n /// \r\n Hour = 3,\r\n /// \r\n /// جلسه\r\n /// \r\n Meet = 4,\r\n /// \r\n /// دوره\r\n /// \r\n Period = 5,\r\n /// \r\n /// بسته\r\n /// \r\n Package = 6,\r\n}\r\n\r\nexport enum OrderStateKind {\r\n /// \r\n /// ثبت شده\r\n /// \r\n Registered = 1,\r\n /// \r\n /// تسویه شده\r\n /// \r\n Cleared = 2,\r\n /// \r\n /// ابطال شده\r\n /// \r\n Cancelled = 3,\r\n /// \r\n /// تکمیل شده\r\n /// \r\n Complited = 4,\r\n /// \r\n /// نیاز به بررسی\r\n /// \r\n Pending = 5,\r\n}\r\nexport enum ECalendarValue {\r\n Moment = 1,\r\n MomentArr,\r\n String,\r\n StringArr,\r\n}\r\nexport enum CreditEffect {\r\n /// \r\n /// افزاینده\r\n /// \r\n Debit = 1,\r\n /// \r\n /// کاهنده\r\n /// \r\n Credit = 2,\r\n}\r\nexport enum CreditState {\r\n /// \r\n /// ثبت شده\r\n /// \r\n Registered = 1,\r\n /// \r\n /// تائید شده\r\n /// \r\n validity = 2,\r\n /// \r\n /// رد شده\r\n /// \r\n failed = 3,\r\n}\r\nexport enum PaymentKind {\r\n /// \r\n /// آنلاین\r\n /// \r\n OnLine = 1,\r\n /// \r\n /// فیش واریز\r\n /// \r\n Receipt = 2,\r\n /// \r\n /// آزد\r\n /// \r\n Free = 3,\r\n /// \r\n /// سفارش\r\n /// \r\n Order = 4,\r\n /// \r\n /// فاکتور\r\n /// \r\n Invoice = 5,\r\n /// \r\n /// برگشت از فاکتور\r\n /// \r\n InvoiceReturn = 6,\r\n}\r\nexport enum LockKind {\r\n /// \r\n /// مشتری\r\n /// \r\n Customer = 1,\r\n /// \r\n /// نمایندگی\r\n /// \r\n Agent = 2,\r\n /// \r\n /// هدیه\r\n /// \r\n Gift = 3,\r\n /// \r\n /// آموزش\r\n /// \r\n Education = 4,\r\n /// \r\n /// نمایندگی آموزش\r\n /// \r\n EducationAgent = 5,\r\n}\r\nexport enum LockSateKind {\r\n /// \r\n /// دست نماینده\r\n /// \r\n Agent = 1,\r\n /// \r\n /// دست مشتری\r\n /// \r\n Customer = 2,\r\n}\r\nexport enum TelephoneKind {\r\n /// \r\n /// دفتر\r\n /// \r\n Office = 1,\r\n /// \r\n /// موبایل\r\n /// \r\n Mobile = 2,\r\n /// \r\n /// کارخانه\r\n /// \r\n Factory = 3,\r\n /// \r\n /// انبار\r\n /// \r\n Warehouse = 4,\r\n /// \r\n /// منزل\r\n /// \r\n Home = 5,\r\n /// \r\n /// سایر\r\n /// \r\n Other = 6,\r\n}\r\nexport enum CalculationKind {\r\n /// \r\n /// درصدی\r\n /// \r\n Percentage = 1,\r\n /// \r\n /// مبلغی\r\n /// \r\n Amount = 2,\r\n}\r\nexport enum OrderKind {\r\n /// \r\n /// شفارش جدید\r\n /// \r\n NewOrder = 1,\r\n /// \r\n /// تکمیل سفارش\r\n /// \r\n CompleteOrder = 2,\r\n}\r\n\r\nexport enum ControlTypes {\r\n Radio,\r\n Check,\r\n DropDown,\r\n Grid,\r\n NumericTextBox,\r\n TimeTextBox,\r\n CheckAndNumericTextBox,\r\n TextBox,\r\n lookup,\r\n Button,\r\n Break,\r\n}\r\nexport enum ReportKind {\r\n print,\r\n preview,\r\n editReport,\r\n newReport,\r\n saveReport,\r\n}\r\nexport enum NumberType {\r\n Mobile = 1,\r\n Phone = 2,\r\n}\r\nexport enum WebKind {\r\n Delino = 1,\r\n Snap = 2,\r\n Vendo = 3,\r\n}\r\nexport enum SystemKind {\r\n /// \r\n /// حسابداری\r\n /// \r\n ACC = 1,\r\n /// \r\n /// خرید و انبار\r\n /// \r\n INV = 2,\r\n /// \r\n /// فروش و مشتری\r\n /// \r\n SELL = 3,\r\n /// \r\n /// دریافت و پردات\r\n /// \r\n TRS = 4,\r\n /// \r\n /// حقوق دستمزد\r\n /// \r\n HRM = 5,\r\n /// \r\n /// امور مراسم\r\n /// \r\n HALL = 6,\r\n /// \r\n /// فروش رستورانی\r\n /// \r\n SALE = 7,\r\n}\r\nexport enum AccStatusKind {\r\n /// \r\n /// یاداشت\r\n /// \r\n Write = 1,\r\n /// \r\n /// موقت\r\n /// \r\n Inspection = 2,\r\n /// \r\n /// بررسی شده\r\n /// \r\n Confirm = 3,\r\n /// \r\n /// قطعی شده\r\n /// \r\n Approve = 4,\r\n}\r\nexport enum AccountBalanceKind {\r\n /// \r\n /// خنثی\r\n /// \r\n neutral = 1,\r\n /// \r\n /// بدهکار طی دوره\r\n /// \r\n debtorDuringThePeriod = 2,\r\n /// \r\n /// بستانکار طی دوره\r\n /// \r\n creditorDuringThePeriod = 3,\r\n /// \r\n /// بدهکار پایان دوره\r\n /// \r\n debtorAtTheEndOfTheCourse = 4,\r\n /// \r\n /// بستانکار پایان دوره\r\n /// \r\n creditorAtTheEndOfTheCourse = 5,\r\n}\r\n\r\nexport enum InvStatusKind {\r\n /// \r\n /// ثبت اولیه\r\n /// \r\n Registered = 1,\r\n /// \r\n /// تایید تعدادی\r\n /// \r\n Confirmed = 2,\r\n /// \r\n /// ثبت حسابداری\r\n /// \r\n AccountRegistered = 3,\r\n /// \r\n /// ابطال\r\n /// \r\n Cancelled = 4,\r\n /// \r\n /// ریالی شده\r\n /// \r\n Calculated = 5,\r\n /// \r\n /// اختتام\r\n /// \r\n Closing = 6,\r\n}\r\nexport enum SellStatusKind {\r\n /// \r\n /// ثبت یاداشت\r\n /// \r\n NoteRegistered = 0,\r\n /// \r\n /// ثبت اولیه\r\n /// \r\n Registered = 1,\r\n /// \r\n /// تایید\r\n /// \r\n Confirmed = 2,\r\n /// \r\n /// ثبت حسابداری\r\n /// \r\n AccountRegistered = 3,\r\n /// \r\n /// ابطال\r\n /// \r\n Cancelled = 4,\r\n /// \r\n /// اختتام\r\n /// \r\n Closing = 5,\r\n}\r\nexport enum IncrementalKind {\r\n /// \r\n /// افزاینده\r\n /// \r\n Increment = 1,\r\n /// \r\n /// کاهنده\r\n /// \r\n Decrement = 2,\r\n /// \r\n /// خنثی\r\n /// \r\n Neutral = 3,\r\n /// \r\n /// ماهیت بدهکار\r\n /// \r\n Debtor = 4,\r\n /// \r\n /// ماهیت بستانکار\r\n /// \r\n Creditor = 5,\r\n}\r\n\r\nexport enum ItemAdjustmentKind {\r\n /// \r\n /// اضافات\r\n /// \r\n Surplusage = 1,\r\n\r\n /// \r\n /// کسورات\r\n /// \r\n Deduction = 2,\r\n}\r\n\r\nexport enum InvGoodsKind {\r\n /// \r\n /// مواد اولیه\r\n /// \r\n RawMaterials = 1,\r\n /// \r\n /// دارایی\r\n /// \r\n Assets = 2,\r\n /// \r\n /// محصول\r\n /// \r\n Product = 3,\r\n /// \r\n /// نیمه ساخته\r\n /// \r\n HalfMade = 4,\r\n /// \r\n /// ضایعات\r\n /// \r\n Wastes = 5,\r\n /// \r\n /// پخش\r\n /// \r\n Distribution = 6,\r\n /// \r\n /// غیر مصرفی\r\n /// \r\n NonConsumable = 7,\r\n /// \r\n /// نامنقول\r\n /// \r\n GoodsImmovable = 8,\r\n /// \r\n /// نامشهود\r\n /// \r\n Invisible = 9,\r\n /// \r\n /// سایر\r\n /// \r\n Others = 10,\r\n}\r\n\r\nexport enum RowAccessKind {\r\n /// \r\n /// حساب معين\r\n /// \r\n SubLedger = 1,\r\n\r\n /// \r\n /// حساب تفصيل\r\n /// \r\n DetailLedger = 2,\r\n\r\n /// \r\n /// انبار\r\n /// \r\n Warehouse = 3,\r\n\r\n /// \r\n /// كالا\r\n /// \r\n Goods = 4,\r\n /// \r\n /// شعبه\r\n /// \r\n Branch = 5,\r\n /// \r\n /// مركز فروش\r\n /// \r\n SellKind = 6,\r\n}\r\n","import { EntityBase } from \"./entity-base.model\";\r\nexport class FiscalYear extends EntityBase {\r\n public Year: number;\r\n public StartDate: Date;\r\n public EndDate: Date;\r\n}\r\n","export enum FormPosition {\r\n header,\r\n body,\r\n footer,\r\n column1,\r\n column2,\r\n column3,\r\n column4,\r\n column5\r\n}\r\n\r\nexport enum FormControlTypes {\r\n textbox,\r\n textboxMultiline,\r\n datePicker,\r\n dropdown,\r\n radioList,\r\n radio,\r\n checkboxList,\r\n checkbox,\r\n upload,\r\n group,\r\n lookup,\r\n treelookup,\r\n colorPicker,\r\n multiColumnsSelector,\r\n Button,\r\n}\r\n\r\n","import { Dictionary } from \"./dictionary\";\r\nimport { FormControlTypes, FormPosition } from \"./form-base-control.model\";\r\n\r\nexport class form_control {\r\n name?: string;\r\n label?: string;\r\n required?: boolean;\r\n order?: number;\r\n tabOrder?: number;\r\n controlType?: FormControlTypes;\r\n modelName?: string;\r\n textType?: string;\r\n minLength?: number;\r\n maxLength?: number;\r\n min?: number;\r\n max?: number;\r\n hidden?: boolean;\r\n placeholder?: string;\r\n isDecimal?: boolean;\r\n isNumberOnly?: boolean;\r\n isFloat?: number;\r\n columnNumber?: number;\r\n columnWidth?: number;\r\n decimalsLength?: number;\r\n apiName?: string;\r\n valueMember?: string;\r\n displayMember?: string;\r\n columnsName?: string;\r\n formVisible: boolean;\r\n listVisible: boolean;\r\n disabled: boolean = false;\r\n dataList?: any[];\r\n parentIdName?: String;\r\n withComma?: boolean = true;\r\n IsMultiSelect?: boolean = false;\r\n patternKey?: string;\r\n filterKey?: string;\r\n format?: string;\r\n inputMask?: string;\r\n DetailControlModels: Dictionary;\r\n areaName: string;\r\n systemName: string;\r\n category: string;\r\n userClass?: string;\r\n formPosition?: FormPosition;\r\n isMulti?: boolean = false;\r\n isNullable?: boolean = false;\r\n hideTheme?: boolean = false;\r\n inputMode?: string;\r\n SortColumn?: string;\r\n accept?: string;\r\n isGetPath?: boolean;\r\n IsEqual?: boolean;\r\n buttonIcon?: string;\r\n getBgColor?: (data: any) => string;\r\n isSelector?: boolean;\r\n}\r\n\r\nexport class actionInfo {\r\n apiName: string;\r\n actionName: string;\r\n active: boolean;\r\n}\r\n","import { Lookup } from \"./lookup.model\";\r\nimport { GroupLedger } from \"./groupledger.model\";\r\nimport { EntityBase } from \"./entity-base.model\";\r\nexport class GeneralLedger extends EntityBase {\r\n public Code: number;\r\n public Title: string;\r\n public GroupLedgerId: number;\r\n public GroupLedgerKindId: number;\r\n public Comment: string;\r\n public GroupLedgerKind: Lookup;\r\n public GroupLedgerKindTitle: string;\r\n public GroupLedgerKindCode?: number;\r\n public GroupLedger: GroupLedger;\r\n public GroupLedgerCode?: number;\r\n public GroupLedgerTitle: string;\r\n public ForecastBudgetMinPercent?: number;\r\n public ForecastBudgetMaxPercent?: number;\r\n public ProfiteLossKindId?: number;\r\n public ProfiteLossKind?: Lookup;\r\n public ProfiteLossKindTitle?: string;\r\n public ProfiteLossKindCode?: number;\r\n}\r\n","import { EntityBase } from \"./entity-base.model\";\r\nimport { Lookup } from \"./lookup.model\";\r\nexport class GroupLedger extends EntityBase {\r\n public Code: number;\r\n public Title: string;\r\n public GroupLedgerKindId: number;\r\n public Comment: string;\r\n public GroupLedgerKind: Lookup;\r\n public GroupLedgerKindTitle: string;\r\n public GroupLedgerKindCode: number;\r\n}\r\n","export {DetailLedger} from './detailledger.model';\r\nexport {DetailLedgerKind} from './detailledgerkind.model';\r\nexport {GeneralLedger} from './generalLedger.model';\r\nexport {GroupLedger} from './groupledger.model';\r\nexport {LoginResponse,IdToken} from './login-response.model';\r\nexport {Lookup} from './lookup.model';\r\nexport {MasterModel} from './master-model';\r\nexport {Notification} from './notification.model';\r\nexport {Parameters} from './parameters.model';\r\nexport {Permission,PermissionValues} from './permission.model';\r\nexport {Role} from './role.model';\r\nexport {ngxMenuItem} from './ngxMenuItem';\r\nexport {UserEdit} from './user-edit.model';\r\nexport {UserLogin} from './user-login.model';\r\nexport {User} from './user.model';\r\nexport {LicenseKey} from './license-key.model';\r\nexport {EntityListAction} from './entity-list-action';\r\nexport {City} from './city.model';\r\nexport {Province} from './province.model';\r\nexport {Branch} from './branch.model';\r\nexport {FiscalYear} from './fiscal-year.model';\r\nexport {MisSetUp} from './missetup.model';\r\nexport {IRuleElement} from './ruleElement.model';\r\nexport {form_control,actionInfo} from './form-control.model';\r\nexport {SaveReportFile} from './report-file-save.model';","export class LicenseInformation {\r\n public Status: number;\r\n public Message: string;\r\n public SepidzWebKind: SoftWareLicenseKind;\r\n public RestaurantLightWeb: SoftWareLicenseKind;\r\n public RestaurantCallCenterKind: SoftWareLicenseKind;\r\n public RestaurantMediumWeb: SoftWareLicenseKind;\r\n public AccountingAdvancedWeb: SoftWareLicenseKind;\r\n public AccountingWeb: SoftWareLicenseKind;\r\n public IsRestaurantBranch: SoftWareLicenseKind;\r\n public InventoryWeb: SoftWareLicenseKind;\r\n public InventoryAdvancedWeb: SoftWareLicenseKind;\r\n public AccountingKind: SoftWareLicenseKind;\r\n public InventoryKind: SoftWareLicenseKind;\r\n public ReservedKind: SoftWareLicenseKind;\r\n public TreasuryKind: SoftWareLicenseKind;\r\n public SellKind: SoftWareLicenseKind;\r\n public SellWeb: SoftWareLicenseKind;\r\n public SaleInventory: boolean;\r\n public TreasuryWeb: SoftWareLicenseKind;\r\n public PayrollWeb: SoftWareLicenseKind;\r\n public PayrollKind: SoftWareLicenseKind;\r\n public RestaurantAdvancedWeb: SoftWareLicenseKind;\r\n public SmartEvaluation: SoftWareLicenseKind;\r\n public SmartPrecision: SoftWareLicenseKind;\r\n public RestaurantBranchManagementAdvancedKind: SoftWareLicenseKind;\r\n public RestaurantBranchManagementLightKind: SoftWareLicenseKind;\r\n public RestaurantBranchManagementLight: boolean;\r\n public ProductVersion: string;\r\n public CustomerName: string;\r\n public SepidzWebUserCount?: number;\r\n public WebCallCenterUser?: number;\r\n public SmsAdvertisingNumber: string;\r\n public SmsServiceNumber: string;\r\n public RestaurantAddress: string;\r\n public BrandName: string;\r\n public BranchingLightEnabled: boolean;\r\n public BranchingCount: number;\r\n public BranchingAdvancedEnabled: boolean;\r\n public HasSecurityReview: boolean;\r\n public HasShortMessage: boolean;\r\n public LockNumber?: number;\r\n public HasClub: boolean;\r\n public OrderServices: boolean;\r\n public RestaurantSms: boolean;\r\n public MeliBank: boolean;\r\n public ParsianBank: boolean;\r\n public PasargadBank: boolean;\r\n public EghtesadNovinBank: boolean;\r\n public MellatBank: boolean;\r\n public PersianSwitch: boolean;\r\n public ShahrBank: boolean;\r\n public SamanBank: boolean;\r\n public IranKishBank: boolean;\r\n public DigitalMenu: boolean;\r\n public PaymentPanelAVA: boolean;\r\n public OnlineSalesSnapFood: boolean;\r\n public RestaurantCallCenter: boolean;\r\n public SafirCourierFleetManagement: boolean;\r\n public SafirApiKey: string;\r\n public LastVersion: string;\r\n public SpeedzFactorLink: boolean;\r\n public HasUpdate: boolean;\r\n public HasProtel: boolean;\r\n public OnlineMenu: boolean;\r\n public SafirToken: string;\r\n}\r\nexport class InfoValidation {\r\n public Status: number;\r\n public Message: string;\r\n constructor() {\r\n this.Status = null;\r\n this.Message = null;\r\n }\r\n}\r\nexport enum SoftWareLicenseKind {\r\n // سرویس سفارشات نسخه مدیریت شعب پیشرفته\r\n OrderServices = 15,\r\n // نرم افزار سپیدز نسخه مدیریت شعب پیشرفته\r\n RestaurantBranchManagementAdvanced = 16,\r\n\r\n /// \r\n /// نرم افزار سپیدز نسخه مدیریت شعب لایت\r\n /// \r\n RestaurantBranchManagementLight = 17,\r\n\r\n /// \r\n /// نرم افزار سپیدز نسخه پیام کوتاه\r\n /// \r\n RestaurantSms = 18,\r\n\r\n /// \r\n /// نرم افزار تحت وب سپیدز نسخه لایت\r\n /// \r\n RestaurantCallCenter = 20,\r\n\r\n /// \r\n /// نرم افزار تحت وب سپیدز نسخه لایت\r\n /// \r\n HasClub = 36,\r\n\r\n /// \r\n /// نرم افزار تحت وب سپیدز نسخه لایت\r\n /// \r\n RestaurantLightWeb = 37,\r\n\r\n /// \r\n /// نرم افزار تحت وب سپیدز نسخه فروش\r\n /// \r\n RestaurantMediumWeb = 38,\r\n\r\n /// \r\n /// نرم افزار تحت وب سپیدز نسخه فروش و انبار\r\n /// \r\n RestaurantAdvancedWeb = 39,\r\n\r\n /// \r\n /// تبدیل فروش لایت به نسخه فروش وب\r\n /// \r\n RestaurantLightWebToMediumWeb = 40,\r\n\r\n /// \r\n ///تبدیل نسخه لایت به فروش و انبار تحت وب\r\n /// \r\n RestaurantLightWebToAdvancedWeb = 41,\r\n\r\n /// \r\n ///تبدیل نسخه فروش به فروش و انبار تحت وب\r\n /// \r\n RestaurantMediumWebToAdvancedWeb = 42,\r\n\r\n /// \r\n /// نرم افزار سیپیدز شعبه مدیریت شعب\r\n /// \r\n IsRestaurantBranch = 52,\r\n\r\n /// \r\n /// تبدیل مدیریت شعب لایت به پیشرفته\r\n /// \r\n RestaurantBranchManagementLightToAdvance = 54,\r\n\r\n /// \r\n /// نرم افزار سپیدز نسخه وب حسابداری دوبل سیما\r\n /// \r\n AccountingWeb = 72,\r\n\r\n /// \r\n /// نرم افزار سپیدز نسخه وب حسابداری دوبل پیشرفته سیما\r\n /// \r\n AccountingAdvancedWeb = 73,\r\n\r\n /// \r\n /// نرم افزار سپیدز نسخه وب انبار بازرگانی(چند واحدی) سیما\r\n /// \r\n InventoryWeb = 74,\r\n\r\n /// \r\n /// نرم افزار سپیدز نسخه وب انبار تولیدی (چند واحدی) سیما\r\n /// \r\n InventoryAdvancedWeb = 75,\r\n\r\n /// \r\n /// نرم افزار سپیدز نسخه وب فروش بازرگانی سیما\r\n /// \r\n SellWeb = 76,\r\n\r\n /// \r\n /// نرم افزار سپیدز نسخه وب دریافت و پرداخت(خزانه داری) سیما\r\n /// \r\n TreasuryWeb = 77,\r\n\r\n /// \r\n /// نرم افزار نسخه وب حقوق ودستمزد\r\n /// \r\n PayrollWeb = 78,\r\n\r\n /// \r\n /// نرم افزار سپیدز نسخه وب حقوق و دستمزد پیشرفته سیما\r\n /// \r\n PayrollAdvanceWeb = 79,\r\n\r\n /// \r\n /// تبدیل انبار بازرگانی وب به انبار تولیدی وب\r\n /// \r\n InventoryToAdvancedWeb = 60,\r\n\r\n /// \r\n /// تبدیل حسابداری ساده وب به پیشرفته وب\r\n /// \r\n AccountingToAdvancedWeb = 61,\r\n\r\n /// \r\n /// نرم افزار تحت وب سپیدز نسخه مدیریت ناوگان پیک\r\n /// \r\n SafirCourierFleetManagement = 89,\r\n}\r\n","import { EntityBase } from './entity-base.model';\r\n\r\nexport class Lookup extends EntityBase {\r\n public SystemName: string;\r\n public Category: string;\r\n public Code: number;\r\n public Title: string;\r\n}\r\n","import { EntityBase } from \"./entity-base.model\";\r\n\r\nexport class MisSetUp extends EntityBase {\r\n public SystemName: string;\r\n public KeyValue: string;\r\n public DataValue: string;\r\n}\r\n","import { Params } from \"@angular/router\";\r\nimport { ssgIconConfig } from \"./ssg-toastr-config\";\r\nexport class ngxMenuItem {\r\n /**\r\n * Item Title\r\n * @type {string}\r\n */\r\n title: string;\r\n /**\r\n * Item Title\r\n * @type {string}\r\n */\r\n name?: string;\r\n /**\r\n * Item Title\r\n * @type {number}\r\n */\r\n VoucherKindId?: number;\r\n /**\r\n * Item relative link (for routerLink)\r\n * @type {string}\r\n */\r\n link?: string;\r\n /**\r\n * Item URL (absolute)\r\n * @type {string}\r\n */\r\n url?: string;\r\n /**\r\n * Icon class name or icon config object\r\n * @type {string | ssgIconConfig}\r\n */\r\n icon?: string | ssgIconConfig;\r\n /**\r\n * Expanded by default\r\n * @type {boolean}\r\n */\r\n expanded?: boolean;\r\n /**\r\n * Children items\r\n * @type {List}\r\n */\r\n children?: ngxMenuItem[];\r\n\r\n /**\r\n * Hidden Item\r\n * @type {boolean}\r\n */\r\n hidden?: boolean;\r\n /**\r\n * Item is selected when partly or fully equal to the current url\r\n * @type {string}\r\n */\r\n pathMatch?: 'full' | 'prefix' = 'full';\r\n /**\r\n * Where this is a home item\r\n * @type {boolean}\r\n */\r\n home?: boolean;\r\n /**\r\n * Whether the item is just a group (non-clickable)\r\n * @type {boolean}\r\n */\r\n group?: boolean;\r\n /** Whether the item skipLocationChange is true or false\r\n *@type {boolean}\r\n */\r\n skipLocationChange?: boolean;\r\n /** Map of query parameters\r\n *@type {Params}\r\n */\r\n queryParams?: Params;\r\n parent?: ngxMenuItem;\r\n selected?: boolean;\r\n colaps?: boolean = false;\r\n iconColor?:string;\r\n data?: any;\r\n fragment?: string;\r\n apiName?: string;\r\n actionName?: string;\r\n hasbadge?: boolean;\r\n BookMark?: boolean;\r\n /**\r\n * @returns item parents in top-down order\r\n */\r\n static getParents(item: ngxMenuItem): ngxMenuItem[] {\r\n const parents = [];\r\n let parent = item.parent;\r\n while (parent) {\r\n parents.unshift(parent);\r\n parent = parent.parent;\r\n }\r\n return parents;\r\n }\r\n static isParent(item: ngxMenuItem, possibleChild: ngxMenuItem): boolean {\r\n return possibleChild.parent\r\n ? possibleChild.parent === item || this.isParent(item, possibleChild.parent)\r\n : false;\r\n }\r\n}\r\n","import { Utilities } from \"../services/utilities\";\r\nexport class Notification {\r\n public static Create(data: {}) {\r\n let n = new Notification();\r\n Object.assign(n, data);\r\n if (n.date)\r\n n.date = Utilities.parseDate(n.date);\r\n return n;\r\n }\r\n public id: number;\r\n public header: string;\r\n public body: string;\r\n public isRead: boolean;\r\n public isPinned: boolean;\r\n public date: Date;\r\n}\r\n","import { EntityBase } from \"./entity-base.model\";\r\nimport { Lookup } from \"./lookup.model\";\r\nexport class Parameters extends EntityBase {\r\n public Caption: string;\r\n public ParameterName: string;\r\n public ParameterKindId: number;\r\n public ParameterKindTitle: string;\r\n public ParameterKind: Lookup;\r\n}\r\n","import { PeopleInfoAddress } from \"./peopleInfo-address.model\";\r\nimport { PeopleInfoTelephone } from \"./peopleInfo-telephone.model\";\r\nimport { PeopleInfoRelated } from \"./peopleInfo-related.model\";\r\nimport { Lookup } from \"./lookup.model\";\r\nimport { EntityBase } from \"./entity-base.model\";\r\nimport { Party } from \"src/app/frontoffice/parties/model/party.model\";\r\nexport class PeopleInfo extends EntityBase {\r\n public NUmber?: number;\r\n public PartyId: number;\r\n public PersonalityKindId: number;\r\n public CompanyKindId?: number;\r\n public Title: string;\r\n public Number?: number;\r\n public Description: string;\r\n public FirstName: string;\r\n public LastName: string;\r\n public Email: string;\r\n public Comment: string;\r\n public Telephone: string;\r\n public MobileNumber: string;\r\n public Internalphone: string;\r\n public Post: string;\r\n public CompanyName: string;\r\n public PersonalityKindTitle: string;\r\n public PersonalityKindCode: number;\r\n public InformationKindTitle: string;\r\n public InformationKindCode: number;\r\n public CompanyKindTitle: string;\r\n public CompanyKindCode?: number;\r\n public PersonalityKind: Lookup;\r\n public PeopleInfoAddresss: PeopleInfoAddress[];\r\n public PeopleInfoTelephones: PeopleInfoTelephone[];\r\n public PeopleInfoRelateds: PeopleInfoRelated[];\r\n public DetailLedgerId?: number;\r\n public DetailLedgerCode?: number;\r\n public NationalCode: string;\r\n public EconomicCode: string;\r\n public RegistrationNumber: string;\r\n public BrandName: string;\r\n public CityName: string;\r\n public CityId?: number;\r\n public Party: Party;\r\n public IsCustomer: boolean;\r\n public IsSupplier: boolean;\r\n public IsEmployee: boolean;\r\n public IsBroker: boolean;\r\n public IsDetailLedger: boolean;\r\n public DetailLedgerKindId?: number;\r\n public DetailLedgerKindCode?: number;\r\n public DetailLedgerKindTitle: string;\r\n public StartCode?: number;\r\n public EndCode?: number;\r\n public ContactKindByEmail: boolean;\r\n public ContactKindBySMS: boolean;\r\n public ContactKindByTelegram: boolean;\r\n public ResellerFirstName: string;\r\n public ResellerId?: number;\r\n public ResellerLastName: string;\r\n public ResellerCompanyName: string;\r\n public ShamsiCreationDate: string;\r\n public CustomerComment: string;\r\n public UserId?: number;\r\n public UserDisplayName: string;\r\n}\r\n","export type PermissionValues =\r\n \"Get\" | \"Post\" |\r\n \"Put\" | \"Delete\" | \"Manage\" | \"Same\";\r\nexport class Permission {\r\n public static readonly viewPermission: PermissionValues = \"Get\";\r\n public static readonly editPermission: PermissionValues = \"Put\";\r\n public static readonly createPermission: PermissionValues = \"Post\";\r\n public static readonly deletePermission: PermissionValues = \"Delete\";\r\n public static readonly managePermission: PermissionValues = \"Manage\";\r\n public static readonly samePermission: PermissionValues = \"Same\";\r\n constructor(value?: PermissionValues, groupName?: string, description?: string) {\r\n this.value = value;\r\n this.groupName = groupName;\r\n this.description = description;\r\n }\r\n public value: PermissionValues;\r\n public groupName: string;\r\n public description: string;\r\n}\r\n","import { EntityBase } from \"./entity-base.model\";\r\nexport class Province extends EntityBase {\r\n public Code: number;\r\n public Title: string;\r\n} \r\n","import { EntityBase } from './entity-base.model';\r\n\r\nexport class SaveReportFile extends EntityBase {\r\n SystemKindName: string;\r\n FileName: string;\r\n FileInfo: string;\r\n CategoryName: string;\r\n ReportTitle: string;\r\n DataSourceName: string;\r\n startDate?: Date;\r\n endDate?: Date;\r\n startNumber?: number;\r\n endNumber?: number;\r\n}\r\n","import { Permission } from './permission.model';\r\nexport class Role {\r\n [x: string]: any;\r\n constructor(name?: string, description?: string, access?: string, username?: string) {\r\n this.Name = name;\r\n this.Description = description;\r\n this.UserName = username;\r\n this.Access = access;\r\n }\r\n public Id: string;\r\n public Name: string;\r\n public Description: string;\r\n public UsersCount: string;\r\n public Permissions: Permission[];\r\n public Access: string;\r\n public UserName: string;\r\n public DisplayName: string;\r\n}\r\n","export type ssgComponentStatus = 'basic' | 'primary' | 'success' | 'warning' | 'danger' | 'info' | 'control';\r\nexport enum ssgGlobalLogicalPosition {\r\n TOP_START = \"top-start\",\r\n TOP_END = \"top-end\",\r\n BOTTOM_START = \"bottom-start\",\r\n BOTTOM_END = \"bottom-end\"\r\n}\r\nexport enum ssgGlobalPhysicalPosition {\r\n TOP_RIGHT = \"top-right\",\r\n TOP_LEFT = \"top-left\",\r\n BOTTOM_RIGHT = \"bottom-right\",\r\n BOTTOM_LEFT = \"bottom-left\"\r\n}\r\n\r\nexport interface ssgIconConfig {\r\n icon: string;\r\n pack?: string;\r\n status?: ssgComponentStatus;\r\n options?: {\r\n [name: string]: any;\r\n };\r\n}\r\n\r\nexport type ssgGlobalPosition = ssgGlobalPhysicalPosition | ssgGlobalLogicalPosition;\r\nexport type ssgDuplicateToastBehaviour = 'previous' | 'all';\r\nexport class ssgToastrConfig {\r\n /**\r\n * Determines where on the screen toast have to be rendered.\r\n * */\r\n position: ssgGlobalPosition;\r\n /**\r\n * Status chooses color scheme for the toast.\r\n * */\r\n status: ssgComponentStatus;\r\n /**\r\n * Duration is timeout between toast appears and disappears.\r\n * */\r\n duration: number;\r\n /**\r\n * Destroy by click means you can hide the toast by clicking it.\r\n * */\r\n destroyByClick: boolean;\r\n /**\r\n * If preventDuplicates is true then the toast with the same title, message and status will not be rendered.\r\n * Find duplicates behaviour determined by `preventDuplicates`.\r\n * The default `previous` duplicate behaviour is used.\r\n * */\r\n preventDuplicates: boolean;\r\n /**\r\n * Determines the how to threat duplicates.\r\n * */\r\n duplicatesBehaviour: ssgDuplicateToastBehaviour;\r\n limit?: number;\r\n /**\r\n * Class to be applied to the toast.\r\n */\r\n toastClass: string;\r\n /**\r\n * Determines render icon or not.\r\n * */\r\n hasIcon: boolean;\r\n /**\r\n * Icon name or icon config object that can be provided to render custom icon.\r\n * */\r\n icon: string | ssgIconConfig;\r\n /**\r\n * Icon pack to look for the icon in.\r\n * @deprecated Set pack via icon config object passed to icon property\r\n * @breaking-change 5.0.0\r\n * */\r\n iconPack: string;\r\n /**\r\n * Toast status icon-class mapping.\r\n * */\r\n\r\n}\r\n","import { User } from './user.model';\r\nexport class UserEdit extends User {\r\n constructor(oldPassword?: string, newPassword?: string, confirmPassword?: string) {\r\n super();\r\n this.OldPassword = oldPassword;\r\n this.NewPassword = newPassword;\r\n this.ConfirmPassword = confirmPassword\r\n }\r\n public OldPassword: string;\r\n public NewPassword: string;\r\n public ConfirmPassword: string;\r\n public PreventChangeClear: boolean;\r\n}\r\n","import { UserRole } from './user-role.model';\r\n\r\nexport class UserLogin {\r\n constructor(userName?: string, id?: number, password?: string, rememberMe?: boolean, roles?: UserRole[]) {\r\n this.Id = id;\r\n this.UserName = userName;\r\n this.Password = password;\r\n this.RememberMe = rememberMe;\r\n this.Roles = [];\r\n }\r\n BranchId?: number;\r\n Id: number;\r\n UserName: string;\r\n Password: string;\r\n Roles: UserRole[];\r\n RememberMe?: boolean;\r\n}\r\n","import { UserRole } from \"./user-role.model\";\r\nimport { EntityBase } from \"./entity-base.model\";\r\nimport { UserBranch } from \"./user-branch.model\";\r\nexport class User extends EntityBase {\r\n public UserName: string;\r\n public Email: string;\r\n public PhoneNumber: string;\r\n public IsEnabled: boolean;\r\n public Roles: UserRole[];\r\n public AccessFailedCount: number;\r\n public LockoutEnd?: Date;\r\n public LockoutEnabled: boolean;\r\n public EmailConfirmed: boolean;\r\n public DisplayName: string;\r\n public Configuration: string;\r\n public NewPassword: string;\r\n public ConfirmPassword: string;\r\n public LastLoggedInDateTime?: string;\r\n public Branches: UserBranch[];\r\n public CurrentBranchId: number;\r\n public SerialNumber: string;\r\n public PasswordHash: string;\r\n public HasSMS: boolean;\r\n public SettleBySelf: boolean;\r\n public RialDiscount: number;\r\n public PercentDiscount: number;\r\n public ProtelCodez: number;\r\n public PreventChangeClear: boolean;\r\n}\r\n","import { OrderSettingModel } from \"src/app/frontoffice/order/model/ordersetting.model\";\r\nimport { EntityBase } from \"./entity-base.model\";\r\n\r\nexport class UserSettingModel extends EntityBase {\r\n public UserId: number;\r\n public DataValue: string;\r\n}\r\nexport class LocalSettingModel extends EntityBase {\r\n public BookMarkMenu: BookMarkMenu[];\r\n public Language: string;\r\n public Theme: string;\r\n public SideMenuState: number;\r\n public isPinned: boolean;\r\n public UserId: number;\r\n public Isrtl: string;\r\n public OrderSetting: OrderSettingModel;\r\n constructor() {\r\n super();\r\n this.BookMarkMenu = [];\r\n this.isPinned = false;\r\n this.OrderSetting = new OrderSettingModel();\r\n }\r\n}\r\nexport class BookMarkMenu extends EntityBase {\r\n public title: string;\r\n public icon: string;\r\n public selectedMenu: string;\r\n public selectedMenu1: string;\r\n public selectedMenu2: string;\r\n public selectedMenu3: string;\r\n public actionName: string;\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'filter'\r\n})\r\nexport class FilterPipe implements PipeTransform {\r\n transform(items: any, filter: any): any {\r\n if (!filter) {\r\n return items;\r\n }\r\n\r\n if (!Array.isArray(items)) {\r\n return items;\r\n }\r\n\r\n if (filter && Array.isArray(items)) {\r\n let filterKeys = Object.keys(filter);\r\n\r\n if (1!==1) {\r\n return items.filter(item =>\r\n filterKeys.reduce((x, keyName) =>\r\n (x && new RegExp(filter[keyName], 'gi').test(item[keyName])) || filter[keyName] == \"\", true));\r\n }\r\n else {\r\n return items.filter(item => {\r\n return filterKeys.some((keyName) => {\r\n return new RegExp(filter[keyName], 'gi').test(item[keyName]) || filter[keyName] == \"\";\r\n });\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as _ from 'lodash';\r\n\r\n@Pipe({name: 'groupBy'})\r\nexport class GroupByPipe implements PipeTransform {\r\n transform(collection: any[], property: string[]): any[] {\r\n\r\n if(!collection) {\r\n return null;\r\n }\r\n var notNull = _.negate(_.isNull);\r\n const groupedCollection = _.groupBy(collection, function(note){\r\n return _.find(_.pick(note, property), notNull);\r\n });\r\n return Object.keys(groupedCollection).map(key => ({ key, value: groupedCollection[key] }));\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as _ from 'lodash';\r\n\r\n@Pipe({ name: 'mapObject' })\r\nexport class MapObjectPipe implements PipeTransform {\r\n transform(input: any, output: any): any {\r\n //var destination_model = new T();\r\n if (!output || !input) {\r\n return;\r\n }\r\n const destination = Object.keys(output);\r\n const source = Object.keys(input);\r\n source.forEach(key => {\r\n if (destination.some(el => el === key)) {\r\n output[key] = input[key];\r\n };\r\n });\r\n return output;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport * as moment from 'jalali-moment';\r\n@Pipe({\r\n name: 'persianDate'\r\n})\r\nexport class PersianDatePipe implements PipeTransform {\r\n dateOptions = { year: 'numeric', month: 'numeric', day: 'numeric' };\r\n dateTimeOptions = { hour: 'numeric', minute: 'numeric', second: 'numeric' };\r\n\r\n transform(value: any, args?: any): any {\r\n if (!value || value === null) {\r\n return '';\r\n }\r\n if (args === 'dateTime') {\r\n return moment(value.toString()).format('jYYYY/jMM/jDD HH:mm:ss');\r\n }\r\n // date\r\n return moment(value.toString()).format('jYYYY/jMM/jDD');\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { PersianService } from '../services/persian.service';\r\n\r\n@Pipe({\r\n name: 'persianNumber'\r\n})\r\nexport class PersianNumberPipe implements PipeTransform {\r\n constructor(private persianService: PersianService) {}\r\n\r\n transform(value: any): string {\r\n if (value === undefined || value === null) {\r\n return '';\r\n }\r\n return this.persianService.toPersianNumber(value.toString());\r\n }\r\n Englishtransform(value: any): string {\r\n if (value === undefined || value === null) {\r\n return '';\r\n }\r\n return this.persianService.toEnglishNumber(value.toString()).toString();\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'thousandSeparator'\r\n})\r\nexport class ThousandSeparatorPipe implements PipeTransform {\r\n\r\n transform(nStr: any): any {\r\n if (nStr === '') { return ''; }\r\n let x, x1, x2, rgx;\r\n nStr += '';\r\n x = nStr.split('.');\r\n x1 = x[0];\r\n x2 = x[1];\r\n rgx = /(\\d+)(\\d{3})/;\r\n while (rgx.test(x1)) {\r\n x1 = x1.replace(rgx, '$1' + ',' + '$2');\r\n }\r\n return x1 + (x2 ? `.${x2}` : '');\r\n }\r\n}","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({ name: \"translateEnum\" })\r\nexport class TranslateEnum implements PipeTransform {\r\n transform(value: any, enumObj: any): any {\r\n return this.enumToEnumModelArray(value, enumObj);\r\n }\r\n\r\n enumToEnumModelArray(value: number, enumObj: any): string {\r\n return Object.keys(enumObj)\r\n .filter((key) => !isNaN(Number(enumObj[key])))\r\n .find((x) => enumObj[x] === value);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Subject, BehaviorSubject } from \"rxjs\";\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoadingScreenService {\r\n private _loading: boolean = false;\r\n loadingStatus: BehaviorSubject = new BehaviorSubject(null);\r\n get loading(): boolean {\r\n return this._loading;\r\n }\r\n set loading(value) {\r\n this._loading = value;\r\n this.loadingStatus.next(value);\r\n }\r\n startLoading() {\r\n this.loading = true;\r\n }\r\n stopLoading() {\r\n this.loading = false;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Role } from \"../models/role.model\";\r\nimport { Permission } from \"../models/permission.model\";\r\nimport { AuthService } from \"./auth.service\";\r\nimport { MvcAreaInfo } from \"../models/mvccontrollerInfo.model\";\r\nimport { UserRole } from \"../models/user-role.model\";\r\n\r\nexport type RolesChangedOperation = \"add\" | \"delete\" | \"modify\";\r\nexport type RolesChangedEventArg = { roles: UserRole[] | any[]; operation: RolesChangedOperation };\r\n@Injectable()\r\nexport class AccountService {\r\n public static readonly roleAddedOperation: RolesChangedOperation = \"add\";\r\n public static readonly roleDeletedOperation: RolesChangedOperation = \"delete\";\r\n public static readonly roleModifiedOperation: RolesChangedOperation = \"modify\";\r\n\r\n constructor(public authService: AuthService) {}\r\n\r\n userHasPermission(controllerName: string, actionName: string): boolean {\r\n if (!this.authService.getIsLoggedIn() || !controllerName) return false;\r\n let controller = controllerName.indexOf(\"/\") !== -1 ? controllerName.substring(0, controllerName.indexOf(\"/\")) : controllerName;\r\n let actionId = `${controllerName}:${actionName}`;\r\n if (actionName === Permission.samePermission && controllerName.indexOf(\"/\") != -1) {\r\n actionId = `${controller}:${controllerName.substring(controllerName.indexOf(\"/\") + 1, controllerName.length)}`;\r\n }\r\n let createactionId = `${controller}:${Permission.createPermission}`;\r\n let editactionId = `${controller}:${Permission.editPermission}`;\r\n let deleteactionId = `${controller}:${Permission.deletePermission}`;\r\n let viewactionId = actionName !== Permission.viewPermission ? undefined : `${controller}:${Permission.viewPermission}`;\r\n if (actionName !== Permission.managePermission) {\r\n createactionId = undefined;\r\n editactionId = undefined;\r\n }\r\n if (actionName !== Permission.deletePermission) {\r\n deleteactionId = undefined;\r\n }\r\n let userName = this.authService.currentUser.UserName;\r\n let isOk = false;\r\n let roles: Role[];\r\n let index: number = 0;\r\n while (!isOk) {\r\n const x = this.authService.userRoles(userName);\r\n if (x && x.length > 0) {\r\n isOk = true;\r\n roles = x.filter((x) => x.UserName.toUpperCase() === userName.toUpperCase());\r\n }\r\n index += 1;\r\n index += 1;\r\n if (!isOk) isOk = index > 10;\r\n }\r\n if (!roles) return false;\r\n let flag: boolean = false;\r\n roles.forEach((x) => {\r\n if (flag) return flag;\r\n if (x.Access != null) {\r\n let accessList = JSON.parse(x.Access) as MvcAreaInfo[];\r\n if (\r\n accessList &&\r\n accessList.some((a) =>\r\n a.Controllers.some((c) =>\r\n c.Actions.some((a) =>\r\n createactionId && editactionId\r\n ? a.Id === createactionId || a.Id === editactionId || a.Id === deleteactionId\r\n : a.Id === actionId || a.Id === deleteactionId || a.Id === viewactionId\r\n )\r\n )\r\n )\r\n ) {\r\n flag = true;\r\n return flag;\r\n }\r\n } else flag = false;\r\n });\r\n return flag;\r\n }\r\n\r\n getCurrentUser() {\r\n return this.authService.currentUser;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpResponseBase } from \"@angular/common/http\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { Utilities } from \"../services/utilities\";\r\nimport { ErrorDialogService } from \"./error-dialog/error-dialog.service\";\r\nimport { DialogType } from \"../models/dialog.enum\";\r\n\r\n@Injectable()\r\nexport class AlertService {\r\n private messages = new Subject();\r\n private stickyMessages = new Subject();\r\n private dialogs = new Subject();\r\n private _isLoading = false;\r\n private loadingMessageId: any;\r\n constructor(private errorDialogService: ErrorDialogService) {}\r\n showDialog(message: string);\r\n showDialog(message: string, type: DialogType, okCallback: (val?: any) => any);\r\n showDialog(\r\n message: string,\r\n type: DialogType,\r\n okCallback?: (val?: any) => any,\r\n cancelCallback?: () => any,\r\n okLabel?: string,\r\n cancelLabel?: string,\r\n defaultValue?: string\r\n );\r\n showDialog(\r\n message: string,\r\n type?: DialogType,\r\n okCallback?: (val?: any) => any,\r\n cancelCallback?: () => any,\r\n okLabel?: string,\r\n cancelLabel?: string,\r\n defaultValue?: string\r\n ) {\r\n if (!type) type = DialogType.alert;\r\n this.errorDialogService.openDialog(\"پیغام خطا\", message, type);\r\n var sub = this.errorDialogService.onClose.subscribe((x) => {\r\n sub.unsubscribe();\r\n if (x && okCallback) okCallback();\r\n });\r\n }\r\n showMessage(summary: string);\r\n showMessage(summary: string, detail: string, severity: MessageSeverity);\r\n showMessage(summaryAndDetails: string[], summaryAndDetailsSeparator: string, severity: MessageSeverity);\r\n showMessage(response: HttpResponseBase, ignoreValue_useNull: string, severity: MessageSeverity);\r\n showMessage(data: any, separatorOrDetail?: string, severity?: MessageSeverity) {\r\n if (!severity) severity = MessageSeverity.default;\r\n if (data instanceof HttpResponseBase) {\r\n data = Utilities.getHttpResponseMessage(data);\r\n separatorOrDetail = Utilities.captionAndMessageSeparator;\r\n }\r\n if (data instanceof Array) {\r\n for (let message of data) {\r\n let msgObject = Utilities.splitInTwo(message, separatorOrDetail);\r\n this.showMessageHelper(msgObject.firstPart, msgObject.secondPart, severity, false);\r\n }\r\n } else {\r\n this.showMessageHelper(data, separatorOrDetail, severity, false);\r\n }\r\n }\r\n showStickyMessage(summary: string);\r\n showStickyMessage(summary: string, detail: string, severity: MessageSeverity, error?: any);\r\n showStickyMessage(summaryAndDetails: string[], summaryAndDetailsSeparator: string, severity: MessageSeverity);\r\n showStickyMessage(response: HttpResponseBase, ignoreValue_useNull: string, severity: MessageSeverity);\r\n showStickyMessage(data: string | string[] | HttpResponseBase, separatorOrDetail?: string, severity?: MessageSeverity, error?: any) {\r\n if (!severity) severity = MessageSeverity.default;\r\n if (data instanceof HttpResponseBase) {\r\n data = Utilities.getHttpResponseMessage(data);\r\n separatorOrDetail = Utilities.captionAndMessageSeparator;\r\n }\r\n if (data instanceof Array) {\r\n for (let message of data) {\r\n let msgObject = Utilities.splitInTwo(message, separatorOrDetail);\r\n this.showMessageHelper(msgObject.firstPart, msgObject.secondPart, severity, true);\r\n }\r\n } else {\r\n if (error) {\r\n let msg = `Severity: \"${MessageSeverity[severity]}\", Summary: \"${data}\", Detail: \"${separatorOrDetail}\", Error: \"${Utilities.safeStringify(\r\n error\r\n )}\"`;\r\n switch (severity) {\r\n case MessageSeverity.default:\r\n this.logInfo(msg);\r\n break;\r\n case MessageSeverity.info:\r\n this.logInfo(msg);\r\n break;\r\n case MessageSeverity.success:\r\n this.logMessage(msg);\r\n break;\r\n case MessageSeverity.error:\r\n this.logError(msg);\r\n break;\r\n case MessageSeverity.warn:\r\n this.logWarning(msg);\r\n break;\r\n case MessageSeverity.wait:\r\n this.logTrace(msg);\r\n break;\r\n }\r\n }\r\n this.showMessageHelper(data, separatorOrDetail, severity, true);\r\n }\r\n }\r\n private showMessageHelper(summary: string, detail: string, severity: MessageSeverity, isSticky: boolean) {\r\n if (isSticky) this.stickyMessages.next({ severity: severity, summary: summary, detail: detail });\r\n else this.messages.next({ severity: severity, summary: summary, detail: detail });\r\n }\r\n startLoadingMessage(message = \"Loading...\", caption = \"\") {\r\n this._isLoading = true;\r\n clearTimeout(this.loadingMessageId);\r\n this.loadingMessageId = setTimeout(() => {\r\n this.showStickyMessage(caption, message, MessageSeverity.wait);\r\n }, 1000);\r\n }\r\n stopLoadingMessage() {\r\n this._isLoading = false;\r\n clearTimeout(this.loadingMessageId);\r\n this.resetStickyMessage();\r\n }\r\n logDebug(msg) {\r\n console.debug(msg);\r\n }\r\n logError(msg) {\r\n console.error(msg);\r\n }\r\n logInfo(msg) {\r\n console.info(msg);\r\n }\r\n logMessage(msg) {\r\n console.log(msg);\r\n }\r\n logTrace(msg) {\r\n console.trace(msg);\r\n }\r\n logWarning(msg) {\r\n console.warn(msg);\r\n }\r\n resetStickyMessage() {\r\n this.stickyMessages.next();\r\n }\r\n getDialogEvent(): Observable {\r\n return this.dialogs.asObservable();\r\n }\r\n getMessageEvent(): Observable {\r\n return this.messages.asObservable();\r\n }\r\n getStickyMessageEvent(): Observable {\r\n return this.stickyMessages.asObservable();\r\n }\r\n get isLoadingInProgress(): boolean {\r\n return this._isLoading;\r\n }\r\n}\r\n//******************** Dialog ********************//\r\nexport class AlertDialog {\r\n constructor(\r\n public message: string,\r\n public type: DialogType,\r\n public okCallback: (val?: any) => any,\r\n public cancelCallback: () => any,\r\n public defaultValue: string,\r\n public okLabel: string,\r\n public cancelLabel: string\r\n ) {}\r\n}\r\n//******************** Growls ********************//\r\nexport class AlertMessage {\r\n constructor(public severity: MessageSeverity, public summary: string, public detail: string) {}\r\n}\r\nexport enum MessageSeverity {\r\n default,\r\n info,\r\n success,\r\n error,\r\n warn,\r\n wait,\r\n}\r\n//******************** End ********************//\r\n","import { Injectable } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { Location } from '@angular/common';\r\nimport { filter } from 'rxjs/operators';\r\ndeclare const ga: any;\r\n@Injectable()\r\nexport class AnalyticsService {\r\n private enabled: boolean;\r\n constructor(private location: Location, private router: Router) {\r\n this.enabled = false;\r\n }\r\n trackPageViews() {\r\n if (this.enabled) {\r\n this.router.events.pipe(\r\n filter((event) => event instanceof NavigationEnd),\r\n )\r\n .subscribe(() => {\r\n ga('send', { hitType: 'pageview', page: this.location.path() });\r\n });\r\n }\r\n }\r\n trackEvent(eventName: string) {\r\n if (this.enabled) {\r\n ga('send', 'event', eventName);\r\n }\r\n }\r\n}\r\n","import { animate, state, style, transition, trigger } from '@angular/animations';\r\nexport const fadeInOut = trigger('fadeInOut', [\r\n transition(':enter', [style({ opacity: 0 }), animate('0.4s ease-in', style({ opacity: 1 }))]),\r\n transition(':leave', [animate('0.4s 10ms ease-out', style({ opacity: 0 }))])\r\n])\r\nexport function flyInOut(duration: number = 0.2) {\r\n return trigger('flyInOut', [\r\n state('in', style({ opacity: 1, transform: 'translateX(0)' })),\r\n transition('void => *', [style({ opacity: 0, transform: 'translateX(-100%)' }), animate(`${duration}s ease-in`)]),\r\n transition('* => void', [animate(`${duration}s 10ms ease-out`, style({ opacity: 0, transform: 'translateX(100%)' }))])\r\n ])\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService, TranslateLoader } from '@ngx-translate/core';\r\nimport { Observable, Subject, of } from 'rxjs';\r\n@Injectable()\r\nexport class AppTranslationService {\r\n readonly defaultLanguage = \"fa\";\r\n languageList = [\r\n {\r\n value: 'fa',\r\n name: 'فارسی',\r\n dir:'rtl'\r\n },\r\n {\r\n value: 'en',\r\n name: 'انگلیسی',\r\n dir: 'ltr'\r\n },\r\n ];\r\n private onLanguageChanged = new Subject();\r\n languageChanged$ = this.onLanguageChanged.asObservable();\r\n constructor(private translate: TranslateService) {\r\n this.setDefaultLanguage(this.defaultLanguage);\r\n }\r\n addLanguages(lang: string[]) {\r\n this.translate.addLangs(lang);\r\n }\r\n setDefaultLanguage(lang: string) {\r\n this.translate.setDefaultLang(lang);\r\n }\r\n getDefaultLanguage() {\r\n return this.translate.defaultLang;\r\n }\r\n getBrowserLanguage() {\r\n return this.translate.getBrowserLang();\r\n }\r\n useBrowserLanguage(): string | void {\r\n //let browserLang = this.getBrowserLanguage();\r\n let browserLang = this.translate.defaultLang;\r\n if (browserLang.match(/fa|en|fr|de|ar|ko|pt/)) {\r\n this.changeLanguage(browserLang);\r\n return browserLang;\r\n }\r\n }\r\n changeLanguage(language: string = \"fa\") {\r\n\r\n if (!language)\r\n language = this.translate.defaultLang;\r\n if (language != this.translate.currentLang) {\r\n setTimeout(() => {\r\n this.translate.use(language);\r\n this.onLanguageChanged.next(language);\r\n });\r\n\r\n }\r\n return language;\r\n }\r\n getTranslationList():any {\r\n return this.languageList;\r\n }\r\n getTranslation(key: string | Array, interpolateParams?: Object): string | any {\r\n return this.translate.instant(key, interpolateParams);\r\n }\r\n getTranslationAsync(key: string | Array, interpolateParams?: Object): Observable {\r\n return this.translate.get(key, interpolateParams);\r\n }\r\n}\r\nexport class TranslateLanguageLoader implements TranslateLoader {\r\n public getTranslation(lang: string): any {\r\n /*Note Dynamic require(variable) will not work. Require is always at compile time*/\r\n switch (lang) {\r\n case 'en':\r\n return of(require('src/assets/locale/en.json'));\r\n case 'fr':\r\n return of(require('src/assets/locale/fr.json'));\r\n case 'de':\r\n return of(require('src/assets/locale/de.json'));\r\n case 'pt':\r\n return of(require('src/assets/locale/pt.json'));\r\n case 'ar':\r\n return of(require('src/assets/locale/ar.json'));\r\n case 'ko':\r\n return of(require('src/assets/locale/ko.json'));\r\n case \"fa\":\r\n return of(require(\"src/assets/locale/fa.json\"));\r\n default:\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, Router, ActivatedRouteSnapshot, RouterStateSnapshot, CanActivateChild, CanLoad, Route } from '@angular/router';\r\nimport { AuthService } from './auth.service';\r\n@Injectable()\r\nexport class AuthGuard implements CanActivate, CanActivateChild, CanLoad {\r\n constructor(private authService: AuthService, private router: Router) { }\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n let url: string = state.url;\r\n return this.checkLogin(url);\r\n }\r\n canActivateChild(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {\r\n return this.canActivate(route, state);\r\n }\r\n canLoad(route: Route): boolean {\r\n let url = `/${route.path}`;\r\n return this.checkLogin(url);\r\n }\r\n checkLogin(url: string): boolean {\r\n if (this.authService.getIsLoggedIn()) {\r\n return true;\r\n }\r\n this.authService.loginRedirectUrl = url;\r\n this.router.navigate(['/auth/login']);\r\n return false;\r\n }\r\n}\r\n","import { Injectable, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders, HttpParams } from \"@angular/common/http\";\r\nimport { Observable, Subject, throwError, BehaviorSubject } from \"rxjs\";\r\nimport { map, take, takeUntil, tap } from \"rxjs/operators\";\r\nimport { mergeMap, switchMap, catchError } from \"rxjs/operators\";\r\nimport { ConfigurationService } from \"./configuration.service\";\r\nimport { LocalStoreManager } from \"./local-store-manager.service\";\r\nimport { User, LoginResponse, Role, Branch, UserLogin } from \"../models\";\r\nimport { Router, NavigationExtras } from \"@angular/router\";\r\nimport { MvcControllerInfo, MvcAreaInfo } from \"../models/mvccontrollerInfo.model\";\r\nimport { Utilities } from \"./utilities\";\r\nimport { FiscalYear } from \"../models/fiscal-year.model\";\r\nimport { ShowToastrService } from \"./show-toastr.service\";\r\n\r\nimport { TokenService } from \"./token.service\";\r\nimport { UserInformation } from \"../models/userinfo.model\";\r\nimport { LicenseInformation } from \"../models/license-information.model\";\r\nimport { DBkeys } from \"./db-keys\";\r\nimport { ClearableCache } from \"../models/clearablecache.model\";\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class AuthService implements OnDestroy, OnInit {\r\n public ngUnsubscribe = new Subject();\r\n public menuIsRefreshed: BehaviorSubject = new BehaviorSubject(false);\r\n public absRole = new BehaviorSubject([]);\r\n public isLoadingUserRoles: boolean = false;\r\n public loginRedirectUrl: string;\r\n\r\n public static loggingUserName: string = \"\";\r\n\r\n private taskPauser: Subject;\r\n private _loginStatus = new Subject();\r\n private currentFiscalYear$: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n private readonly _loginUrl: string = \"/api/Authorization/Login\";\r\n private readonly _logoutRedirectUrl: string = \"api/Authorization/Logout\";\r\n private fiscalYearLoop = 0;\r\n private isRefreshingLogin: boolean;\r\n private isMvcControllerLoading = false;\r\n private isCurrentFiscalYear = false;\r\n private isCurrentInformationLoading = false;\r\n private previousIsLoggedInCheck = false;\r\n private PayCurrentYearMonthIsRead = false;\r\n branchIdLoading: boolean;\r\n\r\n get currentBranch(): Branch {\r\n const branchId = JSON.parse(localStorage.getItem(\"BranchId\"));\r\n if (!this.localStorage.getDataObject(`${DBkeys.CURRENT_BRANCH}_${AuthService.loggingUserName}`)) this.getBranchById(branchId);\r\n return this.localStorage.getDataObject(`${DBkeys.CURRENT_BRANCH}_${AuthService.loggingUserName}`);\r\n }\r\n\r\n public get currentBranchId(): number {\r\n const branchId = JSON.parse(localStorage.getItem(\"BranchId\"));\r\n if (branchId) return branchId;\r\n return 0;\r\n }\r\n\r\n public get currentUser(): User {\r\n let user = this.localStorage.getDataObject(`${DBkeys.CURRENT_USER}_${AuthService.loggingUserName}`);\r\n this.reevaluateLoginStatus(user);\r\n return user;\r\n }\r\n\r\n public get currentUserInfo(): UserLogin {\r\n if (!this.localStorage.getDataObject(`${DBkeys.CURRENT_USER_INFO}_${AuthService.loggingUserName}`)) return undefined;\r\n return this.localStorage.getDataObject(`${DBkeys.CURRENT_USER_INFO}_${AuthService.loggingUserName}`);\r\n }\r\n\r\n public get currentFiscalYearobsr(): Observable {\r\n return this.currentFiscalYear$.asObservable();\r\n }\r\n\r\n get currentFiscalYear() {\r\n if (this.localStorage.getDataObject(`${DBkeys.CURRENT_FISCAL_YEAR}_${AuthService.loggingUserName}`))\r\n return this.localStorage.getDataObject(`${DBkeys.CURRENT_FISCAL_YEAR}_${AuthService.loggingUserName}`);\r\n else this.saveFiscalYear();\r\n return this.localStorage.getDataObject(`${DBkeys.CURRENT_FISCAL_YEAR}_${AuthService.loggingUserName}`);\r\n }\r\n\r\n public get rememberMe(): boolean {\r\n return this.tokenService.rememberMe() === true;\r\n }\r\n\r\n private get loginUrl(): string {\r\n return this.configurations.baseUrl + this._loginUrl;\r\n }\r\n\r\n private get homeUrl(): string {\r\n return this.configurations.homeUrl;\r\n }\r\n\r\n private get logoutUrl(): string {\r\n return this.configurations.baseUrl + this._logoutRedirectUrl;\r\n }\r\n\r\n private get refreshToken(): string {\r\n this.reevaluateLoginStatus();\r\n return this.localStorage.getData(`${DBkeys.REFRESH_TOKEN}_${AuthService.loggingUserName}`);\r\n }\r\n\r\n constructor(\r\n protected router: Router,\r\n protected http: HttpClient,\r\n protected configurations: ConfigurationService,\r\n public localStorage: LocalStoreManager,\r\n private tokenService: TokenService,\r\n protected sts: ShowToastrService\r\n ) {\r\n if (!AuthService.loggingUserName && window.name) AuthService.loggingUserName = window.name;\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.initializeLoginStatus();\r\n }\r\n\r\n public getUrls(value: string): string {\r\n if (this.localStorage.getDataObject(DBkeys.ACTIVE_URLS) === null) return undefined;\r\n var list: string[] = this.localStorage.getDataObject(DBkeys.ACTIVE_URLS);\r\n var list2 = list.filter(\r\n (x) =>\r\n x === value && !x.includes(\"Lookup\") && !x.includes(\"/connect/token\") && !x.includes(\"GetMaxCode\") && !x.includes(\"Role/ByUserName/userName\")\r\n );\r\n if (list2 && list2.length > 2) return list2[0];\r\n return undefined;\r\n }\r\n\r\n public freeUrls(): void {\r\n this.localStorage.deleteData(DBkeys.ACTIVE_URLS);\r\n }\r\n\r\n public setUrls(value: string): void {\r\n var _urls: string[];\r\n if (this.localStorage.getDataObject(DBkeys.ACTIVE_URLS) === null) _urls = [];\r\n else _urls = this.localStorage.getDataObject(DBkeys.ACTIVE_URLS);\r\n _urls.push(value);\r\n this.localStorage.saveSessionData(_urls, DBkeys.ACTIVE_URLS);\r\n }\r\n\r\n public removeurl(value: string): void {\r\n var _urls: string[];\r\n if (this.localStorage.getDataObject(DBkeys.ACTIVE_URLS) != null) {\r\n _urls = this.localStorage.getDataObject(DBkeys.ACTIVE_URLS);\r\n _urls = _urls.filter((x) => x != value);\r\n this.localStorage.saveSessionData(_urls, DBkeys.ACTIVE_URLS);\r\n }\r\n }\r\n\r\n public currentInformation(): LicenseInformation {\r\n if (!this.localStorage.getData(DBkeys.CURRENT_INFORMATION) && !this.isCurrentInformationLoading) this.getCurrentInformation();\r\n return this.localStorage.getData(DBkeys.CURRENT_INFORMATION);\r\n }\r\n\r\n public userRoles(userName: string): Role[] {\r\n if (!userName) {\r\n if (this.currentUser !== undefined) userName = this.currentUser.UserName;\r\n else userName = AuthService.loggingUserName;\r\n }\r\n var list = this.localStorage.getDataObject(DBkeys.USER_ROLES);\r\n return list;\r\n }\r\n\r\n public async getLoginUserRoles(userName: string): Promise {\r\n if (!userName) userName = this.currentUser.UserName;\r\n return this.http\r\n .get(`${this.configurations.baseUrl}/api/Role/ByUserName/${userName}`, this.getRequestHeaders())\r\n .pipe(\r\n take(1),\r\n tap((roles: any) => {\r\n if (roles && roles.length > 0) this.localStorage.saveSessionData(roles, DBkeys.USER_ROLES);\r\n }),\r\n catchError((err) => {\r\n return throwError(this.handleError(err, null));\r\n })\r\n )\r\n .toPromise();\r\n }\r\n\r\n public getBranchUsers(): Observable {\r\n return this.http.get(this.configurations.baseUrl + \"/api/Authorization/GetUserList\", this.getRequestHeaders()).pipe(\r\n catchError((error) => {\r\n this.isLoadingUserRoles = false;\r\n return this.handleError(error, null);\r\n })\r\n );\r\n }\r\n\r\n public getMvcController(): void {\r\n this.isMvcControllerLoading = true;\r\n this.http\r\n .get(this.configurations.baseUrl + \"/api/Authorization/Controllers\", this.getRequestHeaders())\r\n .pipe(take(1))\r\n .pipe(\r\n catchError((error) => {\r\n this.isMvcControllerLoading = false;\r\n return this.handleError(error, null);\r\n })\r\n )\r\n .subscribe((controlers) => {\r\n this.localStorage.saveSessionData(controlers, DBkeys.USER_CONTROLLERS);\r\n this.isMvcControllerLoading = false;\r\n });\r\n }\r\n\r\n public getRequestHeaders(): { headers: HttpHeaders | { [header: string]: string | string[] } } {\r\n let headers = new HttpHeaders({ \"Content-Type\": \"application/json\" });\r\n return { headers: headers };\r\n }\r\n\r\n public getIsLoggedIn(): boolean {\r\n if (window.name && !AuthService.loggingUserName) AuthService.loggingUserName = window.name;\r\n this.configurations.loggingUserName = AuthService.loggingUserName;\r\n return this.localStorage.getDataObject(`${DBkeys.CURRENT_USER}_${AuthService.loggingUserName}`) != null;\r\n }\r\n\r\n public processLoginResponse(response: any, rememberMe: boolean, currentBranchId?: number) {\r\n this.tokenService.setRememberMe(rememberMe);\r\n this.tokenService.storeToken(response);\r\n let refreshToken = this.tokenService.getRawToken() || this.refreshToken;\r\n let tokenExpiryDate = this.tokenService.getTokenExpirationTime();\r\n let accessTokenExpiry = tokenExpiryDate;\r\n let user = {\r\n Id: this.tokenService.getUserId(),\r\n UserName: this.tokenService.getName()\r\n ? this.tokenService.getName()\r\n : this.currentUser\r\n ? this.currentUser.UserName\r\n : AuthService.loggingUserName,\r\n DisplayName: this.tokenService.getDisplayName(),\r\n Email: this.tokenService.getName(),\r\n CurrentBranchId: currentBranchId,\r\n Roles: Array.isArray(this.tokenService.getRole()) ? this.tokenService.getRole() : [this.tokenService.getRole()],\r\n };\r\n this.saveUserDetails(user, refreshToken, null, refreshToken, accessTokenExpiry, rememberMe);\r\n this.reevaluateLoginStatus(user);\r\n this.tokenService.storeToken(response);\r\n this.getHrmPayCurentYearMonth();\r\n return user;\r\n }\r\n\r\n public refreshLogin(): Observable {\r\n if (!AuthService.loggingUserName && this.currentUser) AuthService.loggingUserName = this.currentUser.UserName;\r\n if (window.name && !AuthService.loggingUserName) AuthService.loggingUserName = window.name;\r\n else if (AuthService.loggingUserName && !window.name) window.name = AuthService.loggingUserName;\r\n this.configurations.loggingUserName = AuthService.loggingUserName;\r\n return this.getRefreshLoginEndpoint().pipe(\r\n map((response) => this.processLoginResponse(response, this.rememberMe, this.currentUser.CurrentBranchId))\r\n );\r\n }\r\n\r\n public handleError(error, continuation: () => Observable): Observable {\r\n if (error.status === 401) {\r\n if (this.isRefreshingLogin) {\r\n return this.pauseTask(continuation);\r\n }\r\n this.isRefreshingLogin = true;\r\n return this.refreshLogin().pipe(\r\n mergeMap((data) => {\r\n this.isRefreshingLogin = false;\r\n this.resumeTasks(true);\r\n return continuation();\r\n }),\r\n catchError((refreshLoginError) => {\r\n this.isRefreshingLogin = false;\r\n this.resumeTasks(false);\r\n if (\r\n refreshLoginError.status === 401 ||\r\n refreshLoginError.status === 503 ||\r\n (refreshLoginError.url && refreshLoginError.url.toLowerCase().includes(this.loginUrl.toLowerCase()))\r\n ) {\r\n this.reLogin();\r\n return throwError(\"session expired\");\r\n } else {\r\n return throwError(refreshLoginError || \"server error\");\r\n }\r\n })\r\n );\r\n } else if (error.status === 400 && !error.url.includes(\"/connect/token\")) {\r\n this.logout();\r\n this.redirectLogoutUser();\r\n } else {\r\n return throwError(error);\r\n }\r\n }\r\n\r\n public redirectLogoutUser(): void {\r\n let redirect = this.logoutUrl ? this.logoutUrl : this.loginUrl;\r\n this.router.navigate([redirect]);\r\n }\r\n\r\n public login(userLogin: UserLogin, token: string): void {\r\n let objectEnum = Object.keys(ClearableCache);\r\n objectEnum.forEach((pro) => {\r\n this.localStorage.deleteData(pro);\r\n });\r\n this.localStorage.deleteData(DBkeys.USER_ROLES);\r\n AuthService.loggingUserName = userLogin.UserName;\r\n window.name = AuthService.loggingUserName;\r\n this.configurations.loggingUserName = AuthService.loggingUserName;\r\n const branchId = JSON.parse(localStorage.getItem(\"BranchId\"));\r\n this.getBranchById(branchId);\r\n this.localStorage.savePermanentData(userLogin, `${DBkeys.CURRENT_USER_INFO}_${AuthService.loggingUserName}`);\r\n this.processLoginResponse(token, userLogin.RememberMe, userLogin.BranchId);\r\n }\r\n\r\n public logout(): void {\r\n const current_information = this.localStorage.getData(DBkeys.CURRENT_INFORMATION);\r\n const computerName = this.localStorage.getData(ClearableCache.ComputerName);\r\n this.localStorage.clearAllStorage();\r\n this.localStorage.savePermanentData(current_information, DBkeys.CURRENT_INFORMATION);\r\n this.localStorage.savePermanentData(computerName, ClearableCache.ComputerName);\r\n if (this.currentUserInfo) this.localStorage.savePermanentData(this.currentUserInfo, `${DBkeys.CURRENT_USER_INFO}_${AuthService.loggingUserName}`);\r\n this.configurations.clearLocalChanges();\r\n this.reevaluateLoginStatus();\r\n }\r\n\r\n public userControllers(): Observable {\r\n if (!this.localStorage.getDataObject(DBkeys.USER_CONTROLLERS) && !this.isMvcControllerLoading) this.getMvcController();\r\n let absMvcControllerInfo = new BehaviorSubject([]);\r\n if (this.localStorage.getDataObject(DBkeys.USER_CONTROLLERS))\r\n absMvcControllerInfo.next(this.localStorage.getDataObject(DBkeys.USER_CONTROLLERS));\r\n return absMvcControllerInfo.asObservable();\r\n }\r\n\r\n public getBranchById(id: number): void {\r\n if (!this.branchIdLoading) {\r\n this.branchIdLoading = true;\r\n this.http\r\n .get(this.configurations.baseUrl + \"/api/Branch/GetById/\" + id, this.getRequestHeaders())\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .pipe(\r\n catchError((error) => {\r\n this.branchIdLoading = false;\r\n return this.handleError(error, null);\r\n })\r\n )\r\n .subscribe((branch) => {\r\n this.localStorage.saveSessionData(branch, `${DBkeys.CURRENT_BRANCH}_${AuthService.loggingUserName}`);\r\n this.branchIdLoading = false;\r\n });\r\n }\r\n }\r\n\r\n public saveFiscalYear(currentYear: FiscalYear = undefined): void {\r\n if (currentYear !== undefined) {\r\n this.currentFiscalYear$.next(currentYear);\r\n this.localStorage.savePermanentData(currentYear, `${DBkeys.CURRENT_FISCAL_YEAR}_${AuthService.loggingUserName}`);\r\n } else if (!this.isCurrentFiscalYear && this.fiscalYearLoop < 1) {\r\n this.isCurrentFiscalYear = true;\r\n this.http\r\n .get(this.configurations.baseUrl + \"/api/FiscalYear/FiscalYear/\", this.getRequestHeaders())\r\n .pipe(\r\n take(1),\r\n catchError((error) => {\r\n this.isCurrentFiscalYear = false;\r\n return this.handleError(error, null);\r\n })\r\n )\r\n .subscribe(\r\n (fiscalYear) => {\r\n this.isCurrentFiscalYear = false;\r\n if (fiscalYear) {\r\n const now = new Date();\r\n const currentFiscalYear = fiscalYear.find(\r\n (x) =>\r\n new Date(x.StartDate).setHours(0, 0, 0, 0) <= now.setHours(0, 0, 0, 0) &&\r\n new Date(x.EndDate).setHours(0, 0, 0, 0) >= now.setHours(0, 0, 0, 0)\r\n );\r\n if (!currentFiscalYear) {\r\n this.sts.showDialog(\"سال مالی تعریف نشده است.\", \"خطای سال مالی\");\r\n this.fiscalYearLoop += 1;\r\n }\r\n this.currentFiscalYear$.next(currentFiscalYear);\r\n this.localStorage.savePermanentData(currentFiscalYear as FiscalYear, `${DBkeys.CURRENT_FISCAL_YEAR}_${AuthService.loggingUserName}`);\r\n }\r\n },\r\n (err) => (this.isCurrentFiscalYear = false)\r\n );\r\n }\r\n }\r\n\r\n public hasLocalSetting(): Observable {\r\n let absRole = new BehaviorSubject(undefined);\r\n if (this.localStorage.getData(DBkeys.HAS_LOCAL_SETTING) !== undefined && this.localStorage.getData(DBkeys.HAS_LOCAL_SETTING) !== null) {\r\n absRole.next(this.localStorage.getDataObject(DBkeys.HAS_LOCAL_SETTING));\r\n } else {\r\n const computerName: string = this.localStorage.getData(ClearableCache.ComputerName);\r\n this.http\r\n .get(\r\n this.configurations.baseUrl + \"/api/LocalSetting/HasLocalSetting\" + (computerName ? \"?ComputerName=\" + computerName : \"\"),\r\n this.getRequestHeaders()\r\n )\r\n .pipe(\r\n take(1),\r\n catchError((error) => {\r\n return this.handleError(error, null);\r\n })\r\n )\r\n .subscribe((result) => {\r\n absRole.next(result);\r\n this.localStorage.saveSessionData(result as boolean, DBkeys.HAS_LOCAL_SETTING);\r\n });\r\n }\r\n return absRole;\r\n }\r\n\r\n public getHrmPayCurentYearMonth(): any {\r\n if (!this.localStorage.getData(DBkeys.PAY_CURENTYEAR_MONTH)) this.saveHrmPayCurentYearMonth();\r\n return this.localStorage.getData(DBkeys.PAY_CURENTYEAR_MONTH);\r\n }\r\n\r\n public saveHrmPayCurentYearMonth(): void {\r\n if (this.PayCurrentYearMonthIsRead) return;\r\n this.PayCurrentYearMonthIsRead = true;\r\n this.http\r\n .get(this.configurations.baseUrl + \"/api/MonthlySalaryCalculationInformation/GetHrmPayCurentYearMonth\", this.getRequestHeaders())\r\n .pipe(\r\n take(1),\r\n catchError((error) => {\r\n this.PayCurrentYearMonthIsRead = false;\r\n return this.handleError(error, null);\r\n })\r\n )\r\n .subscribe((result) => {\r\n this.PayCurrentYearMonthIsRead = false;\r\n this.localStorage.saveSessionData(result, DBkeys.PAY_CURENTYEAR_MONTH);\r\n });\r\n }\r\n\r\n private reevaluateLoginStatus(currentUser?: User): void {\r\n let user = currentUser || this.localStorage.getDataObject(`${DBkeys.CURRENT_USER}_${AuthService.loggingUserName}`);\r\n this.configurations.clearLocalChanges();\r\n let isLoggedIn = user != null;\r\n if (this.previousIsLoggedInCheck != isLoggedIn) {\r\n this._loginStatus.next(isLoggedIn);\r\n }\r\n this.previousIsLoggedInCheck = isLoggedIn;\r\n }\r\n\r\n private getCurrentInformation(): void {\r\n this.isCurrentInformationLoading = true;\r\n this.http\r\n .get(this.configurations.baseUrl + \"/api/Home/CurrentInformation\", this.getRequestHeaders())\r\n .pipe(\r\n take(1),\r\n catchError((error) => {\r\n this.isCurrentInformationLoading = false;\r\n return this.handleError(error, null);\r\n })\r\n )\r\n .subscribe((controlers) => {\r\n this.localStorage.savePermanentData(controlers, DBkeys.CURRENT_INFORMATION);\r\n this.isCurrentInformationLoading = false;\r\n });\r\n }\r\n\r\n private saveUserDetails(user: User, accessToken: string, idToken: string, refreshToken: string, expiresIn: Date, rememberMe: boolean): void {\r\n if (rememberMe) {\r\n this.localStorage.savePermanentData(accessToken, `${DBkeys.ACCESS_TOKEN}_${AuthService.loggingUserName}`);\r\n this.localStorage.savePermanentData(idToken, `${DBkeys.ID_TOKEN}_${AuthService.loggingUserName}`);\r\n this.localStorage.savePermanentData(refreshToken, `${DBkeys.REFRESH_TOKEN}_${AuthService.loggingUserName}`);\r\n this.localStorage.savePermanentData(expiresIn, `${DBkeys.TOKEN_EXPIRES_IN}_${AuthService.loggingUserName}`);\r\n this.localStorage.savePermanentData(user, `${DBkeys.CURRENT_USER}_${AuthService.loggingUserName}`);\r\n } else {\r\n this.localStorage.saveSyncedSessionData(accessToken, `${DBkeys.ACCESS_TOKEN}_${AuthService.loggingUserName}`);\r\n this.localStorage.saveSyncedSessionData(idToken, `${DBkeys.ID_TOKEN}_${AuthService.loggingUserName}`);\r\n this.localStorage.saveSyncedSessionData(refreshToken, `${DBkeys.REFRESH_TOKEN}_${AuthService.loggingUserName}`);\r\n this.localStorage.saveSyncedSessionData(expiresIn, `${DBkeys.TOKEN_EXPIRES_IN}_${AuthService.loggingUserName}`);\r\n this.localStorage.saveSyncedSessionData(user, `${DBkeys.CURRENT_USER}_${AuthService.loggingUserName}`);\r\n }\r\n }\r\n\r\n private reLogin(): void {\r\n this.localStorage.deleteData(`${DBkeys.TOKEN_EXPIRES_IN}_${AuthService.loggingUserName}`);\r\n this.redirectForLogin();\r\n }\r\n\r\n private redirectForLogin(): void {\r\n if (this.localStorage.getDataObject(`${DBkeys.CURRENT_USER_INFO}_${AuthService.loggingUserName}`))\r\n this.login(this.localStorage.getDataObject(`${DBkeys.CURRENT_USER_INFO}_${AuthService.loggingUserName}`), null);\r\n else this.redirectLoginUser();\r\n }\r\n\r\n private initializeLoginStatus(): void {\r\n this.localStorage\r\n .getInitEvent()\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(() => {\r\n this.reevaluateLoginStatus();\r\n });\r\n }\r\n\r\n private redirectLoginUser(): void {\r\n let redirect =\r\n this.loginRedirectUrl && this.loginRedirectUrl != \"/\" && this.loginRedirectUrl != ConfigurationService.defaultHomeUrl\r\n ? this.loginRedirectUrl\r\n : this.homeUrl;\r\n this.loginRedirectUrl = null;\r\n let urlParamsAndFragment = Utilities.splitInTwo(redirect, \"#\");\r\n let urlAndParams = Utilities.splitInTwo(urlParamsAndFragment.firstPart, \"?\");\r\n let navigationExtras: NavigationExtras = {\r\n fragment: urlParamsAndFragment.secondPart,\r\n queryParams: Utilities.getQueryParamsFromString(urlAndParams.secondPart),\r\n queryParamsHandling: \"merge\",\r\n };\r\n this.router.navigate([this._loginUrl]);\r\n }\r\n\r\n private getRefreshLoginEndpoint(): Observable {\r\n let header = new HttpHeaders({ \"Content-Type\": \"application/x-www-form-urlencoded\" });\r\n let params = new HttpParams()\r\n .append(\"refresh_token\", this.refreshToken)\r\n .append(\"grant_type\", \"refresh_token\")\r\n .append(\"scope\", \"openid email phone profile offline_access roles\");\r\n let requestBody = params.toString();\r\n return this.http\r\n .post(this.loginUrl, requestBody, { headers: header })\r\n .pipe(take(1))\r\n .pipe(\r\n catchError((error) => {\r\n return this.handleError(error, () => this.getRefreshLoginEndpoint());\r\n })\r\n );\r\n }\r\n\r\n private pauseTask(continuation: () => Observable): Observable {\r\n if (!this.taskPauser) this.taskPauser = new Subject();\r\n return this.taskPauser.pipe(\r\n switchMap((continueOp) => {\r\n return continueOp ? continuation() : throwError(\"session expired\");\r\n })\r\n );\r\n }\r\n\r\n private resumeTasks(continueOp: boolean): void {\r\n setTimeout(() => {\r\n if (this.taskPauser) {\r\n this.taskPauser.next(continueOp);\r\n this.taskPauser.complete();\r\n this.taskPauser = null;\r\n }\r\n });\r\n }\r\n}\r\n","import { Directive, Input, Output, EventEmitter, ElementRef, HostListener } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[clickOutside]',\r\n})\r\nexport class ClickOutsideDirective {\r\n\r\n @Output() clickOutside = new EventEmitter();\r\n\r\n constructor(private elementRef: ElementRef) { }\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n public onClick(target) {\r\n const clickedInside = this.elementRef.nativeElement.contains(target);\r\n if (!clickedInside) {\r\n this.clickOutside.emit(target);\r\n }\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccountService, HttpCommonService, LocalStoreManager } from \".\";\r\nimport { OrderSettingModel } from \"../../../../../src/app/frontoffice/order/model/ordersetting.model\";\r\nimport { SplashFormService } from \"../../../../sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { SideMenuState } from \"../models/common.model\";\r\nimport { LocalSettingModel, UserSettingModel } from \"../models/usersetting.model\";\r\nimport { ClearableCache } from \"../models/clearablecache.model\";\r\nimport { FormSettingModel } from \"../models/formsettingmodel\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class CommonService implements OnDestroy {\r\n ngUnsubscribe = new Subject();\r\n public sidemenuState: SideMenuState = SideMenuState.toggle;\r\n public oldSidemenuState: SideMenuState = SideMenuState.toggle;\r\n public isMobileMode: boolean;\r\n public isDigitalMenu: boolean;\r\n public LocalSetting: LocalSettingModel;\r\n public UserSettingModel: UserSettingModel;\r\n\r\n public getUserSetting: Subject = new Subject();\r\n public smartConnection: boolean;\r\n constructor(\r\n public storage: LocalStoreManager,\r\n private httpCommonService: HttpCommonService,\r\n private splashFormService: SplashFormService,\r\n private accountService: AccountService\r\n ) {\r\n this.setLocalSetting();\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n if (this.getUserSetting) {\r\n this.getUserSetting.next();\r\n this.getUserSetting.complete();\r\n }\r\n }\r\n getSetting() {\r\n const setting = this.storage.getData(\"UserSettingModel\");\r\n if (!setting) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GeUserSetting/\" + this.accountService.getCurrentUser().Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: UserSettingModel) => {\r\n if (data) {\r\n this.LocalSetting = new LocalSettingModel();\r\n this.LocalSetting = JSON.parse(data.DataValue);\r\n if (!this.LocalSetting.OrderSetting) {\r\n this.LocalSetting.OrderSetting = new OrderSettingModel();\r\n }\r\n this.UserSettingModel = data;\r\n this.storage.savePermanentData(this.UserSettingModel, \"UserSettingModel\");\r\n } else {\r\n this.LocalSetting = new LocalSettingModel();\r\n this.UserSettingModel = new UserSettingModel();\r\n }\r\n this.setLocalSetting();\r\n this.getUserSetting.next(true);\r\n },\r\n (err) => {\r\n this.splashFormService.closeLoading();\r\n }\r\n );\r\n } else {\r\n this.LocalSetting = JSON.parse(setting.DataValue);\r\n this.UserSettingModel = setting;\r\n this.setLocalSetting();\r\n this.getUserSetting.next(true);\r\n }\r\n }\r\n updateSettings(OrderSetting?: OrderSettingModel) {\r\n if (!this.accountService?.getCurrentUser()?.Id) return;\r\n if (OrderSetting) {\r\n const setting = this.storage.getData(\"UserSettingModel\");\r\n this.LocalSetting = JSON.parse(setting.DataValue);\r\n this.UserSettingModel = setting;\r\n this.setLocalSetting();\r\n this.LocalSetting.OrderSetting = OrderSetting;\r\n }\r\n this.httpCommonService\r\n .get(\"UserLocalSetting/GeUserSetting/\" + this.accountService?.getCurrentUser()?.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: UserSettingModel) => {\r\n if (data) {\r\n this.splashFormService.openDialog();\r\n this.LocalSetting.SideMenuState = this.sidemenuState;\r\n this.UserSettingModel.DataValue = JSON.stringify(this.LocalSetting);\r\n data.DataValue = JSON.stringify(this.LocalSetting);\r\n this.storage.savePermanentData(data, \"UserSettingModel\");\r\n if (data?.Id) {\r\n this.UserSettingModel.DataValue = JSON.stringify(this.LocalSetting);\r\n this.httpCommonService\r\n .create(\"UserLocalSetting/UpdateData\", data)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n this.splashFormService.closeLoading();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n console.log(error);\r\n }\r\n );\r\n } else {\r\n this.UserSettingModel = new UserSettingModel();\r\n this.UserSettingModel.UserId = this.accountService?.getCurrentUser()?.Id;\r\n this.UserSettingModel.DataValue = JSON.stringify(this.LocalSetting);\r\n this.httpCommonService\r\n .create(\"UserLocalSetting/SaveData\", this.UserSettingModel)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: number) => {\r\n if (!this.UserSettingModel) this.UserSettingModel = new UserSettingModel();\r\n this.UserSettingModel.Id = data;\r\n this.storage.savePermanentData(this.UserSettingModel, \"UserLocalSettingModel\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n console.log(error);\r\n }\r\n );\r\n }\r\n } else {\r\n this.splashFormService.openDialog();\r\n this.LocalSetting.SideMenuState = this.sidemenuState;\r\n this.UserSettingModel.DataValue = JSON.stringify(this.LocalSetting);\r\n this.storage.savePermanentData(this.UserSettingModel, \"UserSettingModel\");\r\n if (this.UserSettingModel?.Id) {\r\n this.UserSettingModel.DataValue = JSON.stringify(this.LocalSetting);\r\n this.httpCommonService\r\n .update(\"UserLocalSetting/UpdateData\", this.UserSettingModel)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n data;\r\n this.splashFormService.closeLoading();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n console.log(error);\r\n }\r\n );\r\n } else {\r\n this.UserSettingModel = new UserSettingModel();\r\n this.UserSettingModel.UserId = this.accountService?.getCurrentUser()?.Id;\r\n this.UserSettingModel.DataValue = JSON.stringify(this.LocalSetting);\r\n this.httpCommonService\r\n .create(\"UserLocalSetting/SaveData\", this.UserSettingModel)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: number) => {\r\n if (!this.UserSettingModel) this.UserSettingModel = new UserSettingModel();\r\n this.UserSettingModel.Id = data;\r\n this.storage.savePermanentData(this.UserSettingModel, \"UserLocalSettingModel\");\r\n this.splashFormService.closeLoading();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n console.log(error);\r\n }\r\n );\r\n }\r\n }\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n console.log(error);\r\n }\r\n );\r\n }\r\n setLocalSetting() {\r\n if (!this.LocalSetting) this.LocalSetting = new LocalSettingModel();\r\n this.setTheme();\r\n this.setPinned();\r\n this.setDirection();\r\n }\r\n setTheme(theme?: string) {\r\n if (!theme) {\r\n if (!this.LocalSetting || !this.LocalSetting?.Theme) {\r\n theme = \"sepidz\";\r\n this.LocalSetting.Theme = theme;\r\n document.documentElement.className = theme;\r\n } else {\r\n document.documentElement.className = this.LocalSetting.Theme;\r\n }\r\n } else {\r\n this.LocalSetting.Theme = theme;\r\n document.documentElement.className = theme;\r\n this.updateSettings();\r\n }\r\n }\r\n\r\n setPinned(pinned?: boolean) {\r\n if (pinned === undefined || null) {\r\n pinned = false;\r\n }\r\n this.LocalSetting.isPinned = pinned;\r\n this.updateSettings();\r\n }\r\n\r\n setDirection(isrtl?: string) {\r\n if (!isrtl) {\r\n if (this.LocalSetting?.Isrtl) {\r\n document.documentElement.dir = this.LocalSetting?.Isrtl;\r\n return;\r\n }\r\n this.LocalSetting.Isrtl = \"rtl\";\r\n document.documentElement.dir = this.LocalSetting.Isrtl;\r\n } else {\r\n this.LocalSetting.Isrtl = isrtl;\r\n document.documentElement.dir = this.LocalSetting.Isrtl;\r\n }\r\n }\r\n getFormSetting(settingUrl: string): Promise {\r\n return new Promise((resolve, reject) => {\r\n this.httpCommonService\r\n .getList(settingUrl)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((result: FormSettingModel[]) => {\r\n if (result?.length > 0) this.storage.savePermanentData(result[0], ClearableCache.FormSetting);\r\n resolve(true);\r\n });\r\n });\r\n }\r\n getDriverSettlementFormSetting(): Promise {\r\n return new Promise((resolve, reject) => {\r\n this.httpCommonService\r\n .getList(\"DriverSettlementFormSetting\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((result: FormSettingModel[]) => {\r\n if (result?.length > 0) this.storage.savePermanentData(result[0], ClearableCache.FormSetting);\r\n resolve(true);\r\n });\r\n });\r\n }\r\n getDepositFormSetting(): Promise {\r\n return new Promise((resolve, reject) => {\r\n this.httpCommonService\r\n .getList(\"DepositFormSetting\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((result: FormSettingModel[]) => {\r\n if (result?.length > 0) this.storage.savePermanentData(result[0], ClearableCache.FormSetting);\r\n resolve(true);\r\n });\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppTranslationService } from './app-translation.service';\r\nimport { LocalStoreManager } from './local-store-manager.service';\r\nimport { DBkeys } from './db-keys';\r\nimport { Utilities } from './utilities';\r\ntype UserConfiguration = {\r\n language: string,\r\n homeUrl: string,\r\n theme: string,\r\n showDashboardStatistics: boolean,\r\n showDashboardNotifications: boolean,\r\n showDashboardTodo: boolean,\r\n showDashboardBanner: boolean\r\n};\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ConfigurationService {\r\n _DBkeys = DBkeys;\r\n public loggingUserName: string = '';\r\n public static readonly appVersion: string = \"2.6.1\";\r\n // public baseUrl = \"http://192.168.247.55:1212\";\r\n public baseUrl = Utilities.baseUrl();\r\n public loginUrl = './login';\r\n public fallbackBaseUrl = \"http://wwww.Sepidz.com\";\r\n //***Specify default configurations here***\r\n public static readonly defaultLanguage: string = \"fa\";\r\n public static readonly defaultHomeUrl: string = \"/\";\r\n public static readonly defaultTheme: string = \"default\";\r\n public static readonly defaultShowDashboardStatistics: boolean = true;\r\n public static readonly defaultShowDashboardNotifications: boolean = true;\r\n public static readonly defaultShowDashboardTodo: boolean = false;\r\n public static readonly defaultShowDashboardBanner: boolean = true;\r\n //***End of defaults***\r\n private _language: string = null;\r\n private _homeUrl: string = null;\r\n private _theme: string = null;\r\n private _showDashboardStatistics: boolean = null;\r\n private _showDashboardNotifications: boolean = null;\r\n private _showDashboardTodo: boolean = null;\r\n private _showDashboardBanner: boolean = null;\r\n constructor(private localStorage: LocalStoreManager, private translationService: AppTranslationService) {\r\n this.loadLocalChanges();\r\n }\r\n public loadLocalChanges() {\r\n if (this.localStorage.exists(this._DBkeys.LANGUAGE)) {\r\n this._language = this.localStorage.getDataObject(this._DBkeys.LANGUAGE);\r\n this.translationService.changeLanguage(this._language);\r\n }\r\n else {\r\n this.resetLanguage();\r\n }\r\n if (this.localStorage.exists(this._DBkeys.HOME_URL))\r\n this._homeUrl = this.localStorage.getDataObject(this._DBkeys.HOME_URL);\r\n if (this.localStorage.exists(this._DBkeys.THEME)) {\r\n this._theme = this.localStorage.getDataObject(this._DBkeys.THEME);\r\n }\r\n if (this.localStorage.exists(this._DBkeys.SHOW_DASHBOARD_STATISTICS))\r\n this._showDashboardStatistics = this.localStorage.getDataObject(this._DBkeys.SHOW_DASHBOARD_STATISTICS);\r\n if (this.localStorage.exists(this._DBkeys.SHOW_DASHBOARD_NOTIFICATIONS))\r\n this._showDashboardNotifications = this.localStorage.getDataObject(this._DBkeys.SHOW_DASHBOARD_NOTIFICATIONS);\r\n if (this.localStorage.exists(this._DBkeys.SHOW_DASHBOARD_TODO))\r\n this._showDashboardTodo = this.localStorage.getDataObject(this._DBkeys.SHOW_DASHBOARD_TODO);\r\n if (this.localStorage.exists(this._DBkeys.SHOW_DASHBOARD_BANNER))\r\n this._showDashboardBanner = this.localStorage.getDataObject(this._DBkeys.SHOW_DASHBOARD_BANNER);\r\n }\r\n private saveToLocalStore(data: any, key: string) {\r\n setTimeout(() => this.localStorage.savePermanentData(data,`${key}_${this.loggingUserName}` ));\r\n }\r\n public import(jsonValue: string) {\r\n this.clearLocalChanges();\r\n if (!jsonValue)\r\n return;\r\n let importValue: UserConfiguration = Utilities.JSonTryParse(jsonValue);\r\n if (importValue.language != null)\r\n this.language = importValue.language;\r\n if (importValue.homeUrl != null)\r\n this.homeUrl = importValue.homeUrl;\r\n if (importValue.theme != null)\r\n this.theme = importValue.theme;\r\n if (importValue.showDashboardStatistics != null)\r\n this.showDashboardStatistics = importValue.showDashboardStatistics;\r\n if (importValue.showDashboardNotifications != null)\r\n this.showDashboardNotifications = importValue.showDashboardNotifications;\r\n if (importValue.showDashboardTodo != null)\r\n this.showDashboardTodo = importValue.showDashboardTodo;\r\n if (importValue.showDashboardBanner != null)\r\n this.showDashboardBanner = importValue.showDashboardBanner;\r\n }\r\n public export(changesOnly = true): string {\r\n let exportValue: UserConfiguration =\r\n {\r\n language: changesOnly ? this._language : this.language,\r\n homeUrl: changesOnly ? this._homeUrl : this.homeUrl,\r\n theme: changesOnly ? this._theme : this.theme,\r\n showDashboardStatistics: changesOnly ? this._showDashboardStatistics : this.showDashboardStatistics,\r\n showDashboardNotifications: changesOnly ? this._showDashboardNotifications : this.showDashboardNotifications,\r\n showDashboardTodo: changesOnly ? this._showDashboardTodo : this.showDashboardTodo,\r\n showDashboardBanner: changesOnly ? this._showDashboardBanner : this.showDashboardBanner\r\n };\r\n return JSON.stringify(exportValue);\r\n }\r\n public clearLocalChanges() {\r\n //this._language = null;\r\n this._homeUrl = null;\r\n //this._theme = null;\r\n this._showDashboardStatistics = null;\r\n this._showDashboardNotifications = null;\r\n this._showDashboardTodo = null;\r\n this._showDashboardBanner = null;\r\n // this.localStorage.deleteData(this._DBkeys.LANGUAGE);\r\n this.localStorage.deleteData(this._DBkeys.HOME_URL);\r\n // this.localStorage.deleteData(this._DBkeys.THEME);\r\n this.localStorage.deleteData(this._DBkeys.SHOW_DASHBOARD_STATISTICS);\r\n this.localStorage.deleteData(this._DBkeys.SHOW_DASHBOARD_NOTIFICATIONS);\r\n this.localStorage.deleteData(this._DBkeys.SHOW_DASHBOARD_TODO);\r\n this.localStorage.deleteData(this._DBkeys.SHOW_DASHBOARD_BANNER);\r\n this.resetLanguage();\r\n }\r\n private resetLanguage() {\r\n let language = this.translationService.useBrowserLanguage();\r\n if (language) {\r\n this._language = language;\r\n }\r\n else {\r\n this._language = this.translationService.changeLanguage()\r\n }\r\n }\r\n set language(value: string) {\r\n this._language = value;\r\n this.saveToLocalStore(value, this._DBkeys.LANGUAGE);\r\n this.translationService.changeLanguage(value);\r\n }\r\n get language() {\r\n if (this._language != null)\r\n return this._language;\r\n return ConfigurationService.defaultLanguage;\r\n }\r\n set homeUrl(value: string) {\r\n this._homeUrl = value;\r\n this.saveToLocalStore(value, this._DBkeys.HOME_URL);\r\n }\r\n get homeUrl() {\r\n if (this._homeUrl != null)\r\n return this._homeUrl;\r\n return ConfigurationService.defaultHomeUrl;\r\n }\r\n set theme(value: string) {\r\n this._theme = value;\r\n this.saveToLocalStore(value, this._DBkeys.THEME);\r\n }\r\n get theme() {\r\n if (this._theme != null)\r\n return this._theme;\r\n return ConfigurationService.defaultTheme;\r\n }\r\n set showDashboardStatistics(value: boolean) {\r\n this._showDashboardStatistics = value;\r\n this.saveToLocalStore(value, this._DBkeys.SHOW_DASHBOARD_STATISTICS);\r\n }\r\n get showDashboardStatistics() {\r\n if (this._showDashboardStatistics != null)\r\n return this._showDashboardStatistics;\r\n return ConfigurationService.defaultShowDashboardStatistics;\r\n }\r\n set showDashboardNotifications(value: boolean) {\r\n this._showDashboardNotifications = value;\r\n this.saveToLocalStore(value, this._DBkeys.SHOW_DASHBOARD_NOTIFICATIONS);\r\n }\r\n get showDashboardNotifications() {\r\n if (this._showDashboardNotifications != null)\r\n return this._showDashboardNotifications;\r\n return ConfigurationService.defaultShowDashboardNotifications;\r\n }\r\n set showDashboardTodo(value: boolean) {\r\n this._showDashboardTodo = value;\r\n this.saveToLocalStore(value, this._DBkeys.SHOW_DASHBOARD_TODO);\r\n }\r\n get showDashboardTodo() {\r\n if (this._showDashboardTodo != null)\r\n return this._showDashboardTodo;\r\n return ConfigurationService.defaultShowDashboardTodo;\r\n }\r\n set showDashboardBanner(value: boolean) {\r\n this._showDashboardBanner = value;\r\n this.saveToLocalStore(value, this._DBkeys.SHOW_DASHBOARD_BANNER);\r\n }\r\n get showDashboardBanner() {\r\n if (this._showDashboardBanner != null)\r\n return this._showDashboardBanner;\r\n return ConfigurationService.defaultShowDashboardBanner;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nexport function isNullOrUndefined(value : any){\r\n return value === null || value === undefined;\r\n}\r\n\r\nexport function isNumber(value : any)\r\n{\r\n return typeof value === 'number';\r\n}\r\n\r\n@Injectable()\r\nexport class CorrectYeKeService {\r\n public static getCorrectYeKe(text: string): string {\r\n if (!text)\r\n return '';\r\n if (isNumber(text))\r\n return text;\r\n var s = text.replace(String.fromCharCode(1603), String.fromCharCode(1705))\r\n .replace(String.fromCharCode(1609), String.fromCharCode(1740))\r\n .replace(String.fromCharCode(1610), String.fromCharCode(1740))\r\n .replace(String.fromCharCode(1568), String.fromCharCode(1740))\r\n .replace(String.fromCharCode(1574), String.fromCharCode(1740))\r\n .replace(String.fromCharCode(1597), String.fromCharCode(1740))\r\n .replace(String.fromCharCode(1598), String.fromCharCode(1740))\r\n .replace(String.fromCharCode(1599), String.fromCharCode(1740))\r\n .replace(String.fromCharCode(1656), String.fromCharCode(1740))\r\n .replace(String.fromCharCode(1744), String.fromCharCode(1740))\r\n .replace(String.fromCharCode(1745), String.fromCharCode(1740))\r\n .replace(String.fromCharCode(1741), String.fromCharCode(1740))\r\n .replace(String.fromCharCode(1742), String.fromCharCode(1740));\r\n if (isNullOrUndefined(s))\r\n return text;\r\n return s;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n@Injectable()\r\nexport class DBkeys {\r\n public static readonly CURRENT_USER = \"current_user\";\r\n public static readonly USER_PERMISSIONS = \"user_permissions\";\r\n public static readonly USER_CONTROLLERS = \"user_controllers\";\r\n public static readonly USER_ROLES = \"user_roles\";\r\n public static readonly ACTIVE_URLS = \"active_urls\";\r\n public static readonly ACCESS_TOKEN = \"access_token\";\r\n public static readonly ID_TOKEN = \"id_token\";\r\n public static readonly REFRESH_TOKEN = \"refresh_token\";\r\n public static readonly TOKEN_EXPIRES_IN = \"expires_in\";\r\n public static readonly CURRENT_USER_INFO = \"current_user_info\";\r\n public static readonly CURRENT_FISCAL_YEAR = \"current_fiscal_year\";\r\n public static readonly HAS_LOCAL_SETTING = \"has_local_setting\";\r\n public static readonly CURRENT_BRANCH = \"current_branch\";\r\n public static readonly CURRENT_BRANCH_ID = \"current_branch_id\";\r\n public static readonly LOOK_UP_INFO = \"look_up_info\";\r\n public static readonly REVIEW_FILTER_INFO = \"review_filter_info\";\r\n public static readonly POLICY_INFO = \"policy_info\";\r\n public static readonly SMARTWIFI_POLICY_INFO = \"smartwifi_policy_info\";\r\n public static readonly PRICE_LIST_INFO = \"price_list_info\";\r\n public static readonly TAX_DUTY = \"tax_duty\";\r\n public static readonly REMEMBER_ME = \"remember_me\";\r\n public static readonly LANGUAGE = \"language\";\r\n public static readonly HOME_URL = \"home_url\";\r\n public static readonly THEME = \"theme\";\r\n public static readonly SHOW_DASHBOARD_STATISTICS = \"show_dashboard_statistics\";\r\n public static readonly SHOW_DASHBOARD_NOTIFICATIONS = \"show_dashboard_notifications\";\r\n public static readonly SHOW_DASHBOARD_TODO = \"show_dashboard_todo\";\r\n public static readonly SHOW_DASHBOARD_BANNER = \"show_dashboard_banner\";\r\n public static readonly CURRENT_INFORMATION = \"current_information\";\r\n public static readonly PAY_CURENTYEAR_MONTH = \"PayCurentYearMonth\";\r\n}\r\n","import { Directive, OnInit, ElementRef, HostListener, Input } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[ssg-draggable]'\r\n })\r\n export class SSGDraggable implements OnInit{\r\n topStart:number=0;\r\n leftStart:number=0;\r\n _allowDrag:boolean = true;\r\n md:boolean;\r\n \r\n constructor(public element: ElementRef) {}\r\n \r\n ngOnInit(){\r\n // css changes\r\n if(this._allowDrag){\r\n this.element.nativeElement.style.position = 'relative';\r\n this.element.nativeElement.parentElement.style.position = 'relative';\r\n this.element.nativeElement.className += ' cursor-draggable';\r\n }\r\n }\r\n \r\n @HostListener('mousedown', ['$event'])\r\n onMouseDown(event:MouseEvent) {\r\n if(event.button === 2)\r\n return; // prevents right click drag, remove his if you don't want it\r\n this.md = true;\r\n this.topStart = event.clientY - this.element.nativeElement.style.top.replace('px', '');\r\n this.leftStart = event.clientX - this.element.nativeElement.style.left.replace('px','');\r\n }\r\n \r\n @HostListener('document:mouseup')\r\n onMouseUp(event:MouseEvent) {\r\n this.md = false;\r\n }\r\n \r\n @HostListener('document:mousemove', ['$event'])\r\n onMouseMove(event:MouseEvent) {\r\n if(this.md && this._allowDrag){\r\n this.element.nativeElement.parentElement.style.top = (event.clientY - this.topStart) + 'px';\r\n this.element.nativeElement.parentElement.style.left = (event.clientX - this.leftStart) + 'px';\r\n //this.element.nativeElement.style.top = (event.clientY - this.topStart) + 'px';\r\n //this.element.nativeElement.style.left = (event.clientX - this.leftStart) + 'px';\r\n }\r\n }\r\n \r\n @HostListener('touchstart', ['$event'])\r\n onTouchStart(event:TouchEvent) {\r\n this.md = true;\r\n this.topStart = event.changedTouches[0].clientY - this.element.nativeElement.style.top.replace('px','');\r\n this.leftStart = event.changedTouches[0].clientX - this.element.nativeElement.style.left.replace('px','');\r\n event.stopPropagation();\r\n }\r\n \r\n @HostListener('document:touchend')\r\n onTouchEnd() {\r\n this.md = false;\r\n }\r\n \r\n @HostListener('document:touchmove', ['$event'])\r\n onTouchMove(event:TouchEvent) {\r\n if(this.md && this._allowDrag){\r\n this.element.nativeElement.style.top = ( event.changedTouches[0].clientY - this.topStart ) + 'px';\r\n this.element.nativeElement.style.left = ( event.changedTouches[0].clientX - this.leftStart ) + 'px';\r\n }\r\n event.stopPropagation();\r\n }\r\n \r\n @Input('ssg-draggable')\r\n set allowDrag(value:boolean){\r\n this._allowDrag = value;\r\n if(this._allowDrag)\r\n this.element.nativeElement.className += ' cursor-draggable';\r\n else\r\n this.element.nativeElement.className = this.element.nativeElement.className\r\n .replace(' cursor-draggable','');\r\n }\r\n }\r\n","import { Injectable } from '@angular/core';\r\nimport * as CryptoJS from 'crypto-js';\r\nimport { release } from 'os';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class EncrDecrService {\r\n private secretKey: string = 'SEP!DZN!M@AZ!NSHOHR@T@L!S@F@!E';\r\n constructor() { }\r\n\r\n //The set method is use for encrypt the value.\r\n set(value) {\r\n var encrypted = CryptoJS.AES.encrypt(value.toString(), this.secretKey);\r\n\r\n return `SEP!DZ${encrypted.toString()}`;\r\n }\r\n\r\n //The get method is use for decrypt the value.\r\n get(value) {\r\n if (value && value.substring(0, 6) === 'SEP!DZ') {\r\n value = value.replace('SEP!DZ', '');\r\n var decrypted = CryptoJS.AES.decrypt(value, this.secretKey);\r\n return decrypted.toString(CryptoJS.enc.Utf8);\r\n }\r\n return value;\r\n }\r\n}\r\n","import { Component, Input, OnInit, AfterViewInit } from '@angular/core';\r\nimport { DialogType } from '../../models/dialog.enum';\r\nimport { SimpleModalComponent } from '../sepidzmodal/simple-modal.component';\r\n\r\ndeclare var $: any;\r\n\r\n\r\n@Component({\r\n selector: 'ngx-error-dialog',\r\n templateUrl: './error-dialog.component.html',\r\n styleUrls: ['./error-dialog.component.scss']\r\n})\r\nexport class ErrorDialogComponent extends SimpleModalComponent implements OnInit, AfterViewInit, ConfirmModel {\r\n @Input() title: string = \"تست\";\r\n @Input() errorMessage: string = \"آزمایشی\";\r\n @Input() dialogType: DialogType = DialogType.alert;\r\n constructor() {\r\n super();\r\n }\r\n ngAfterViewInit(): void {\r\n }\r\n ngOnInit(): void {\r\n // setTimeout(() => this.setDragable(), 300);\r\n }\r\n // setDragable() {\r\n // $(document).ready(function () {\r\n // let modalContent: any = $('.content');\r\n // let modalHeader = $('.modal-header');\r\n // modalHeader.addClass('cursor-all-scroll');\r\n // modalContent.draggable({\r\n // handle: '.modal-header'\r\n // });\r\n // });\r\n // }\r\n cancel() {\r\n this.closeModal();\r\n }\r\n isConfirm(): boolean {\r\n return this.dialogType && this.dialogType === DialogType.confirm;\r\n }\r\n submit(flag: boolean) {\r\n this.result = flag;\r\n this.closeModal();\r\n }\r\n get message() {\r\n return this.errorMessage;\r\n }\r\n}\r\nexport interface ConfirmModel {\r\n title: string;\r\n errorMessage: string;\r\n dialogType: DialogType;\r\n}\r\n","
\r\n
\r\n \r\n {{ title }}\r\n
\r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n","import { NgModule, ModuleWithProviders } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ErrorDialogService } from './error-dialog.service';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ErrorDialogComponent } from './error-dialog.component';\r\nconst components = [\r\n ErrorDialogComponent,\r\n]\r\nconst providers = [\r\n ErrorDialogService\r\n]\r\n@NgModule({\r\n declarations: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ],\r\n exports: [\r\n ErrorDialogComponent,\r\n ],\r\n providers: [\r\n ...providers\r\n ]\r\n})\r\nexport class ErrorDialogModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: ErrorDialogModule,\r\n providers: [...providers]\r\n };\r\n }\r\n}\r\n","import { Injectable, OnDestroy } from \"@angular/core\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { ErrorDialogComponent } from \"./error-dialog.component\";\r\n\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { DialogType } from \"../../models/dialog.enum\";\r\nimport { SimpleModalService } from \"../sepidzmodal/simple-modal.service\";\r\n@Injectable()\r\nexport class ErrorDialogService implements OnDestroy {\r\n ngUnsubscribe = new Subject();\r\n protected onClose$: Subject = new Subject();\r\n get onClose(): Observable {\r\n return this.onClose$.asObservable();\r\n }\r\n constructor(private dialogService: SimpleModalService) {}\r\n openDialog(title: string, errorMessage: string, _type: DialogType) {\r\n setTimeout(\r\n () =>\r\n this.dialogService\r\n .open(\r\n ErrorDialogComponent,\r\n {\r\n title: title,\r\n errorMessage: errorMessage,\r\n dialogType: _type,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((flag) => {\r\n this.onClose$.next(flag);\r\n }),\r\n 200\r\n );\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n if (this.onClose$) {\r\n this.onClose$.next(null);\r\n this.onClose$.complete();\r\n }\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable, ReplaySubject, throwError } from \"rxjs\";\r\nimport { AuthService } from \"./auth.service\";\r\nimport { ConfigurationService } from \"./configuration.service\";\r\nimport { catchError, finalize, tap } from \"rxjs/operators\";\r\nexport class AggregatesInfo {\r\n public ColumnName: string;\r\n public Value: number;\r\n}\r\nexport class PagingDataResult {\r\n public Data: T[];\r\n public TotalPage: number;\r\n public AggregatesInfo: AggregatesInfo[];\r\n}\r\nexport class GridFilter {\r\n public Type: string;\r\n public Filed: any;\r\n public Operator: any;\r\n public Value: any;\r\n public Skip: number;\r\n public Take: number;\r\n public Logic?: string;\r\n}\r\n\r\ntype Queue = {\r\n replySubject: ReplaySubject;\r\n model?: string;\r\n};\r\n\r\ntype QueueList = {\r\n [key: string]: Queue;\r\n};\r\n\r\ntype ApiStatusInQueueList = \"notExist\" | \"exist\" | \"existWithSameApiNameAndOtherModel\";\r\n\r\n@Injectable()\r\nexport class HttpCommonService {\r\n private requestQueueList: QueueList = {};\r\n public apiBaseUrl: string;\r\n constructor(public http: HttpClient, private authService: AuthService, private configurations: ConfigurationService) {\r\n this.http = http;\r\n this.apiBaseUrl = `${this.configurations.baseUrl}/api/`;\r\n }\r\n stringifyModel(model: any) {\r\n return JSON.stringify(model);\r\n }\r\n create(apiName: string, model: any): Observable {\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.post(url, this.stringifyModel(model), this.authService.getRequestHeaders()), model);\r\n }\r\n postCustom(apiName: string, model: any): Observable {\r\n return this.handleRequest(apiName, this.http.post(apiName, this.stringifyModel(model), this.authService.getRequestHeaders()), model);\r\n }\r\n update(apiName: string, model: any): Observable {\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.put(url + \"/\" + model[\"Id\"], this.stringifyModel(model), this.authService.getRequestHeaders()), model);\r\n }\r\n\r\n put(apiName: string, model: any): Observable {\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.put(url, this.stringifyModel(model), this.authService.getRequestHeaders()), model);\r\n }\r\n\r\n updateItem(apiName: string, model: any): Observable {\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.put(url, this.stringifyModel(model), this.authService.getRequestHeaders()), model);\r\n }\r\n\r\n bulkUpdate(apiName: string, models: any[]): Observable {\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.put(url + \"/BulkUpdate\", this.stringifyModel(models), this.authService.getRequestHeaders()), models);\r\n }\r\n bulkInsert(apiName: string, models: any[]): Observable {\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.post(url + \"/BulkInsert\", this.stringifyModel(models), this.authService.getRequestHeaders()), models);\r\n }\r\n createlist(apiName: string, models: any[]): Observable {\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.post(url, this.stringifyModel(models), this.authService.getRequestHeaders()), models);\r\n }\r\n bulkDelete(apiName: string, models: any[]): Observable {\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.post(url + \"/BulkDelete\", this.stringifyModel(models), this.authService.getRequestHeaders()), models);\r\n }\r\n delete(apiName: string, id: any): Observable {\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.delete(url + \"/\" + id, this.authService.getRequestHeaders()));\r\n }\r\n deleteByParameter(apiName: string): Observable {\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.delete(url, this.authService.getRequestHeaders()));\r\n }\r\n getList(apiName: string): Observable {\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.get(url, this.authService.getRequestHeaders()));\r\n }\r\n getListWithParameter(apiName: string, parameter1: number, parameter2: number): Observable {\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.get(url + \"/\" + parameter1 + \"/\" + parameter2, this.authService.getRequestHeaders()));\r\n }\r\n get(apiName: string): Observable {\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.get(url, this.authService.getRequestHeaders()));\r\n }\r\n\r\n getCustom(apiName: string): Observable {\r\n return this.handleRequest(apiName, this.http.get(apiName, this.authService.getRequestHeaders()));\r\n }\r\n getControlsList(apiName: string, custom?: boolean): Observable {\r\n const url = this.apiBaseUrl + apiName + (!custom ? \"/EntityInfo\" : \"\");\r\n return this.handleRequest(url, this.http.get(url, this.authService.getRequestHeaders()));\r\n }\r\n getMaxCode(apiName: string): Observable {\r\n const url = this.apiBaseUrl + apiName + \"/GetMaxCode\";\r\n return this.handleRequest(url, this.http.get(url, this.authService.getRequestHeaders()));\r\n }\r\n getMaxCodeWithParameter(apiName: string, id: number, parameter1: number, parameter2: number = undefined): Observable {\r\n const url = this.apiBaseUrl + apiName + \"/\" + id + \"/\" + parameter1 + \"/\" + parameter2;\r\n return this.handleRequest(url, this.http.get(url, this.authService.getRequestHeaders()));\r\n }\r\n getItem(apiName: string, id: number): Observable {\r\n const url = this.apiBaseUrl + apiName + \"/\" + id;\r\n return this.handleRequest(url, this.http.get(url, this.authService.getRequestHeaders()));\r\n }\r\n getLookup(lookupName: string, parentId: number, parentName: string): Observable {\r\n var params = null;\r\n if (parentId != null) {\r\n params = new URLSearchParams();\r\n params.set(parentName, parentId.toString());\r\n }\r\n const url = this.apiBaseUrl + \"LookUp/\" + lookupName;\r\n return this.handleRequest(url, this.http.get(url, this.authService.getRequestHeaders()));\r\n }\r\n getLookupByCategory(apiName: string, systemName: string, category: string): Observable {\r\n const url = this.apiBaseUrl + apiName + \"/\" + systemName + \"/\" + category;\r\n return this.handleRequest(url, this.http.get(url, this.authService.getRequestHeaders()));\r\n }\r\n\r\n GetPaginingCount(apiName: string, searchMember: string, filterValue: string, SortColumn: string = \"\"): Observable {\r\n const url =\r\n this.apiBaseUrl + apiName + \"/GetPaginingCount?searchMember=\" + searchMember + \"&filterValue=\" + filterValue + \"&SortColumn=\" + SortColumn;\r\n return this.handleRequest(url, this.http.get(url, this.authService.getRequestHeaders()));\r\n }\r\n //string searchMember, string filterValue, int CurrentPage, int pageSize\r\n GetPagining(\r\n apiName: string,\r\n searchMember: string,\r\n filterValue: string,\r\n skip: number,\r\n pageSize: number,\r\n SortColumn: string = \"\",\r\n IsEqual: boolean = false\r\n ): Observable {\r\n const url =\r\n this.apiBaseUrl +\r\n apiName +\r\n \"/?searchMember=\" +\r\n searchMember +\r\n \"&filterValue=\" +\r\n filterValue +\r\n \"&skip=\" +\r\n skip +\r\n \"&pageSize=\" +\r\n pageSize +\r\n \"&SortColumn=\" +\r\n SortColumn +\r\n \"&IsEqual=\" +\r\n IsEqual;\r\n return this.handleRequest(url, this.http.get(url, this.authService.getRequestHeaders()));\r\n }\r\n GetFilterGrid(apiName: string, filters: GridFilter[]): Observable {\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.post(url, JSON.stringify(filters), this.authService.getRequestHeaders()), filters);\r\n }\r\n searchToLookup(apiName: string, searchField: string, searchText: string): Observable {\r\n const url = this.apiBaseUrl + apiName + \"/GetLookup\" + \"/\" + searchField + \"/\" + searchText;\r\n return this.handleRequest(url, this.http.get(url, this.authService.getRequestHeaders()));\r\n }\r\n\r\n saveReportFile(apiName: string, model: any): Observable {\r\n const url = this.apiBaseUrl + apiName + \"/SaveReportFile\";\r\n return this.handleRequest(url, this.http.post(url, this.stringifyModel(model), this.authService.getRequestHeaders()), model);\r\n }\r\n\r\n upload(apiName: string, body: any): Observable {\r\n let headers: HttpHeaders = new HttpHeaders({\r\n \"Content-Type\": \"application/octet-stream\",\r\n });\r\n const url = this.apiBaseUrl + apiName;\r\n return this.handleRequest(url, this.http.post(url, body), body);\r\n }\r\n\r\n getExcel(apiName: string, params: any) {\r\n const headers = new HttpHeaders().set(\"Accept\", \"application/ms-excel\");\r\n const url = this.apiBaseUrl + apiName;\r\n if (typeof params === \"object\") {\r\n return this.handleRequest(url, this.http.post(url, params, { headers: headers, responseType: \"blob\" as \"json\", observe: \"response\" }));\r\n } else return this.handleRequest(url, this.http.get(url, { headers: headers, responseType: \"blob\" as \"json\", observe: \"response\" }));\r\n }\r\n\r\n private handleRequest(apiName: string, observable: Observable, model?: any): Observable {\r\n let exist = this.isItOnTheList(model, apiName);\r\n if (exist == \"exist\") return this.requestQueueList[apiName].replySubject.asObservable();\r\n const subject = new ReplaySubject(1);\r\n const queue: Queue = { replySubject: subject, model };\r\n if (exist === \"existWithSameApiNameAndOtherModel\") {\r\n const randomNumber = Math.floor(Math.random() * 123456789);\r\n apiName = apiName + randomNumber;\r\n }\r\n this.requestQueueList[apiName] = queue;\r\n return observable.pipe(\r\n tap((res) => this.handleSuccess(apiName, res)),\r\n catchError((err) => this.handleFailure(apiName, err)),\r\n finalize(() => this.deleteAndUnsubscribeQueueItem(apiName))\r\n );\r\n }\r\n\r\n private isItOnTheList(model: any, apiName: string): ApiStatusInQueueList {\r\n let exist: ApiStatusInQueueList = \"notExist\";\r\n if (model && !!this.requestQueueList[apiName]) {\r\n const stringifyModel = this.stringifyModel(model);\r\n if (this.requestQueueList[apiName].model === stringifyModel) exist = \"exist\";\r\n else exist = \"existWithSameApiNameAndOtherModel\";\r\n } else if (!!this.requestQueueList[apiName]) exist = \"exist\";\r\n return exist;\r\n }\r\n\r\n private handleSuccess(apiName: string, res: any): void {\r\n this.requestQueueList[apiName]?.replySubject.next(res);\r\n this.deleteAndUnsubscribeQueueItem(apiName);\r\n }\r\n\r\n private handleFailure(apiName: string, err: any): Observable {\r\n this.requestQueueList[apiName]?.replySubject.error(err);\r\n this.deleteAndUnsubscribeQueueItem(apiName);\r\n return throwError(err);\r\n }\r\n\r\n private deleteAndUnsubscribeQueueItem(apiName: string): void {\r\n const queueItem = this.requestQueueList[apiName];\r\n if (queueItem) {\r\n queueItem.replySubject.unsubscribe();\r\n queueItem.model = null;\r\n queueItem.replySubject = null;\r\n delete this.requestQueueList[apiName];\r\n }\r\n }\r\n}\r\n","export * from './account.service';\r\nexport * from './animations';\r\nexport {AppTranslationService} from './app-translation.service';\r\nexport {AuthGuard} from './auth-guard.service';\r\nexport * from './auth.service';\r\nexport * from './http-common.service';\r\nexport * from './local-store-manager.service';\r\nexport * from './utilities';\r\nexport * from './configuration.service';\r\nexport * from './correctyeke.service';\r\nexport * from './show-toastr.service';\r\nexport * from './lookup.service';\r\nexport * from './analytics.service';","import { Injectable } from \"@angular/core\";\r\n\r\nconst VERSION = 1;\r\n\r\ntype Area = \"FrontOffice\" | \"BackOffice\";\r\ntype Key = \"InvDaily\" | \"Categories\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class IndexedDbService {\r\n db: IDBDatabase;\r\n\r\n constructor() {\r\n if (!window.indexedDB) {\r\n console.log(\"IndexedDB not available\");\r\n } else {\r\n const openRequest = indexedDB.open(\"Sepidz\", VERSION);\r\n openRequest.onerror = () => {\r\n console.log(openRequest.error);\r\n };\r\n openRequest.onsuccess = () => {\r\n this.db = openRequest.result;\r\n };\r\n openRequest.onupgradeneeded = () => {\r\n try {\r\n this.db = openRequest.result;\r\n if (!this.db.objectStoreNames.contains(\"FrontOffice\")) {\r\n this.db.createObjectStore(\"FrontOffice\");\r\n }\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n };\r\n }\r\n }\r\n\r\n get(area: Area, key: Key): Promise {\r\n return new Promise((resolve, reject) => {\r\n const transaction = this.db.transaction([area], \"readonly\");\r\n const store = transaction.objectStore(area);\r\n const getRequest: IDBRequest = store.get(key);\r\n getRequest.onerror = () => {\r\n console.log(getRequest.error);\r\n reject(getRequest.error);\r\n };\r\n getRequest.onsuccess = () => {\r\n const records = getRequest.result;\r\n if (!records) resolve(null);\r\n else resolve(getRequest.result);\r\n };\r\n });\r\n }\r\n\r\n put(area: Area, key: Key, value: unknown) {\r\n return new Promise((resolve, reject) => {\r\n const onError = (error) => {\r\n console.log(error);\r\n };\r\n try {\r\n const transaction = this.db.transaction([area], \"readwrite\");\r\n const store = transaction.objectStore(area);\r\n const putRequest = store.put(value, key);\r\n putRequest.onerror = () => {\r\n onError(putRequest.error);\r\n reject(putRequest.error);\r\n };\r\n putRequest.onsuccess = () => {\r\n resolve(putRequest.result);\r\n };\r\n } catch (err) {\r\n onError(err);\r\n }\r\n });\r\n }\r\n\r\n clear(area: Area, key: Key) {\r\n return new Promise((resolve, reject) => {\r\n const onError = (error) => {\r\n console.log(error);\r\n };\r\n try {\r\n const transaction = this.db.transaction([area], \"readwrite\");\r\n const store = transaction.objectStore(area);\r\n const deleteRequest = store.delete(key);\r\n deleteRequest.onerror = () => {\r\n onError(deleteRequest.error);\r\n reject(deleteRequest.error);\r\n };\r\n deleteRequest.onsuccess = () => {\r\n resolve(true);\r\n };\r\n } catch (err) {\r\n onError(err);\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n@Injectable()\r\nexport class JwtHelper {\r\n public urlBase64Decode(str: string): string {\r\n let output = str.replace(/-/g, '+').replace(/_/g, '/');\r\n switch (output.length % 4) {\r\n case 0: { break; }\r\n case 2: { output += '=='; break; }\r\n case 3: { output += '='; break; }\r\n default: {\r\n throw 'Illegal base64url string!';\r\n }\r\n }\r\n return this.b64DecodeUnicode(output);\r\n }\r\n // https://developer.mozilla.org/en/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#The_Unicode_Problem\r\n private b64DecodeUnicode(str: any) {\r\n return decodeURIComponent(Array.prototype.map.call(atob(str), (c: any) => {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n }\r\n public decodeToken(token: string): any {\r\n let parts = token.split('.');\r\n if (parts.length !== 3) {\r\n throw new Error('JWT must have 3 parts');\r\n }\r\n let decoded = this.urlBase64Decode(parts[1]);\r\n if (!decoded) {\r\n throw new Error('Cannot decode the token');\r\n }\r\n return JSON.parse(decoded);\r\n }\r\n public getTokenExpirationDate(token: string): Date {\r\n let decoded: any;\r\n decoded = this.decodeToken(token);\r\n if (!decoded.hasOwnProperty('exp')) {\r\n return null;\r\n }\r\n let date = new Date(0); // The 0 here is the key, which sets the date to the epoch\r\n date.setUTCSeconds(decoded.exp);\r\n return date;\r\n }\r\n public isTokenExpired(token: string, offsetSeconds?: number): boolean {\r\n let date = this.getTokenExpirationDate(token);\r\n offsetSeconds = offsetSeconds || 0;\r\n if (date == null) {\r\n return false;\r\n }\r\n // Token expired?\r\n return !(date.valueOf() > (new Date().valueOf() + (offsetSeconds * 1000)));\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport { Utilities } from './utilities';\r\nimport { EncrDecrService } from './encr-decr.service';\r\n@Injectable()\r\n/**\r\n* Provides a wrapper for accessing the web storage API and synchronizing session storage across tabs/windows.\r\n*/\r\nexport class LocalStoreManager {\r\n constructor(private encrdecr: EncrDecrService) {\r\n }\r\n private static syncListenerInitialised = false;\r\n private syncKeys: string[] = [];\r\n private initEvent = new Subject();\r\n private reservedKeys: string[] =\r\n [\r\n 'sync_keys',\r\n 'addToSyncKeys',\r\n 'removeFromSyncKeys',\r\n 'getSessionStorage',\r\n 'setSessionStorage',\r\n 'addToSessionStorage',\r\n 'removeFromSessionStorage',\r\n 'clearAllSessionsStorage'\r\n ];\r\n\r\n public static readonly DBKEY_USER_DATA = \"user_data\";\r\n private static readonly DBKEY_SYNC_KEYS = \"sync_keys\";\r\n private secretKeys: string[] = ['expires_in', 'current_user_info', 'expires_in', 'expires_in', 'id_token', 'TOKEN', 'current_user', 'current_information', 'access_token'];\r\n public initialiseStorageSyncListener() {\r\n if (LocalStoreManager.syncListenerInitialised === true)\r\n return;\r\n LocalStoreManager.syncListenerInitialised = true;\r\n window.addEventListener(\"storage\", this.sessionStorageTransferHandler, false);\r\n this.syncSessionStorage();\r\n }\r\n public deinitialiseStorageSyncListener() {\r\n window.removeEventListener(\"storage\", this.sessionStorageTransferHandler, false);\r\n LocalStoreManager.syncListenerInitialised = false;\r\n }\r\n private sessionStorageTransferHandler = (event: StorageEvent) => {\r\n if (!event.newValue)\r\n return;\r\n if (event.key === 'getSessionStorage') {\r\n if (sessionStorage.length) {\r\n this.localStorageSetItem('setSessionStorage', sessionStorage);\r\n localStorage.removeItem('setSessionStorage');\r\n }\r\n }\r\n else if (event.key === 'setSessionStorage') {\r\n if (!this.syncKeys.length)\r\n this.loadSyncKeys();\r\n let data = JSON.parse(event.newValue);\r\n //console.info(\"Set => Key: Transfer setSessionStorage\" + \", data: \" + JSON.stringify(data));\r\n for (let key in data) {\r\n if (this.syncKeysContains(key))\r\n this.sessionStorageSetItem(key, JSON.parse(data[key]));\r\n }\r\n this.onInit();\r\n }\r\n else if (event.key === 'addToSessionStorage') {\r\n let data = JSON.parse(event.newValue);\r\n //console.warn(\"Set => Key: Transfer addToSessionStorage\" + \", data: \" + JSON.stringify(data));\r\n this.addToSessionStorageHelper(data[\"data\"], data[\"key\"]);\r\n }\r\n else if (event.key === 'removeFromSessionStorage') {\r\n this.removeFromSessionStorageHelper(event.newValue);\r\n }\r\n else if (event.key === 'clearAllSessionsStorage' && sessionStorage.length) {\r\n this.clearInstanceSessionStorage();\r\n }\r\n else if (event.key === 'addToSyncKeys') {\r\n this.addToSyncKeysHelper(event.newValue);\r\n }\r\n else if (event.key === 'removeFromSyncKeys') {\r\n this.removeFromSyncKeysHelper(event.newValue);\r\n }\r\n }\r\n private syncSessionStorage() {\r\n try {\r\n localStorage.setItem('getSessionStorage', '_dummy');\r\n localStorage.removeItem('getSessionStorage');\r\n } catch (e) {\r\n console.log(\"Local Storage is full, Please empty data\");\r\n }\r\n }\r\n public clearAllStorage() {\r\n this.clearAllSessionsStorage();\r\n this.clearLocalStorage();\r\n }\r\n public clearAllSessionsStorage() {\r\n try {\r\n this.clearInstanceSessionStorage();\r\n localStorage.removeItem(LocalStoreManager.DBKEY_SYNC_KEYS);\r\n localStorage.setItem('clearAllSessionsStorage', '_dummy');\r\n localStorage.removeItem('clearAllSessionsStorage');\r\n } catch (e) {\r\n console.log(\"Local Storage is full, Please empty data\");\r\n }\r\n }\r\n public clearInstanceSessionStorage() {\r\n sessionStorage.clear();\r\n this.syncKeys = [];\r\n }\r\n public clearLocalStorage() {\r\n localStorage.clear();\r\n }\r\n private addToSessionStorage(data: any, key: string) {\r\n this.addToSessionStorageHelper(data, key);\r\n this.addToSyncKeysBackup(key);\r\n this.localStorageSetItem('addToSessionStorage', { key: key, data: data });\r\n localStorage.removeItem('addToSessionStorage');\r\n }\r\n private addToSessionStorageHelper(data: any, key: string) {\r\n this.addToSyncKeysHelper(key);\r\n this.sessionStorageSetItem(key, data);\r\n }\r\n private removeFromSessionStorage(keyToRemove: string) {\r\n try {\r\n this.removeFromSessionStorageHelper(keyToRemove);\r\n this.removeFromSyncKeysBackup(keyToRemove);\r\n localStorage.setItem('removeFromSessionStorage', keyToRemove);\r\n localStorage.removeItem('removeFromSessionStorage');\r\n } catch (e) {\r\n console.log(\"Local Storage is full, Please empty data\");\r\n }\r\n }\r\n private removeFromSessionStorageHelper(keyToRemove: string) {\r\n sessionStorage.removeItem(keyToRemove);\r\n this.removeFromSyncKeysHelper(keyToRemove);\r\n }\r\n private testForInvalidKeys(key: string) {\r\n if (!key)\r\n throw new Error(\"key cannot be empty\")\r\n if (this.reservedKeys.some(x => x === key))\r\n throw new Error(`The storage key \"${key}\" is reserved and cannot be used. Please use a different key`);\r\n }\r\n private syncKeysContains(key: string) {\r\n return this.syncKeys.some(x => x === key);\r\n }\r\n private loadSyncKeys() {\r\n if (this.syncKeys.length)\r\n return;\r\n this.syncKeys = this.getSyncKeysFromStorage();\r\n }\r\n private getSyncKeysFromStorage(defaultValue: string[] = []): string[] {\r\n let data = this.localStorageGetItem(LocalStoreManager.DBKEY_SYNC_KEYS);\r\n if (data === null)\r\n return defaultValue;\r\n else\r\n return data;\r\n }\r\n private addToSyncKeys(key: string) {\r\n try {\r\n this.addToSyncKeysHelper(key);\r\n this.addToSyncKeysBackup(key);\r\n localStorage.setItem('addToSyncKeys', key);\r\n localStorage.removeItem('addToSyncKeys');\r\n } catch (e) {\r\n console.log(\"Local Storage is full, Please empty data\");\r\n }\r\n }\r\n private addToSyncKeysBackup(key: string) {\r\n let storedSyncKeys = this.getSyncKeysFromStorage();\r\n if (!storedSyncKeys.some(x => x === key)) {\r\n storedSyncKeys.push(key);\r\n this.localStorageSetItem(LocalStoreManager.DBKEY_SYNC_KEYS, storedSyncKeys);\r\n }\r\n }\r\n private removeFromSyncKeysBackup(key: string) {\r\n let storedSyncKeys = this.getSyncKeysFromStorage();\r\n let index = storedSyncKeys.indexOf(key);\r\n if (index > -1) {\r\n storedSyncKeys.splice(index, 1);\r\n this.localStorageSetItem(LocalStoreManager.DBKEY_SYNC_KEYS, storedSyncKeys);\r\n }\r\n }\r\n private addToSyncKeysHelper(key: string) {\r\n if (!this.syncKeysContains(key))\r\n this.syncKeys.push(key);\r\n }\r\n private removeFromSyncKeys(key: string) {\r\n try {\r\n this.removeFromSyncKeysHelper(key);\r\n this.removeFromSyncKeysBackup(key);\r\n localStorage.setItem('removeFromSyncKeys', key);\r\n localStorage.removeItem('removeFromSyncKeys');\r\n } catch (e) {\r\n console.log(\"Local Storage is full, Please empty data\");\r\n }\r\n }\r\n private removeFromSyncKeysHelper(key: string) {\r\n let index = this.syncKeys.indexOf(key);\r\n if (index > -1) {\r\n this.syncKeys.splice(index, 1);\r\n }\r\n }\r\n public saveSessionData(data: any, key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n this.removeFromSyncKeys(key);\r\n localStorage.removeItem(key);\r\n this.sessionStorageSetItem(key, data);\r\n }\r\n public saveSyncedSessionData(data: any, key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n localStorage.removeItem(key);\r\n this.addToSessionStorage(data, key);\r\n }\r\n public savePermanentData(data: any, key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n this.removeFromSessionStorage(key);\r\n this.localStorageSetItem(key, data);\r\n }\r\n public moveDataToSessionStorage(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n let data = this.getData(key);\r\n if (data === null)\r\n return;\r\n this.saveSessionData(data, key);\r\n }\r\n public moveDataToSyncedSessionStorage(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n let data = this.getData(key);\r\n if (data === null)\r\n return;\r\n this.saveSyncedSessionData(data, key);\r\n }\r\n public moveDataToPermanentStorage(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n let data = this.getData(key);\r\n if (data === null)\r\n return;\r\n this.savePermanentData(data, key);\r\n }\r\n public exists(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n let data = sessionStorage.getItem(key);\r\n if (data === null)\r\n data = localStorage.getItem(key);\r\n return data !== null;\r\n }\r\n public getData(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n let data = this.sessionStorageGetItem(key);\r\n if (data === null)\r\n data = this.localStorageGetItem(key);\r\n return data;\r\n }\r\n public getDataObject(key = LocalStoreManager.DBKEY_USER_DATA, isDateType = false): T {\r\n let data = this.getData(key);\r\n if (data !== null) {\r\n if (isDateType)\r\n data = new Date(data);\r\n return data;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n public deleteData(key = LocalStoreManager.DBKEY_USER_DATA) {\r\n this.testForInvalidKeys(key);\r\n this.removeFromSessionStorage(key);\r\n localStorage.removeItem(key);\r\n }\r\n private localStorageSetItem(key: string, data: any) {\r\n try {\r\n if (this.secretKeys.includes(key))\r\n localStorage.setItem(key, this.encrdecr.set(JSON.stringify(data)));\r\n else\r\n localStorage.setItem(key, JSON.stringify(data));\r\n } catch (e) {\r\n console.log(\"Local Storage is full, Please empty data\");\r\n }\r\n }\r\n private sessionStorageSetItem(key: string, data: any) {\r\n try {\r\n sessionStorage.setItem(key, JSON.stringify(data));\r\n }\r\n catch (e) {\r\n console.log(\"Local Storage is full, Please empty data\");\r\n }\r\n }\r\n private localStorageGetItem(key: string) {\r\n let encryptdaya = localStorage.getItem(key);\r\n if (encryptdaya && this.secretKeys.includes(key) && this.encrdecr.get(encryptdaya))\r\n return Utilities.JSonTryParse(this.encrdecr.get(encryptdaya));\r\n return Utilities.JSonTryParse(encryptdaya);\r\n }\r\n private sessionStorageGetItem(key: string) {\r\n let encryp = sessionStorage.getItem(key);\r\n return Utilities.JSonTryParse(encryp);\r\n }\r\n private onInit() {\r\n setTimeout(() => {\r\n this.initEvent.next(null);\r\n this.initEvent.complete();\r\n });\r\n }\r\n public getInitEvent(): Observable<{}> {\r\n return this.initEvent.asObservable();\r\n }\r\n}\r\n","import { Injectable, OnInit, OnDestroy } from \"@angular/core\";\r\nimport { HttpCommonService } from \"./http-common.service\";\r\nimport { BehaviorSubject, Observable, Subject, Unsubscribable } from \"rxjs\";\r\nimport { Lookup } from \"../models\";\r\nimport { LocalStoreManager } from './local-store-manager.service';\r\nimport { DBkeys } from './db-keys';\r\nimport { takeUntil } from 'rxjs/operators';\r\n@Injectable(\r\n {\r\n providedIn: 'root'\r\n })\r\nexport class LookupService implements OnDestroy {\r\n _DBkeys = DBkeys;\r\n ngUnsubscribe = new Subject();\r\n private data = new BehaviorSubject(this.localStorage.getDataObject(this._DBkeys.LOOK_UP_INFO) || []);\r\n private dataloding: boolean = false;\r\n constructor(protected httpCommonService: HttpCommonService, protected localStorage: LocalStoreManager) {\r\n this.getall();\r\n }\r\n async saveall() {\r\n if (!this.dataloding) {\r\n this.dataloding = true;\r\n await this.httpCommonService.getList('LookUp/LookupList')\r\n .pipe(takeUntil(this.ngUnsubscribe)).toPromise()\r\n .then((data: Lookup[]) => {\r\n if (data && data.length > 0) {\r\n this.localStorage.saveSessionData(data, this._DBkeys.LOOK_UP_INFO);\r\n this.data.next(data);\r\n this.dataloding = false;\r\n }\r\n }, err => this.dataloding = false);\r\n }\r\n }\r\n\r\n getall() {\r\n if (!this.localStorage.getDataObject(this._DBkeys.LOOK_UP_INFO)) {\r\n this.saveall();\r\n }\r\n if ((!this.data.getValue() || this.data.getValue().length <= 0)) {\r\n this.saveall();\r\n }\r\n }\r\n\r\n getLookupbyCategory(systemName: string, category: string): Observable {\r\n var abs = new BehaviorSubject([]);\r\n if (!this.data.getValue() || this.data.getValue().length <= 0)\r\n this.getall();\r\n this.data\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(d => {\r\n abs.next(d.filter(x => x.SystemName === systemName && x.Category === category));\r\n });\r\n return abs.asObservable();\r\n }\r\n getLookupbyCode(systemName: string, category: string, code: number): Observable {\r\n var abs = new BehaviorSubject(new Lookup());\r\n if (!this.data.getValue() || this.data.getValue().length <= 0)\r\n this.getall();\r\n let temp = this.data.getValue().filter(x => x.SystemName === systemName && x.Category === category && x.Code === code);\r\n if (temp && temp.length > 0)\r\n abs.next(temp[0] as Lookup);\r\n else {\r\n this.saveall();\r\n let temp = this.data.getValue().filter(x => x.SystemName === systemName && x.Category === category && x.Code === code);\r\n if (temp && temp.length > 0)\r\n abs.next(temp[0] as Lookup);\r\n }\r\n return abs.asObservable();\r\n }\r\n getLookupId(systemName: string, category: string, code: number): Observable {\r\n var abs = new BehaviorSubject(0);\r\n if (!this.data.getValue() || this.data.getValue().length <= 0)\r\n this.getall();\r\n let temp = this.data.getValue().filter(x => x.SystemName === systemName && x.Category === category && x.Code === code);\r\n if (temp && temp.length > 0)\r\n abs.next(temp[0].Id);\r\n return abs.asObservable();\r\n }\r\n getLookupbyId(Id: number): Lookup {\r\n if (!this.data.getValue() || this.data.getValue().length <= 0)\r\n this.getall();\r\n let temp = this.data.getValue().filter(x => x.Id === Id);\r\n if (temp && temp.length > 0)\r\n return temp[0];\r\n return null;\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.data = undefined;\r\n }\r\n}\r\n","import { RowState } from \"../models/enums\";\r\nimport { Injectable, OnDestroy } from \"@angular/core\";\r\nimport { MisSetUp } from \"../models\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { BehaviorSubject, Observable, Subject, throwError } from \"rxjs\";\r\nimport { catchError, takeUntil } from \"rxjs/operators\";\r\nimport { HttpCommonService } from \"./http-common.service\";\r\nimport { ShowToastrService } from \"./show-toastr.service\";\r\nimport { LocalStoreManager } from \"./local-store-manager.service\";\r\nimport { InvVoucherHeader } from \"src/app/backoffice/inv/models/inv-voucher-header.model\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class MisSetupService implements OnDestroy {\r\n ngUnsubscribe = new Subject();\r\n apiName: string = \"MisSetUp\";\r\n public source: MisSetUp[];\r\n public isLoding: boolean = false;\r\n model = {};\r\n public isSaving: boolean;\r\n public isNewRow = false;\r\n label = \"تنظیمات سیستم\";\r\n public source$: BehaviorSubject;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n constructor(\r\n protected httpCommonService: HttpCommonService,\r\n private sts: ShowToastrService,\r\n protected route: ActivatedRoute,\r\n protected localStorage: LocalStoreManager\r\n ) {\r\n this.getall();\r\n this.source$ = new BehaviorSubject([]);\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.source = undefined;\r\n }\r\n getall() {\r\n if (this.isLoding) return;\r\n this.isLoding = true;\r\n this.httpCommonService\r\n .getList(this.apiName + \"/ReadMisSetUpLookUp\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.isLoding = false;\r\n if (data !== undefined) this.source = data as any[];\r\n this.source$.next(this.source);\r\n this.setTimeOut();\r\n },\r\n (error) => {\r\n this.isLoding = false;\r\n }\r\n );\r\n }\r\n setTimeOut() {\r\n let val = this.getValue(\"GNR\", \"ToasterTimeOut\");\r\n if (!val) this.localStorage.deleteData(\"ToasterTimeOut\");\r\n else this.localStorage.saveSessionData(JSON.parse(val) * 1000, \"ToasterTimeOut\");\r\n }\r\n async save() {\r\n if (!this.source && !this.source.filter((x) => x.State === RowState.Modify || x.State === RowState.New)) return;\r\n let list = this.source.filter((x) => x.State === RowState.Modify || x.State === RowState.New);\r\n this.sts.showToast(\"info\", \"\", \"در حال ذخیره تغییرات...\");\r\n let newList: any[] = [];\r\n let editList: any[] = [];\r\n let deleteList: any[] = [];\r\n for (var i = 0; i < list.length; i++) {\r\n let x = list[i];\r\n if (x.State === RowState.New && !newList.some((l) => l.KeyValue === x.KeyValue && l.SystemName === x.SystemName)) {\r\n newList.push(x);\r\n this.isSaving = true;\r\n }\r\n if (x.State === RowState.Modify) {\r\n editList.push(x);\r\n this.isSaving = true;\r\n }\r\n let find = this.source.find((f) => f.KeyValue === x.KeyValue && f.SystemName === x.SystemName && f.Id !== x.Id);\r\n\r\n if (find) {\r\n deleteList.push(find);\r\n this.isSaving = true;\r\n }\r\n }\r\n\r\n let isOk: boolean = false;\r\n if (newList.length > 0) {\r\n this.httpCommonService\r\n .bulkInsert(this.apiName, newList)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => {\r\n this.saveSuccessHelper(row);\r\n if (editList.length <= 0) this.getall();\r\n },\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n if (editList.length > 0) {\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName, editList)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => {\r\n this.saveSuccessHelper(row);\r\n this.getall();\r\n },\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n if (deleteList.length > 0) {\r\n this.httpCommonService\r\n .bulkDelete(this.apiName, deleteList)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => {\r\n this.saveSuccessHelper(row);\r\n this.getall();\r\n },\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n this.sts.showToast(\"success\", \"موفقیت آمیز\", `تغییرات اطلاعات ${this.label} با موفقیت ذخیره شد `);\r\n }\r\n private saveSuccessHelper(row?: any) {\r\n if (row) Object.assign(this.model, row);\r\n this.isSaving = false;\r\n if (this.changesSavedCallback) this.changesSavedCallback();\r\n }\r\n\r\n private saveFailedHelper(error: any) {\r\n this.isSaving = false;\r\n this.sts.showToast(\"danger\", \"\", error);\r\n this.sts.showDialog(`خطای ذخیره تغییرات: ${error}`, \"پیغام خطا\");\r\n if (this.changesFailedCallback) this.changesFailedCallback();\r\n }\r\n public getValue(SystemName: string, KeyValue: string): any {\r\n if (this.source === undefined) this.getall();\r\n if (this.source === undefined || this.source.length === 0) return undefined;\r\n let items = this.source.filter((x) => x.SystemName === SystemName && x.KeyValue === KeyValue);\r\n if (items === undefined || items.length === 0) {\r\n let rules = this.source.filter((x) => x.SystemName === SystemName && x.KeyValue === KeyValue);\r\n if (rules === undefined || rules.length === 0 || !rules[0].DataValue) return null;\r\n else if (rules[0] && rules[0].DataValue) return String(rules[0].DataValue).trim();\r\n } else {\r\n if (items[0] && items[0].DataValue) return String(items[0].DataValue).trim();\r\n }\r\n return undefined;\r\n }\r\n getnumber(SystemName: string, KeyValue: string): number {\r\n let result: any = 0;\r\n let val = this.getValue(SystemName, KeyValue);\r\n if (!val) return result;\r\n return JSON.parse(val);\r\n }\r\n getboolean(SystemName: string, KeyValue: string): boolean {\r\n let result: any = undefined;\r\n let val = this.getValue(SystemName, KeyValue);\r\n if (!val) return result;\r\n return JSON.parse(val);\r\n }\r\n getstring(SystemName: string, KeyValue: string): string {\r\n let result: any = undefined;\r\n let val = this.getValue(SystemName, KeyValue);\r\n if (!val) return result;\r\n return JSON.parse(val);\r\n }\r\n hasAccVoucher(): Observable {\r\n var abs = new BehaviorSubject(false);\r\n this.httpCommonService\r\n .get(\"AccVoucherHeader/HasAccVoucher\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n abs.next(x);\r\n });\r\n return abs.asObservable();\r\n }\r\n hasSubLedger(): Observable {\r\n var abs = new BehaviorSubject(false);\r\n this.httpCommonService\r\n .get(\"SubLedger/HasSubLedegr\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n abs.next(x);\r\n });\r\n return abs.asObservable();\r\n }\r\n hasGeneralLedger(): Observable {\r\n var abs = new BehaviorSubject(false);\r\n this.httpCommonService\r\n .get(\"GeneralLedger/HasGeneralLedegr\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n abs.next(x);\r\n });\r\n return abs.asObservable();\r\n }\r\n\r\n getAllInventorySave() {\r\n return this.httpCommonService.get(\"MisSetUp/InventorySave\").pipe(\r\n catchError((error) => {\r\n return throwError(error);\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Month } from '../models/monthe-name.model';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\n export class MonthsNameService {\r\n MonthList:Month[]=[{Id:1,Title:\"فروردین\"},\r\n {Id:2,Title:\"اردیبهشت\"},\r\n {Id:3,Title:\"خرداد\"},\r\n {Id:4,Title:\"تیر\"},\r\n {Id:5,Title:\"مرداد\"},\r\n {Id:6,Title:\"شهریور\"},\r\n {Id:7,Title:\"مهر\"},\r\n {Id:8,Title:\"آبان\"}, \r\n {Id:9,Title:\"آذر\"},\r\n {Id:10,Title:\"دی\"},\r\n {Id:11,Title:\"بهمن\"},\r\n {Id:12,Title:\"اسفند\"}] \r\n}","import * as signalR from \"@microsoft/signalr\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\nimport { NotificationModel } from \"../models/notification-model\";\r\nimport { ConfigurationService } from \"./configuration.service\";\r\nimport { HttpTransportType } from \"@microsoft/signalr\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class NotificationService {\r\n private notificationSubject = new Subject();\r\n private hubConnection: signalR.HubConnection | undefined;\r\n private started: boolean = false;\r\n\r\n public get notification$() {\r\n return this.notificationSubject.asObservable();\r\n }\r\n\r\n constructor(private configurations: ConfigurationService) {}\r\n\r\n public async init() {\r\n const branchId = JSON.parse(localStorage.getItem(\"BranchId\"));\r\n let url = \"/hubs/notification\";\r\n if (this.started) return;\r\n url += `?BranchId=${branchId}`;\r\n this.hubConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(\r\n `${this.configurations.baseUrl}${url}`,HttpTransportType.WebSockets)\r\n .withAutomaticReconnect()\r\n .configureLogging(signalR.LogLevel.Information)\r\n .build();\r\n this.hubConnection.on(\"Send\", (notification) => {\r\n this.started = true;\r\n this.notificationSubject.next(notification);\r\n });\r\n this.start();\r\n this.hubConnection.onclose((e) => {\r\n this.started === false;\r\n console.log('Error : notif : ' + e.message);\r\n });\r\n }\r\n\r\n public async stop() {\r\n if (this.started) {\r\n this.hubConnection\r\n .stop()\r\n .then((x) => {\r\n this.started = false;\r\n this.start();\r\n })\r\n .catch((x) => {\r\n this.started = false;\r\n });\r\n }\r\n }\r\n\r\n private async start() {\r\n if (this.started === true) return;\r\n await this.hubConnection\r\n .start()\r\n .then(async() => {\r\n this.started = true;\r\n })\r\n .catch(async(err) => {\r\n this.started = false;\r\n await this.init();\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PersianService {\r\n constructor(private translate: TranslateService) { }\r\n\r\n public isPersianNumber(number: string): boolean {\r\n const regexp = new RegExp('^[\\u06F0-\\u06F9]+$');\r\n return regexp.test(number);\r\n }\r\n\r\n public toPersianNumber(number: string): string {\r\n if (number === undefined) {\r\n return '';\r\n }\r\n let str = number.toString().trim();\r\n if (str === '') {\r\n return '';\r\n }\r\n str = str.replace(/0/g, '۰');\r\n str = str.replace(/1/g, '۱');\r\n str = str.replace(/2/g, '۲');\r\n str = str.replace(/3/g, '۳');\r\n str = str.replace(/4/g, '۴');\r\n str = str.replace(/5/g, '۵');\r\n str = str.replace(/6/g, '۶');\r\n str = str.replace(/7/g, '۷');\r\n str = str.replace(/8/g, '۸');\r\n str = str.replace(/9/g, '۹');\r\n return str;\r\n }\r\n\r\n public toEnglishNumber(number: string): number {\r\n if (number === undefined) {\r\n return NaN;\r\n }\r\n let str = number.toString().trim();\r\n if (str === '') {\r\n return NaN;\r\n }\r\n str = str.replace(/۰/g, '0');\r\n str = str.replace(/۱/g, '1');\r\n str = str.replace(/۲/g, '2');\r\n str = str.replace(/۳/g, '3');\r\n str = str.replace(/۴/g, '4');\r\n str = str.replace(/۵/g, '5');\r\n str = str.replace(/۶/g, '6');\r\n str = str.replace(/۷/g, '7');\r\n str = str.replace(/۸/g, '8');\r\n str = str.replace(/۹/g, '9');\r\n return Number(str);\r\n }\r\n public wordify(input:string | number, level: number = 0):string{\r\n\r\n if (input === null) {\r\n return '';\r\n }\r\n \r\n let num: number = parseInt(this.toEnglishDigits(input));\r\n \r\n // convert negative number to positive and get wordify value\r\n if (num < 0) {\r\n num = num * -1;\r\n return 'منفی ' + this.wordify(num, level);\r\n }\r\n if (num === 0) {\r\n if (level === 0) {\r\n return 'صفر';\r\n } else {\r\n return '';\r\n }\r\n }\r\n let result = '';\r\n const yekan = ['یک', 'دو', 'سه', 'چهار', 'پنج', 'شش', 'هفت', 'هشت', 'نه'],\r\n dahgan = ['بیست', 'سی', 'چهل', 'پنجاه', 'شصت', 'هفتاد', 'هشتاد', 'نود'],\r\n sadgan = [\r\n 'یکصد',\r\n 'دویست',\r\n 'سیصد',\r\n 'چهارصد',\r\n 'پانصد',\r\n 'ششصد',\r\n 'هفتصد',\r\n 'هشتصد',\r\n 'نهصد',\r\n ],\r\n dah = [\r\n 'ده',\r\n 'یازده',\r\n 'دوازده',\r\n 'سیزده',\r\n 'چهارده',\r\n 'پانزده',\r\n 'شانزده',\r\n 'هفده',\r\n 'هیجده',\r\n 'نوزده',\r\n ];\r\n \r\n if (level > 0) {\r\n result += ' و ';\r\n level -= 1;\r\n }\r\n \r\n if (num < 10) {\r\n result += yekan[num - 1];\r\n } else if (num < 20) {\r\n result += dah[num - 10];\r\n } else if (num < 100) {\r\n result += dahgan[Math.floor(num / 10) - 2] + this.wordify(num % 10, level + 1);\r\n } else if (num < 1000) {\r\n result +=\r\n sadgan[Math.floor(num / 100) - 1] + this.wordify(num % 100, level + 1);\r\n } else if (num < 1000000) {\r\n result +=\r\n this.wordify(Math.floor(num / 1000), level) +\r\n ' هزار' +\r\n this.wordify(num % 1000, level + 1);\r\n } else if (num < 1000000000) {\r\n result +=\r\n this.wordify(Math.floor(num / 1000000), level) +\r\n ' میلیون' +\r\n this.wordify(num % 1000000, level + 1);\r\n } else if (num < 1000000000000) {\r\n result +=\r\n this.wordify(Math.floor(num / 1000000000), level) +\r\n ' میلیارد' +\r\n this.wordify(num % 1000000000, level + 1);\r\n } else if (num < 1000000000000000) {\r\n result +=\r\n this.wordify(Math.floor(num / 1000000000000), level) +\r\n ' تریلیارد' +\r\n this.wordify(num % 1000000000000, level + 1);\r\n }\r\n \r\n return result;\r\n }\r\n public toEnglishNumberString(number: string): string {\r\n if (number === undefined) {\r\n return '';\r\n }\r\n let str = number.toString().trim();\r\n if (str === '') {\r\n return '';\r\n }\r\n str = str.replace(/۰/g, '0');\r\n str = str.replace(/۱/g, '1');\r\n str = str.replace(/۲/g, '2');\r\n str = str.replace(/۳/g, '3');\r\n str = str.replace(/۴/g, '4');\r\n str = str.replace(/۵/g, '5');\r\n str = str.replace(/۶/g, '6');\r\n str = str.replace(/۷/g, '7');\r\n str = str.replace(/۸/g, '8');\r\n str = str.replace(/۹/g, '9');\r\n return str;\r\n }\r\n toEnglishDigits(num: string | number): string {\r\n if (num === null || num === undefined) {\r\n return '';\r\n }\r\n \r\n if (typeof num !== 'string' || num.length === 0) return num.toString();\r\n \r\n const faDigits = '۰۱۲۳۴۵۶۷۸۹';\r\n const arDigits = '٠١٢٣٤٥٦٧٨٩';\r\n let output = '';\r\n for (let ipos = 0; ipos < num.length; ipos++) {\r\n let faIndex = faDigits.indexOf(num[ipos]);\r\n if (faIndex >= 0) {\r\n output += faIndex.toString();\r\n continue;\r\n }\r\n let arIndex = arDigits.indexOf(num[ipos]);\r\n if (arIndex >= 0) {\r\n output += arIndex.toString();\r\n continue;\r\n }\r\n output += num[ipos];\r\n }\r\n return output.replace(/,/g, '');\r\n }\r\n \r\n}\r\n","import {\r\n Component,\r\n ComponentFactoryResolver,\r\n ElementRef,\r\n Inject,\r\n Type,\r\n ViewContainerRef,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport {\r\n DefaultSimpleModalOptionConfig,\r\n SimpleModalOptions,\r\n SimpleModalOptionsOverrides,\r\n} from './simple-modal-options';\r\nimport { SimpleModalWrapperComponent } from './simple-modal-wrapper.component';\r\nimport { SimpleModalComponent } from './simple-modal.component';\r\n\r\n/**\r\n * View container manager which manages a list of modals currently active\r\n * inside the viewvontainer\r\n */\r\n@Component({\r\n selector: 'simple-modal-holder',\r\n template: '',\r\n})\r\nexport class SimpleModalHolderComponent {\r\n /**\r\n * Target viewContainer to insert modals\r\n */\r\n @ViewChild('viewContainer', { read: ViewContainerRef, static: true }) viewContainer;\r\n\r\n /**\r\n * modal collection, maintained by addModal and removeModal\r\n * @type {Array }\r\n */\r\n modals: Array> = [];\r\n\r\n /**\r\n * if auto focus is on and no element focused, store it here to be restored back after close\r\n */\r\n previousActiveElement = null;\r\n\r\n /**\r\n * Constructor\r\n * @param {ComponentFactoryResolver} resolver\r\n */\r\n constructor(\r\n private resolver: ComponentFactoryResolver,\r\n @Inject(DefaultSimpleModalOptionConfig) private defaultSimpleModalOptions: SimpleModalOptions\r\n ) { }\r\n\r\n /**\r\n * Configures then adds modal to the modals array, and populates with data passed in\r\n * @param {Type} component\r\n * @param {object?} data\r\n * @param {SimpleModalOptionsOverrides?} options\r\n * @return {Observable<*>}\r\n */\r\n addModal(\r\n component: Type>,\r\n data?: T,\r\n options?: SimpleModalOptionsOverrides\r\n ): Observable {\r\n // create component\r\n if (!this.viewContainer) {\r\n return of(null);\r\n }\r\n const factory = this.resolver.resolveComponentFactory(SimpleModalWrapperComponent);\r\n const componentRef = this.viewContainer.createComponent(factory);\r\n const modalWrapper: SimpleModalWrapperComponent = (\r\n componentRef.instance\r\n );\r\n const _component: SimpleModalComponent = modalWrapper.addComponent(component);\r\n\r\n // assign options refs\r\n _component.options = options = Object.assign({}, this.defaultSimpleModalOptions, options);\r\n\r\n // set base classes for wrapper\r\n modalWrapper.modalClasses = options.wrapperDefaultClasses;\r\n\r\n // add to stack\r\n this.modals.push(_component);\r\n\r\n // wait a tick then setup the following while adding a modal\r\n this.wait().then(() => {\r\n this.toggleWrapperClass(modalWrapper.wrapper, options.wrapperClass);\r\n this.toggleBodyClass(options.bodyClass);\r\n this.wait(options.animationDuration).then(() => {\r\n this.autoFocusFirstElement(_component.wrapper, options.autoFocus);\r\n _component.markAsReady();\r\n });\r\n });\r\n\r\n // when closing modal remove it\r\n _component.onClosing(modal => this.removeModal(modal));\r\n\r\n // if clicking on background closes modal\r\n this.configureCloseOnClickOutside(modalWrapper);\r\n\r\n // map and return observable\r\n _component.mapDataObject(data);\r\n\r\n return _component.setupObserver();\r\n }\r\n\r\n /**\r\n * triggers components close function\r\n * to take effect\r\n * @param {SimpleModalComponent} component\r\n * @returns {Promise}\r\n */\r\n removeModal(closingModal: SimpleModalComponent): Promise {\r\n const options = closingModal.options;\r\n this.toggleWrapperClass(closingModal.wrapper, options?.wrapperClass);\r\n return this.wait(options.animationDuration).then(() => {\r\n this.removeModalFromArray(closingModal);\r\n this.toggleBodyClass(options.bodyClass);\r\n this.restorePreviousFocus();\r\n });\r\n }\r\n\r\n /**\r\n * Instructs all open modals to\r\n */\r\n removeAllModals(): Promise {\r\n return Promise.all(this.modals.map(modal => this.removeModal(modal)));\r\n }\r\n /**\r\n * Instructs all open modals to\r\n */\r\n removeAllLoadingModals(): Promise {\r\n return Promise.all(this.modals.map(modal => {\r\n if (modal.hasOwnProperty('isLoading'))\r\n this.removeModal(modal)\r\n }));\r\n }\r\n\r\n /**\r\n * Bind a body class 'modal-open' to a condition of modals in pool > 0\r\n * @param bodyClass - string to add and remove from body in document\r\n */\r\n private toggleBodyClass(bodyClass: string) {\r\n if (!bodyClass) {\r\n return;\r\n }\r\n const body = document.getElementsByTagName('body')[0];\r\n const bodyClassItems = bodyClass.split(' ');\r\n if (!this.modals.length) {\r\n body.classList.remove(...bodyClassItems);\r\n } else {\r\n body.classList.add(...bodyClassItems);\r\n }\r\n }\r\n\r\n /**\r\n * if the option to close on background click is set, then hook up a callback\r\n * @param options\r\n * @param modalWrapper\r\n */\r\n private configureCloseOnClickOutside(modalWrapper: SimpleModalWrapperComponent) {\r\n modalWrapper.onClickOutsideModalContent(() => {\r\n if (modalWrapper.content.options.closeOnClickOutside) {\r\n modalWrapper.content.closeModal();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Auto focus o the first element if autofocus is on\r\n * @param options\r\n * @param modalWrapperEl\r\n */\r\n private autoFocusFirstElement(componentWrapper: ElementRef, autoFocus: boolean) {\r\n if (autoFocus) {\r\n const focusable = componentWrapper.nativeElement.querySelectorAll(\r\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\r\n );\r\n if (focusable && focusable.length) {\r\n this.previousActiveElement = document.activeElement;\r\n focusable[0].focus();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Restores the last focus is there was one\r\n */\r\n private restorePreviousFocus() {\r\n if (this.previousActiveElement) {\r\n this.previousActiveElement.focus();\r\n this.previousActiveElement = null;\r\n }\r\n }\r\n\r\n /**\r\n * Configure the adding and removal of a wrapper class - predominantly animation focused\r\n * @param options\r\n * @param modalWrapperEl\r\n */\r\n private toggleWrapperClass(modalWrapperEl: ElementRef, wrapperClass: string) {\r\n const wrapperClassList = modalWrapperEl.nativeElement.classList;\r\n const wrapperClassItems = wrapperClass.split(' ');\r\n if (wrapperClassList.toString().indexOf(wrapperClass) !== -1) {\r\n wrapperClassList.remove(...wrapperClassItems);\r\n } else {\r\n wrapperClassList.add(...wrapperClassItems);\r\n }\r\n }\r\n\r\n /**\r\n * Helper function for a more readable timeout\r\n * @param ms\r\n */\r\n private wait(ms: number = 0) {\r\n return new Promise((resolve, reject) => {\r\n setTimeout(() => resolve(0), ms);\r\n });\r\n }\r\n\r\n /**\r\n * Instructs the holder to remove the modal and\r\n * removes this component from the collection\r\n * @param {SimpleModalComponent} component\r\n */\r\n private removeModalFromArray(component) {\r\n const index = this.modals.indexOf(component);\r\n if (index > -1) {\r\n this.viewContainer.remove(index);\r\n this.modals.splice(index, 1);\r\n }\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const DefaultSimpleModalOptionConfig = new InjectionToken('default-simple-modal.config');\r\n\r\nexport interface SimpleModalOptions {\r\n closeOnEscape: boolean;\r\n closeOnClickOutside: boolean;\r\n bodyClass: string;\r\n wrapperDefaultClasses: string;\r\n wrapperClass: string;\r\n animationDuration: number;\r\n autoFocus: boolean;\r\n}\r\n\r\nexport type SimpleModalOptionsOverrides = Partial;\r\n\r\nexport const defaultSimpleModalOptions: SimpleModalOptions = {\r\n closeOnEscape: false,\r\n closeOnClickOutside: false,\r\n bodyClass: 'modal-open',\r\n wrapperDefaultClasses: 'modal fade-anim',\r\n wrapperClass: 'in',\r\n animationDuration: 300,\r\n autoFocus: false\r\n};\r\n","import { Component, ComponentFactoryResolver, ElementRef, OnDestroy, ReflectiveInjector, Type, ViewChild, ViewContainerRef } from \"@angular/core\";\r\nimport { SimpleModalComponent } from \"./simple-modal.component\";\r\n\r\n/**\r\n * The modal backdrop wrapping wrapper to the modal\r\n */\r\n@Component({\r\n selector: \"simple-modal-wrapper\",\r\n template: `\r\n
\r\n \r\n
\r\n `,\r\n})\r\nexport class SimpleModalWrapperComponent implements OnDestroy {\r\n /**\r\n * Target viewContainer to insert modal content component\r\n */\r\n @ViewChild(\"viewContainer\", { read: ViewContainerRef, static: true }) viewContainer;\r\n\r\n /**\r\n * Link wrapper DOM element\r\n */\r\n @ViewChild(\"wrapper\", { read: ElementRef, static: true })\r\n wrapper: ElementRef;\r\n\r\n /**\r\n * Wrapper modal and fade classes\r\n */\r\n modalClasses = \"modal fade-anim\";\r\n\r\n /**\r\n * Dialog content componet\r\n * @type {SimpleModalComponent}\r\n */\r\n content: SimpleModalComponent;\r\n\r\n /**\r\n * Click outside callback\r\n */\r\n clickOutsideCallback: (event: MouseEvent) => void;\r\n\r\n /**\r\n * Constructor\r\n * @param {ComponentFactoryResolver} resolver\r\n */\r\n constructor(private resolver: ComponentFactoryResolver) {}\r\n\r\n /**\r\n * Adds content modal component to wrapper\r\n * @param {Type} component\r\n * @return {SimpleModalComponent}\r\n */\r\n addComponent(component: Type>) {\r\n const factory = this.resolver.resolveComponentFactory(component);\r\n const injector = ReflectiveInjector.fromResolvedProviders([], this.viewContainer.injector);\r\n const componentRef = factory.create(injector);\r\n this.viewContainer.insert(componentRef.hostView);\r\n this.content = >componentRef.instance;\r\n this.content.wrapper = this.wrapper;\r\n return this.content;\r\n }\r\n\r\n /**\r\n * Configures the function to call when you click on background of a modal but not the contents\r\n * @param callback\r\n */\r\n onClickOutsideModalContent(callback: () => void) {\r\n const containerEl = this.wrapper.nativeElement;\r\n\r\n this.clickOutsideCallback = (event: MouseEvent) => {\r\n if (event.target === containerEl) {\r\n callback();\r\n }\r\n };\r\n\r\n containerEl.addEventListener(\"click\", this.clickOutsideCallback, false);\r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.clickOutsideCallback) {\r\n const containerEl = this.wrapper.nativeElement;\r\n containerEl.removeEventListener(\"click\", this.clickOutsideCallback, false);\r\n this.clickOutsideCallback = null;\r\n }\r\n }\r\n}\r\n","import { Directive, ElementRef, HostListener } from '@angular/core';\r\nimport { Observable, Observer, BehaviorSubject } from 'rxjs';\r\n\r\nimport { SimpleModalOptions } from './simple-modal-options';\r\n\r\nexport interface OnDestroyLike {\r\n ngOnDestroy(): void;\r\n [key: string]: any;\r\n}\r\n\r\n/**\r\n * Abstract modal\r\n * @template T - modal data;\r\n * @template T1 - modal result\r\n */\r\n@Directive({selector:'simple'})\r\nexport class SimpleModalComponent {\r\n /**\r\n * Observer to return result from modal\r\n */\r\n private observer: Observer;\r\n\r\n /**\r\n * Dialog result\r\n * @type {T1}\r\n */\r\n result: T1;\r\n\r\n /**\r\n * Dialog wrapper (modal placeholder)\r\n */\r\n wrapper: ElementRef;\r\n\r\n /**\r\n * ref of options for this component\r\n */\r\n options: SimpleModalOptions;\r\n\r\n /**\r\n * ready$ is when all animations and focusing have comleted\r\n */\r\n _ready$ = new BehaviorSubject(false);\r\n\r\n /**\r\n * Callback to the holders close function\r\n */\r\n private closerCallback: (component) => Promise = () => Promise.resolve();\r\n\r\n /**\r\n * Constructor\r\n */\r\n constructor() {}\r\n\r\n /**\r\n * Maps your object passed in the creation to fields in your own Dialog classes\r\n * @param {T} data\r\n */\r\n mapDataObject(data: T): void {\r\n data = data || {};\r\n const keys = Object.keys(data);\r\n for (let i = 0, length = keys.length; i < length; i++) {\r\n const key = keys[i];\r\n if (\r\n data[key] &&\r\n this[key] &&\r\n typeof data[key] === 'object' &&\r\n typeof this[key] === 'object'\r\n ) {\r\n Object.assign(this[key], data[key]);\r\n } else {\r\n this[key] = data[key];\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Setup observer\r\n * @return {Observable}\r\n */\r\n setupObserver(): Observable {\r\n return Observable.create(observer => {\r\n this.observer = observer;\r\n\r\n // called if observable is unsubscribed to\r\n return () => {\r\n this.closeModal();\r\n };\r\n });\r\n }\r\n\r\n /**\r\n * Defines what happens when close is called - default this\r\n * will just call the default remove modal process. If overriden\r\n * must include\r\n * @param callback\r\n */\r\n onClosing(callback: (component: SimpleModalComponent) => Promise): void {\r\n this.closerCallback = callback;\r\n }\r\n\r\n /**\r\n * Closes modal\r\n */\r\n closeModal(): Promise {\r\n return this.closerCallback(this).then(v => {\r\n if (this.observer) {\r\n this.observer.next(this.result);\r\n this.observer.complete();\r\n }\r\n return v;\r\n });\r\n }\r\n\r\n /**\r\n * keypress binding ngx way\r\n * @param evt\r\n */\r\n @HostListener('document:keydown.escape', ['$event'])\r\n onKeydownHandler(evt: KeyboardEvent) {\r\n if (this.options && this.options.closeOnEscape) {\r\n this.closeModal();\r\n }\r\n }\r\n\r\n get ready$() {\r\n return this._ready$.asObservable();\r\n }\r\n\r\n markAsReady() {\r\n this._ready$.next(true);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n Injector,\r\n ModuleWithProviders,\r\n NgModule,\r\n} from '@angular/core';\r\n\r\nimport { SimpleModalHolderComponent } from './simple-modal-holder.component';\r\nimport { SimpleModalWrapperComponent } from './simple-modal-wrapper.component';\r\nimport { SimpleModalService, SimpleModalServiceConfig } from './simple-modal.service';\r\nimport { SimpleModalServiceFactory } from './simple-modal-service.factory';\r\nimport {\r\n defaultSimpleModalOptions,\r\n DefaultSimpleModalOptionConfig,\r\n SimpleModalOptions,\r\n} from './simple-modal-options';\r\nimport { SimpleModalComponent } from './simple-modal.component';\r\nimport { SSGDraggable } from '../dragable.directive';\r\n\r\n@NgModule({\r\n declarations: [SimpleModalHolderComponent, SimpleModalWrapperComponent, SimpleModalComponent],\r\n providers: [\r\n SimpleModalComponent,\r\n // SimpleModalService,\r\n SSGDraggable,\r\n {\r\n provide: DefaultSimpleModalOptionConfig,\r\n useValue: defaultSimpleModalOptions,\r\n },\r\n ],\r\n imports: [CommonModule]\r\n})\r\nexport class SimpleModalModule {\r\n static forRoot(\r\n config: SimpleModalServiceConfig,\r\n defaultModalOptions?: SimpleModalOptions\r\n ): ModuleWithProviders {\r\n return {\r\n ngModule: SimpleModalModule,\r\n providers: [\r\n { provide: SimpleModalServiceConfig, useValue: config },\r\n // {\r\n // provide: SimpleModalService,\r\n // useFactory: SimpleModalServiceFactory,\r\n // deps: [ComponentFactoryResolver, ApplicationRef, Injector, SimpleModalServiceConfig],\r\n // },\r\n {\r\n provide: DefaultSimpleModalOptionConfig,\r\n useValue: defaultModalOptions || defaultSimpleModalOptions,\r\n },\r\n ],\r\n };\r\n }\r\n\r\n constructor() {}\r\n}\r\n","import { ApplicationRef, ComponentFactoryResolver, EmbeddedViewRef, Injectable, Injector, Optional, Type } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nimport { SimpleModalHolderComponent } from \"./simple-modal-holder.component\";\r\nimport { SimpleModalComponent } from \"./simple-modal.component\";\r\nimport { SimpleModalOptionsOverrides } from \"./simple-modal-options\";\r\n\r\nexport class SimpleModalServiceConfig {\r\n container: HTMLElement | string = null;\r\n}\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class SimpleModalService {\r\n /**\r\n * Placeholder of modals\r\n * @type {SimpleModalHolderComponent}\r\n */\r\n private modalHolderComponent: SimpleModalHolderComponent;\r\n\r\n /**\r\n * HTML container for modals\r\n * type {HTMLElement | string}\r\n */\r\n private _container;\r\n\r\n /**\r\n * @param {ComponentFactoryResolver} resolver\r\n * @param {ApplicationRef} applicationRef\r\n * @param {Injector} injector\r\n * @param {SimpleModalServiceConfig} config\r\n */\r\n constructor(\r\n private resolver: ComponentFactoryResolver,\r\n private applicationRef: ApplicationRef,\r\n private injector: Injector,\r\n @Optional() config: SimpleModalServiceConfig\r\n ) {\r\n if (config) this.container = config.container as any;\r\n }\r\n\r\n /**\r\n * Adds modal\r\n * @param {Type>} component\r\n * @param {T?} data\r\n * @param {SimpleModalOptionsOverrides?} options\r\n * @return {Observable}\r\n */\r\n open(component: Type>, data?: T, options?: SimpleModalOptionsOverrides): Observable {\r\n if (!this.modalHolderComponent) {\r\n this.modalHolderComponent = this.createSimpleModalHolder();\r\n }\r\n return this.modalHolderComponent.addModal(component, data, options);\r\n }\r\n\r\n /**\r\n * Hides and removes modal from DOM, resolves promise when fully removed\r\n * @param {SimpleModalComponent} component\r\n * @return {Promise<{}>}\r\n\r\n */\r\n removeModal(component: SimpleModalComponent): Promise<{}> {\r\n if (!this.modalHolderComponent) {\r\n return Promise.resolve({});\r\n }\r\n return this.modalHolderComponent.removeModal(component);\r\n }\r\n\r\n /**\r\n * Closes all modals, resolves promise when they're fully removed\r\n * @return {Promise<{}>}\r\n */\r\n removeAll(): Promise<{}> {\r\n if (!this.modalHolderComponent) {\r\n return Promise.resolve({});\r\n }\r\n return this.modalHolderComponent.removeAllModals();\r\n }\r\n /**\r\n * Closes all modals, resolves promise when they're fully removed\r\n * @return {Promise<{}>}\r\n */\r\n removeAllLoading(): Promise<{}> {\r\n if (!this.modalHolderComponent) {\r\n return Promise.resolve({});\r\n }\r\n return this.modalHolderComponent.removeAllLoadingModals();\r\n }\r\n\r\n /**\r\n * Accessor for contain - will auto generate from string\r\n * if needed or default to the root element if nothing was set\r\n */\r\n\r\n private set container(c) {\r\n this._container = c;\r\n }\r\n\r\n private get container(): HTMLElement {\r\n if (typeof this._container === \"string\") {\r\n this._container = document.getElementById(this._container);\r\n }\r\n\r\n if (!this._container && this.applicationRef[\"components\"].length) {\r\n const componentRootViewContainer = this.applicationRef[\"components\"][0];\r\n this.container = (componentRootViewContainer.hostView as EmbeddedViewRef).rootNodes[0] as HTMLElement;\r\n }\r\n\r\n // fallback\r\n if (!this._container || typeof this._container === \"string\") {\r\n this._container = document.getElementsByTagName(\"body\")[0];\r\n }\r\n\r\n return this._container;\r\n }\r\n\r\n /**\r\n * Creates and add to DOM modal holder component\r\n * @return {SimpleModalHolderComponent}\r\n */\r\n private createSimpleModalHolder(): SimpleModalHolderComponent {\r\n const componentFactory = this.resolver.resolveComponentFactory(SimpleModalHolderComponent);\r\n\r\n const componentRef = componentFactory.create(this.injector);\r\n const componentRootNode = (componentRef.hostView as EmbeddedViewRef).rootNodes[0] as HTMLElement;\r\n\r\n this.applicationRef.attachView(componentRef.hostView);\r\n\r\n componentRef.onDestroy(() => {\r\n this.applicationRef.detachView(componentRef.hostView);\r\n });\r\n\r\n this.container.appendChild(componentRootNode);\r\n\r\n return componentRef.instance;\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\nimport { ErrorDialogService } from \"./error-dialog/error-dialog.service\";\r\nimport { Unsubscribable } from \"rxjs\";\r\nimport { DialogType } from \"../models/dialog.enum\";\r\nimport {\r\n ssgComponentStatus,\r\n ssgGlobalLogicalPosition,\r\n ssgGlobalPhysicalPosition,\r\n ssgGlobalPosition,\r\n ssgToastrConfig,\r\n} from \"../models/ssg-toastr-config\";\r\nimport { HttpHeaders } from \"@angular/common/http\";\r\nimport { ConfigurationService } from \"./configuration.service\";\r\nimport { LocalStoreManager } from \"./local-store-manager.service\";\r\nimport { ToastrService } from \"./toaster/public_api\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class ShowToastrService {\r\n sub: Unsubscribable;\r\n config: ssgToastrConfig;\r\n destroyByClick = true;\r\n duration = 3000;\r\n hasIcon = true;\r\n static isLoadingTimeOut: boolean = false;\r\n position: ssgGlobalPosition = ssgGlobalPhysicalPosition.BOTTOM_LEFT;\r\n preventDuplicates = false;\r\n status: ssgComponentStatus = \"primary\";\r\n types: ssgComponentStatus[] = [\"primary\", \"success\", \"info\", \"warning\", \"danger\"];\r\n positions: string[] = [\r\n ssgGlobalPhysicalPosition.TOP_RIGHT,\r\n ssgGlobalPhysicalPosition.TOP_LEFT,\r\n ssgGlobalPhysicalPosition.BOTTOM_LEFT,\r\n ssgGlobalPhysicalPosition.BOTTOM_RIGHT,\r\n ssgGlobalLogicalPosition.TOP_END,\r\n ssgGlobalLogicalPosition.TOP_START,\r\n ssgGlobalLogicalPosition.BOTTOM_END,\r\n ssgGlobalLogicalPosition.BOTTOM_START,\r\n ];\r\n currentTimeOut: number = 1000;\r\n constructor(\r\n public toastr: ToastrService,\r\n protected configurations: ConfigurationService,\r\n protected localStorage: LocalStoreManager,\r\n private errorDialogService: ErrorDialogService\r\n ) {\r\n this.setCurrentTimeOut();\r\n }\r\n showToast(type: ssgComponentStatus, title?: string, body?: string, timeOut?: number, positionClass?: string) {\r\n if (this.currentTimeOut === 0) return;\r\n if (!this.currentTimeOut) this.currentTimeOut = 1000;\r\n const config = {\r\n timeOut: timeOut ? timeOut : this.currentTimeOut,\r\n closeButton: true,\r\n positionClass: positionClass ? positionClass : \"toast-bottom-right\",\r\n };\r\n switch (type) {\r\n case \"danger\":\r\n title = title ? title : \"خطا\";\r\n this.toastr.error(body, title, config);\r\n break;\r\n case \"success\":\r\n title = title ? title : \"توجه\";\r\n this.toastr.success(body, title, config);\r\n break;\r\n case \"warning\":\r\n title = title ? title : \"هشدار\";\r\n this.toastr.warning(body, title, config);\r\n break;\r\n case \"info\":\r\n title = title ? title : \"توجه\";\r\n this.toastr.info(body, title, config);\r\n break;\r\n case \"primary\":\r\n title = title ? title : \"توجه\";\r\n this.toastr.show(body, title, config);\r\n break;\r\n default:\r\n title = title ? title : \"توجه\";\r\n this.toastr.show(body, title, config);\r\n break;\r\n }\r\n }\r\n getRequestHeaders(): { headers: HttpHeaders | { [header: string]: string | string[] } } {\r\n let headers = new HttpHeaders({ \"Content-Type\": \"application/json\" });\r\n return { headers: headers };\r\n }\r\n\r\n setCurrentTimeOut() {\r\n if (this.localStorage.getDataObject(\"ToasterTimeOut\") !== undefined) this.currentTimeOut = this.localStorage.getDataObject(\"ToasterTimeOut\");\r\n }\r\n showDialog(message: string, title: string);\r\n showDialog(message: string, title: string, type: DialogType, okCallback: (val?: any) => any);\r\n showDialog(\r\n message: string,\r\n title: string,\r\n type: DialogType,\r\n okCallback?: (val?: any) => any,\r\n cancelCallback?: () => any,\r\n okLabel?: string,\r\n cancelLabel?: string,\r\n defaultValue?: string\r\n );\r\n showDialog(\r\n message: string,\r\n title: string,\r\n type?: DialogType,\r\n okCallback?: (val?: any) => any,\r\n cancelCallback?: () => any,\r\n okLabel?: string,\r\n cancelLabel?: string,\r\n defaultValue?: string\r\n ) {\r\n if (!type) type = DialogType.alert;\r\n // if (!title)\r\n // title = 'پیغام خطا';\r\n this.errorDialogService.openDialog(title, message, type);\r\n if (this.sub) this.sub.unsubscribe();\r\n this.sub = this.errorDialogService.onClose.subscribe((x) => {\r\n if (x && okCallback) okCallback();\r\n else if (cancelCallback) {\r\n cancelCallback();\r\n }\r\n this.sub.unsubscribe();\r\n });\r\n }\r\n}\r\n","import { DOCUMENT } from '@angular/common';\r\nimport { Inject, Injectable, OnDestroy } from '@angular/core';\r\n\r\n/** Container inside which all toasts will render. */\r\n@Injectable({ providedIn: 'root' })\r\nexport class OverlayContainer implements OnDestroy {\r\n protected _containerElement!: HTMLElement;\r\n\r\n constructor(@Inject(DOCUMENT) protected _document: any) {}\r\n\r\n ngOnDestroy() {\r\n if (this._containerElement && this._containerElement.parentNode) {\r\n this._containerElement.parentNode.removeChild(this._containerElement);\r\n }\r\n }\r\n\r\n /**\r\n * This method returns the overlay container element. It will lazily\r\n * create the element the first time it is called to facilitate using\r\n * the container in non-browser environments.\r\n * @returns the container element\r\n */\r\n getContainerElement(): HTMLElement {\r\n if (!this._containerElement) {\r\n this._createContainer();\r\n }\r\n return this._containerElement;\r\n }\r\n\r\n /**\r\n * Create the overlay container element, which is simply a div\r\n * with the 'cdk-overlay-container' class on the document body\r\n * and 'aria-live=\"polite\"'\r\n */\r\n protected _createContainer(): void {\r\n const container = this._document.createElement('div');\r\n container.classList.add('overlay-container');\r\n container.setAttribute('aria-live','polite');\r\n this._document.body.appendChild(container);\r\n this._containerElement = container;\r\n }\r\n}\r\n","import { ComponentRef } from '@angular/core';\r\nimport { BasePortalHost, ComponentPortal } from '../portal/portal';\r\n\r\n/**\r\n * Reference to an overlay that has been created with the Overlay service.\r\n * Used to manipulate or dispose of said overlay.\r\n */\r\nexport class OverlayRef {\r\n constructor(private _portalHost: BasePortalHost) {}\r\n\r\n attach(\r\n portal: ComponentPortal,\r\n newestOnTop: boolean = true,\r\n ): ComponentRef {\r\n return this._portalHost.attach(portal, newestOnTop);\r\n }\r\n\r\n /**\r\n * Detaches an overlay from a portal.\r\n * @returns Resolves when the overlay has been detached.\r\n */\r\n detach() {\r\n return this._portalHost.detach();\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\nimport { DOCUMENT } from '@angular/common';\r\nimport { ApplicationRef, ComponentFactoryResolver, Inject, Injectable } from '@angular/core';\r\n\r\nimport { DomPortalHost } from '../portal/dom-portal-host';\r\nimport { ToastContainerDirective } from '../toastr/toast.directive';\r\nimport { OverlayContainer } from './overlay-container';\r\nimport { OverlayRef } from './overlay-ref';\r\n\r\n/**\r\n * Service to create Overlays. Overlays are dynamically added pieces of floating UI, meant to be\r\n * used as a low-level building building block for other components. Dialogs, tooltips, menus,\r\n * selects, etc. can all be built using overlays. The service should primarily be used by authors\r\n * of re-usable components rather than developers building end-user applications.\r\n *\r\n * An overlay *is* a PortalHost, so any kind of Portal can be loaded into one.\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class Overlay {\r\n // Namespace panes by overlay container\r\n private _paneElements: Map> = new Map();\r\n\r\n constructor(\r\n private _overlayContainer: OverlayContainer,\r\n private _componentFactoryResolver: ComponentFactoryResolver,\r\n private _appRef: ApplicationRef,\r\n @Inject(DOCUMENT) private _document: any,\r\n ) {}\r\n /**\r\n * Creates an overlay.\r\n * @returns A reference to the created overlay.\r\n */\r\n create(positionClass?: string, overlayContainer?: ToastContainerDirective): OverlayRef {\r\n // get existing pane if possible\r\n return this._createOverlayRef(this.getPaneElement(positionClass, overlayContainer));\r\n }\r\n\r\n getPaneElement(\r\n positionClass: string = '',\r\n overlayContainer?: ToastContainerDirective,\r\n ): HTMLElement {\r\n if (!this._paneElements.get(overlayContainer as ToastContainerDirective)) {\r\n this._paneElements.set(overlayContainer as ToastContainerDirective, {});\r\n }\r\n\r\n if (!this._paneElements.get(overlayContainer as ToastContainerDirective)![positionClass]) {\r\n this._paneElements.get(overlayContainer as ToastContainerDirective)![\r\n positionClass\r\n ] = this._createPaneElement(positionClass, overlayContainer);\r\n }\r\n\r\n return this._paneElements.get(overlayContainer as ToastContainerDirective)![positionClass];\r\n }\r\n\r\n /**\r\n * Creates the DOM element for an overlay and appends it to the overlay container.\r\n * @returns Newly-created pane element\r\n */\r\n private _createPaneElement(\r\n positionClass: string,\r\n overlayContainer?: ToastContainerDirective,\r\n ): HTMLElement {\r\n const pane = this._document.createElement('div');\r\n\r\n pane.id = 'toast-container';\r\n pane.classList.add(positionClass);\r\n pane.classList.add('toast-container');\r\n\r\n if (!overlayContainer) {\r\n this._overlayContainer.getContainerElement().appendChild(pane);\r\n } else {\r\n overlayContainer.getContainerElement().appendChild(pane);\r\n }\r\n\r\n return pane;\r\n }\r\n\r\n /**\r\n * Create a DomPortalHost into which the overlay content can be loaded.\r\n * @param pane The DOM element to turn into a portal host.\r\n * @returns A portal host for the given DOM element.\r\n */\r\n private _createPortalHost(pane: HTMLElement): DomPortalHost {\r\n return new DomPortalHost(pane, this._componentFactoryResolver, this._appRef);\r\n }\r\n\r\n /**\r\n * Creates an OverlayRef for an overlay in the given DOM element.\r\n * @param pane DOM element for the overlay\r\n */\r\n private _createOverlayRef(pane: HTMLElement): OverlayRef {\r\n return new OverlayRef(this._createPortalHost(pane));\r\n }\r\n}\r\n","import {\r\n ApplicationRef,\r\n ComponentFactoryResolver,\r\n ComponentRef,\r\n EmbeddedViewRef,\r\n} from '@angular/core';\r\nimport { BasePortalHost, ComponentPortal } from './portal';\r\n\r\n/**\r\n * A PortalHost for attaching portals to an arbitrary DOM element outside of the Angular\r\n * application context.\r\n *\r\n * This is the only part of the portal core that directly touches the DOM.\r\n */\r\nexport class DomPortalHost extends BasePortalHost {\r\n constructor(\r\n private _hostDomElement: Element,\r\n private _componentFactoryResolver: ComponentFactoryResolver,\r\n private _appRef: ApplicationRef,\r\n ) {\r\n super();\r\n }\r\n\r\n /**\r\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\r\n * @param portal Portal to be attached\r\n */\r\n attachComponentPortal(\r\n portal: ComponentPortal,\r\n newestOnTop: boolean,\r\n ): ComponentRef {\r\n const componentFactory = this._componentFactoryResolver.resolveComponentFactory(\r\n portal.component,\r\n );\r\n let componentRef: ComponentRef;\r\n\r\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\r\n // for the component (in terms of Angular's component tree, not rendering).\r\n // When the ViewContainerRef is missing, we use the factory to create the component directly\r\n // and then manually attach the ChangeDetector for that component to the application (which\r\n // happens automatically when using a ViewContainer).\r\n componentRef = componentFactory.create(portal.injector);\r\n\r\n // When creating a component outside of a ViewContainer, we need to manually register\r\n // its ChangeDetector with the application. This API is unfortunately not yet published\r\n // in Angular core. The change detector must also be deregistered when the component\r\n // is destroyed to prevent memory leaks.\r\n this._appRef.attachView(componentRef.hostView);\r\n\r\n this.setDisposeFn(() => {\r\n this._appRef.detachView(componentRef.hostView);\r\n componentRef.destroy();\r\n });\r\n\r\n // At this point the component has been instantiated, so we move it to the location in the DOM\r\n // where we want it to be rendered.\r\n if (newestOnTop) {\r\n this._hostDomElement.insertBefore(\r\n this._getComponentRootNode(componentRef),\r\n this._hostDomElement.firstChild,\r\n );\r\n } else {\r\n this._hostDomElement.appendChild(\r\n this._getComponentRootNode(componentRef),\r\n );\r\n }\r\n\r\n return componentRef;\r\n }\r\n\r\n /** Gets the root HTMLElement for an instantiated component. */\r\n private _getComponentRootNode(componentRef: ComponentRef): HTMLElement {\r\n return (componentRef.hostView as EmbeddedViewRef).rootNodes[0] as HTMLElement;\r\n }\r\n}\r\n","import {\r\n ComponentRef,\r\n Injector,\r\n ViewContainerRef\r\n} from '@angular/core';\r\n\r\nexport interface ComponentType {\r\n // eslint-disable-next-line @typescript-eslint/prefer-function-type\r\n new (...args: any[]): T;\r\n}\r\n\r\n\r\n/**\r\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\r\n */\r\nexport class ComponentPortal {\r\n private _attachedHost?: BasePortalHost;\r\n /** The type of the component that will be instantiated for attachment. */\r\n component: ComponentType;\r\n\r\n /**\r\n * [Optional] Where the attached component should live in Angular's *logical* component tree.\r\n * This is different from where the component *renders*, which is determined by the PortalHost.\r\n * The origin necessary when the host is outside of the Angular application context.\r\n */\r\n viewContainerRef!: ViewContainerRef;\r\n\r\n /** Injector used for the instantiation of the component. */\r\n injector: Injector;\r\n\r\n constructor(component: ComponentType, injector: Injector) {\r\n this.component = component;\r\n this.injector = injector;\r\n }\r\n\r\n /** Attach this portal to a host. */\r\n attach(host: BasePortalHost, newestOnTop: boolean): ComponentRef {\r\n this._attachedHost = host;\r\n return host.attach(this, newestOnTop);\r\n }\r\n\r\n /** Detach this portal from its host */\r\n detach() {\r\n const host = this._attachedHost;\r\n if (host) {\r\n this._attachedHost = undefined;\r\n return host.detach();\r\n }\r\n }\r\n\r\n /** Whether this portal is attached to a host. */\r\n get isAttached(): boolean {\r\n return this._attachedHost != null;\r\n }\r\n\r\n /**\r\n * Sets the PortalHost reference without performing `attach()`. This is used directly by\r\n * the PortalHost when it is performing an `attach()` or `detach()`.\r\n */\r\n setAttachedHost(host?: BasePortalHost) {\r\n this._attachedHost = host;\r\n }\r\n}\r\n\r\n/**\r\n * Partial implementation of PortalHost that only deals with attaching a\r\n * ComponentPortal\r\n */\r\nexport abstract class BasePortalHost {\r\n /** The portal currently attached to the host. */\r\n private _attachedPortal?: ComponentPortal;\r\n\r\n /** A function that will permanently dispose this host. */\r\n private _disposeFn?: () => void;\r\n\r\n attach(portal: ComponentPortal, newestOnTop: boolean) {\r\n this._attachedPortal = portal;\r\n return this.attachComponentPortal(portal, newestOnTop);\r\n }\r\n\r\n abstract attachComponentPortal(portal: ComponentPortal, newestOnTop: boolean): ComponentRef;\r\n\r\n detach() {\r\n if (this._attachedPortal) {\r\n this._attachedPortal.setAttachedHost();\r\n }\r\n\r\n this._attachedPortal = undefined;\r\n if (this._disposeFn) {\r\n this._disposeFn();\r\n this._disposeFn = undefined;\r\n }\r\n }\r\n\r\n setDisposeFn(fn: () => void) {\r\n this._disposeFn = fn;\r\n }\r\n}\r\n","export * from './toastr/toast.directive';\r\nexport * from './toastr/toast.component';\r\nexport * from './toastr/toastr.service';\r\nexport * from './toastr/toastr-config';\r\nexport * from './toastr/toastr.module';\r\nexport * from './toastr/toast-ref';\r\nexport * from './toastr/toast-noanimation.component';\r\n\r\nexport * from './portal/portal';\r\nexport * from './overlay/overlay';\r\nexport * from './overlay/overlay-container';\r\nexport * from './overlay/overlay-ref';\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders } from '@angular/core';\r\nimport {\r\n ApplicationRef,\r\n Component,\r\n HostBinding,\r\n HostListener,\r\n NgModule,\r\n OnDestroy,\r\n} from '@angular/core';\r\n\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport {\r\n DefaultNoComponentGlobalConfig,\r\n GlobalConfig,\r\n IndividualConfig,\r\n ToastPackage,\r\n TOAST_CONFIG,\r\n} from './toastr-config';\r\nimport { ToastrService } from './toastr.service';\r\n\r\n@Component({\r\n selector: '[toast-component]',\r\n template: `\r\n \r\n
\r\n {{ title }} [{{ duplicatesCount + 1 }}]\r\n
\r\n
\r\n
\r\n
\r\n {{ message }}\r\n
\r\n
\r\n
\r\n
\r\n `,\r\n})\r\nexport class ToastNoAnimation implements OnDestroy {\r\n message?: string | null;\r\n title?: string;\r\n options: IndividualConfig;\r\n duplicatesCount!: number;\r\n originalTimeout: number;\r\n /** width of progress bar */\r\n width = -1;\r\n /** a combination of toast type and options.toastClass */\r\n @HostBinding('class') toastClasses = '';\r\n\r\n /** hides component when waiting to be displayed */\r\n @HostBinding('style.display')\r\n get displayStyle() {\r\n if (this.state === 'inactive') {\r\n return 'none';\r\n }\r\n }\r\n\r\n /** controls animation */\r\n state = 'inactive';\r\n private timeout: any;\r\n private intervalId: any;\r\n private hideTime!: number;\r\n private sub: Subscription;\r\n private sub1: Subscription;\r\n private sub2: Subscription;\r\n private sub3: Subscription;\r\n\r\n constructor(\r\n protected toastrService: ToastrService,\r\n public toastPackage: ToastPackage,\r\n protected appRef: ApplicationRef,\r\n ) {\r\n this.message = toastPackage.message;\r\n this.title = toastPackage.title;\r\n this.options = toastPackage.config;\r\n this.originalTimeout = toastPackage.config.timeOut;\r\n this.toastClasses = `${toastPackage.toastType} ${\r\n toastPackage.config.toastClass\r\n }`;\r\n this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\r\n this.activateToast();\r\n });\r\n this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\r\n this.remove();\r\n });\r\n this.sub2 = toastPackage.toastRef.timeoutReset().subscribe(() => {\r\n this.resetTimeout();\r\n });\r\n this.sub3 = toastPackage.toastRef.countDuplicate().subscribe(count => {\r\n this.duplicatesCount = count;\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n this.sub1.unsubscribe();\r\n this.sub2.unsubscribe();\r\n this.sub3.unsubscribe();\r\n clearInterval(this.intervalId);\r\n clearTimeout(this.timeout);\r\n }\r\n /**\r\n * activates toast and sets timeout\r\n */\r\n activateToast() {\r\n this.state = 'active';\r\n if (!(this.options.disableTimeOut === true || this.options.disableTimeOut === 'timeOut') && this.options.timeOut) {\r\n this.timeout = setTimeout(() => {\r\n this.remove();\r\n }, this.options.timeOut);\r\n this.hideTime = new Date().getTime() + this.options.timeOut;\r\n if (this.options.progressBar) {\r\n this.intervalId = setInterval(() => this.updateProgress(), 10);\r\n }\r\n }\r\n if (this.options.onActivateTick) {\r\n this.appRef.tick();\r\n }\r\n }\r\n /**\r\n * updates progress bar width\r\n */\r\n updateProgress() {\r\n if (this.width === 0 || this.width === 100 || !this.options.timeOut) {\r\n return;\r\n }\r\n const now = new Date().getTime();\r\n const remaining = this.hideTime - now;\r\n this.width = (remaining / this.options.timeOut) * 100;\r\n if (this.options.progressAnimation === 'increasing') {\r\n this.width = 100 - this.width;\r\n }\r\n if (this.width <= 0) {\r\n this.width = 0;\r\n }\r\n if (this.width >= 100) {\r\n this.width = 100;\r\n }\r\n }\r\n\r\n resetTimeout() {\r\n clearTimeout(this.timeout);\r\n clearInterval(this.intervalId);\r\n this.state = 'active';\r\n\r\n this.options.timeOut = this.originalTimeout;\r\n this.timeout = setTimeout(() => this.remove(), this.originalTimeout);\r\n this.hideTime = new Date().getTime() + (this.originalTimeout || 0);\r\n this.width = -1;\r\n if (this.options.progressBar) {\r\n this.intervalId = setInterval(() => this.updateProgress(), 10);\r\n }\r\n }\r\n\r\n /**\r\n * tells toastrService to remove this toast after animation time\r\n */\r\n remove() {\r\n if (this.state === 'removed') {\r\n return;\r\n }\r\n clearTimeout(this.timeout);\r\n this.state = 'removed';\r\n this.timeout = setTimeout(() =>\r\n this.toastrService.remove(this.toastPackage.toastId),\r\n );\r\n }\r\n @HostListener('click')\r\n tapToast() {\r\n if (this.state === 'removed') {\r\n return;\r\n }\r\n this.toastPackage.triggerTap();\r\n if (this.options.tapToDismiss) {\r\n this.remove();\r\n }\r\n }\r\n @HostListener('mouseenter')\r\n stickAround() {\r\n if (this.state === 'removed') {\r\n return;\r\n }\r\n clearTimeout(this.timeout);\r\n this.options.timeOut = 0;\r\n this.hideTime = 0;\r\n\r\n // disable progressBar\r\n clearInterval(this.intervalId);\r\n this.width = 0;\r\n }\r\n @HostListener('mouseleave')\r\n delayedHideToast() {\r\n if (\r\n (this.options.disableTimeOut === true || this.options.disableTimeOut === 'extendedTimeOut') ||\r\n this.options.extendedTimeOut === 0 ||\r\n this.state === 'removed'\r\n ) {\r\n return;\r\n }\r\n this.timeout = setTimeout(\r\n () => this.remove(),\r\n this.options.extendedTimeOut,\r\n );\r\n this.options.timeOut = this.options.extendedTimeOut;\r\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\r\n this.width = -1;\r\n if (this.options.progressBar) {\r\n this.intervalId = setInterval(() => this.updateProgress(), 10);\r\n }\r\n }\r\n}\r\n\r\nexport const DefaultNoAnimationsGlobalConfig: GlobalConfig = {\r\n ...DefaultNoComponentGlobalConfig,\r\n toastComponent: ToastNoAnimation,\r\n};\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [ToastNoAnimation],\r\n exports: [ToastNoAnimation],\r\n})\r\nexport class ToastNoAnimationModule {\r\n static forRoot(config: Partial = {}): ModuleWithProviders {\r\n return {\r\n ngModule: ToastNoAnimationModule,\r\n providers: [\r\n {\r\n provide: TOAST_CONFIG,\r\n useValue: {\r\n default: DefaultNoAnimationsGlobalConfig,\r\n config,\r\n },\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { Observable, Subject } from 'rxjs';\r\nimport { OverlayRef } from '../overlay/overlay-ref';\r\n\r\n/**\r\n * Reference to a toast opened via the Toastr service.\r\n */\r\nexport class ToastRef {\r\n /** The instance of component opened into the toast. */\r\n componentInstance!: T;\r\n\r\n /** Count of duplicates of this toast */\r\n private duplicatesCount = 0;\r\n\r\n /** Subject for notifying the user that the toast has finished closing. */\r\n private _afterClosed = new Subject();\r\n /** triggered when toast is activated */\r\n private _activate = new Subject();\r\n /** notifies the toast that it should close before the timeout */\r\n private _manualClose = new Subject();\r\n /** notifies the toast that it should reset the timeouts */\r\n private _resetTimeout = new Subject();\r\n /** notifies the toast that it should count a duplicate toast */\r\n private _countDuplicate = new Subject();\r\n\r\n constructor(private _overlayRef: OverlayRef) {}\r\n\r\n manualClose() {\r\n this._manualClose.next();\r\n this._manualClose.complete();\r\n }\r\n\r\n manualClosed(): Observable {\r\n return this._manualClose.asObservable();\r\n }\r\n\r\n timeoutReset(): Observable {\r\n return this._resetTimeout.asObservable();\r\n }\r\n\r\n countDuplicate(): Observable {\r\n return this._countDuplicate.asObservable();\r\n }\r\n\r\n /**\r\n * Close the toast.\r\n */\r\n close(): void {\r\n this._overlayRef.detach();\r\n this._afterClosed.next();\r\n this._manualClose.next();\r\n this._afterClosed.complete();\r\n this._manualClose.complete();\r\n this._activate.complete();\r\n this._resetTimeout.complete();\r\n this._countDuplicate.complete();\r\n }\r\n\r\n /** Gets an observable that is notified when the toast is finished closing. */\r\n afterClosed(): Observable {\r\n return this._afterClosed.asObservable();\r\n }\r\n\r\n isInactive() {\r\n return this._activate.isStopped;\r\n }\r\n\r\n activate() {\r\n this._activate.next();\r\n this._activate.complete();\r\n }\r\n\r\n /** Gets an observable that is notified when the toast has started opening. */\r\n afterActivate(): Observable {\r\n return this._activate.asObservable();\r\n }\r\n\r\n /** Reset the toast timouts and count duplicates */\r\n onDuplicate(resetTimeout: boolean, countDuplicate: boolean) {\r\n if (resetTimeout) {\r\n this._resetTimeout.next();\r\n }\r\n if (countDuplicate) {\r\n this._countDuplicate.next(++this.duplicatesCount);\r\n }\r\n }\r\n}\r\n","import {\r\n animate,\r\n state,\r\n style,\r\n transition,\r\n trigger\r\n} from '@angular/animations';\r\nimport {\r\n Component,\r\n HostBinding,\r\n HostListener,\r\n NgZone,\r\n OnDestroy\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\nimport { IndividualConfig, ToastPackage } from './toastr-config';\r\nimport { ToastrService } from './toastr.service';\r\n\r\n@Component({\r\n selector: '[toast-component]',\r\n template: `\r\n \r\n
\r\n {{ title }} [{{ duplicatesCount + 1 }}]\r\n
\r\n
\r\n
\r\n
\r\n {{ message }}\r\n
\r\n
\r\n
\r\n
\r\n `,\r\n animations: [\r\n trigger('flyInOut', [\r\n state('inactive', style({ opacity: 0 })),\r\n state('active', style({ opacity: 1 })),\r\n state('removed', style({ opacity: 0 })),\r\n transition(\r\n 'inactive => active',\r\n animate('{{ easeTime }}ms {{ easing }}')\r\n ),\r\n transition(\r\n 'active => removed',\r\n animate('{{ easeTime }}ms {{ easing }}')\r\n )\r\n ])\r\n ],\r\n preserveWhitespaces: false\r\n})\r\nexport class Toast implements OnDestroy {\r\n message?: string | null;\r\n title?: string;\r\n options: IndividualConfig;\r\n duplicatesCount!: number;\r\n originalTimeout: number;\r\n /** width of progress bar */\r\n width = -1;\r\n /** a combination of toast type and options.toastClass */\r\n @HostBinding('class') toastClasses = '';\r\n /** controls animation */\r\n @HostBinding('@flyInOut')\r\n state = {\r\n value: 'inactive',\r\n params: {\r\n easeTime: this.toastPackage.config.easeTime,\r\n easing: 'ease-in'\r\n }\r\n };\r\n\r\n /** hides component when waiting to be displayed */\r\n @HostBinding('style.display')\r\n get displayStyle(): string | undefined {\r\n if (this.state.value === 'inactive') {\r\n return 'none';\r\n }\r\n\r\n return;\r\n }\r\n\r\n private timeout: any;\r\n private intervalId: any;\r\n private hideTime!: number;\r\n private sub: Subscription;\r\n private sub1: Subscription;\r\n private sub2: Subscription;\r\n private sub3: Subscription;\r\n\r\n constructor(\r\n protected toastrService: ToastrService,\r\n public toastPackage: ToastPackage,\r\n protected ngZone?: NgZone\r\n ) {\r\n this.message = toastPackage.message;\r\n this.title = toastPackage.title;\r\n this.options = toastPackage.config;\r\n this.originalTimeout = toastPackage.config.timeOut;\r\n this.toastClasses = `${toastPackage.toastType} ${\r\n toastPackage.config.toastClass\r\n }`;\r\n this.sub = toastPackage.toastRef.afterActivate().subscribe(() => {\r\n this.activateToast();\r\n });\r\n this.sub1 = toastPackage.toastRef.manualClosed().subscribe(() => {\r\n this.remove();\r\n });\r\n this.sub2 = toastPackage.toastRef.timeoutReset().subscribe(() => {\r\n this.resetTimeout();\r\n });\r\n this.sub3 = toastPackage.toastRef.countDuplicate().subscribe(count => {\r\n this.duplicatesCount = count;\r\n });\r\n }\r\n ngOnDestroy() {\r\n this.sub.unsubscribe();\r\n this.sub1.unsubscribe();\r\n this.sub2.unsubscribe();\r\n this.sub3.unsubscribe();\r\n clearInterval(this.intervalId);\r\n clearTimeout(this.timeout);\r\n }\r\n /**\r\n * activates toast and sets timeout\r\n */\r\n activateToast() {\r\n this.state = { ...this.state, value: 'active' };\r\n if (!(this.options.disableTimeOut === true || this.options.disableTimeOut === 'timeOut') && this.options.timeOut) {\r\n this.outsideTimeout(() => this.remove(), this.options.timeOut);\r\n this.hideTime = new Date().getTime() + this.options.timeOut;\r\n if (this.options.progressBar) {\r\n this.outsideInterval(() => this.updateProgress(), 10);\r\n }\r\n }\r\n }\r\n /**\r\n * updates progress bar width\r\n */\r\n updateProgress() {\r\n if (this.width === 0 || this.width === 100 || !this.options.timeOut) {\r\n return;\r\n }\r\n const now = new Date().getTime();\r\n const remaining = this.hideTime - now;\r\n this.width = (remaining / this.options.timeOut) * 100;\r\n if (this.options.progressAnimation === 'increasing') {\r\n this.width = 100 - this.width;\r\n }\r\n if (this.width <= 0) {\r\n this.width = 0;\r\n }\r\n if (this.width >= 100) {\r\n this.width = 100;\r\n }\r\n }\r\n\r\n resetTimeout() {\r\n clearTimeout(this.timeout);\r\n clearInterval(this.intervalId);\r\n this.state = { ...this.state, value: 'active' };\r\n\r\n this.outsideTimeout(() => this.remove(), this.originalTimeout);\r\n this.options.timeOut = this.originalTimeout;\r\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\r\n this.width = -1;\r\n if (this.options.progressBar) {\r\n this.outsideInterval(() => this.updateProgress(), 10);\r\n }\r\n }\r\n\r\n /**\r\n * tells toastrService to remove this toast after animation time\r\n */\r\n remove() {\r\n if (this.state.value === 'removed') {\r\n return;\r\n }\r\n clearTimeout(this.timeout);\r\n this.state = { ...this.state, value: 'removed' };\r\n this.outsideTimeout(\r\n () => this.toastrService.remove(this.toastPackage.toastId),\r\n +this.toastPackage.config.easeTime\r\n );\r\n }\r\n @HostListener('click')\r\n tapToast() {\r\n if (this.state.value === 'removed') {\r\n return;\r\n }\r\n this.toastPackage.triggerTap();\r\n if (this.options.tapToDismiss) {\r\n this.remove();\r\n }\r\n }\r\n @HostListener('mouseenter')\r\n stickAround() {\r\n if (this.state.value === 'removed') {\r\n return;\r\n }\r\n\r\n if (this.options.disableTimeOut !== 'extendedTimeOut') {\r\n clearTimeout(this.timeout);\r\n this.options.timeOut = 0;\r\n this.hideTime = 0;\r\n \r\n // disable progressBar\r\n clearInterval(this.intervalId);\r\n this.width = 0;\r\n }\r\n }\r\n @HostListener('mouseleave')\r\n delayedHideToast() {\r\n if (\r\n (this.options.disableTimeOut === true || this.options.disableTimeOut === 'extendedTimeOut') ||\r\n this.options.extendedTimeOut === 0 ||\r\n this.state.value === 'removed'\r\n ) {\r\n return;\r\n }\r\n this.outsideTimeout(() => this.remove(), this.options.extendedTimeOut);\r\n this.options.timeOut = this.options.extendedTimeOut;\r\n this.hideTime = new Date().getTime() + (this.options.timeOut || 0);\r\n this.width = -1;\r\n if (this.options.progressBar) {\r\n this.outsideInterval(() => this.updateProgress(), 10);\r\n }\r\n }\r\n\r\n outsideTimeout(func: () => any, timeout: number) {\r\n if (this.ngZone) {\r\n this.ngZone.runOutsideAngular(\r\n () =>\r\n (this.timeout = setTimeout(\r\n () => this.runInsideAngular(func),\r\n timeout\r\n ))\r\n );\r\n } else {\r\n this.timeout = setTimeout(() => func(), timeout);\r\n }\r\n }\r\n\r\n outsideInterval(func: () => any, timeout: number) {\r\n if (this.ngZone) {\r\n this.ngZone.runOutsideAngular(\r\n () =>\r\n (this.intervalId = setInterval(\r\n () => this.runInsideAngular(func),\r\n timeout\r\n ))\r\n );\r\n } else {\r\n this.intervalId = setInterval(() => func(), timeout);\r\n }\r\n }\r\n\r\n private runInsideAngular(func: () => any) {\r\n if (this.ngZone) {\r\n this.ngZone.run(() => func());\r\n } else {\r\n func();\r\n }\r\n }\r\n}\r\n","import {\r\n Directive,\r\n ElementRef,\r\n NgModule,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[toastContainer]',\r\n exportAs: 'toastContainer',\r\n})\r\nexport class ToastContainerDirective {\r\n constructor(private el: ElementRef) { }\r\n getContainerElement(): HTMLElement {\r\n return this.el.nativeElement;\r\n }\r\n}\r\n\r\n@NgModule({\r\n declarations: [ToastContainerDirective],\r\n exports: [ToastContainerDirective],\r\n})\r\nexport class ToastContainerModule {}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nimport { Observable, Subject } from 'rxjs';\r\n\r\nimport { ComponentType } from '../portal/portal';\r\nimport { ToastRef } from './toast-ref';\r\n\r\nexport type ProgressAnimationType = 'increasing' | 'decreasing';\r\nexport type DisableTimoutType = boolean | 'timeOut' | 'extendedTimeOut';\r\n\r\n/**\r\n * Configuration for an individual toast.\r\n */\r\nexport interface IndividualConfig {\r\n /**\r\n * disable both timeOut and extendedTimeOut\r\n * default: false\r\n */\r\n disableTimeOut: DisableTimoutType;\r\n /**\r\n * toast time to live in milliseconds\r\n * default: 5000\r\n */\r\n timeOut: number;\r\n /**\r\n * toast show close button\r\n * default: false\r\n */\r\n closeButton: boolean;\r\n /**\r\n * time to close after a user hovers over toast\r\n * default: 1000\r\n */\r\n extendedTimeOut: number;\r\n /**\r\n * show toast progress bar\r\n * default: false\r\n */\r\n progressBar: boolean;\r\n\r\n /**\r\n * changes toast progress bar animation\r\n * default: decreasing\r\n */\r\n progressAnimation: ProgressAnimationType;\r\n\r\n /**\r\n * render html in toast message (possibly unsafe)\r\n * default: false\r\n */\r\n enableHtml: boolean;\r\n /**\r\n * css class on toast component\r\n * default: ngx-toastr\r\n */\r\n toastClass: string;\r\n /**\r\n * css class on toast container\r\n * default: toast-top-right\r\n */\r\n positionClass: string;\r\n /**\r\n * css class on toast title\r\n * default: toast-title\r\n */\r\n titleClass: string;\r\n /**\r\n * css class on toast message\r\n * default: toast-message\r\n */\r\n messageClass: string;\r\n /**\r\n * animation easing on toast\r\n * default: ease-in\r\n */\r\n easing: string;\r\n /**\r\n * animation ease time on toast\r\n * default: 300\r\n */\r\n easeTime: string | number;\r\n /**\r\n * clicking on toast dismisses it\r\n * default: true\r\n */\r\n tapToDismiss: boolean;\r\n /**\r\n * Angular toast component to be shown\r\n * default: Toast\r\n */\r\n toastComponent?: ComponentType;\r\n /**\r\n * Helps show toast from a websocket or from event outside Angular\r\n * default: false\r\n */\r\n onActivateTick: boolean;\r\n /**\r\n * New toast placement\r\n * default: true\r\n */\r\n newestOnTop: boolean;\r\n\r\n /**\r\n * payload to pass to the toastComponent\r\n * default: null\r\n */\r\n payload: any;\r\n}\r\n\r\nexport interface ToastrIconClasses {\r\n error: string;\r\n info: string;\r\n success: string;\r\n warning: string;\r\n [key: string]: string;\r\n}\r\n\r\n/**\r\n * Global Toast configuration\r\n * Includes all IndividualConfig\r\n */\r\nexport interface GlobalConfig extends IndividualConfig {\r\n /**\r\n * max toasts opened. Toasts will be queued\r\n * Zero is unlimited\r\n * default: 0\r\n */\r\n maxOpened: number;\r\n /**\r\n * dismiss current toast when max is reached\r\n * default: false\r\n */\r\n autoDismiss: boolean;\r\n iconClasses: Partial;\r\n /**\r\n * block duplicate messages\r\n * default: false\r\n */\r\n preventDuplicates: boolean;\r\n /**\r\n * display the number of duplicate messages\r\n * default: false\r\n */\r\n countDuplicates: boolean;\r\n /**\r\n * Reset toast timeout when there's a duplicate (preventDuplicates needs to be set to true)\r\n * default: false\r\n */\r\n resetTimeoutOnDuplicate: boolean;\r\n /**\r\n * consider the title of a toast when checking if duplicate\r\n * default: false\r\n */\r\n includeTitleDuplicates: boolean;\r\n}\r\n\r\n/**\r\n * Everything a toast needs to launch\r\n */\r\nexport class ToastPackage {\r\n private _onTap = new Subject();\r\n private _onAction = new Subject();\r\n\r\n constructor(\r\n public toastId: number,\r\n public config: IndividualConfig,\r\n public message: string | null | undefined,\r\n public title: string | undefined,\r\n public toastType: string,\r\n public toastRef: ToastRef,\r\n ) {\r\n this.toastRef.afterClosed().subscribe(() => {\r\n this._onAction.complete();\r\n this._onTap.complete();\r\n });\r\n }\r\n\r\n /** Fired on click */\r\n triggerTap(): void {\r\n this._onTap.next();\r\n if (this.config.tapToDismiss) {\r\n this._onTap.complete();\r\n }\r\n }\r\n\r\n onTap(): Observable {\r\n return this._onTap.asObservable();\r\n }\r\n\r\n /** available for use in custom toast */\r\n triggerAction(action?: any): void {\r\n this._onAction.next(action);\r\n }\r\n\r\n onAction(): Observable {\r\n return this._onAction.asObservable();\r\n }\r\n}\r\n\r\n/* eslint-disable @typescript-eslint/no-empty-interface */\r\n/** @deprecated use GlobalConfig */\r\nexport interface GlobalToastrConfig extends GlobalConfig {}\r\n/** @deprecated use IndividualConfig */\r\nexport interface IndividualToastrConfig extends IndividualConfig {}\r\n/** @deprecated use IndividualConfig */\r\nexport interface ToastrConfig extends IndividualConfig {}\r\n\r\nexport const DefaultNoComponentGlobalConfig: GlobalConfig = {\r\n maxOpened: 0,\r\n autoDismiss: false,\r\n newestOnTop: true,\r\n preventDuplicates: false,\r\n countDuplicates: false,\r\n resetTimeoutOnDuplicate: false,\r\n includeTitleDuplicates: false,\r\n\r\n iconClasses: {\r\n error: 'toast-error',\r\n info: 'toast-info',\r\n success: 'toast-success',\r\n warning: 'toast-warning',\r\n },\r\n\r\n // Individual\r\n closeButton: false,\r\n disableTimeOut: false,\r\n timeOut: 5000,\r\n extendedTimeOut: 1000,\r\n enableHtml: false,\r\n progressBar: false,\r\n toastClass: 'ngx-toastr',\r\n positionClass: 'toast-top-right',\r\n titleClass: 'toast-title',\r\n messageClass: 'toast-message',\r\n easing: 'ease-in',\r\n easeTime: 300,\r\n tapToDismiss: true,\r\n onActivateTick: false,\r\n progressAnimation: 'decreasing',\r\n\r\n payload: null\r\n};\r\n\r\nexport interface ToastToken {\r\n default: GlobalConfig;\r\n config: Partial;\r\n}\r\n\r\nexport const TOAST_CONFIG = new InjectionToken('ToastConfig');\r\n","import { CommonModule } from '@angular/common';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\n\r\nimport { Toast } from './toast.component';\r\nimport { DefaultNoComponentGlobalConfig, GlobalConfig, TOAST_CONFIG } from './toastr-config';\r\n\r\nexport const DefaultGlobalConfig: GlobalConfig = {\r\n ...DefaultNoComponentGlobalConfig,\r\n toastComponent: Toast,\r\n};\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n declarations: [Toast],\r\n exports: [Toast],\r\n})\r\nexport class ToastrModule {\r\n static forRoot(config: Partial = {}): ModuleWithProviders {\r\n return {\r\n ngModule: ToastrModule,\r\n providers: [\r\n {\r\n provide: TOAST_CONFIG,\r\n useValue: {\r\n default: DefaultGlobalConfig,\r\n config,\r\n },\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class ToastrComponentlessModule {\r\n static forRoot(config: Partial = {}): ModuleWithProviders {\r\n return {\r\n ngModule: ToastrModule,\r\n providers: [\r\n {\r\n provide: TOAST_CONFIG,\r\n useValue: {\r\n default: DefaultNoComponentGlobalConfig,\r\n config,\r\n },\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { ComponentRef, Inject, Injectable, Injector, NgZone, SecurityContext } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { Overlay } from '../overlay/overlay';\r\nimport { ComponentPortal } from '../portal/portal';\r\nimport { ToastRef } from './toast-ref';\r\nimport { ToastContainerDirective } from './toast.directive';\r\nimport {\r\n GlobalConfig,\r\n IndividualConfig,\r\n ToastPackage,\r\n ToastToken,\r\n TOAST_CONFIG,\r\n} from './toastr-config';\r\n\r\nexport interface ActiveToast {\r\n /** Your Toast ID. Use this to close it individually */\r\n toastId: number;\r\n /** the title of your toast. Stored to prevent duplicates */\r\n title: string;\r\n /** the message of your toast. Stored to prevent duplicates */\r\n message: string;\r\n /** a reference to the component see portal.ts */\r\n portal: ComponentRef;\r\n /** a reference to your toast */\r\n toastRef: ToastRef;\r\n /** triggered when toast is active */\r\n onShown: Observable;\r\n /** triggered when toast is destroyed */\r\n onHidden: Observable;\r\n /** triggered on toast click */\r\n onTap: Observable;\r\n /** available for your use in custom toast */\r\n onAction: Observable;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ToastrService {\r\n toastrConfig: GlobalConfig;\r\n currentlyActive = 0;\r\n toasts: ActiveToast[] = [];\r\n overlayContainer?: ToastContainerDirective;\r\n previousToastMessage: string | undefined;\r\n private index = 0;\r\n\r\n constructor(\r\n @Inject(TOAST_CONFIG) token: ToastToken,\r\n private overlay: Overlay,\r\n private _injector: Injector,\r\n private sanitizer: DomSanitizer,\r\n private ngZone: NgZone,\r\n ) {\r\n this.toastrConfig = {\r\n ...token.default,\r\n ...token.config,\r\n };\r\n if (token.config.iconClasses) {\r\n this.toastrConfig.iconClasses = {\r\n ...token.default.iconClasses,\r\n ...token.config.iconClasses,\r\n };\r\n }\r\n }\r\n /** show toast */\r\n show(message?: string, title?: string, override: Partial = {}, type = '') {\r\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\r\n }\r\n /** show successful toast */\r\n success(message?: string, title?: string, override: Partial = {}) {\r\n const type = this.toastrConfig.iconClasses.success || '';\r\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\r\n }\r\n /** show error toast */\r\n error(message?: string, title?: string, override: Partial = {}) {\r\n const type = this.toastrConfig.iconClasses.error || '';\r\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\r\n }\r\n /** show info toast */\r\n info(message?: string, title?: string, override: Partial = {}) {\r\n const type = this.toastrConfig.iconClasses.info || '';\r\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\r\n }\r\n /** show warning toast */\r\n warning(message?: string, title?: string, override: Partial = {}) {\r\n const type = this.toastrConfig.iconClasses.warning || '';\r\n return this._preBuildNotification(type, message, title, this.applyConfig(override));\r\n }\r\n /**\r\n * Remove all or a single toast by id\r\n */\r\n clear(toastId?: number) {\r\n // Call every toastRef manualClose function\r\n for (const toast of this.toasts) {\r\n if (toastId !== undefined) {\r\n if (toast.toastId === toastId) {\r\n toast.toastRef.manualClose();\r\n return;\r\n }\r\n } else {\r\n toast.toastRef.manualClose();\r\n }\r\n }\r\n }\r\n /**\r\n * Remove and destroy a single toast by id\r\n */\r\n remove(toastId: number) {\r\n const found = this._findToast(toastId);\r\n if (!found) {\r\n return false;\r\n }\r\n found.activeToast.toastRef.close();\r\n this.toasts.splice(found.index, 1);\r\n this.currentlyActive = this.currentlyActive - 1;\r\n if (!this.toastrConfig.maxOpened || !this.toasts.length) {\r\n return false;\r\n }\r\n if (this.currentlyActive < this.toastrConfig.maxOpened && this.toasts[this.currentlyActive]) {\r\n const p = this.toasts[this.currentlyActive].toastRef;\r\n if (!p.isInactive()) {\r\n this.currentlyActive = this.currentlyActive + 1;\r\n p.activate();\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n /**\r\n * Determines if toast message is already shown\r\n */\r\n findDuplicate(title = '', message = '', resetOnDuplicate: boolean, countDuplicates: boolean) {\r\n const { includeTitleDuplicates } = this.toastrConfig;\r\n\r\n for (const toast of this.toasts) {\r\n const hasDuplicateTitle = includeTitleDuplicates && toast.title === title;\r\n if ((!includeTitleDuplicates || hasDuplicateTitle) && toast.message === message) {\r\n toast.toastRef.onDuplicate(resetOnDuplicate, countDuplicates);\r\n return toast;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n /** create a clone of global config and apply individual settings */\r\n private applyConfig(override: Partial = {}): GlobalConfig {\r\n return { ...this.toastrConfig, ...override };\r\n }\r\n\r\n /**\r\n * Find toast object by id\r\n */\r\n private _findToast(toastId: number): { index: number; activeToast: ActiveToast } | null {\r\n for (let i = 0; i < this.toasts.length; i++) {\r\n if (this.toasts[i].toastId === toastId) {\r\n return { index: i, activeToast: this.toasts[i] };\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Determines the need to run inside angular's zone then builds the toast\r\n */\r\n private _preBuildNotification(\r\n toastType: string,\r\n message: string | undefined,\r\n title: string | undefined,\r\n config: GlobalConfig,\r\n ): ActiveToast | null {\r\n if (config.onActivateTick) {\r\n return this.ngZone.run(() => this._buildNotification(toastType, message, title, config));\r\n }\r\n return this._buildNotification(toastType, message, title, config);\r\n }\r\n\r\n /**\r\n * Creates and attaches toast data to component\r\n * returns the active toast, or in case preventDuplicates is enabled the original/non-duplicate active toast.\r\n */\r\n private _buildNotification(\r\n toastType: string,\r\n message: string | undefined,\r\n title: string | undefined,\r\n config: GlobalConfig,\r\n ): ActiveToast | null {\r\n if (!config.toastComponent) {\r\n throw new Error('toastComponent required');\r\n }\r\n // max opened and auto dismiss = true\r\n // if timeout = 0 resetting it would result in setting this.hideTime = Date.now(). Hence, we only want to reset timeout if there is\r\n // a timeout at all\r\n const duplicate = this.findDuplicate(\r\n title,\r\n message,\r\n this.toastrConfig.resetTimeoutOnDuplicate && config.timeOut > 0,\r\n this.toastrConfig.countDuplicates,\r\n );\r\n if (\r\n ((this.toastrConfig.includeTitleDuplicates && title) || message) &&\r\n this.toastrConfig.preventDuplicates &&\r\n duplicate !== null\r\n ) {\r\n return duplicate;\r\n }\r\n\r\n this.previousToastMessage = message;\r\n let keepInactive = false;\r\n if (this.toastrConfig.maxOpened && this.currentlyActive >= this.toastrConfig.maxOpened) {\r\n keepInactive = true;\r\n if (this.toastrConfig.autoDismiss) {\r\n this.clear(this.toasts[0].toastId);\r\n }\r\n }\r\n\r\n const overlayRef = this.overlay.create(config.positionClass, this.overlayContainer);\r\n this.index = this.index + 1;\r\n let sanitizedMessage: string | undefined | null = message;\r\n if (message && config.enableHtml) {\r\n sanitizedMessage = this.sanitizer.sanitize(SecurityContext.HTML, message);\r\n }\r\n\r\n const toastRef = new ToastRef(overlayRef);\r\n const toastPackage = new ToastPackage(\r\n this.index,\r\n config,\r\n sanitizedMessage,\r\n title,\r\n toastType,\r\n toastRef,\r\n );\r\n\r\n /** New injector that contains an instance of `ToastPackage`. */\r\n const providers = [{provide: ToastPackage, useValue: toastPackage}];\r\n const toastInjector = Injector.create({providers, parent: this._injector});\r\n\r\n const component = new ComponentPortal(config.toastComponent, toastInjector);\r\n const portal = overlayRef.attach(component, config.newestOnTop);\r\n toastRef.componentInstance = portal.instance;\r\n const ins: ActiveToast = {\r\n toastId: this.index,\r\n title: title || '',\r\n message: message || '',\r\n toastRef,\r\n onShown: toastRef.afterActivate(),\r\n onHidden: toastRef.afterClosed(),\r\n onTap: toastPackage.onTap(),\r\n onAction: toastPackage.onAction(),\r\n portal,\r\n };\r\n\r\n if (!keepInactive) {\r\n this.currentlyActive = this.currentlyActive + 1;\r\n setTimeout(() => {\r\n ins.toastRef.activate();\r\n });\r\n }\r\n\r\n this.toasts.push(ins);\r\n return ins;\r\n }\r\n}\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { LocalStoreManager } from './local-store-manager.service';\r\nimport { JwtHelper } from './jwt-helper';\r\nimport { ConfigurationService } from './configuration.service';\r\n\r\nconst TOKEN_KEY = 'TOKEN';\r\nconst REMEMBER_ME = 'REMEMBER_ME';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenService {\r\n constructor(protected localStorage: LocalStoreManager, private helper: JwtHelper, private configurationService: ConfigurationService) { }\r\n\r\n private static isEmptyString(value: string): boolean {\r\n return !value || 0 === value.length;\r\n }\r\n\r\n storeToken(token: string,) {\r\n if (TokenService.isEmptyString(token)) {\r\n throw new Error(`token can't be null or empty.`);\r\n }\r\n\r\n if (this.rememberMe()) {\r\n this.localStorage.savePermanentData(token, `${TOKEN_KEY}_${this.configurationService.loggingUserName}`);\r\n } else {\r\n this.localStorage.saveSessionData(token, `${TOKEN_KEY}_${this.configurationService.loggingUserName}`);\r\n }\r\n }\r\n\r\n deleteToken() {\r\n this.localStorage.deleteData(`${TOKEN_KEY}_${this.configurationService.loggingUserName}`);\r\n this.localStorage.deleteData(`${REMEMBER_ME}_${this.configurationService.loggingUserName}`);\r\n }\r\n\r\n getRawToken(): string {\r\n if (window.name && !this.configurationService.loggingUserName)\r\n this.configurationService.loggingUserName = window.name;\r\n if (this.localStorage.getData(`${TOKEN_KEY}_${this.configurationService.loggingUserName}`) && this.localStorage.getData(`${TOKEN_KEY}_${this.configurationService.loggingUserName}`)[\"token\"])\r\n return this.localStorage.getData(`${TOKEN_KEY}_${this.configurationService.loggingUserName}`)[\"token\"];\r\n return this.localStorage.getData(`${TOKEN_KEY}_${this.configurationService.loggingUserName}`);\r\n\r\n }\r\n\r\n getToken(): any {\r\n const decodedToken = this.helper.decodeToken(this.getRawToken());\r\n return decodedToken;\r\n }\r\n expirationDate() {\r\n return this.helper.getTokenExpirationDate(this.getRawToken()) as Date;\r\n }\r\n isExpired() {\r\n return this.helper.isTokenExpired(this.getRawToken());\r\n }\r\n rememberMe(): any {\r\n if (this.localStorage.getData(`${REMEMBER_ME}_${this.configurationService.loggingUserName}`) === null || this.localStorage.getData(`${REMEMBER_ME}_${this.configurationService.loggingUserName}`) === undefined)\r\n return false;\r\n return this.localStorage.getData(`${REMEMBER_ME}_${this.configurationService.loggingUserName}`);\r\n }\r\n\r\n setRememberMe(value: boolean,): void {\r\n this.localStorage.savePermanentData(value, `${REMEMBER_ME}_${this.configurationService.loggingUserName}`);\r\n }\r\n\r\n hasValidToken(): boolean {\r\n const token = this.getRawToken();\r\n return !TokenService.isEmptyString(token) && !this.isTokenExpired();\r\n }\r\n\r\n isTokenExpired(): boolean {\r\n return this.getUserId();\r\n }\r\n\r\n public getTokenExpirationTime(): Date | null {\r\n\r\n return this.helper.getTokenExpirationDate(this.getRawToken());\r\n }\r\n getRole() {\r\n return this.getToken()[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"];\r\n }\r\n getSerialNumber() {\r\n return this.getToken()[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/serialnumber\"];\r\n }\r\n getName() {\r\n return this.getToken()[\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name\"];\r\n }\r\n getUserId() {\r\n return this.getToken()[\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier\"];\r\n }\r\n getIsHeadOffice() {\r\n return this.getToken()[\"IsHeadOffice\"];\r\n }\r\n getDisplayName() {\r\n return this.getToken()[\"DisplayName\"];\r\n }\r\n getBranchId() {\r\n return this.getToken()[\"BranchId\"];\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { HttpResponseBase, HttpResponse, HttpErrorResponse } from \"@angular/common/http\";\r\n// @dynamic\r\n@Injectable()\r\nexport class Utilities {\r\n public static readonly captionAndMessageSeparator = \":\";\r\n public static readonly noNetworkMessageCaption = \"No Network\";\r\n public static readonly noNetworkMessageDetail = \"The server cannot be reached\";\r\n public static readonly accessDeniedMessageCaption = \"Access Denied!\";\r\n public static readonly accessDeniedMessageDetail = \"\";\r\n public static getHttpResponseMessage(data: HttpResponseBase | any): string[] {\r\n let responses: string[] = [];\r\n console.log(`data:`, data);\r\n if (data instanceof HttpResponseBase) {\r\n if (this.checkNoNetwork(data)) {\r\n responses.push(`${this.noNetworkMessageCaption}${this.captionAndMessageSeparator} ${this.noNetworkMessageDetail}`);\r\n } else {\r\n let responseObject = this.getResponseBody(data);\r\n if (\r\n (responseObject && responseObject.toString().includes(\"The DELETE statement conflicted with the REFERENCE constraint\")) ||\r\n (responseObject && responseObject.toString().includes(\"Cannot insert duplicate key row in object\")) ||\r\n (responseObject && responseObject.toString().includes(\"The DELETE statement conflicted with the SAME TABLE REFERENCE constraint\"))\r\n ) {\r\n let item = responseObject?.match(/\\(([^)]+)\\)/);\r\n let itemName = item ? item[1] : \"\";\r\n responseObject = responseObject.toString().split(\",\")[0].split(\".\")[0] + (itemName ? \" : \" + itemName : \"\");\r\n }\r\n if (responseObject && (typeof responseObject === \"object\" || responseObject instanceof Object)) {\r\n for (let key in responseObject) {\r\n if (key) responses.push(`${key}${this.captionAndMessageSeparator} ${responseObject[key]}`);\r\n else if (responseObject[key]) responses.push(responseObject[key].toString());\r\n }\r\n }\r\n\r\n if (responseObject?.toString()?.includes(\"is out of range\")) {\r\n const value = responseObject.match(/\\d+/);\r\n return [`مقدار ${value} خارج از اندازه مجاز میباشد.`];\r\n }\r\n\r\n if (responseObject) {\r\n if (responseObject[0] === \"[object Object]\" && data.status === 500)\r\n responseObject[0] = \"کاربر دیگری با همین نام کاربری وارد سیستم شده است.\";\r\n return responseObject;\r\n }\r\n }\r\n if (!responses.length && this.getResponseBody(data)) responses.push(`${data.statusText}: ${this.getResponseBody(data).toString()}`);\r\n }\r\n if (!responses.length) {\r\n if (data.statusText) responses.push(data.statusText);\r\n else responses.push(data.message);\r\n }\r\n if (this.checkAccessDenied(data))\r\n responses.splice(0, 0, `${this.accessDeniedMessageCaption}${this.captionAndMessageSeparator} ${this.accessDeniedMessageDetail}`);\r\n if (responses[0] === \"[object Object]\" && data.status === 500) responses[0] = \"کاربر دیگری با همین نام کاربری وارد سیستم شده است.\";\r\n if (data == \"Forbidden\") responses[0] = \"شما به این قسمت دسترسی ندارید\";\r\n return responses;\r\n }\r\n public static findHttpResponseMessage(\r\n messageToFind: string,\r\n data: HttpResponse | any,\r\n seachInCaptionOnly = true,\r\n includeCaptionInResult = false\r\n ): string {\r\n let searchString = messageToFind.toLowerCase();\r\n let httpMessages = this.getHttpResponseMessage(data);\r\n for (let message of httpMessages) {\r\n let fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n if (fullMessage.firstPart && fullMessage.firstPart.toLowerCase().indexOf(searchString) != -1) {\r\n return includeCaptionInResult ? message : fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n if (!seachInCaptionOnly) {\r\n for (let message of httpMessages) {\r\n if (message.toLowerCase().indexOf(searchString) != -1) {\r\n if (includeCaptionInResult) {\r\n return message;\r\n } else {\r\n let fullMessage = Utilities.splitInTwo(message, this.captionAndMessageSeparator);\r\n return fullMessage.secondPart || fullMessage.firstPart;\r\n }\r\n }\r\n }\r\n }\r\n\r\n let error = data?.error?.DeveloperMessage ? data?.error?.DeveloperMessage?.Message : data?.error;\r\n\r\n return error;\r\n }\r\n public static getResponseBody(response: HttpResponseBase) {\r\n console.log(`response:`, response);\r\n if (response instanceof HttpResponse) return response.body;\r\n if (response instanceof HttpErrorResponse)\r\n return (\r\n (response?.error && response?.error?.DeveloperMessage && response?.error?.DeveloperMessage?.Message) ||\r\n (response?.error && response?.error?.Messages && response?.error?.Messages[0]) ||\r\n (response?.error &&\r\n !response?.error?.DeveloperMessage &&\r\n (response?.error && response?.error.toString()?.split(\":\")?.length > 1\r\n ? response?.error.toString()?.split(\":\")[1].split(\".\")[0]\r\n : response?.error))\r\n );\r\n return response;\r\n }\r\n public static checkNoNetwork(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 0;\r\n }\r\n return false;\r\n }\r\n public static checkAccessDenied(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 403;\r\n }\r\n return false;\r\n }\r\n public static checkNotFound(response: HttpResponseBase) {\r\n if (response instanceof HttpResponseBase) {\r\n return response.status === 404;\r\n }\r\n return false;\r\n }\r\n public static checkIsLocalHost(url: string, base?: string) {\r\n if (url) {\r\n let location = new URL(url, base);\r\n return location.hostname === \"localhost\" || location.hostname === \"127.0.0.1\";\r\n }\r\n return false;\r\n }\r\n public static getQueryParamsFromString(paramString: string) {\r\n if (!paramString) return null;\r\n let params: { [key: string]: string } = {};\r\n for (let param of paramString.split(\"&\")) {\r\n let keyValue = Utilities.splitInTwo(param, \"=\");\r\n params[keyValue.firstPart] = keyValue.secondPart;\r\n }\r\n return params;\r\n }\r\n public static splitInTwo(text: string, separator: string): { firstPart: string; secondPart: string } {\r\n let separatorIndex = text.indexOf(separator);\r\n if (separatorIndex === -1) return { firstPart: text, secondPart: null };\r\n let part1 = text.substr(0, separatorIndex).trim();\r\n let part2 = text.substr(separatorIndex + 1).trim();\r\n return { firstPart: part1, secondPart: part2 };\r\n }\r\n public static safeStringify(object) {\r\n let result: string;\r\n try {\r\n result = JSON.stringify(object);\r\n return result;\r\n } catch (error) {}\r\n let simpleObject = {};\r\n for (let prop in object) {\r\n if (!object.hasOwnProperty(prop)) {\r\n continue;\r\n }\r\n if (typeof object[prop] === \"object\") {\r\n continue;\r\n }\r\n if (typeof object[prop] === \"function\") {\r\n continue;\r\n }\r\n simpleObject[prop] = object[prop];\r\n }\r\n result = \"[***Sanitized Object***]: \" + JSON.stringify(simpleObject);\r\n return result;\r\n }\r\n public static JSonTryParse(value: string) {\r\n try {\r\n return JSON.parse(value);\r\n } catch (e) {\r\n if (value === \"undefined\") return void 0;\r\n return value;\r\n }\r\n }\r\n public static TestIsObjectEmpty(obj: any) {\r\n for (let prop in obj) {\r\n if (obj.hasOwnProperty(prop)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n public static TestIsUndefined(value: any) {\r\n return typeof value === \"undefined\";\r\n //return value === undefined;\r\n }\r\n public static TestIsString(value: any) {\r\n return typeof value === \"string\" || value instanceof String;\r\n }\r\n public static capitalizeFirstLetter(text: string) {\r\n if (text) return text.charAt(0).toUpperCase() + text.slice(1);\r\n else return text;\r\n }\r\n public static toTitleCase(text: string) {\r\n return text.replace(/\\w\\S*/g, (subString) => {\r\n return subString.charAt(0).toUpperCase() + subString.substr(1).toLowerCase();\r\n });\r\n }\r\n public static toLowerCase(items: string);\r\n public static toLowerCase(items: string[]);\r\n public static toLowerCase(items: any): string | string[] {\r\n if (items instanceof Array) {\r\n let loweredRoles: string[] = [];\r\n for (let i = 0; i < items.length; i++) {\r\n loweredRoles[i] = items[i].toLowerCase();\r\n }\r\n return loweredRoles;\r\n } else if (typeof items === \"string\" || items instanceof String) {\r\n return items.toLowerCase();\r\n }\r\n }\r\n public static uniqueId() {\r\n return this.randomNumber(1000000, 9000000).toString();\r\n }\r\n public static randomNumber(min: number, max: number) {\r\n return Math.floor(Math.random() * (max - min + 1) + min);\r\n }\r\n public static baseUrl() {\r\n let base = \"\";\r\n if (document.location.origin) base = document.location.origin;\r\n else base = document.location.protocol + \"//\" + document.location.hostname + (document.location.port ? \":\" + document.location.port : \"\");\r\n return base.replace(/\\/$/, \"\");\r\n }\r\n public static printDateOnly(date: Date) {\r\n date = new Date(date);\r\n let dayNames = new Array(\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\");\r\n let monthNames = new Array(\r\n \"January\",\r\n \"February\",\r\n \"March\",\r\n \"April\",\r\n \"May\",\r\n \"June\",\r\n \"July\",\r\n \"August\",\r\n \"September\",\r\n \"October\",\r\n \"November\",\r\n \"December\"\r\n );\r\n let dayOfWeek = date.getDay();\r\n let dayOfMonth = date.getDate();\r\n let sup = \"\";\r\n let month = date.getMonth();\r\n let year = date.getFullYear();\r\n if (dayOfMonth === 1 || dayOfMonth === 21 || dayOfMonth === 31) {\r\n sup = \"st\";\r\n } else if (dayOfMonth === 2 || dayOfMonth === 22) {\r\n sup = \"nd\";\r\n } else if (dayOfMonth === 3 || dayOfMonth === 23) {\r\n sup = \"rd\";\r\n } else {\r\n sup = \"th\";\r\n }\r\n let dateString = dayNames[dayOfWeek] + \", \" + dayOfMonth + sup + \" \" + monthNames[month] + \" \" + year;\r\n return dateString;\r\n }\r\n public static printTimeOnly(date: Date) {\r\n date = new Date(date);\r\n let period = \"\";\r\n let minute = date.getMinutes().toString();\r\n let hour = date.getHours();\r\n period = hour < 12 ? \"AM\" : \"PM\";\r\n if (hour === 0) {\r\n hour = 12;\r\n }\r\n if (hour > 12) {\r\n hour = hour - 12;\r\n }\r\n if (minute.length === 1) {\r\n minute = \"0\" + minute;\r\n }\r\n let timeString = hour + \":\" + minute + \" \" + period;\r\n return timeString;\r\n }\r\n public static printDate(date: Date, separator = \"at\") {\r\n return `${Utilities.printDateOnly(date)} ${separator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n public static printFriendlyDate(date: Date, separator = \"-\") {\r\n let today = new Date();\r\n today.setHours(0, 0, 0, 0);\r\n let yesterday = new Date(today);\r\n yesterday.setDate(yesterday.getDate() - 1);\r\n let test = new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n if (test.toDateString() === today.toDateString()) return `Today ${separator} ${Utilities.printTimeOnly(date)}`;\r\n if (test.toDateString() === yesterday.toDateString()) return `Yesterday ${separator} ${Utilities.printTimeOnly(date)}`;\r\n else return Utilities.printDate(date, separator);\r\n }\r\n public static printShortDate(date: Date, separator = \"/\", dateTimeSeparator = \"-\") {\r\n var day = date.getDate().toString();\r\n var month = (date.getMonth() + 1).toString();\r\n var year = date.getFullYear();\r\n if (day.length === 1) day = \"0\" + day;\r\n if (month.length === 1) month = \"0\" + month;\r\n return `${month}${separator}${day}${separator}${year} ${dateTimeSeparator} ${Utilities.printTimeOnly(date)}`;\r\n }\r\n public static parseDate(date) {\r\n if (date) {\r\n if (date instanceof Date) {\r\n return date;\r\n }\r\n if (typeof date === \"string\" || date instanceof String) {\r\n if (date.search(/[a-su-z+]/i) === -1) date = date + \"Z\";\r\n return new Date(date);\r\n }\r\n if (typeof date === \"number\" || date instanceof Number) {\r\n return new Date(date);\r\n }\r\n }\r\n }\r\n public static printDuration(start: Date, end: Date) {\r\n start = new Date(start);\r\n end = new Date(end);\r\n // get total seconds between the times\r\n let delta = Math.abs(start.valueOf() - end.valueOf()) / 1000;\r\n // calculate (and subtract) whole days\r\n let days = Math.floor(delta / 86400);\r\n delta -= days * 86400;\r\n // calculate (and subtract) whole hours\r\n let hours = Math.floor(delta / 3600) % 24;\r\n delta -= hours * 3600;\r\n // calculate (and subtract) whole minutes\r\n let minutes = Math.floor(delta / 60) % 60;\r\n delta -= minutes * 60;\r\n // what's left is seconds\r\n let seconds = delta % 60; // in theory the modulus is not required\r\n let printedDays = \"\";\r\n if (days) printedDays = `${days} days`;\r\n if (hours) printedDays += printedDays ? `, ${hours} hours` : `${hours} hours`;\r\n if (minutes) printedDays += printedDays ? `, ${minutes} minutes` : `${minutes} minutes`;\r\n if (seconds) printedDays += printedDays ? ` and ${seconds} seconds` : `${seconds} seconds`;\r\n if (!printedDays) printedDays = \"0\";\r\n return printedDays;\r\n }\r\n public static getAge(birthDate, otherDate) {\r\n birthDate = new Date(birthDate);\r\n otherDate = new Date(otherDate);\r\n let years = otherDate.getFullYear() - birthDate.getFullYear();\r\n if (otherDate.getMonth() < birthDate.getMonth() || (otherDate.getMonth() === birthDate.getMonth() && otherDate.getDate() < birthDate.getDate())) {\r\n years--;\r\n }\r\n return years;\r\n }\r\n public static searchArray(searchTerm: string, caseSensitive: boolean, ...values: any[]) {\r\n if (!searchTerm) return true;\r\n if (!caseSensitive) searchTerm = searchTerm.toLowerCase();\r\n for (let value of values) {\r\n if (value != null) {\r\n let strValue = value.toString();\r\n if (!caseSensitive) strValue = strValue.toLowerCase();\r\n if (strValue.indexOf(searchTerm) !== -1) return true;\r\n }\r\n }\r\n return false;\r\n }\r\n public static moveArrayItem(array: any[], oldIndex, newIndex) {\r\n while (oldIndex < 0) {\r\n oldIndex += this.length;\r\n }\r\n while (newIndex < 0) {\r\n newIndex += this.length;\r\n }\r\n if (newIndex >= this.length) {\r\n var k = newIndex - this.length;\r\n while (k-- + 1) {\r\n array.push(undefined);\r\n }\r\n }\r\n array.splice(newIndex, 0, array.splice(oldIndex, 1)[0]);\r\n }\r\n public static expandCamelCase(text: string) {\r\n if (!text) return text;\r\n return text\r\n .replace(/([A-Z][a-z]+)/g, \" $1\")\r\n .replace(/([A-Z][A-Z]+)/g, \" $1\")\r\n .replace(/([^A-Za-z ]+)/g, \" $1\");\r\n }\r\n public static testIsAbsoluteUrl(url: string) {\r\n let r = new RegExp(\"^(?:[a-z]+:)?//\", \"i\");\r\n return r.test(url);\r\n }\r\n public static convertToAbsoluteUrl(url: string) {\r\n return Utilities.testIsAbsoluteUrl(url) ? url : \"//\" + url;\r\n }\r\n public static removeNulls(obj) {\r\n let isArray = obj instanceof Array;\r\n for (let k in obj) {\r\n if (obj[k] === null) {\r\n isArray ? obj.splice(k, 1) : delete obj[k];\r\n } else if (typeof obj[k] === \"object\") {\r\n Utilities.removeNulls(obj[k]);\r\n }\r\n if (isArray && obj.length === k) {\r\n Utilities.removeNulls(obj);\r\n }\r\n }\r\n return obj;\r\n }\r\n public static debounce(func: (...args) => any, wait: number, immediate?: boolean) {\r\n var timeout;\r\n return function () {\r\n var context = this;\r\n var args_ = arguments;\r\n var later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args_);\r\n };\r\n var callNow = immediate && !timeout;\r\n clearTimeout(timeout);\r\n timeout = setTimeout(later, wait);\r\n if (callNow) func.apply(context, args_);\r\n };\r\n }\r\n public static cookies = {\r\n getItem: (sKey) => {\r\n return (\r\n decodeURIComponent(\r\n document.cookie.replace(\r\n new RegExp(\"(?:(?:^|.*;)\\\\s*\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$\"),\r\n \"$1\"\r\n )\r\n ) || null\r\n );\r\n },\r\n setItem: (sKey, sValue, vEnd, sPath, sDomain, bSecure) => {\r\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) {\r\n return false;\r\n }\r\n var sExpires = \"\";\r\n if (vEnd) {\r\n switch (vEnd.constructor) {\r\n case Number:\r\n sExpires = vEnd === Infinity ? \"; expires=Fri, 31 Dec 9999 23:59:59 GMT\" : \"; max-age=\" + vEnd;\r\n break;\r\n case String:\r\n sExpires = \"; expires=\" + vEnd;\r\n break;\r\n case Date:\r\n sExpires = \"; expires=\" + vEnd.toUTCString();\r\n break;\r\n }\r\n }\r\n document.cookie =\r\n encodeURIComponent(sKey) +\r\n \"=\" +\r\n encodeURIComponent(sValue) +\r\n sExpires +\r\n (sDomain ? \"; domain=\" + sDomain : \"\") +\r\n (sPath ? \"; path=\" + sPath : \"\") +\r\n (bSecure ? \"; secure\" : \"\");\r\n return true;\r\n },\r\n removeItem: (sKey, sPath, sDomain) => {\r\n if (!sKey) {\r\n return false;\r\n }\r\n document.cookie =\r\n encodeURIComponent(sKey) +\r\n \"=; expires=Thu, 01 Jan 1970 00:00:00 GMT\" +\r\n (sDomain ? \"; domain=\" + sDomain : \"\") +\r\n (sPath ? \"; path=\" + sPath : \"\");\r\n return true;\r\n },\r\n hasItem: (sKey) => {\r\n return new RegExp(\"(?:^|;\\\\s*)\" + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, \"\\\\$&\") + \"\\\\s*\\\\=\").test(document.cookie);\r\n },\r\n keys: () => {\r\n var aKeys = document.cookie.replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, \"\").split(/\\s*(?:\\=[^;]*)?;\\s*/);\r\n for (var nIdx = 0; nIdx < aKeys.length; nIdx++) {\r\n aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]);\r\n }\r\n return aKeys;\r\n },\r\n };\r\n}\r\n","import { ExtraOptions, RouterModule, Routes } from \"@angular/router\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { AuthComponent, LoginComponent, LogoutComponent } from \"./auth\";\r\n\r\nconst routes: Routes = [\r\n { path: \"pages\", loadChildren: () => import(\"src/app/pages/pages.module\").then((m) => m.PagesModule) },\r\n {\r\n path: \"auth\",\r\n component: AuthComponent,\r\n children: [\r\n {\r\n path: \"login\",\r\n component: LoginComponent,\r\n },\r\n {\r\n path: \"logout\",\r\n component: LogoutComponent,\r\n },\r\n ],\r\n },\r\n { path: \"\", redirectTo: \"pages\", pathMatch: \"full\" },\r\n { path: \"**\", redirectTo: \"pages\" },\r\n];\r\nconst config: ExtraOptions = {\r\n useHash: true,\r\n};\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, config)],\r\n exports: [RouterModule],\r\n})\r\nexport class AppRoutingModule {}\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport \"@angular/compiler\"\r\nimport { AuthService, LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { AnalyticsService } from \"projects/sepidz-web-framework/src/lib/services/analytics.service\";\r\n@Component({\r\n selector: \"app-root\",\r\n templateUrl: \"app.component.html\",\r\n styleUrls: [\"app.component.scss\"],\r\n providers: [AnalyticsService],\r\n})\r\nexport class AppComponent implements OnInit {\r\n constructor(private analytics: AnalyticsService, public localStorage: LocalStoreManager, \r\n private authService: AuthService) {}\r\n\r\n ngOnInit() {\r\n this.analytics.trackPageViews();\r\n if (!this.authService.getIsLoggedIn()) {\r\n this.localStorage.clearAllStorage();\r\n }\r\n const mamad = navigator.userAgent;\r\n }\r\n}\r\n","","import { APP_BASE_HREF } from \"@angular/common\";\r\nimport { BrowserAnimationsModule } from \"@angular/platform-browser/animations\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { AppComponent } from \"./app.component\";\r\nimport { AppRoutingModule } from \"./app-routing.module\";\r\nimport { ThemeModule } from \"projects/sepidz-web-framework-shell/src/lib/@theme/theme.module\";\r\nimport { ExcelModule, GridModule } from \"@progress/kendo-angular-grid\";\r\nimport { RTL } from \"@progress/kendo-angular-l10n\";\r\nimport { LayoutModule } from \"@progress/kendo-angular-layout\";\r\nimport { CoreModule } from \"projects/sepidz-web-framework/src/lib/@core/core.module\";\r\nimport { TreeViewModule } from \"@progress/kendo-angular-treeview\";\r\nimport { BrowserModule } from \"@angular/platform-browser\";\r\nimport { MissetupModule } from \"./gnr/missetup/missetup.module\";\r\nimport { CityModule } from \"./gnr/city/city.module\";\r\nimport { ProvinceModule } from \"./gnr/province/province.module\";\r\nimport { FiscalYearModule } from \"./gnr/fiscal-year/fiscal-year.module\";\r\nimport { UserModule } from \"./gnr/user/user.module\";\r\nimport { RoleModule } from \"./gnr/role/role.module\";\r\nimport { CompanyModule } from \"./gnr/company/company.module\";\r\nimport { BranchModule } from \"./gnr/branch/branch.module\";\r\nimport { PartiesModule } from \"./frontoffice/parties/parties.module\";\r\nimport { CatalogModule } from \"./frontoffice/catalog/catalog.module\";\r\nimport { StimulSoftReportModule } from \"./stimul-soft-report/stimul-soft-report.module\";\r\nimport { SalesModule } from \"./frontoffice/sales/sales.module\";\r\nimport { MessagingModule } from \"./frontoffice/messaging/message-template/messaging.module\";\r\nimport { GroupMessageModule } from \"./frontoffice/messaging/group-message/group-message.module\";\r\nimport { MessageListModule } from \"./frontoffice/messaging/message-list/message-list.module\";\r\nimport { ColorPickerModule } from \"ngx-color-picker\";\r\nimport { AccVoucherModule } from \"./backoffice/acc/accvoucher/accvoucher.module\";\r\nimport { DetailLedgerModule } from \"./backoffice/acc/detailledger/detailledger.module\";\r\nimport { GroupLedgerModule } from \"./backoffice/acc/groupledger/groupledger.module\";\r\nimport { GeneralLedgerModule } from \"./backoffice/acc/generalledger/generalledger.module\";\r\nimport { SubLedgerModule } from \"./backoffice/acc/subledger/subledger.module\";\r\nimport { DetailLedgerKindModule } from \"./backoffice/acc/detailledgerkind/detailledgerkind.module\";\r\nimport { AccVoucherKindModule } from \"./backoffice/acc/accvoucherkind/accvoucherkind.module\";\r\nimport { UnitModule } from \"./backoffice/inv/unit/unit.module\";\r\nimport { WarehouseModule } from \"./backoffice/inv/warehouse/warehouse.module\";\r\nimport { GoodsGroupModule } from \"./backoffice/inv/goods-group/goods-group.module\";\r\nimport { GoodsModule } from \"./backoffice/inv/goods/goods.module\";\r\nimport { InvVoucherKindModule } from \"./backoffice/inv/inv-voucher-kind/inv-voucher-kind.module\";\r\nimport { InvvoucherModule } from \"./backoffice/inv/invvoucher/invvoucher.module\";\r\nimport { ReactiveFormsModule } from \"@angular/forms\";\r\nimport { PrintPolicyModule } from \"./frontoffice/prints/print-policy.module\";\r\nimport { SalonModule } from \"./frontoffice/salons/salon.module\";\r\nimport { OrderModule } from \"./frontoffice/order/order.module\";\r\nimport { ChartsModule } from \"ng2-charts\";\r\nimport { InventpryReviewModule } from \"./backoffice/inv/report/inventory-review/inventory-review.module\";\r\nimport { DashboardModule } from \"./frontoffice/review/dashboard/dashboard.module\";\r\nimport { SecurityReviewModule } from \"./frontoffice/review/security-review/security-review.module\";\r\nimport { CustomerReviewModule } from \"./frontoffice/review/customer-review/customer-review.module\";\r\nimport { SalesReviewModule } from \"./frontoffice/review/sales-review/sales-review.module\";\r\nimport { TakingOfInventoryModule } from \"./backoffice/inv/taking-of-inventory/taking-of-inventory.module\";\r\nimport { InventoryClosingModule } from \"./backoffice/inv/inventory-closing/inventory-closing.module\";\r\nimport { ResetPasswordModule } from \"./gnr/resetpassword/resetpassword.module\";\r\nimport { SaleReportDesinerModule } from \"./frontoffice/prints/sale-report-desiner/sale-report-desiner.module\";\r\nimport { DriverAssignmentModule } from \"./frontoffice/driverassignment/driverassignment.module\";\r\nimport { GeneralLedgerVoucherModule } from \"./backoffice/acc/general-ledger-voucher/general-ledger-voucher.module\";\r\nimport { MovementVoucherModule } from \"./backoffice/acc/movement-voucher/movement-voucher.module\";\r\nimport { VoucherApproveModule } from \"./backoffice/acc/voucher-approve/voucher-approve.module\";\r\nimport { BarCodeReaderFormatModule } from \"./gnr/bar-code-reader-format/bar-code-reader-format.module\";\r\nimport { BankModule } from \"./backoffice/trs/bank/bank.module\";\r\nimport { CashModule } from \"./backoffice/trs/cash/cash.module\";\r\nimport { BankBranchModule } from \"./backoffice/trs/bank-branch/bank-branch.module\";\r\nimport { BankAccountModule } from \"./backoffice/trs/bank-account/bank-account.module\";\r\nimport { TrsConcernModule } from \"./backoffice/trs/trs-concern/trs-concern.module\";\r\nimport { ChequeBookModule } from \"./backoffice/trs/cheque-book/cheque-book.module\";\r\nimport { TrsVoucherKindModule } from \"./backoffice/trs/trs-voucher-kind/trs-voucher-kind.module\";\r\nimport { TrsVoucherModule } from \"./backoffice/trs/trs-voucher/trs-voucher.module\";\r\nimport { TreasuryReviewModule } from \"./backoffice/trs/report/treasury-review/treasury-review.module\";\r\nimport { ReportReviewModule } from \"./review/review.module\";\r\nimport { AccCloseProfitandLossAccountsModule } from \"./backoffice/acc/acc-close-profitand-loss-accounts/acc-close-profitand-loss-accounts.module\";\r\nimport { CreateOpeningJournalVoucherModule } from \"./backoffice/acc/create-opening-journal-voucher/create-opening-journal-voucher.module\";\r\nimport { CreateClosingJournalVoucherModule } from \"./backoffice/acc/create-closing-journal-voucher/create-closing-journal-voucher.module\";\r\nimport { InvBalanceModule } from \"./backoffice/inv/inv-balance/inv-balance.module\";\r\nimport { AccVoucherDetailCommentModule } from \"./backoffice/acc/acc-voucher-detail-comment/acc-voucher-detail-comment.module\";\r\nimport { InvVoucherPricingModule } from \"./backoffice/inv/inv-voucher-pricing/inv-voucher-pricing.module\";\r\nimport { InvNoReferenceVoucherModule } from \"./backoffice/inv/report/inv-no-reference-voucher/inv-no-reference-voucher.module\";\r\nimport { FinancialModule } from \"./frontoffice/financial/financial.module\";\r\nimport { SellKindModule } from \"./backoffice/sell/sell-kind/sell-kind.module\";\r\nimport { SellCustomerModule } from \"./backoffice/sell/sell-customer/sell-customer.module\";\r\nimport { SellCustomerGroupModule } from \"./backoffice/sell/sell-customer-group/sell-customer-group.module\";\r\nimport { PriceListHeaderModule } from \"./backoffice/sell/price-list-header/price-list-header.module\";\r\nimport { SellVoucherKindModule } from \"./backoffice/sell/sell-voucher-kind/sell-voucher-kind.module\";\r\nimport { SellVoucherModule } from \"./backoffice/sell/sell-voucher/sell-voucher.module\";\r\nimport { CustomerReceiptPaymentModule } from \"./frontoffice/financial/customer-receipt-payment/customer-receipt-payment.module\";\r\nimport { DataCenterProcessModule } from \"./gnr/data-center-process/data-center-process.module\";\r\nimport { LocalSettingModule } from \"./frontoffice/local-setting/local-setting.module\";\r\nimport { CurrentBranchModule } from \"projects/sepidz-web-framework-shell/src/lib/current-branch/current-branch-form/current-branch.module\";\r\nimport { CostCenterModule } from \"./backoffice/hrm/base-info/cost-center/cost-center.module\";\r\nimport { PayCompaniesModule } from \"./backoffice/hrm/base-info/pay-companies/pay-companies.module\";\r\nimport { ElementModule } from \"./backoffice/hrm/base-info/element/element.module\";\r\nimport { EmploymentKindModule } from \"./backoffice/hrm/base-info/employment-kind/employment-kind.module\";\r\nimport { JobClassificationModule } from \"./backoffice/hrm/base-info/job-classification/job-classification.module\";\r\nimport { JobsModule } from \"./backoffice/hrm/base-info/jobs/jobs.module\";\r\nimport { OrganizationalPostsModule } from \"./backoffice/hrm/base-info/organizational-posts/organizational-posts.module\";\r\nimport { OrganizationalUnitModule } from \"./backoffice/hrm/base-info/organizational-unit/organizational-unit.module\";\r\nimport { WorkHoursImportHeaderModule } from \"./backoffice/hrm/base-info/work-hours-import-header/work-hours-import-header.module\";\r\nimport { WorkplaceModule } from \"./backoffice/hrm/base-info/workplace/workplace.module\";\r\nimport { JobBaseModule } from \"./backoffice/hrm/payment-system/job-base/job-base.module\";\r\nimport { JobGroupModule } from \"./backoffice/hrm/payment-system/job-group/job-group.module\";\r\nimport { JobRankingModule } from \"./backoffice/hrm/payment-system/job-ranking/job-ranking.module\";\r\nimport { AcademicOrientationModule } from \"./backoffice/hrm/reference-lists/academic-orientation/academic-orientation.module\";\r\nimport { CitizenshipKindModule } from \"./backoffice/hrm/reference-lists/citizenship-kind/citizenship-kind.module\";\r\nimport { CourseTitleModule } from \"./backoffice/hrm/reference-lists/course-title/course-title.module\";\r\nimport { FaithKindModule } from \"./backoffice/hrm/reference-lists/faith-kind/faith-kind.module\";\r\nimport { FieldOfStudyModule } from \"./backoffice/hrm/reference-lists/field-of-study/field-of-study.module\";\r\nimport { FluencyInReadingTheLanguageModule } from \"./backoffice/hrm/reference-lists/fluency-in-reading-the-language/fluency-in-reading-the-language.module\";\r\nimport { FluencyInLanguageConversationModule } from \"./backoffice/hrm/reference-lists/fluency-in-language-conversation/fluency-in-language-conversation.module\";\r\nimport { LanguageKindModule } from \"./backoffice/hrm/reference-lists/language-kind/language-kind.module\";\r\nimport { MartyrFamilayKindModule } from \"./backoffice/hrm/reference-lists/martyr-familay-kind/martyr-familay-kind.module\";\r\nimport { NationalityKindModule } from \"./backoffice/hrm/reference-lists/nationality-kind/nationality-kind.module\";\r\nimport { ProficiencyInWritingModule } from \"./backoffice/hrm/reference-lists/proficiency-in-writing/proficiency-in-writing.module\";\r\nimport { ReasonForDismissalModule } from \"./backoffice/hrm/reference-lists/reason-for-dismissal/reason-for-dismissal.module\";\r\nimport { ReligionKindModule } from \"./backoffice/hrm/reference-lists/religion-kind/religion-kind.module\";\r\nimport { RetirementKindModule } from \"./backoffice/hrm/reference-lists/retirement-kind/retirement-kind.module\";\r\nimport { TaxGroupModule } from \"./backoffice/hrm/reference-lists/tax-group/tax-group.module\";\r\nimport { VeteranWorkShiftKindModule } from \"./backoffice/hrm/reference-lists/veteran-work-shift-kind/veteran-work-shift-kind.module\";\r\nimport { ControlContraryNatureAccountModule } from \"./backoffice/acc/control-contrary-nature-account/control-contrary-nature-account.module\";\r\nimport { AccountReviewModule } from \"./backoffice/acc/report/account-review/account-review.module\";\r\nimport { EducationDegreeModule } from \"./backoffice/hrm/reference-lists/education-degree/education-degree.module\";\r\nimport { HrmLoanToPersonnelModule } from \"./backoffice/hrm/loan/hrm-loan-to-personnel.module\";\r\nimport { HrmWorkCalendarModule } from \"./backoffice/hrm/base-info/hrm-work-calendar/hrm-work-calendar.module\";\r\nimport { HrmTaxTableModule } from \"./backoffice/hrm/base-info/hrm-tax-table/hrm-tax-table.module\";\r\nimport { HrmBankModule } from \"./backoffice/hrm/base-info/hrm-bank/hrm-bank.module\";\r\nimport { HrmBankAccountModule } from \"./backoffice/hrm/base-info/hrm-bank-account/hrm-bank-account.module\";\r\nimport { ProjectModule } from \"./backoffice/hrm/base-info/project/project.module\";\r\nimport { HrmPersonnelModule } from \"./backoffice/hrm/hrm-personnel/hrm-personnel.module\";\r\nimport { HRNotificationHeaderModule } from \"./backoffice/hrm/hrnotification-header/hrnotification-header.module\";\r\nimport { FinanceNotificationHeaderModule } from \"./backoffice/hrm/finance-notification-header/finance-notification-header.module\";\r\nimport { HRNotificationKindModule } from \"./backoffice/hrm/base-info/hrnotification-kind/hrnotification-kind.module\";\r\nimport { MonthlyWorkInformationModule } from \"./backoffice/hrm/monthly-work-information/monthly-work-information.module\";\r\nimport { MonthlySalaryCalculationInformationModule } from \"./backoffice/hrm/monthly-salary-calculation-information/monthly-salary-calculation-information.module\";\r\nimport { HrmPayCurentYearMonthModule } from \"./backoffice/hrm/hrm-pay-curent-year-month/hrm-pay-curent-year-month.module\";\r\nimport { ChangePayCurentYearMonthModule } from \"./backoffice/hrm/change-pay-curent-year-month/change-pay-curent-year-month.module\";\r\nimport { HrmMapReportModule } from \"./backoffice/hrm/base-info/hrm-map-report/hrm-map-report.module\";\r\nimport { BillPayReportModule } from \"./backoffice/hrm/report/bill-pay-report.module\";\r\nimport { HrmReviewModule } from \"./backoffice/hrm/report/hrm-review/hrm-review.module\";\r\nimport { ManagementMessageModule } from \"./frontoffice/messaging/management-message/management-message.module\";\r\nimport { MessageManagementTelephoneModule } from \"./frontoffice/messaging/message-management-telephone/message-management-telephone.module\";\r\nimport { UserSystemLogModule } from \"./gnr/user-system-log/user-system-log.module\";\r\nimport { CostModule } from \"./frontoffice/cost/cost.module\";\r\nimport { MeasurementUnitModule } from \"./frontoffice/measurementunit/MeasurementUnit.module\";\r\nimport { PeopleInfoModule } from \"./gnr/people-info/people-info.module\";\r\nimport { SellCustomerReviewModule } from \"./backoffice/sell/report/sell-customer-review/sell-customer-review.module\";\r\nimport { HrmDiskFormatModule } from \"./backoffice/hrm/report/hrm-disk-format/hrm-disk-format.module\";\r\nimport { TaxPayerSystemModule } from \"./frontoffice/TaxPayerSystem/TaxPayerSystem.module\";\r\nimport { HrmPersonnelElementInitialModule } from \"./backoffice/hrm/hrm-personnel-element-initial/hrm-personnel-element-initial.module\";\r\nimport { CostsSpentReviewModule } from \"./frontoffice/review/costs-spent-review/costs-spent-review.module\";\r\nimport { HrmAccVoucherModule } from \"./backoffice/hrm/acc-voucher/hrm-acc-voucher.module\";\r\nimport { DebtorCreditorNoticesHeaderModule } from \"./backoffice/sell/debtor-creditor-notices-header/debtor-creditor-notices-header.module\";\r\nimport { PortalModule } from \"./frontoffice/portal/portal.module\";\r\nimport { InvModule } from \"./frontoffice/inv/Inv.module\";\r\nimport { ProductConversionModule } from \"./backoffice/inv/product-conversion/product-conversion.module\";\r\nimport { WarehouseGoodsReportModule } from \"./backoffice/inv/report/warehouse-goods-report/warehouse-goods-report.module\";\r\nimport { AccountReportModule } from \"./backoffice/acc/report/account-report.module\";\r\nimport { InventoryReportModule } from \"./backoffice/inv/report/Inventory-report.module\";\r\nimport { OrderReviewModule } from \"./frontoffice/review/order-review/order-review.module\";\r\n\r\nconst accModule = [\r\n LayoutModule,\r\n MissetupModule,\r\n BankModule,\r\n CityModule,\r\n ProvinceModule,\r\n FiscalYearModule,\r\n UserModule,\r\n RoleModule,\r\n CompanyModule,\r\n BranchModule,\r\n PartiesModule,\r\n CatalogModule,\r\n MessagingModule,\r\n GroupMessageModule,\r\n AccVoucherModule,\r\n AccVoucherKindModule,\r\n GroupLedgerModule,\r\n GeneralLedgerModule,\r\n SubLedgerModule,\r\n DetailLedgerKindModule,\r\n DetailLedgerModule,\r\n UnitModule,\r\n MeasurementUnitModule,\r\n WarehouseModule,\r\n GoodsGroupModule,\r\n GoodsModule,\r\n InvVoucherKindModule,\r\n ReportReviewModule,\r\n InventpryReviewModule,\r\n DashboardModule,\r\n SecurityReviewModule,\r\n CustomerReviewModule,\r\n CostsSpentReviewModule,\r\n SalesReviewModule,\r\n OrderReviewModule,\r\n TakingOfInventoryModule,\r\n InventoryClosingModule,\r\n ResetPasswordModule,\r\n SaleReportDesinerModule,\r\n GeneralLedgerVoucherModule,\r\n MovementVoucherModule,\r\n VoucherApproveModule,\r\n InvvoucherModule,\r\n OrderModule,\r\n ChartsModule,\r\n DriverAssignmentModule,\r\n BarCodeReaderFormatModule,\r\n CashModule,\r\n BankBranchModule,\r\n BankAccountModule,\r\n TrsConcernModule,\r\n ChequeBookModule,\r\n TrsVoucherKindModule,\r\n TrsVoucherModule,\r\n TreasuryReviewModule,\r\n SalesModule,\r\n MessageListModule,\r\n ColorPickerModule,\r\n PrintPolicyModule,\r\n SalonModule,\r\n FinancialModule,\r\n AccCloseProfitandLossAccountsModule,\r\n CreateClosingJournalVoucherModule,\r\n CreateOpeningJournalVoucherModule,\r\n InvBalanceModule,\r\n AccVoucherDetailCommentModule,\r\n InvVoucherPricingModule,\r\n InvNoReferenceVoucherModule,\r\n SellKindModule,\r\n SellCustomerModule,\r\n SellCustomerGroupModule,\r\n PriceListHeaderModule,\r\n SellVoucherKindModule,\r\n SellVoucherModule,\r\n SellCustomerModule,\r\n SellCustomerReviewModule,\r\n CustomerReceiptPaymentModule,\r\n DataCenterProcessModule,\r\n LocalSettingModule,\r\n InvModule,\r\n CurrentBranchModule,\r\n CostCenterModule,\r\n PayCompaniesModule,\r\n ElementModule,\r\n EmploymentKindModule,\r\n JobClassificationModule,\r\n JobsModule,\r\n OrganizationalPostsModule,\r\n OrganizationalUnitModule,\r\n ProvinceModule,\r\n WorkHoursImportHeaderModule,\r\n WorkplaceModule,\r\n JobBaseModule,\r\n JobGroupModule,\r\n JobRankingModule,\r\n AcademicOrientationModule,\r\n CitizenshipKindModule,\r\n CourseTitleModule,\r\n FaithKindModule,\r\n FieldOfStudyModule,\r\n FluencyInReadingTheLanguageModule,\r\n FluencyInLanguageConversationModule,\r\n LanguageKindModule,\r\n MartyrFamilayKindModule,\r\n NationalityKindModule,\r\n ProficiencyInWritingModule,\r\n ReasonForDismissalModule,\r\n ReligionKindModule,\r\n RetirementKindModule,\r\n TaxGroupModule,\r\n VeteranWorkShiftKindModule,\r\n ControlContraryNatureAccountModule,\r\n AccountReviewModule,\r\n EducationDegreeModule,\r\n HrmLoanToPersonnelModule,\r\n HrmWorkCalendarModule,\r\n HrmTaxTableModule,\r\n HrmBankModule,\r\n HrmBankAccountModule,\r\n ProjectModule,\r\n HrmPersonnelModule,\r\n HRNotificationHeaderModule,\r\n FinanceNotificationHeaderModule,\r\n HRNotificationKindModule,\r\n MonthlyWorkInformationModule,\r\n MonthlySalaryCalculationInformationModule,\r\n HrmPayCurentYearMonthModule,\r\n ChangePayCurentYearMonthModule,\r\n BillPayReportModule,\r\n HrmMapReportModule,\r\n HrmReviewModule,\r\n ManagementMessageModule,\r\n MessageManagementTelephoneModule,\r\n UserSystemLogModule,\r\n CostModule,\r\n PeopleInfoModule,\r\n HrmDiskFormatModule,\r\n PeopleInfoModule,\r\n TaxPayerSystemModule,\r\n HrmAccVoucherModule,\r\n DebtorCreditorNoticesHeaderModule,\r\n HrmPersonnelElementInitialModule,\r\n PortalModule,\r\n LayoutModule,\r\n MissetupModule,\r\n BankModule,\r\n CityModule,\r\n ProvinceModule,\r\n FiscalYearModule,\r\n UserModule,\r\n RoleModule,\r\n CompanyModule,\r\n BranchModule,\r\n PartiesModule,\r\n CatalogModule,\r\n MessagingModule,\r\n GroupMessageModule,\r\n AccVoucherModule,\r\n AccVoucherKindModule,\r\n GroupLedgerModule,\r\n GeneralLedgerModule,\r\n SubLedgerModule,\r\n DetailLedgerKindModule,\r\n DetailLedgerModule,\r\n UnitModule,\r\n MeasurementUnitModule,\r\n WarehouseModule,\r\n GoodsGroupModule,\r\n GoodsModule,\r\n InvVoucherKindModule,\r\n ReportReviewModule,\r\n InventpryReviewModule,\r\n DashboardModule,\r\n SecurityReviewModule,\r\n CustomerReviewModule,\r\n CostsSpentReviewModule,\r\n SalesReviewModule,\r\n OrderReviewModule,\r\n TakingOfInventoryModule,\r\n InventoryClosingModule,\r\n ResetPasswordModule,\r\n SaleReportDesinerModule,\r\n GeneralLedgerVoucherModule,\r\n MovementVoucherModule,\r\n VoucherApproveModule,\r\n InvvoucherModule,\r\n OrderModule,\r\n ChartsModule,\r\n DriverAssignmentModule,\r\n BarCodeReaderFormatModule,\r\n CashModule,\r\n BankBranchModule,\r\n BankAccountModule,\r\n TrsConcernModule,\r\n ChequeBookModule,\r\n TrsVoucherKindModule,\r\n TrsVoucherModule,\r\n TreasuryReviewModule,\r\n SalesModule,\r\n MessageListModule,\r\n ColorPickerModule,\r\n PrintPolicyModule,\r\n SalonModule,\r\n FinancialModule,\r\n AccCloseProfitandLossAccountsModule,\r\n CreateClosingJournalVoucherModule,\r\n CreateOpeningJournalVoucherModule,\r\n InvBalanceModule,\r\n AccVoucherDetailCommentModule,\r\n InvVoucherPricingModule,\r\n InvNoReferenceVoucherModule,\r\n SellKindModule,\r\n SellCustomerModule,\r\n SellCustomerGroupModule,\r\n PriceListHeaderModule,\r\n SellVoucherKindModule,\r\n SellVoucherModule,\r\n SellCustomerModule,\r\n SellCustomerReviewModule,\r\n CustomerReceiptPaymentModule,\r\n DataCenterProcessModule,\r\n LocalSettingModule,\r\n CurrentBranchModule,\r\n CostCenterModule,\r\n PayCompaniesModule,\r\n ElementModule,\r\n EmploymentKindModule,\r\n JobClassificationModule,\r\n JobsModule,\r\n OrganizationalPostsModule,\r\n OrganizationalUnitModule,\r\n ProvinceModule,\r\n WorkHoursImportHeaderModule,\r\n WorkplaceModule,\r\n JobBaseModule,\r\n JobGroupModule,\r\n JobRankingModule,\r\n AcademicOrientationModule,\r\n CitizenshipKindModule,\r\n CourseTitleModule,\r\n FaithKindModule,\r\n FieldOfStudyModule,\r\n FluencyInReadingTheLanguageModule,\r\n FluencyInLanguageConversationModule,\r\n LanguageKindModule,\r\n MartyrFamilayKindModule,\r\n NationalityKindModule,\r\n ProficiencyInWritingModule,\r\n ReasonForDismissalModule,\r\n ReligionKindModule,\r\n RetirementKindModule,\r\n TaxGroupModule,\r\n VeteranWorkShiftKindModule,\r\n ControlContraryNatureAccountModule,\r\n AccountReviewModule,\r\n EducationDegreeModule,\r\n HrmLoanToPersonnelModule,\r\n HrmWorkCalendarModule,\r\n HrmTaxTableModule,\r\n HrmBankModule,\r\n HrmBankAccountModule,\r\n ProjectModule,\r\n HrmPersonnelModule,\r\n HRNotificationHeaderModule,\r\n FinanceNotificationHeaderModule,\r\n HRNotificationKindModule,\r\n MonthlyWorkInformationModule,\r\n MonthlySalaryCalculationInformationModule,\r\n HrmPayCurentYearMonthModule,\r\n ChangePayCurentYearMonthModule,\r\n BillPayReportModule,\r\n HrmMapReportModule,\r\n HrmReviewModule,\r\n ManagementMessageModule,\r\n MessageManagementTelephoneModule,\r\n UserSystemLogModule,\r\n CostModule,\r\n PeopleInfoModule,\r\n HrmDiskFormatModule,\r\n PeopleInfoModule,\r\n TaxPayerSystemModule,\r\n HrmAccVoucherModule,\r\n DebtorCreditorNoticesHeaderModule,\r\n HrmPersonnelElementInitialModule,\r\n PortalModule,\r\n ProductConversionModule,\r\n WarehouseGoodsReportModule,\r\n AccountReportModule,\r\n InventoryReportModule,\r\n];\r\n@NgModule({\r\n declarations: [AppComponent],\r\n imports: [\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n AppRoutingModule,\r\n ReactiveFormsModule,\r\n ThemeModule,\r\n CoreModule.forRoot(),\r\n TreeViewModule,\r\n GridModule,\r\n StimulSoftReportModule,\r\n accModule,\r\n ExcelModule,\r\n ],\r\n providers: [\r\n { provide: APP_BASE_HREF, useValue: \"/\" },\r\n { provide: RTL, useValue: true },\r\n ],\r\n bootstrap: [AppComponent],\r\n})\r\nexport class AppModule {}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { LoginComponent } from \"./components/login/login.component\";\r\nimport { LogoutComponent } from \"./components/logout/logout.component\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { AuthComponent, AuthBlockComponent } from \"./components\";\r\nimport { RouterModule } from \"@angular/router\";\r\n\r\n@NgModule({\r\n imports: [CommonModule, RouterModule, SharedModule.forRoot(), FormsModule, ReactiveFormsModule],\r\n declarations: [AuthComponent, LoginComponent, LogoutComponent, AuthBlockComponent],\r\n})\r\nexport class AuthModule {}\r\n","import { Component } from \"@angular/core\";\r\n@Component({\r\n selector: \"nb-auth-block\",\r\n styleUrls: [\"./auth-block.component.scss\"],\r\n template: ` `,\r\n})\r\nexport class AuthBlockComponent {}\r\n","import { Component } from \"@angular/core\";\r\nimport { Location } from \"@angular/common\";\r\nimport { AuthService } from \"projects/sepidz-web-framework/src/lib/services\";\r\n@Component({\r\n selector: \"ng-auth\",\r\n template: ` `,\r\n})\r\nexport class AuthComponent {\r\n authenticated: boolean = false;\r\n\r\n constructor(protected authService: AuthService, protected location: Location) {\r\n this.authenticated = this.authService.getIsLoggedIn();\r\n }\r\n}\r\n","export * from \"./auth.component\";\r\nexport * from \"./auth-block/auth-block.component\";\r\nexport * from \"./login/login.component\";\r\nexport * from \"./logout/logout.component\";\r\n","import { AfterViewInit, Component, Input } from \"@angular/core\";\r\nimport {\r\n AuthService,\r\n ConfigurationService,\r\n ShowToastrService,\r\n Utilities,\r\n LookupService,\r\n HttpCommonService,\r\n} from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { UserLogin } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { delay, take, tap } from \"rxjs/operators\";\r\nimport { Subject } from \"rxjs\";\r\nimport { UserInformation } from \"projects/sepidz-web-framework/src/lib/models/userinfo.model\";\r\nimport { UntypedFormGroup, Validators, UntypedFormControl } from \"@angular/forms\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { Router } from \"@angular/router\";\r\nimport * as moment from \"jalali-moment\";\r\n\r\nimport { CallinfoComponent } from \"projects/sepidz-web-framework-shell/src/lib/@theme/components/header/callinfo/callinfo.component\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { InfoValidation } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { IndexedDbService } from \"projects/sepidz-web-framework/src/lib/services/indexed-db.service\";\r\n@Component({\r\n selector: \"login\",\r\n templateUrl: \"./login.component.html\",\r\n styleUrls: [\"./login.component.scss\"],\r\n})\r\nexport class LoginComponent implements AfterViewInit {\r\n userLogin = new UserLogin();\r\n isLoading = false;\r\n group: UntypedFormGroup;\r\n public today: string;\r\n users: UserInformation[];\r\n allUser: any[];\r\n ngUnsubscribe = new Subject();\r\n arr: any = [1, 2];\r\n showPassword: boolean = false;\r\n showNumber: boolean = false;\r\n customHeight: number;\r\n invalidInfo: InfoValidation;\r\n @Input()\r\n isModal = false;\r\n\r\n currentInformation = this.authService?.currentInformation();\r\n isSepidzUser = false;\r\n\r\n constructor(\r\n private sts: ShowToastrService,\r\n protected selectorService: SelectorService,\r\n private authService: AuthService,\r\n private configurations: ConfigurationService,\r\n private lookupService: LookupService,\r\n private dialogService: SimpleModalService,\r\n private httpCommonService: HttpCommonService,\r\n private router: Router,\r\n public commmon: CommonService,\r\n public indexedDbService: IndexedDbService\r\n ) {}\r\n\r\n public ngAfterViewInit(): void {\r\n this.customHeight = 50;\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.setGroup();\r\n this.getLoginRefresh();\r\n this.getUsers();\r\n this.setToday();\r\n this.commmon.setTheme(\"sepidz\");\r\n this.commmon.updateSettings();\r\n }\r\n\r\n public ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n }\r\n\r\n public onDisplayNameChanges(): void {\r\n const IdValue = this.group?.controls[\"Id\"].value;\r\n this.isSepidzUser = this.users?.find((x) => x.Id === IdValue)?.UserName === \"SepidzUser\";\r\n const currentUserInfo = this.authService.currentUserInfo;\r\n if (IdValue && IdValue === currentUserInfo?.Id && currentUserInfo?.RememberMe) {\r\n this.group.controls[\"Password\"].setValue(currentUserInfo?.Password);\r\n this.group.controls[\"RememberMe\"].setValue(currentUserInfo?.RememberMe);\r\n } else this.group.controls[\"Password\"].setValue(undefined);\r\n }\r\n\r\n public onSendCode(): void {\r\n if (!this.isSepidzUser) return;\r\n let api: string = `Authorization/SendCode?PhonNumber=${this.group.controls[\"PhoneNumber\"].value}`;\r\n this.httpCommonService\r\n .get(api)\r\n .pipe(take(1))\r\n .subscribe(\r\n (x: number) => {},\r\n (error) => this.sts.showDialog(`${Utilities.getHttpResponseMessage(error)}`, \"خطا در ارسال کد\")\r\n );\r\n }\r\n public login() {\r\n if (this.invalidInfo && this.invalidInfo.Status != 1) {\r\n this.sts.showDialog(this.invalidInfo.Message, \"خطا\");\r\n return;\r\n }\r\n this.isLoading = true;\r\n if (this.isSepidzUser && !this.group.value.PhoneNumber) {\r\n this.sts.showDialog(\"شماره تلفن الزامیست.\", \"پیغام خطا\");\r\n this.isLoading = false;\r\n return;\r\n }\r\n this.sts.showToast(\"info\", \"ورود به سیستم\", \"در حال ورود به سیستم\");\r\n this.httpCommonService\r\n .create(\"Authorization/Login\", this.group.getRawValue())\r\n .pipe(take(1))\r\n .subscribe(\r\n (user) => {\r\n let FindLoginUser: any = this.users.find((f) => f.Id === this.group.value.Id);\r\n this.userLogin.Id = FindLoginUser.Id;\r\n this.userLogin.UserName = FindLoginUser.UserName;\r\n this.authService.localStorage.savePermanentData(this.group.controls[\"BranchId\"].value, \"BranchId\");\r\n this.authService.login(this.userLogin, user);\r\n this.getComputerName();\r\n this.sts.showToast(\"success\", \"ورود به سیستم\", `خوش آمدید ${FindLoginUser.DisplayName}!`);\r\n this.lookupService.getall();\r\n this.authService.getLoginUserRoles(FindLoginUser.Name).then(() => {\r\n this.router.navigate([\"\"]);\r\n this.authService.currentFiscalYear;\r\n this.isLoading = false;\r\n });\r\n },\r\n (error) => {\r\n this.isLoading = false;\r\n if (Utilities.checkNoNetwork(error)) {\r\n this.sts.showToast(\"danger\", Utilities.noNetworkMessageCaption, Utilities.noNetworkMessageDetail + \" \" + error);\r\n this.offerAlternateHost();\r\n } else {\r\n this.isLoading = false;\r\n let errorMessage = Utilities.getHttpResponseMessage(error);\r\n if (errorMessage) {\r\n this.sts.showDialog(`${errorMessage}`, \"پیغام خطا\");\r\n } else\r\n this.sts.showDialog(\r\n \"هنگام ورود به سیستم یک خطا رخ داد، لطفا بعدا دوباره امتحان کنید.: \" + Utilities.getResponseBody(error),\r\n \"پیغام خطا\"\r\n );\r\n this.authService.logout();\r\n }\r\n }\r\n );\r\n }\r\n\r\n public onBranchChanged(): void {\r\n this.group.controls[\"Id\"].setValue(undefined);\r\n this.users = [];\r\n this.userLogin.Id = null;\r\n if (this.allUser) {\r\n let users: UserInformation[] = [];\r\n const branchId = this.group.get(\"BranchId\").value;\r\n this.allUser.forEach((fe) => {\r\n if (fe.IsEnabled && fe.Branches.some((s) => s.BranchId === branchId && s.IsActive)) users.push(fe);\r\n });\r\n this.users = users;\r\n }\r\n }\r\n\r\n public onBranchClear(): void {\r\n this.users = null;\r\n this.userLogin.Id = null;\r\n }\r\n\r\n public completeBranchData($event: any): void {\r\n this.isLoading = false;\r\n if (\r\n $event?.data?.length > 0 &&\r\n this.currentInformation &&\r\n !this.currentInformation?.BranchingLightEnabled &&\r\n !this.currentInformation?.BranchingAdvancedEnabled &&\r\n !this.currentInformation?.RestaurantCallCenter\r\n ) {\r\n this.group.controls[\"BranchId\"].setValue($event?.data[0].Id);\r\n this.group.controls[\"BranchId\"].disable();\r\n }\r\n }\r\n\r\n public showInfo(): void {\r\n this.dialogService.open(CallinfoComponent, { errorMessage: \"NotFound!!!\" }, { closeOnClickOutside: false, autoFocus: true, closeOnEscape: true });\r\n }\r\n\r\n public onShowPassword(): void {\r\n this.showPassword = !this.showPassword;\r\n }\r\n\r\n public onShowNumber(): void {\r\n this.showNumber = !this.showNumber;\r\n }\r\n\r\n private getLoginRefresh(): void {\r\n this.httpCommonService\r\n .get(\"Authorization/GetInfo\")\r\n .pipe(take(1))\r\n .subscribe((info: InfoValidation) => {\r\n if (info.Status != 1) {\r\n this.sts.showDialog(info.Message, \"خطا\");\r\n this.invalidInfo = info;\r\n }\r\n this.clearIndexedDbItems();\r\n });\r\n }\r\n\r\n private clearIndexedDbItems(): void {\r\n this.indexedDbService.clear(\"FrontOffice\", \"InvDaily\");\r\n this.indexedDbService.clear(\"FrontOffice\", \"Categories\");\r\n }\r\n\r\n private getUsers(): void {\r\n this.authService\r\n .getBranchUsers()\r\n .pipe(\r\n take(1),\r\n tap((users) => {\r\n if (users) {\r\n this.users = [];\r\n let _branchFilterUser: UserInformation[] = [];\r\n const branchId = this.group.get(\"BranchId\").value;\r\n this.allUser = users;\r\n users.forEach((fe) => {\r\n if (fe.IsEnabled && fe.Branches.some((s) => s.BranchId === branchId && s.IsActive)) _branchFilterUser.push(fe);\r\n });\r\n this.users = _branchFilterUser;\r\n }\r\n }),\r\n delay(2000)\r\n )\r\n .subscribe(() => {\r\n if (!this.currentInformation) this.currentInformation = this.authService?.currentInformation();\r\n });\r\n }\r\n\r\n private setGroup(): void {\r\n let group: any = {\r\n Password: new UntypedFormControl(undefined, [Validators.required, Validators.minLength(3)]),\r\n Id: new UntypedFormControl(undefined, Validators.required),\r\n RememberMe: new UntypedFormControl(this.authService.rememberMe, Validators.required),\r\n BranchId: new UntypedFormControl(undefined, Validators.required),\r\n PhoneNumber: new UntypedFormControl(undefined),\r\n };\r\n this.group = new UntypedFormGroup(group);\r\n }\r\n\r\n private setToday() {\r\n this.today = moment().locale(\"fa-IR\").format(\"dddd، jDD jMMMM jYYYY\").toString();\r\n }\r\n\r\n private getComputerName(): void {\r\n this.httpCommonService\r\n .get(\"LocalSetting/GetMachinName\")\r\n .pipe(take(1))\r\n .subscribe((data) => {\r\n this.commmon.storage.savePermanentData(data[\"ComputerName\"], ClearableCache.ComputerName);\r\n });\r\n }\r\n\r\n private offerAlternateHost(): void {\r\n this.isLoading = false;\r\n if (Utilities.checkIsLocalHost(location.origin) && Utilities.checkIsLocalHost(this.configurations.baseUrl)) {\r\n this.sts.showDialog(\r\n \"کاربر عزیز! به نظر می رسد که سرویس وب شما برقرار نمی شود,لطفا یک بار از سیستم خارج و مجدد وارد شود... \",\r\n \"پیغام خطا\",\r\n DialogType.prompt,\r\n (value: string) => {\r\n this.configurations.baseUrl = value;\r\n this.sts.showToast(\"warning\", \"API تغییر کرده است!\", \"API وب هدف به این تغییر داده شده است: \" + value);\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"sepidz\r\n
\r\n
\r\n
\r\n {{ \"General.Sepidz\" | translate }}\r\n
\r\n
{{ \"General.Version\" | translate }} {{ currentInformation?.ProductVersion }}
\r\n
\r\n {{ today }}\r\n
\r\n
\r\n
\r\n {{ \"General.CustomerCode\" | translate }}\r\n {{ currentInformation?.LockNumber }} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
راهکارهای نرم افزار رستورانی
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { AuthService } from \"projects/sepidz-web-framework/src/lib/services\";\r\n@Component({\r\n selector: \"nb-logout\",\r\n templateUrl: \"./logout.component.html\",\r\n})\r\nexport class LogoutComponent implements OnInit {\r\n redirectDelay: number = 0;\r\n strategy: string = \"\";\r\n\r\n constructor(protected authService: AuthService) {}\r\n\r\n ngOnInit(): void {\r\n this.logout();\r\n }\r\n\r\n logout(): void {\r\n this.authService.logout();\r\n this.authService.redirectLogoutUser();\r\n }\r\n}\r\n","
{{'General.SystemExit | translate'}}
\r\n","export * from './auth.module';\r\nexport * from './components';\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { UntypedFormControl } from \"@angular/forms\";\r\nimport { GroupDescriptor } from \"@progress/kendo-data-query\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { PagingDataResult, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccCloseProfitandLossAccountsDetail } from \"../../models/acc-close-profitand-loss-accounts-detail.model\";\r\nimport { AccCloseProfitandLossAccountsHeader } from \"../../models/acc-close-profitand-loss-accounts-header.model\";\r\nimport { AccVoucherKind } from \"../../models/accvoucherkind.model\";\r\nimport { SubLedger } from \"../../models/subledger.model\";\r\nimport { VoucherInfo } from \"../../models/voucherInfo.model\";\r\n\r\n@Component({\r\n selector: \"ngx-acc-close-profitand-loss-accounts-form\",\r\n templateUrl: \"./acc-close-profitand-loss-accounts-form.component.html\",\r\n styleUrls: [\"./acc-close-profitand-loss-accounts-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccCloseProfitandLossAccountsFormComponent extends BaseFormComponent {\r\n activeTabTitle: string;\r\n UnSelectAccounts: AccCloseProfitandLossAccountsDetail[] = [];\r\n _UnSelectAccounts: AccCloseProfitandLossAccountsDetail[] = [];\r\n isLoading: boolean;\r\n RowForSelect: AccCloseProfitandLossAccountsDetail;\r\n RowForDelete: AccCloseProfitandLossAccountsDetail;\r\n DefaultValues: Dictionary = [];\r\n AccCloseProfitandLossAccountsDetails: form_control[];\r\n AccCloseProfitandLossAccountsDetailsList: AccCloseProfitandLossAccountsDetail[] = [];\r\n groups: GroupDescriptor[] = [{ field: \"SubLedgerTitle\" }];\r\n ColumnsName: string = \"Code,Title\";\r\n erroremessage: String;\r\n PrevSubLedgerId: number;\r\n LookupIsLoading: Dictionary = [];\r\n currentSubLedger: SubLedger;\r\n _detailLedgerLevel: number;\r\n constructor(\r\n private datatransfer: Datatransfer,\r\n private missetup: MisSetupService,\r\n protected cd: ChangeDetectorRef,\r\n protected selectorService: SelectorService,\r\n private splashFormService: SplashFormService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService\r\n ) {\r\n super(selectorService, cd);\r\n this.currentrow = this.datatransfer?.currentrow;\r\n this.apiName = this.datatransfer?.apiName;\r\n this.label = this.datatransfer?.label;\r\n this.areaName = this.datatransfer?.areaName;\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n this.shouldBeChangedData = this.shouldBeChangedData.bind(this);\r\n this.onDataStateChange = this.onDataStateChange.bind(this);\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.UnSelectAccounts = undefined;\r\n this.RowForSelect = undefined;\r\n this.RowForDelete = undefined;\r\n this.DefaultValues = undefined;\r\n this.groups = undefined;\r\n this.LookupIsLoading = undefined;\r\n this.currentSubLedger = undefined;\r\n this.AccCloseProfitandLossAccountsDetails = undefined;\r\n }\r\n async ngOnInit() {\r\n this.setAccVoucherKind();\r\n this.apiName = \"AccCloseProfitandLossAccountsHeader\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.AccCloseProfitandLossAccountsHeader.AccCloseProfitandLossAccountsHeader\");\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (!this.model.VoucherDate) this.model.VoucherDate = new Date();\r\n if (!this.model.AccCloseProfitandLossAccountsDetails) this.model.AccCloseProfitandLossAccountsDetails = [];\r\n this.DefaultValues[\"AccCloseProfitandLossAccountsHeaderId\"] = 0;\r\n this.setDefaultValues();\r\n this.setColumnAttribute();\r\n this.getUnSelectAccounts();\r\n if (!this._detailLedgerLevel) this._detailLedgerLevel = this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n }\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name.includes(\"SubLedgerId\")) {\r\n x.formVisible = true;\r\n x.required = true;\r\n }\r\n if (x.name.includes(\"DetailLedgerId\")) {\r\n x.formVisible = false;\r\n x.required = false;\r\n }\r\n if (x.name.includes(\"DetailLedger2Id\")) {\r\n x.formVisible = false;\r\n x.required = false;\r\n }\r\n if (x.name.includes(\"DetailLedger3Id\")) {\r\n x.formVisible = false;\r\n x.required = false;\r\n }\r\n if (x.name.includes(\"DetailLedger4Id\")) {\r\n x.formVisible = false;\r\n x.required = false;\r\n }\r\n if (x.name.includes(\"DetailLedger5Id\")) {\r\n x.formVisible = false;\r\n x.required = false;\r\n }\r\n if (x.name.includes(\"DetailLedger6Id\")) {\r\n x.formVisible = false;\r\n x.required = false;\r\n }\r\n if (x.name.includes(\"DetailLedger7Id\")) {\r\n x.formVisible = false;\r\n x.required = false;\r\n }\r\n x.disabled = this.model.AccVoucherHeaderId !== undefined && this.model.AccVoucherHeaderId !== null;\r\n });\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnNumber(this.columns, 3);\r\n this.AccCloseProfitandLossAccountsDetails = this.getDetailControlModels(\"AccCloseProfitandLossAccountsDetails\");\r\n\r\n this.columns.forEach((x) => (x.isFloat = null));\r\n this.cd.markForCheck();\r\n\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n setRemainValue() {\r\n if (this.model.AccCloseProfitandLossAccountsDetails) {\r\n this.UnSelectAccounts.forEach((x) => {\r\n if (\r\n this.model.AccCloseProfitandLossAccountsDetails.some(\r\n (s) =>\r\n s.SubLedgerId === x.SubLedgerId &&\r\n s.DetailLedgerId === x.DetailLedgerId &&\r\n s.DetailLedger2Id === x.DetailLedger2Id &&\r\n s.DetailLedger3Id === x.DetailLedger3Id &&\r\n s.DetailLedger4Id === x.DetailLedger4Id &&\r\n s.DetailLedger5Id === x.DetailLedger5Id &&\r\n s.DetailLedger6Id === x.DetailLedger6Id &&\r\n s.DetailLedger7Id === x.DetailLedger7Id\r\n )\r\n )\r\n this.model.AccCloseProfitandLossAccountsDetails.find(\r\n (s) =>\r\n s.SubLedgerId === x.SubLedgerId &&\r\n s.DetailLedgerId === x.DetailLedgerId &&\r\n s.DetailLedger2Id === x.DetailLedger2Id &&\r\n s.DetailLedger3Id === x.DetailLedger3Id &&\r\n s.DetailLedger4Id === x.DetailLedger4Id &&\r\n s.DetailLedger5Id === x.DetailLedger5Id &&\r\n s.DetailLedger6Id === x.DetailLedger6Id &&\r\n s.DetailLedger7Id === x.DetailLedger7Id\r\n ).DebitRemain = x.DebitRemain;\r\n this.model.AccCloseProfitandLossAccountsDetails.find(\r\n (s) =>\r\n s.SubLedgerId === x.SubLedgerId &&\r\n s.DetailLedgerId === x.DetailLedgerId &&\r\n s.DetailLedger2Id === x.DetailLedger2Id &&\r\n s.DetailLedger3Id === x.DetailLedger3Id &&\r\n s.DetailLedger4Id === x.DetailLedger4Id &&\r\n s.DetailLedger5Id === x.DetailLedger5Id &&\r\n s.DetailLedger6Id === x.DetailLedger6Id &&\r\n s.DetailLedger7Id === x.DetailLedger7Id\r\n ).CreditRemain = x.CreditRemain;\r\n });\r\n }\r\n }\r\n async setUnSelectAccounts() {\r\n if (this.isLoading || this.model.AccVoucherHeaderId) return;\r\n this.isLoading = true;\r\n if (!this.accountService.authService.currentFiscalYear) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe(async (x) => {\r\n if (x) {\r\n if (this.formGroup) this.model.VoucherDate = this.formGroup.controls[\"VoucherDate\"].value;\r\n const voucherInfo = new VoucherInfo();\r\n voucherInfo.VoucherDate = this.model.VoucherDate;\r\n voucherInfo.FiscalYearId = x.Id;\r\n voucherInfo.Id = this.model.Id;\r\n voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n this.setValue(\"BranchId\", voucherInfo.BranchId);\r\n this.setValue(\"FiscalYearId\", voucherInfo.FiscalYearId);\r\n this.setValue(\"VoucherDate\", voucherInfo.VoucherDate);\r\n if (!voucherInfo.VoucherDate) return;\r\n await this.httpCommonService\r\n .create(`${this.apiName}/GetUnSelectAccounts`, voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.isLoading = false;\r\n this.UnSelectAccounts = data as [];\r\n this.getUnSelectAccounts();\r\n this.setRemainValue();\r\n }\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n this.saveFailedHelper(error);\r\n this.isLoading = false;\r\n }\r\n );\r\n }\r\n });\r\n } else {\r\n if (this.formGroup) this.model.VoucherDate = this.formGroup.controls[\"VoucherDate\"].value;\r\n\r\n const voucherInfo = new VoucherInfo();\r\n voucherInfo.VoucherDate = this.model.VoucherDate;\r\n voucherInfo.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n voucherInfo.Id = this.model.Id;\r\n voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n if (!voucherInfo.VoucherDate) return;\r\n this.setValue(\"BranchId\", voucherInfo.BranchId);\r\n this.setValue(\"FiscalYearId\", voucherInfo.FiscalYearId);\r\n this.setValue(\"VoucherDate\", voucherInfo.VoucherDate);\r\n await this.httpCommonService\r\n .create(`${this.apiName}/GetUnSelectAccounts`, voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n if (this.erroremessage.includes(\"قطعی نشده\")) this.erroremessage = undefined;\r\n this.isLoading = false;\r\n this.UnSelectAccounts = data as [];\r\n this.getUnSelectAccounts();\r\n this.setRemainValue();\r\n }\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n this.erroremessage = `${Utilities.getHttpResponseMessage(error)}`;\r\n this.saveFailedHelper(error);\r\n this.isLoading = false;\r\n }\r\n );\r\n }\r\n }\r\n onChanged($event) {\r\n if ($event && typeof $event === \"string\" && ($event.includes(\"/\") || $event.includes(\"-\")) && !this.isLoading) this.setUnSelectAccounts();\r\n }\r\n onRowSelected($event) {\r\n if ($event && $event.HasDetailLedger1 && this.currentSubLedger?.Id != $event.Id) {\r\n this.currentSubLedger = $event;\r\n this.setColumnAttribute();\r\n }\r\n }\r\n setDefaultValues() {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.controlType === FormControlTypes.checkbox && this.model[x.name] === undefined) this.model[x.name] = false;\r\n });\r\n }\r\n\r\n getDetailControlModels(keyName: string) {\r\n let columns = this.orignalColumns.find((x) => x.name === keyName).DetailControlModels[keyName];\r\n columns.forEach((x) => {\r\n if (x.name.includes(\"DetailLedger1\")) {\r\n if (!this.groups.some((f) => f.field === \"DetailLedger1Title\") && this._detailLedgerLevel >= 1)\r\n this.groups.push({ field: \"DetailLedger1Title\" });\r\n x.listVisible = this._detailLedgerLevel >= 1;\r\n if (x.name.includes(\"DetailLedgerId\")) x.listVisible = false;\r\n }\r\n if (x.name.includes(\"DetailLedger2\")) {\r\n if (!this.groups.some((f) => f.field === \"DetailLedger2Title\") && this._detailLedgerLevel >= 2)\r\n this.groups.push({ field: \"DetailLedger2Title\" });\r\n x.listVisible = this._detailLedgerLevel >= 2;\r\n if (x.name.includes(\"DetailLedger2Id\")) x.listVisible = false;\r\n }\r\n if (x.name.includes(\"DetailLedger3\")) {\r\n if (!this.groups.some((f) => f.field === \"DetailLedger3Title\") && this._detailLedgerLevel >= 3)\r\n this.groups.push({ field: \"DetailLedger3Title\" });\r\n x.listVisible = this._detailLedgerLevel >= 3;\r\n if (x.name.includes(\"DetailLedger3Id\")) x.listVisible = false;\r\n }\r\n if (x.name.includes(\"DetailLedger4\")) {\r\n if (!this.groups.some((f) => f.field === \"DetailLedger4Title\") && this._detailLedgerLevel >= 4)\r\n this.groups.push({ field: \"DetailLedger4Title\" });\r\n x.listVisible = this._detailLedgerLevel >= 4;\r\n if (x.name.includes(\"DetailLedger4Id\")) x.listVisible = false;\r\n }\r\n if (x.name.includes(\"DetailLedger5\")) {\r\n if (!this.groups.some((f) => f.field === \"DetailLedger5Title\") && this._detailLedgerLevel >= 5)\r\n this.groups.push({ field: \"DetailLedger5Title\" });\r\n x.listVisible = this._detailLedgerLevel >= 5;\r\n if (x.name.includes(\"DetailLedger5Id\")) x.listVisible = false;\r\n }\r\n if (x.name.includes(\"DetailLedger6\")) {\r\n if (!this.groups.some((f) => f.field === \"DetailLedger6Title\") && this._detailLedgerLevel >= 6)\r\n this.groups.push({ field: \"DetailLedger6Title\" });\r\n x.listVisible = this._detailLedgerLevel >= 6;\r\n if (x.name.includes(\"DetailLedger6Id\")) x.listVisible = false;\r\n }\r\n if (x.name.includes(\"DetailLedger7\")) {\r\n if (!this.groups.some((f) => f.field === \"DetailLedger7Title\") && this._detailLedgerLevel >= 7)\r\n this.groups.push({ field: \"DetailLedger7Title\" });\r\n x.listVisible = this._detailLedgerLevel >= 7;\r\n if (x.name.includes(\"DetailLedger7Id\")) x.listVisible = false;\r\n }\r\n });\r\n return columns;\r\n }\r\n\r\n close() {\r\n this.accountService.authService.getMvcController();\r\n super.close();\r\n }\r\n getUnSelectAccounts() {\r\n this.setAccCloseProfitandLossAccountsDetails();\r\n let list = this.AccCloseProfitandLossAccountsDetailsList;\r\n this._UnSelectAccounts = this.UnSelectAccounts.filter(\r\n (x) =>\r\n !list.some(\r\n (f) =>\r\n x.SubLedgerId === f.SubLedgerId &&\r\n x.DetailLedgerId === f.DetailLedgerId &&\r\n x.DetailLedger2Id === f.DetailLedger2Id &&\r\n x.DetailLedger3Id === f.DetailLedger3Id &&\r\n x.DetailLedger4Id === f.DetailLedger4Id &&\r\n x.DetailLedger5Id === f.DetailLedger5Id &&\r\n x.DetailLedger6Id === f.DetailLedger6Id &&\r\n x.DetailLedger7Id === f.DetailLedger7Id\r\n )\r\n );\r\n }\r\n setAccCloseProfitandLossAccountsDetails() {\r\n this.model.AccCloseProfitandLossAccountsDetails = this.model.AccCloseProfitandLossAccountsDetails.filter((x) => x.State !== RowState.Detached);\r\n this.AccCloseProfitandLossAccountsDetailsList = this.model.AccCloseProfitandLossAccountsDetails.filter(\r\n (x) => x.State !== RowState.Delete && x.State !== RowState.Detached\r\n );\r\n }\r\n onSeletedDoubleClick(event: AccCloseProfitandLossAccountsDetail) {\r\n if (event.Id > 0) this.model.AccCloseProfitandLossAccountsDetails.find((x) => x.Id === event.Id).State = RowState.Delete;\r\n else {\r\n this.model.AccCloseProfitandLossAccountsDetails.find(\r\n (x) =>\r\n x.Id === event.Id &&\r\n x.SubLedgerId === event.SubLedgerId &&\r\n x.DetailLedgerId === event.DetailLedgerId &&\r\n x.DetailLedger2Id === event.DetailLedger2Id &&\r\n x.DetailLedger3Id === event.DetailLedger3Id &&\r\n x.DetailLedger4Id === event.DetailLedger4Id &&\r\n x.DetailLedger5Id === event.DetailLedger5Id &&\r\n x.DetailLedger6Id === event.DetailLedger6Id &&\r\n x.DetailLedger7Id === event.DetailLedger7Id\r\n ).State = RowState.Detached;\r\n }\r\n }\r\n onUnSeletedDoubleClick(event: AccCloseProfitandLossAccountsDetail) {\r\n let entity = Object.assign({}, event);\r\n entity.State = RowState.New;\r\n this.model.AccCloseProfitandLossAccountsDetails.push(entity);\r\n }\r\n moveLeft() {\r\n if (this.RowForSelect) {\r\n let entity = Object.assign({}, this.RowForSelect);\r\n entity.State = RowState.New;\r\n this.model.AccCloseProfitandLossAccountsDetails.push(entity);\r\n this.RowForSelect = undefined;\r\n this.getUnSelectAccounts();\r\n }\r\n }\r\n moveright() {\r\n if (this.RowForDelete) {\r\n if (this.RowForDelete.Id > 0)\r\n this.model.AccCloseProfitandLossAccountsDetails.find((x) => x.Id === this.RowForDelete.Id).State = RowState.Delete;\r\n else {\r\n this.model.AccCloseProfitandLossAccountsDetails.find(\r\n (x) =>\r\n x.Id === this.RowForDelete.Id &&\r\n x.SubLedgerId === this.RowForDelete.SubLedgerId &&\r\n x.DetailLedgerId === this.RowForDelete.DetailLedgerId &&\r\n x.DetailLedger2Id === this.RowForDelete.DetailLedger2Id &&\r\n x.DetailLedger3Id === this.RowForDelete.DetailLedger3Id &&\r\n x.DetailLedger4Id === this.RowForDelete.DetailLedger4Id &&\r\n x.DetailLedger5Id === this.RowForDelete.DetailLedger5Id &&\r\n x.DetailLedger6Id === this.RowForDelete.DetailLedger6Id &&\r\n x.DetailLedger7Id === this.RowForDelete.DetailLedger7Id\r\n ).State = RowState.Detached;\r\n }\r\n this.RowForDelete = undefined;\r\n this.getUnSelectAccounts();\r\n }\r\n }\r\n moveLeftAll() {\r\n this.UnSelectAccounts.forEach((event) => {\r\n if (\r\n !this.model.AccCloseProfitandLossAccountsDetails.some(\r\n (x) =>\r\n x.Id === event.Id &&\r\n x.SubLedgerId === event.SubLedgerId &&\r\n x.DetailLedgerId === event.DetailLedgerId &&\r\n x.DetailLedger2Id === event.DetailLedger2Id &&\r\n x.DetailLedger3Id === event.DetailLedger3Id &&\r\n x.DetailLedger4Id === event.DetailLedger4Id &&\r\n x.DetailLedger5Id === event.DetailLedger5Id &&\r\n x.DetailLedger6Id === event.DetailLedger6Id &&\r\n x.DetailLedger7Id === event.DetailLedger7Id\r\n )\r\n ) {\r\n let entity = Object.assign({}, event);\r\n entity.State = RowState.New;\r\n this.model.AccCloseProfitandLossAccountsDetails.push(entity);\r\n }\r\n });\r\n this.getUnSelectAccounts();\r\n }\r\n moveRightAll() {\r\n this.model.AccCloseProfitandLossAccountsDetails.forEach((x) => {\r\n if (x.Id > 0 && x.State === RowState.NoChange) x.State = RowState.Delete;\r\n if (x.State === RowState.New) x.State = RowState.Detached;\r\n });\r\n this.getUnSelectAccounts();\r\n }\r\n onValueChangeByApiName($event) {\r\n if ($event && $event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"SubLedger\")) {\r\n }\r\n }\r\n getDetailLedgerParameter(apiName: string, columName: string) {\r\n let p1: string = \"\";\r\n if (!this.formGroup || !this.formGroup.controls[\"SubLedgerId\"] || !this.formGroup.controls[\"SubLedgerId\"].value) return p1;\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\") && columName === \"DetailLedgerId\") {\r\n p1 = `/?subLedgerId=${this.formGroup.controls[\"SubLedgerId\"].value}&detailLegerLevel=1`;\r\n }\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\") && columName === \"DetailLedger2Id\") {\r\n p1 = `/?subLedgerId=${this.formGroup.controls[\"SubLedgerId\"].value}&detailLegerLevel=2`;\r\n }\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\") && columName === \"DetailLedger3Id\") {\r\n p1 = `/?subLedgerId=${this.formGroup.controls[\"SubLedgerId\"].value}&detailLegerLevel=3`;\r\n }\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\") && columName === \"DetailLedger4Id\") {\r\n p1 = `/?subLedgerId=${this.formGroup.controls[\"SubLedgerId\"].value}&detailLegerLevel=4`;\r\n }\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\") && columName === \"DetailLedger5Id\") {\r\n p1 = `/?subLedgerId=${this.formGroup.controls[\"SubLedgerId\"].value}&detailLegerLevel=5`;\r\n }\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\") && columName === \"DetailLedger6Id\") {\r\n p1 = `/?subLedgerId=${this.formGroup.controls[\"SubLedgerId\"].value}&detailLegerLevel=6`;\r\n }\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\") && columName === \"DetailLedger7Id\") {\r\n p1 = `/?subLedgerId=${this.formGroup.controls[\"SubLedgerId\"].value}&detailLegerLevel=7`;\r\n }\r\n return p1;\r\n }\r\n onDataStateChange(columnName: string, searchValue: string, skip: number, take: number): Observable> {\r\n var abs = new BehaviorSubject>(null);\r\n let apiName: string = \"DetailLedger/DetailLedgerWithSubLedgerId\";\r\n let p = this.getDetailLedgerParameter(apiName, columnName);\r\n if (p === undefined) return null;\r\n if (p) {\r\n if (this.LookupIsLoading[columnName]) return abs.asObservable();\r\n let _detailLedgerLevel: number = 1;\r\n if (columnName === \"DetailLedgerId\") _detailLedgerLevel = 1;\r\n if (columnName === \"DetailLedger2Id\") _detailLedgerLevel = 2;\r\n if (columnName === \"DetailLedger3Id\") _detailLedgerLevel = 3;\r\n if (columnName === \"DetailLedger4Id\") _detailLedgerLevel = 4;\r\n if (columnName === \"DetailLedger5Id\") _detailLedgerLevel = 5;\r\n if (columnName === \"DetailLedger6Id\") _detailLedgerLevel = 6;\r\n if (columnName === \"DetailLedger7Id\") _detailLedgerLevel = 7;\r\n this.LookupIsLoading[columnName] = true;\r\n this.httpCommonService\r\n .get>(apiName + p + `&searchValue=${searchValue}&skip=${skip}&take=${take}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x) => {\r\n this.LookupIsLoading[columnName] = false;\r\n if (x) abs.next(x);\r\n },\r\n (err) => {\r\n this.LookupIsLoading[columnName] = false;\r\n this.saveFailedHelper(err);\r\n }\r\n );\r\n }\r\n return abs.asObservable();\r\n }\r\n isValid() {\r\n let flag: boolean = true;\r\n this.erroremessage = undefined;\r\n if (!this.formGroup.controls[\"FiscalYearId\"].value) {\r\n if (!this.formGroup.controls[\"FiscalYearId\"].value && !this.accountService.authService.currentFiscalYear) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) this.setValue(\"FiscalYearId\", x.Id);\r\n });\r\n this.erroremessage = `سال مالی انتخاب نشده است.`;\r\n flag = false;\r\n } else if (this.accountService.authService.currentFiscalYear)\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n return flag;\r\n }\r\n return flag;\r\n }\r\n beforupdate() {\r\n if (this.model.AccCloseProfitandLossAccountsDetails && this.model.AccCloseProfitandLossAccountsDetails.length > 0) {\r\n if (!this.formGroup.controls[\"AccCloseProfitandLossAccountsDetails\"])\r\n this.formGroup.addControl(\"AccCloseProfitandLossAccountsDetails\", new UntypedFormControl(this.model.AccCloseProfitandLossAccountsDetails));\r\n else this.formGroup.controls[\"AccCloseProfitandLossAccountsDetails\"].setValue(this.model.AccCloseProfitandLossAccountsDetails);\r\n this.formGroup.updateValueAndValidity();\r\n } else this.erroremessage = \"برای سند هیچ قلمی وارد نشده است.\";\r\n }\r\n shouldBeChangedData(columnName: string): boolean {\r\n return this.formGroup?.controls[\"SubLedgerId\"]?.value !== undefined && this.formGroup?.controls[\"SubLedgerId\"]?.value !== this.PrevSubLedgerId;\r\n }\r\n async setAccVoucherKind() {\r\n await this.httpCommonService\r\n .get(\"AccVoucherKind/ReadAccVoucherKindLookUp\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data: AccVoucherKind[]) => {\r\n let vk = data.filter((x) => x.Code === 3 || !x.IsOperating);\r\n this.selectorService.setDataList(\"AccVoucherKindId\", vk);\r\n },\r\n (error) => {}\r\n );\r\n }\r\n async newVoucher() {\r\n if (!this.model.AccVoucherHeaderId) {\r\n this.splashFormService.openDialog(\"\", \"در حال صدور سند حسابداری\");\r\n this.beforupdate();\r\n this.model = super.getDataFromFormGroup();\r\n this.model.AccCloseProfitandLossAccountsDetails.forEach((x) => {\r\n x.TotalCredit = x.CreditRemain;\r\n x.TotalDebit = x.DebitRemain;\r\n });\r\n await this.httpCommonService\r\n .create(this.apiName + \"/CreatAccVoucher\", this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\"سند با موفقیت صادر شد.\", \"\");\r\n this.saveSuccessHelper(row);\r\n this.ngOnInit();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در صدور سند ${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n }\r\n async deletVoucher() {\r\n if (this.model.AccVoucherHeaderId) {\r\n this.splashFormService.openDialog(\"\", \"در حال حذف سند حسابداری\");\r\n await this.httpCommonService\r\n .create(this.apiName.split(\"/\")[0] + \"/DeleteAccVoucher\", this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => {\r\n this.saveSuccessHelper(row);\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\"سند با موفقیت حذف شد.\", \"\");\r\n this.ngOnInit();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در حذف اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n } else this.erroremessage = \"سند حسابداری وجود ندارد.\";\r\n }\r\n isCloseable() {\r\n return false;\r\n }\r\n}\r\n","\r\n
\r\n = 1 && currentSubLedger?.HasDetailLedger1 === true\"\r\n name=\"DetailLedgerId\"\r\n [group]=\"formGroup\"\r\n userClass=\"select-xmd\"\r\n label=\"حساب تفصیلی 1\"\r\n textFieldName=\"Title\"\r\n apiName=\"DetailLedger/DetailLedgerWithSubLedgerId\"\r\n valueFieldName=\"Id\"\r\n [defaultHeight]=\"30\"\r\n [isPaging]=\"true\"\r\n [shouldBeChangedData]=\"shouldBeChangedData\"\r\n [onDataStateChange]=\"onDataStateChange\"\r\n textColumnsName=\"{{ ColumnsName }}\"\r\n [disabled]=\"model?.AccVoucherHeaderId != undefined\">\r\n \r\n = 2 && currentSubLedger?.HasDetailLedger2 === true\"\r\n name=\"DetailLedger2Id\"\r\n [group]=\"formGroup\"\r\n userClass=\"select-xmd\"\r\n apiName=\"DetailLedger/DetailLedgerWithSubLedgerId\"\r\n textFieldName=\"Title\"\r\n label=\"حساب تفصیلی 2\"\r\n valueFieldName=\"Id\"\r\n [defaultHeight]=\"30\"\r\n [isPaging]=\"true\"\r\n [shouldBeChangedData]=\"shouldBeChangedData\"\r\n [onDataStateChange]=\"onDataStateChange\"\r\n textColumnsName=\"{{ ColumnsName }}\"\r\n [disabled]=\"model?.AccVoucherHeaderId != undefined\">\r\n \r\n = 3 && currentSubLedger?.HasDetailLedger3 === true\"\r\n name=\"DetailLedger3Id\"\r\n [group]=\"formGroup\"\r\n label=\"حساب تفصیلی 3\"\r\n apiName=\"DetailLedger/DetailLedgerWithSubLedgerId\"\r\n textFieldName=\"Title\"\r\n valueFieldName=\"Id\"\r\n [defaultHeight]=\"30\"\r\n [isPaging]=\"true\"\r\n [shouldBeChangedData]=\"shouldBeChangedData\"\r\n [onDataStateChange]=\"onDataStateChange\"\r\n textColumnsName=\"{{ ColumnsName }}\"\r\n [disabled]=\"model?.AccVoucherHeaderId != undefined\">\r\n \r\n = 4 && currentSubLedger?.HasDetailLedger4 === true\"\r\n name=\"DetailLedger4Id\"\r\n [group]=\"formGroup\"\r\n label=\"حساب تفصیلی 4\"\r\n apiName=\"DetailLedger/DetailLedgerWithSubLedgerId\"\r\n textFieldName=\"Title\"\r\n valueFieldName=\"Id\"\r\n [defaultHeight]=\"30\"\r\n [isPaging]=\"true\"\r\n [shouldBeChangedData]=\"shouldBeChangedData\"\r\n [onDataStateChange]=\"onDataStateChange\"\r\n textColumnsName=\"{{ ColumnsName }}\"\r\n [disabled]=\"model?.AccVoucherHeaderId != undefined\">\r\n \r\n = 5 && currentSubLedger?.HasDetailLedger5 === true\"\r\n name=\"DetailLedger5Id\"\r\n [group]=\"formGroup\"\r\n label=\"حساب تفصیلی 5\"\r\n apiName=\"DetailLedger/DetailLedgerWithSubLedgerId\"\r\n textFieldName=\"Title\"\r\n valueFieldName=\"Id\"\r\n [defaultHeight]=\"30\"\r\n [isPaging]=\"true\"\r\n [shouldBeChangedData]=\"shouldBeChangedData\"\r\n [onDataStateChange]=\"onDataStateChange\"\r\n textColumnsName=\"{{ ColumnsName }}\"\r\n [disabled]=\"model?.AccVoucherHeaderId != undefined\">\r\n \r\n = 6 && currentSubLedger?.HasDetailLedger6 === true\"\r\n name=\"DetailLedger6Id\"\r\n [group]=\"formGroup\"\r\n label=\"حساب تفصیلی 6\"\r\n apiName=\"DetailLedger/DetailLedgerWithSubLedgerId\"\r\n textFieldName=\"Title\"\r\n valueFieldName=\"Id\"\r\n [defaultHeight]=\"30\"\r\n [isPaging]=\"true\"\r\n [shouldBeChangedData]=\"shouldBeChangedData\"\r\n [onDataStateChange]=\"onDataStateChange\"\r\n textColumnsName=\"{{ ColumnsName }}\"\r\n [disabled]=\"model?.AccVoucherHeaderId != undefined\">\r\n \r\n = 7 && currentSubLedger?.HasDetailLedger7 === true\"\r\n name=\"DetailLedger7Id\"\r\n [group]=\"formGroup\"\r\n label=\"حساب تفصیلی 7\"\r\n textFieldName=\"Title\"\r\n valueFieldName=\"Id\"\r\n apiName=\"DetailLedger/DetailLedgerWithSubLedgerId\"\r\n [defaultHeight]=\"30\"\r\n [isPaging]=\"true\"\r\n [shouldBeChangedData]=\"shouldBeChangedData\"\r\n [onDataStateChange]=\"onDataStateChange\"\r\n textColumnsName=\"{{ ColumnsName }}\"\r\n [disabled]=\"model?.AccVoucherHeaderId != undefined\">\r\n \r\n
\r\n \r\n 0) ||\r\n (model.AccCloseProfitandLossAccountsDetails && model.AccCloseProfitandLossAccountsDetails.length > 0)\r\n \"\r\n class=\"detail\">\r\n
\r\n
حسابهای قابل انتخاب
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
حسابهای انتخاب شده
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccCloseProfitandLossAccountsFormComponent } from \"../acc-close-profitand-loss-accounts-form/acc-close-profitand-loss-accounts-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-acc-close-profitand-loss-accounts-list\",\r\n templateUrl: \"./acc-close-profitand-loss-accounts-list.component.html\",\r\n styleUrls: [\"./acc-close-profitand-loss-accounts-list.component.scss\"],\r\n})\r\nexport class AccCloseProfitandLossAccountsListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n filterInfo: NameValue[] = [];\r\n editingName: { name: string };\r\n constructor(private missetup: MisSetupService) {\r\n super();\r\n this.inputEditorform = AccCloseProfitandLossAccountsFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"AccCloseProfitandLossAccountsHeader\";\r\n this.areaName = \"Accounting\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.AccCloseProfitandLossAccountsHeader.AccCloseProfitandLossAccountsHeader\");\r\n this.setColumns();\r\n super.ngOnInit();\r\n if (this.accountService.authService.currentFiscalYear)\r\n this.filterInfo = [{ Name: \"FiscalYearId\", Value: this.accountService.authService.currentFiscalYear?.Id, Operator: \"eq\" }];\r\n else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.filterInfo = [{ Name: \"FiscalYearId\", Value: x.Id, Operator: \"eq\" }];\r\n }\r\n });\r\n }\r\n get detailLedgerLevel(): number {\r\n return this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n }\r\n setColumns() {\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n (data as form_control[]).forEach((x) => {\r\n if (x.name.includes(\"DetailLedger1\")) x.listVisible = this.detailLedgerLevel >= 1;\r\n if (x.name.includes(\"DetailLedger2\")) x.listVisible = this.detailLedgerLevel >= 2;\r\n if (x.name.includes(\"DetailLedger3\")) x.listVisible = this.detailLedgerLevel >= 3;\r\n if (x.name.includes(\"DetailLedger4\")) x.listVisible = this.detailLedgerLevel >= 4;\r\n if (x.name.includes(\"DetailLedger5\")) x.listVisible = this.detailLedgerLevel >= 5;\r\n if (x.name.includes(\"DetailLedger6\")) x.listVisible = this.detailLedgerLevel >= 6;\r\n if (x.name.includes(\"DetailLedger7\")) x.listVisible = this.detailLedgerLevel >= 7;\r\n });\r\n this.columns = data as form_control[];\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در بارگذاری اطلاعات\")\r\n );\r\n }\r\n}\r\n","
\r\n 0 && filterInfo && filterInfo.length > 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [columns]=\"columns\"\r\n [areaName]=\"areaName\"\r\n [isModal]=\"false\"\r\n reportName=\"AccCloseProfitandLossAccountsHeader\"\r\n pathPreFix=\"ACC\"\r\n defaultSortKey=\"VoucherDate\"\r\n defaultSortKeyKind=\"des\"\r\n [inputEditorform]=\"inputEditorform\"\r\n [defaultFilterKey]=\"filterInfo\">\r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { AccCloseProfitandLossAccountsFormComponent } from \"./acc-close-profitand-loss-accounts-form/acc-close-profitand-loss-accounts-form.component\";\r\nimport { AccCloseProfitandLossAccountsListComponent } from \"./acc-close-profitand-loss-accounts-list/acc-close-profitand-loss-accounts-list.component\";\r\n\r\nconst components = [AccCloseProfitandLossAccountsListComponent, AccCloseProfitandLossAccountsFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class AccCloseProfitandLossAccountsModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherDetailComment } from \"../models/acc-voucher-detail-comment.model\";\r\n\r\n@Component({\r\n selector: \"ngx-acc-voucher-detail-comment\",\r\n templateUrl: \"./acc-voucher-detail-comment.component.html\",\r\n styleUrls: [\"./acc-voucher-detail-comment.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccVoucherDetailCommentComponent extends BaseFormComponent {\r\n comments: NameValue[];\r\n @Input() TrsVoucherKindId: number;\r\n @Input() InvVoucherKindId: number;\r\n @Input() VoucherKindTitle: string;\r\n @Input() IsWarehouse: boolean = true;\r\n currentSeletedColumnKey: string = \"Debit\";\r\n rows = 10;\r\n cols = 50;\r\n isOkForLoad: boolean;\r\n erroremessage: string;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"AccVoucherDetailComment\";\r\n this.label = `قالب شرح سند حسابداری (${this.VoucherKindTitle})`;\r\n this.areaName = \"Accounting\";\r\n\r\n this.setdefault();\r\n this.setColumns();\r\n if (this.TrsVoucherKindId) this.id = this.TrsVoucherKindId;\r\n if (this.InvVoucherKindId) this.id = this.InvVoucherKindId;\r\n\r\n if (this.id) {\r\n this.httpCommonService\r\n .get(\r\n this.apiName +\r\n \"/GetByVoucherKindId/\" +\r\n (!this.TrsVoucherKindId ? 0 : this.TrsVoucherKindId) +\r\n \"/\" +\r\n (!this.InvVoucherKindId ? 0 : this.InvVoucherKindId)\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (!data) {\r\n this.newRow();\r\n this.model.TrsVoucherKindId = this.TrsVoucherKindId;\r\n this.model.InvVoucherKindId = this.InvVoucherKindId;\r\n this.setdefault();\r\n } else {\r\n this.model = Object.assign({}, data as AccVoucherDetailComment);\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n setdefault() {\r\n if (this.TrsVoucherKindId) {\r\n this.comments = [];\r\n this.comments.push({ Name: \"نوع سند\", Value: \"VoucherKindTitle\", Operator: \"\" });\r\n this.comments.push({ Name: \"شماره سند\", Value: \"VoucherNo\", Operator: \"\" });\r\n this.comments.push({ Name: \"تاریخ سند\", Value: \"ShamsiDeliverDate\", Operator: \"\" });\r\n this.comments.push({ Name: \"بابت\", Value: \"ConcernTitle\", Operator: \"\" });\r\n this.comments.push({ Name: \"تاریخ وصول\", Value: \"ShamsiDeliverDate\", Operator: \"\" });\r\n this.comments.push({ Name: \"توضیحات هدر سند\", Value: \"HeaderComment\", Operator: \"\" });\r\n this.comments.push({ Name: \"شرح آرتیکل سند\", Value: \"DetailComment\", Operator: \"\" });\r\n this.comments.push({ Name: \"تفصیلی طرف مقابل\", Value: \"DetailLedgerTitle\", Operator: \"\" });\r\n this.comments.push({ Name: \"تفصیلی طرف خزانه\", Value: \"TreasuryDetailLedgerTitle\", Operator: \"\" });\r\n this.comments.push({ Name: \"شماره پیگیری\", Value: \"SlaveNo\", Operator: \"\" });\r\n this.comments.push({ Name: \"تحویل گیرنده/دهنده\", Value: \"Deliverer\", Operator: \"\" });\r\n this.comments.push({ Name: \"شماره مدرک\", Value: \"DocumentNo\", Operator: \"\" });\r\n this.comments.push({ Name: \"تاریخ مدرک\", Value: \"ShamsiDocumentDate\", Operator: \"\" });\r\n this.comments.push({ Name: \"بانک\", Value: \"BankTitle\", Operator: \"\" });\r\n this.comments.push({ Name: \"شماره حساب\", Value: \"BankAccountNo\", Operator: \"\" });\r\n this.comments.push({ Name: \"کد شعبه\", Value: \"BankBranchCode\", Operator: \"\" });\r\n this.comments.push({ Name: \"عنوان شعبه\", Value: \"BankBranchTitle\", Operator: \"\" });\r\n }\r\n if (this.InvVoucherKindId) {\r\n this.comments = [];\r\n this.comments.push({ Name: \"نوع سند\", Value: \"VoucherKindTitle\", Operator: \"\" });\r\n this.comments.push({ Name: \"شماره سند\", Value: \"VoucherNo\", Operator: \"\" });\r\n this.comments.push({ Name: \"تاریخ سند\", Value: \"ShamsiDeliverDate\", Operator: \"\" });\r\n this.comments.push({ Name: \"توضیحات هدر سند\", Value: \"HeaderComment\", Operator: \"\" });\r\n this.comments.push({ Name: \"شرح آرتیکل سند\", Value: \"DetailComment\", Operator: \"\" });\r\n this.comments.push({ Name: \"تفصیلی طرف مقابل\", Value: \"DetailLedgerTitle\", Operator: \"\" });\r\n this.comments.push({ Name: \"شماره پیگیری\", Value: \"SlaveNo\", Operator: \"\" });\r\n if (this.IsWarehouse === false) this.comments.push({ Name: \"نوع فروش\", Value: \"SellKindTitle\", Operator: \"\" });\r\n this.comments.push({ Name: \"کد کالا\", Value: \"GoodsCode\", Operator: \"\" });\r\n this.comments.push({ Name: \"عنوان کالا\", Value: \"GoodsTitle\", Operator: \"\" });\r\n this.comments.push({ Name: \"انبار\", Value: \"WarehouseTitle\", Operator: \"\" });\r\n }\r\n this.setInputControlValue();\r\n }\r\n\r\n addControl() {\r\n this.setValue(\"DebitCommentFormat\", this.model.DebitCommentFormat);\r\n this.setValue(\"CreditCommentFormat\", this.model.CreditCommentFormat);\r\n\r\n this.setValue(\"InvVoucherKindId\", this.InvVoucherKindId);\r\n this.setValue(\"TrsVoucherKindId\", this.TrsVoucherKindId);\r\n this.setInputControlValue();\r\n this.isOkForLoad = true;\r\n this.cd.markForCheck();\r\n }\r\n\r\n private setInputControlValue() {\r\n if (this.formGroup && this.formGroup.controls[\"DebitCommentFormat\"])\r\n this.formGroup.controls[\"DebitCommentFormat\"].setValue(this.replaceItemNames(this.model.DebitCommentFormat));\r\n if (this.formGroup && this.formGroup.controls[\"CreditCommentFormat\"])\r\n this.formGroup.controls[\"CreditCommentFormat\"].setValue(this.replaceItemNames(this.model.CreditCommentFormat));\r\n }\r\n\r\n private replaceItemValues(value: string): string {\r\n this.comments.forEach((t) => {\r\n value = value.replace(this.wrap(t.Name), t.Value);\r\n });\r\n return value;\r\n }\r\n\r\n private replaceItemNames(value: string): string {\r\n if (!value) {\r\n return;\r\n }\r\n this.comments\r\n .sort((a, b) => b.Value.length - a.Value.length)\r\n .forEach((t) => {\r\n value = value.replace(t.Value, this.wrap(t.Name));\r\n });\r\n return value;\r\n }\r\n\r\n addItem(name: string, dinput: HTMLTextAreaElement, cinput: HTMLTextAreaElement) {\r\n const text = this.wrap(name);\r\n if (this.currentSeletedColumnKey === \"Debit\") {\r\n const value = dinput.value;\r\n\r\n const start = dinput.selectionStart;\r\n const end = dinput.selectionEnd;\r\n\r\n dinput.value = `${value.slice(0, start)}${text}${value.slice(end)}`;\r\n\r\n dinput.selectionStart = dinput.selectionEnd = start + text.length;\r\n this.formGroup.controls[\"DebitCommentFormat\"].setValue(dinput.value);\r\n dinput.focus();\r\n } else {\r\n const value = cinput.value;\r\n\r\n const start = cinput.selectionStart;\r\n const end = cinput.selectionEnd;\r\n\r\n cinput.value = `${value.slice(0, start)}${text}${value.slice(end)}`;\r\n\r\n cinput.selectionStart = cinput.selectionEnd = start + text.length;\r\n this.formGroup.controls[\"CreditCommentFormat\"].setValue(cinput.value);\r\n cinput.focus();\r\n }\r\n }\r\n\r\n wrap(text) {\r\n return `[${text}]`;\r\n }\r\n onChange(key: string) {\r\n this.currentSeletedColumnKey = key;\r\n }\r\n\r\n beforupdate() {\r\n if (\r\n this.formGroup &&\r\n this.InvVoucherKindId &&\r\n (!this.formGroup.controls[\"InvVoucherKindId\"] || !this.formGroup.controls[\"InvVoucherKindId\"].value)\r\n )\r\n this.setValue(\"InvVoucherKindId\", this.InvVoucherKindId);\r\n if (\r\n this.formGroup &&\r\n this.TrsVoucherKindId &&\r\n (!this.formGroup.controls[\"TrsVoucherKindId\"] || !this.formGroup.controls[\"TrsVoucherKindId\"].value)\r\n )\r\n this.setValue(\"TrsVoucherKindId\", this.TrsVoucherKindId);\r\n\r\n if (this.formGroup && this.formGroup.controls[\"DebitCommentFormat\"])\r\n this.formGroup.controls[\"DebitCommentFormat\"].setValue(this.replaceItemValues(this.formGroup.controls[\"DebitCommentFormat\"].value));\r\n if (this.formGroup && this.formGroup.controls[\"CreditCommentFormat\"])\r\n this.formGroup.controls[\"CreditCommentFormat\"].setValue(this.replaceItemValues(this.formGroup.controls[\"CreditCommentFormat\"].value));\r\n }\r\n deleteDetailComment() {\r\n this.httpCommonService\r\n .delete(this.apiName, this.model.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت حذف شد.\");\r\n this.currentrow = undefined;\r\n setTimeout(() => this.ngOnInit(), 200);\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف اطلاعات\");\r\n }\r\n );\r\n }\r\n delete() {\r\n this.sts.showDialog(\"آیا از حذف قابل شرح انتخاب شده اطمینان دارید؟\", \"حذف اطلاعات\", DialogType.confirm, () => this.deleteDetailComment());\r\n }\r\n}\r\n","\r\n
\r\n
0\">\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { AccVoucherDetailCommentComponent } from \"./acc-voucher-detail-comment.component\";\r\n\r\nconst lookups = [AccVoucherDetailCommentComponent];\r\n@NgModule({\r\n declarations: [...lookups],\r\n exports: [...lookups],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, ReactiveFormsModule],\r\n})\r\nexport class AccVoucherDetailCommentModule {}\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { AccVoucherDetail } from \"../../models/accvoucherdetail.model\";\r\n\r\n@Component({\r\n selector: \"ngx-acc-voucher-detail-filter\",\r\n templateUrl: \"./acc-voucher-detail-filter.component.html\",\r\n styleUrls: [\"./acc-voucher-detail-filter.component.scss\"],\r\n})\r\nexport class AccVoucherDetailFilterComponent extends BaseFormComponent {\r\n filterList: GridFilter[];\r\n formGroupIsOk: boolean = false;\r\n GroupLedgerIds: number[] = [];\r\n GeneralLedgerIds: number[] = [];\r\n SubLedgerIds: number[] = [];\r\n DetailLedger1Ids: number[] = [];\r\n DetailLedger2Ids: number[] = [];\r\n DetailLedger3Ids: number[] = [];\r\n DetailLedger4Ids: number[] = [];\r\n DetailLedger5Ids: number[] = [];\r\n StatusKindIds: number[] = [];\r\n SystemKindIds: number[] = [];\r\n AccVoucherKindIds: number[] = [];\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"از شماره\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"StartVoucherNo\",\r\n disabled: false,\r\n name: \"StartVoucherNo\",\r\n order: 0,\r\n textType: \"text\",\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا شماره\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"EndVoucherNo\",\r\n disabled: false,\r\n name: \"EndVoucherNo\",\r\n order: 1,\r\n textType: \"text\",\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 2,\r\n textType: \"text\",\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n // this.columns.push({ label: 'وضعیت سند', controlType: FormControlTypes.dropdown, modelName: 'StatusKindIds', disabled: false, name: 'StatusKindIds', order: 4, textType: 'text',userClass:\"select-sm\",isFloat:1, formVisible: true, listVisible: true, required: false });\r\n // this.columns.push({ label: 'نوع سیستم', controlType: FormControlTypes.dropdown, modelName: 'SystemKindIds', disabled: false, name: 'SystemKindIds', order: 5, textType: 'text',userClass:\"select-sm\",isFloat:1, formVisible: true, listVisible: true, required: false });\r\n // this.columns.push({ label: 'نوع سند', controlType: FormControlTypes.dropdown, modelName: 'AccVoucherKindIds', disabled: false, name: 'AccVoucherKindIds', order: 6, textType: 'text',userClass:\"select-sm\",isFloat:1, formVisible: true, listVisible: true, required: false});\r\n this.columns.push({\r\n label: \"شماره پیگیری (شامل)\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"TrackNo\",\r\n disabled: false,\r\n name: \"TrackNo\",\r\n order: 7,\r\n textType: \"text\",\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شرح قلم (شامل)\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DetailComment\",\r\n disabled: false,\r\n name: \"DetailComment\",\r\n order: 8,\r\n textType: \"text\",\r\n userClass: \"select-xmd\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ پیگیری\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartTrackDate\",\r\n disabled: false,\r\n name: \"StartTrackDate\",\r\n order: 9,\r\n textType: \"text\",\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ پیگیری\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndTrackDate\",\r\n disabled: false,\r\n name: \"EndTrackDate\",\r\n order: 10,\r\n textType: \"text\",\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"از بدهکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"StartDebit\",\r\n disabled: false,\r\n name: \"StartDebit\",\r\n order: 11,\r\n textType: \"number\",\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا بدهکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"EndDebit\",\r\n disabled: false,\r\n name: \"EndDebit\",\r\n order: 12,\r\n textType: \"number\",\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"از بستانکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"StartCredit\",\r\n disabled: false,\r\n name: \"StartCredit\",\r\n order: 13,\r\n textType: \"number\",\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا بستانکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"EndCredit\",\r\n disabled: false,\r\n name: \"EndCredit\",\r\n order: 14,\r\n textType: \"number\",\r\n userClass: \"select-shr\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n\r\n this.orignalColumns = this.columns;\r\n this.setFormGroup(this.model);\r\n }\r\n async save() {\r\n let entity = this.formGroup.value;\r\n let filters: GridFilter[] = [];\r\n Object.keys(this.formGroup.controls).forEach((key) => {\r\n this.model[key] = this.formGroup.controls[key].value;\r\n if (this.formGroup.controls[key].value && (!key.includes(\"Ids\") || this.formGroup.controls[key].value.length > 0))\r\n filters.push({ Filed: key, Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: this.formGroup.controls[key].value, Logic: \"and\" });\r\n });\r\n this.result = filters;\r\n this.closeModal();\r\n }\r\n addControl(): void {\r\n this.formGroupIsOk = false;\r\n this.setValue(\"StatusKindIds\", this.StatusKindIds);\r\n this.setValue(\"SystemKindIds\", this.SystemKindIds);\r\n this.setValue(\"AccVoucherKindIds\", this.AccVoucherKindIds);\r\n this.setValue(\"GroupLedgerIds\", this.GroupLedgerIds);\r\n this.setValue(\"GeneralLedgerIds\", this.GeneralLedgerIds);\r\n this.setValue(\"SubLedgerIds\", this.SubLedgerIds);\r\n this.setValue(\"DetailLedger1Ids\", this.DetailLedger1Ids);\r\n this.setValue(\"DetailLedger2Ids\", this.DetailLedger2Ids);\r\n this.setValue(\"DetailLedger3Ids\", this.DetailLedger3Ids);\r\n this.setValue(\"DetailLedger4Ids\", this.DetailLedger4Ids);\r\n this.setValue(\"DetailLedger5Ids\", this.DetailLedger5Ids);\r\n this.formGroupIsOk = true;\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport * as moment from \"jalali-moment\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Branch, DetailLedger, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { AccStatusKind, SystemKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherDetail } from \"../../models/accvoucherdetail.model\";\r\nimport { AccVoucherHeader } from \"../../models/accvoucherheader.model\";\r\nimport { AccVoucherKind } from \"../../models/accvoucherkind.model\";\r\nimport { SubLedger } from \"../../models/subledger.model\";\r\n@Component({\r\n selector: \"acc-voucher-header-import-excel-form\",\r\n templateUrl: \"./acc-voucher-header-import-excel-form.component.html\",\r\n styleUrls: [\"./acc-voucher-header-import-excel-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccVoucherHeaderImportExcelFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n gridInfo: GridColumnInfoDetail[];\r\n SubLedgerList: SubLedger[];\r\n BranchList: Branch[];\r\n VoucherState: string;\r\n DetailLedgerList: DetailLedger[];\r\n public hColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"AccVoucherHeader\";\r\n this.label = \"دریافت فایل اکسل\";\r\n await super.ngOnInit();\r\n this.model = {};\r\n await this.setAccVoucherKind();\r\n await this.setData();\r\n }\r\n async setColumns() {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns.push({\r\n label: \"ردیف اول عنون ستونهاست.\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"isFirstRowColumnsName\",\r\n disabled: false,\r\n name: \"isFirstRowColumnsName\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.hColumns = this.hColumns;\r\n }\r\n async setData() {\r\n if (!this.model.FiscalYearId && this.accountService.authService.currentFiscalYear) {\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.model.Year = this.accountService.authService.currentFiscalYear.Year;\r\n } else if (!this.model.FiscalYearId) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n this.model.FiscalYearId = x.Id;\r\n this.model.Year = x.Year;\r\n });\r\n }\r\n if (!this.model.StatusKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"StatusKind\", AccStatusKind.Inspection)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n });\r\n }\r\n if (!this.model.SystemKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"GNR\", \"SystemKind\", SystemKind.ACC)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.SystemKindId = x.Id;\r\n this.model.SystemKindCode = x.Code;\r\n this.model.SystemKindTitle = x.Title;\r\n });\r\n }\r\n await this.httpCommonService\r\n .getList(\"Branch/GetAllBranch\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.BranchList = data as Branch[];\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n\r\n await this.httpCommonService\r\n .getList(\"SubLedger\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.SubLedgerList = data as SubLedger[];\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n await this.httpCommonService\r\n .getList(\"DetailLedger\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.DetailLedgerList = data as DetailLedger[];\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n alert(\"انتخاب بیش از یک فایل مجاز نیست.\");\r\n return;\r\n } else {\r\n const result = await this.parseExcelDoc(target.files[0]).catch((err) => console.error(err));\r\n this.SetAccVoucherHeaderInfo(result);\r\n }\r\n }\r\n getDate(newValue: any) {\r\n var _dateValue = moment.from(newValue, \"fa\", \"YYYY/MM/DD HH:mm:ss\").format(\"YYYY/MM/DD HH:mm:ss\") as any;\r\n return new Date(_dateValue);\r\n }\r\n SetAccVoucherHeaderInfo(excelData: any[]) {\r\n let ColumnsName = [];\r\n let VoucherNo = 0;\r\n let VoucherHeader: AccVoucherHeader = {};\r\n VoucherHeader.VoucherNo = 0;\r\n VoucherHeader.FixNo = 0;\r\n VoucherHeader.DailyNo = 0;\r\n VoucherHeader.AccVoucherDetails = [];\r\n let VoucherDetail: AccVoucherDetail = {};\r\n let ErroeMessage: string = \"\";\r\n if (this.formGroup.get(\"isFirstRowColumnsName\")?.value === true) {\r\n ColumnsName = excelData[0] as any[];\r\n } else ColumnsName = this.gridInfo.filter((c) => c.name != null && c.title != \"عملیات\" && !c.hidden) as any[];\r\n let isFirtsRow: boolean = true;\r\n let VoucherHeaderList : AccVoucherHeader[] = [];\r\n for (var i = 0; i < excelData.length; i++) {\r\n var x = excelData[i];\r\n let index: number = 0;\r\n if (this.formGroup.get(\"isFirstRowColumnsName\").value === true && isFirtsRow === true) {\r\n } else {\r\n VoucherDetail = {};\r\n ColumnsName.forEach(async (c) => {\r\n let key: string;\r\n if (c.name) key = c.name;\r\n else {\r\n if (this.gridInfo.some((g) => g.title === c || g.name == c)) {\r\n key = this.gridInfo.find((g) => g.title === c || g.name == c).name;\r\n }\r\n }\r\n if (key.trim() === \"VoucherNo\" && VoucherNo !== Number(x[index])) {\r\n if (!ErroeMessage && VoucherHeader.AccVoucherDetails.length > 0) {\r\n // this.saveVoucher(VoucherHeader);\r\n VoucherHeaderList.push(VoucherHeader);\r\n }\r\n VoucherHeader = {};\r\n VoucherHeader.AccVoucherDetails = [];\r\n VoucherHeader.AccVoucherKindId = this.model.AccVoucherKindId;\r\n VoucherHeader.SystemKindId = this.model.SystemKindId;\r\n VoucherHeader.StatusKindId = this.model.StatusKindId;\r\n VoucherHeader.FiscalYearId = this.model.FiscalYearId;\r\n VoucherHeader.FixNo = 0;\r\n VoucherHeader.DailyNo = 0;\r\n VoucherHeader.FiscalMonth = 0;\r\n VoucherHeader.TotalPrice = 0;\r\n VoucherHeader.VoucherNo = 0;\r\n VoucherHeader.FixNo = 0;\r\n VoucherHeader.DailyNo = 0;\r\n }\r\n if (key.trim() === \"VoucherNo\" || key.trim() === \"ShamsiVoucherDate\" || key.trim() === \"BranchCode\" || key.trim() === \"HeaderComment\") {\r\n {\r\n if(key.trim() === \"HeaderComment\")\r\n VoucherHeader[\"Comment\"] = x[index];\r\n else\r\n VoucherHeader[key.trim()] = x[index];\r\n } \r\n if (key.trim() === \"ShamsiVoucherDate\") VoucherHeader.VoucherDate = this.getDate(VoucherHeader.ShamsiVoucherDate);\r\n VoucherNo = VoucherHeader.VoucherNo;\r\n } else {\r\n VoucherDetail[key.trim()] = x[index];\r\n if (key.trim() === \"ShamsiTrackDate\") VoucherDetail.TrackDate = this.getDate(VoucherDetail.ShamsiTrackDate);\r\n VoucherDetail.AccVoucherHeaderId = 0;\r\n\r\n if (key.trim() === \"BranchCode\") {\r\n VoucherDetail.BranchId = this.BranchList.find((gg) => gg.Code === VoucherHeader.BranchCode)?.Id;\r\n if (!VoucherDetail.BrandId) {\r\n (ErroeMessage += `برای سند ${VoucherHeader.VoucherNo} شعبه ' ${VoucherHeader.BranchCode} پیدا نشد.`), \"دریافت سند حسابداری\" + \",\";\r\n }\r\n }\r\n if (key.trim() === \"SubLedgerCode\") {\r\n VoucherDetail.SubLedgerId = this.SubLedgerList.find((gg) => gg.Code === VoucherDetail.SubLedgerCode)?.Id;\r\n if (!VoucherDetail.SubLedgerId) {\r\n (ErroeMessage += `برای سند ${VoucherHeader.VoucherNo} حساب معین ' ${VoucherDetail.SubLedgerCode} پیدا نشد.`),\r\n \"دریافت سند حسابداری\" + \",\";\r\n }\r\n }\r\n if (key === \"DetailLedgerCode\" && VoucherDetail.DetailLedgerCode) {\r\n VoucherDetail.DetailLedgerId = this.DetailLedgerList.find((gg) => gg.Code === VoucherDetail.DetailLedgerCode)?.Id;\r\n if (!VoucherDetail.DetailLedgerId) {\r\n (ErroeMessage += `برای سند ${VoucherHeader.VoucherNo} حساب تفصیلی 1 ' ${VoucherDetail.DetailLedgerCode} پیدا نشد.`),\r\n \"دریافت سند حسابداری\" + \",\";\r\n }\r\n }\r\n if (key === \"DetailLedger2Code\" && VoucherDetail.DetailLedger2Code) {\r\n VoucherDetail.DetailLedger2Id = this.DetailLedgerList.find((gg) => gg.Code === VoucherDetail.DetailLedger2Code)?.Id;\r\n if (!VoucherDetail.DetailLedger2Id) {\r\n (ErroeMessage += `برای سند ${VoucherHeader.VoucherNo} حساب تفصیلی 2 ' ${VoucherDetail.DetailLedger2Code} پیدا نشد.`),\r\n \"دریافت سند حسابداری\" + \",\";\r\n }\r\n }\r\n if (key === \"DetailLedger3Code\" && VoucherDetail.DetailLedger3Code) {\r\n VoucherDetail.DetailLedger3Id = this.DetailLedgerList.find((gg) => gg.Code === VoucherDetail.DetailLedger3Code)?.Id;\r\n if (!VoucherDetail.DetailLedger2Id) {\r\n (ErroeMessage += `برای سند ${VoucherHeader.VoucherNo} حساب تفصیلی 3 ' ${VoucherDetail.DetailLedger3Code} پیدا نشد.`),\r\n \"دریافت سند حسابداری\" + \",\";\r\n }\r\n }\r\n if (key === \"DetailLedger4Code\" && VoucherDetail.DetailLedger4Code) {\r\n VoucherDetail.DetailLedger4Id = this.DetailLedgerList.find((gg) => gg.Code === VoucherDetail.DetailLedger4Code)?.Id;\r\n if (!VoucherDetail.DetailLedger4Id) {\r\n (ErroeMessage += `برای سند ${VoucherHeader.VoucherNo} حساب تفصیلی 4 ' ${VoucherDetail.DetailLedger4Code} پیدا نشد.`),\r\n \"دریافت سند حسابداری\" + \",\";\r\n }\r\n }\r\n if (key === \"DetailLedger5Code\" && VoucherDetail.DetailLedger5Code) {\r\n VoucherDetail.DetailLedger5Id = this.DetailLedgerList.find((gg) => gg.Code === VoucherDetail.DetailLedger5Code)?.Id;\r\n if (!VoucherDetail.DetailLedger5Id) {\r\n (ErroeMessage += `برای سند ${VoucherHeader.VoucherNo} حساب تفصیلی 5 ' ${VoucherDetail.DetailLedger5Code} پیدا نشد.`),\r\n \"دریافت سند حسابداری\" + \",\";\r\n }\r\n }\r\n }\r\n index++;\r\n });\r\n this.VoucherState = `در حال ذخیره سند شماره ${VoucherHeader.VoucherNo} تاریخ ${VoucherHeader.ShamsiVoucherDate}`;\r\n this.cd.markForCheck();\r\n if (!VoucherHeader.AccVoucherDetails.some((g) => g.RowNumber === VoucherDetail.RowNumber)) {\r\n VoucherHeader.AccVoucherDetails.push(VoucherDetail);\r\n } else {\r\n console.log(VoucherHeader);\r\n }\r\n }\r\n if (isFirtsRow === true) isFirtsRow = false;\r\n if (ErroeMessage) break;\r\n }\r\n if (!ErroeMessage && VoucherHeader.AccVoucherDetails.length > 0) {\r\n VoucherHeaderList.push(VoucherHeader);\r\n // this.saveVoucher(VoucherHeader);\r\n\r\n } else this.sts.showDialog(ErroeMessage, \"خطا در دریافت کالا\");\r\n this.saveVoucher(VoucherHeaderList);\r\n }\r\n public cancel() {\r\n this.close();\r\n }\r\n saveVoucher(entity) {\r\n if(!entity || entity?.length <= 0 ) return;\r\n this.VoucherState = `در حال ذخیره سند شماره`;\r\n this.cd.markForCheck();\r\n this.httpCommonService\r\n .create(this.apiName +\"/SaveExcelData\", entity)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => {\r\n this.close();\r\n this.cd.markForCheck();\r\n },\r\n (error) => this.sts.showDialog(`خطای ذخیره تغییرات: ${Utilities.getHttpResponseMessage(error)}`, \"پیغام خطا\")\r\n );\r\n }\r\n async setAccVoucherKind() {\r\n await this.httpCommonService\r\n .get(\"AccVoucherKind/ReadAccVoucherKindLookUp\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data: AccVoucherKind[]) => {\r\n let vk = data.filter((x) => x.Code === 1 || !x.IsOperating);\r\n this.selectorService.setDataList(\"AccVoucherKindId\", vk);\r\n let _vk = vk.find((x) => x.Code === 1);\r\n if (_vk) {\r\n this.model.AccVoucherKindId = _vk.Id;\r\n this.model.AccVoucherKindTitle = _vk.Title;\r\n this.model.AccVoucherKindCode = _vk.Code;\r\n }\r\n },\r\n (error) => {}\r\n );\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n NgZone,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, ValidatorFn, Validators } from \"@angular/forms\";\r\nimport { ColumnComponent, GridComponent, RowArgs, ScrollRequest, SelectAllCheckboxState } from \"@progress/kendo-angular-grid\";\r\nimport { State } from \"@progress/kendo-data-query\";\r\nimport * as moment from \"jalali-moment\";\r\nimport { Moment } from \"jalali-moment\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { GridColumnInfo, GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { AccountService, HttpCommonService, PagingDataResult, ShowToastrService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherDetail } from \"../../models/accvoucherdetail.model\";\r\nimport { SubLedgerStandardComment } from \"../../models/subLedger-standard-comment.model\";\r\nimport { SubLedger } from \"../../models/subledger.model\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"accvoucher-detail\",\r\n templateUrl: \"./accvoucher-detail.component.html\",\r\n styleUrls: [\"./accvoucher-detail.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccVoucherDetailComponent implements OnInit {\r\n dataReadedColumns: string = \"\";\r\n _GridColumnInfo: GridColumnInfo;\r\n isFirstLoad: boolean;\r\n LookupData: Dictionary = [];\r\n LookupIsLoading: Dictionary = [];\r\n DefaultValues: Dictionary = [];\r\n @ViewChild(\"grid\") public grid: GridComponent;\r\n public isNew: boolean;\r\n public rowinserted: boolean = false;\r\n isDisabled: boolean = false;\r\n public mySelection: number[] = [];\r\n public selectAllState: SelectAllCheckboxState = \"unchecked\";\r\n isLOading: boolean = false;\r\n ngUnsubscribe = new Subject();\r\n @Output() valueChanges = new EventEmitter();\r\n @Input() RowNumberName: string;\r\n @Input() columns: form_control[] = [];\r\n @Input() isAdd: boolean = true;\r\n @Input() isEdit: boolean = false;\r\n @Input() isDelete: boolean = true;\r\n @Input() isPriceable: boolean = false;\r\n @Input() hasDiscount: boolean = false;\r\n @Input() hasReference: boolean = false;\r\n @Input() hasReferenceRequired: boolean = false;\r\n @Input() IsPurchaseInvoice: boolean = false;\r\n @Input() IsReturnPurchaseInvoice: boolean = false;\r\n @Input() headerTitleToDetailTitle: string;\r\n @Input() accountInfo: string;\r\n @Output() showDetail = new EventEmitter();\r\n triggerShowDetail() {\r\n this.showDetail.emit();\r\n }\r\n formGroup: UntypedFormGroup;\r\n _dataList: AccVoucherDetail[];\r\n loadingData: boolean = false;\r\n @Input()\r\n get dataList(): AccVoucherDetail[] {\r\n return this._dataList;\r\n }\r\n set dataList(value: AccVoucherDetail[]) {\r\n this._dataList = value;\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n }\r\n _gridheight: number = 57;\r\n @Input()\r\n get gridheight(): number {\r\n return this._gridheight;\r\n }\r\n set gridheight(value: number) {\r\n this._gridheight = value;\r\n }\r\n gridData: AccVoucherDetail[];\r\n aggregatesColumnName: string = \"RowNumber,Debit,Credit\";\r\n rowIsEditing: boolean = false;\r\n editedRow: AccVoucherDetail;\r\n editedRowIndex: number = 0;\r\n public state: State = {\r\n skip: 0,\r\n take: 5,\r\n filter: {\r\n logic: \"and\",\r\n filters: [],\r\n },\r\n group: [],\r\n };\r\n get getTaxRate(): number {\r\n return this.missetup.getnumber(\"GNR\", \"TaxRate\") / 100;\r\n }\r\n\r\n DetailControlModels: Dictionary;\r\n\r\n getGridCell(index) {\r\n return this.grid.columns.toArray()[index];\r\n }\r\n\r\n getColumnIndex(colIndex: number) {\r\n let index: number = -1;\r\n let ColumnName: string;\r\n this.grid.columns\r\n .toArray()\r\n .filter((x) => x.isVisible)\r\n .forEach((x) => {\r\n index = index + 1;\r\n if (index == colIndex) ColumnName = x[\"field\"];\r\n });\r\n return ColumnName;\r\n }\r\n\r\n @HostListener(\"window:keydown\", [\"$event\"])\r\n cArrowDown(e: KeyboardEvent) {\r\n if (document.hidden) return;\r\n\r\n if (e.altKey && e.shiftKey && (e.key === \"n\" || e.key === \"N\" || e.key === \"أ\")) {\r\n e.preventDefault();\r\n this.addHandler();\r\n }\r\n if (e.ctrlKey && e.altKey && (e.key === \"s\" || e.key === \"S\" || e.key === \"س\")) {\r\n e.preventDefault();\r\n this.saveCurrent();\r\n }\r\n if (e.ctrlKey && (e.key === \"c\" || e.key === \"C\" || e.key === \"ز\")) {\r\n e.preventDefault();\r\n this.copyHandler();\r\n }\r\n if (e.ctrlKey && (e.key === \"v\" || e.key === \"V\" || e.key === \"ر\")) {\r\n e.preventDefault();\r\n this.pasetHandler();\r\n }\r\n if (e.key === \"Tab\" && !e.shiftKey) {\r\n if (this.formGroup) {\r\n e.preventDefault();\r\n // this.setDisableColumn(this.formGroup.value);\r\n if (this.getColumnIndex(this.grid.activeCell?.colIndex) === \"Debit\" || this.getColumnIndex(this.grid.activeCell?.colIndex) === \"Credit\") {\r\n if (this.formGroup.valid) {\r\n if (this.formGroup.controls[\"Debit\"].value || this.formGroup.controls[\"Credit\"].value) {\r\n this.saveCurrent();\r\n\r\n if (this.grid.activeCell.rowIndex < this.dataList.length) {\r\n this.cd.markForCheck();\r\n this.editHandler({ sender: this.grid, rowIndex: this.grid.activeRow.index, dataItem: this.gridData[this.grid.activeRow.index] });\r\n } else {\r\n this.addHandler();\r\n }\r\n }\r\n } else {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate.instant(\"MessageHeader.Error\"),\r\n `شرح قلم ${this.translate.instant(\"Errors.Required\")}`\r\n //TODO IT Should Work on Every Required Field Which is Empty\r\n );\r\n }\r\n } else {\r\n this.grid.focusPrevCell(true);\r\n if (this.grid.activeCell) {\r\n let { name, disabled } = this.columns.filter((col) => col.listVisible && col.formVisible).sort((a, b) => a.order - b.order)[\r\n this.grid.activeCell.colIndex - 1\r\n ];\r\n if (disabled) {\r\n this.cArrowDown(e);\r\n }\r\n let stLookup = document.getElementById(`id${name}`);\r\n if (!stLookup) {\r\n return;\r\n }\r\n const input = stLookup.getElementsByTagName(\"input\").item(0) as HTMLInputElement;\r\n input.click();\r\n this.cd.markForCheck();\r\n }\r\n }\r\n }\r\n }\r\n if (e.key.toUpperCase() === \"F3\") {\r\n e.preventDefault();\r\n this.changeDebit();\r\n }\r\n if (e.key.toUpperCase() === \"F4\") {\r\n e.preventDefault();\r\n if (this.dataList.length > 1 && this.formGroup.controls[\"RowNumber\"].value > 1) {\r\n let ColumnName = this.getColumnIndex(this.grid.activeCell.colIndex);\r\n if (\r\n (ColumnName !== \"Debit\" && ColumnName !== \"Credit\") ||\r\n (ColumnName === \"Debit\" && !this.formGroup.controls[\"Credit\"].value) ||\r\n (ColumnName === \"Credit\" && !this.formGroup.controls[\"Debit\"].value)\r\n ) {\r\n if (ColumnName.includes(\"SubLedger\") || ColumnName.includes(\"DetailLedger\")) {\r\n let PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][ColumnName];\r\n this.formGroup.controls[ColumnName].setValue(PrevValue);\r\n PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][ColumnName.replace(\"Id\", \"Code\")];\r\n this.formGroup.controls[ColumnName.replace(\"Id\", \"Code\")].setValue(PrevValue);\r\n PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][ColumnName.replace(\"Id\", \"Title\")];\r\n this.formGroup.controls[ColumnName.replace(\"Id\", \"Title\")].setValue(PrevValue);\r\n\r\n if (ColumnName.includes(\"SubLedger\")) {\r\n let PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][\"HasDetailLedger1\"];\r\n this.formGroup.controls[\"HasDetailLedger1\"].setValue(PrevValue);\r\n PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][\"HasDetailLedger2\"];\r\n this.formGroup.controls[\"HasDetailLedger2\"].setValue(PrevValue);\r\n PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][\"HasDetailLedger3\"];\r\n this.formGroup.controls[\"HasDetailLedger3\"].setValue(PrevValue);\r\n PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][\"HasDetailLedger4\"];\r\n this.formGroup.controls[\"HasDetailLedger4\"].setValue(PrevValue);\r\n PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][\"HasDetailLedger5\"];\r\n this.formGroup.controls[\"HasDetailLedger5\"].setValue(PrevValue);\r\n PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][\"HasDetailLedger6\"];\r\n this.formGroup.controls[\"HasDetailLedger6\"].setValue(PrevValue);\r\n PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][\"HasDetailLedger7\"];\r\n this.formGroup.controls[\"HasDetailLedger7\"].setValue(PrevValue);\r\n this.setDisableColumn(this.formGroup.value);\r\n }\r\n } else {\r\n let PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][ColumnName];\r\n this.formGroup.controls[ColumnName].setValue(PrevValue);\r\n if (this.grid.activeRow.dataItem) this.grid.activeRow.dataItem[ColumnName] = PrevValue;\r\n }\r\n this.selectorService.onSubmited.next(true);\r\n this.cd.markForCheck();\r\n }\r\n }\r\n }\r\n if (e.key.toUpperCase() === \"F5\") {\r\n e.preventDefault();\r\n if (!this.formGroup || !this.gridData || this.gridData.length < 2) return;\r\n Object.keys(this.dataList[0])\r\n .filter((x) => x !== \"RowNumber\" && x !== \"Id\" && x !== \"State\")\r\n .forEach((key) => {\r\n if (key && this.formGroup.controls[key]) {\r\n let PrevValue = this.gridData[this.formGroup.controls[\"RowNumber\"].value - 2][key];\r\n this.formGroup.controls[key].setValue(PrevValue);\r\n if (this.grid.activeRow.dataItem) this.grid.activeRow.dataItem[key] = PrevValue;\r\n }\r\n });\r\n this.cd.markForCheck();\r\n }\r\n if (this.formGroup && e.ctrlKey && e.key.toUpperCase() === \"DELETE\") {\r\n e.preventDefault();\r\n this.removeHandler({ sender: this.grid, dataItem: this.formGroup.value });\r\n }\r\n if (this.formGroup && e.key.toUpperCase() === \"F7\") {\r\n e.preventDefault();\r\n this.saveSubLedgerStandardComment();\r\n }\r\n if (this.grid?.activeCell?.rowIndex !== this.editedRowIndex && this.gridData[this.editedRowIndex - 1]) {\r\n this.valueChanges.emit(this.gridData[this.editedRowIndex - 1]);\r\n }\r\n }\r\n constructor(\r\n private sts: ShowToastrService,\r\n private missetup: MisSetupService,\r\n private accountService: AccountService,\r\n private selectorService: SelectorService,\r\n private cd: ChangeDetectorRef,\r\n private ngZone: NgZone,\r\n private _httpCommonService: HttpCommonService,\r\n private translate: TranslateService\r\n ) {\r\n this.onDataStateChange = this.onDataStateChange.bind(this);\r\n this.shouldBeChangedData = this.shouldBeChangedData.bind(this);\r\n }\r\n @Input() detailLedgerLevel: number = 0;\r\n\r\n ngOnInit(): void {\r\n this.mySelection = [];\r\n this.rowIsEditing = false;\r\n this.DefaultValues[\"AccVoucherHeaderId\"] = 0;\r\n this.DefaultValues[\"RowNumber\"] = 1;\r\n this.DefaultValues[\"Debit\"] = 0;\r\n this.DefaultValues[\"Credit\"] = 0;\r\n if (!this.dataList) this.dataList = [];\r\n this.setColumnWith();\r\n this.columns.forEach((x) => {\r\n if (x.listVisible && x.apiName) this.setDropdownlist(x.apiName, x.name);\r\n });\r\n if (this.dataList.length <= 0) setTimeout(() => this.addHandler(), 100);\r\n }\r\n changeDebit() {\r\n if (this.formGroup && this.grid && this.grid.isEditing) {\r\n let debit = this.formGroup.controls[\"Debit\"].value;\r\n let credit = this.formGroup.controls[\"Credit\"].value;\r\n this.formGroup.controls[\"Debit\"].setValue(credit);\r\n this.formGroup.controls[\"Credit\"].setValue(debit);\r\n if (this.formGroup.controls[\"Debit\"].value !== credit) this.formGroup.controls[\"Debit\"].setValue(credit);\r\n if (this.formGroup.controls[\"Credit\"].value !== debit) this.formGroup.controls[\"Credit\"].setValue(debit);\r\n if (this.grid?.activeRow?.dataItem) {\r\n this.grid.activeRow.dataItem.Credit = debit;\r\n this.grid.activeRow.dataItem.Debit = credit;\r\n }\r\n\r\n this.cd.markForCheck();\r\n }\r\n }\r\n setColumns() {\r\n this.columns.forEach((x) => {\r\n if (x.name === \"DetailLedgerId\") x.listVisible = this.detailLedgerLevel > 0;\r\n if (x.name === \"DetailLedger2Id\") x.listVisible = this.detailLedgerLevel > 1;\r\n if (x.name === \"DetailLedger3Id\") x.listVisible = this.detailLedgerLevel > 2;\r\n if (x.name === \"DetailLedger4Id\") x.listVisible = this.detailLedgerLevel > 3;\r\n if (x.name === \"DetailLedger5Id\") x.listVisible = this.detailLedgerLevel > 4;\r\n if (x.name === \"DetailLedger6Id\") x.listVisible = this.detailLedgerLevel > 5;\r\n if (x.name === \"DetailLedger7Id\") x.listVisible = this.detailLedgerLevel > 6;\r\n });\r\n return this.columns;\r\n }\r\n\r\n setValidators(key: string, validator: boolean) {\r\n if (this.formGroup && this.formGroup.controls[key]) {\r\n this.formGroup.controls[key].clearValidators();\r\n if (validator) this.formGroup.controls[key].setValidators(Validators.required);\r\n this.formGroup.controls[key].updateValueAndValidity();\r\n }\r\n }\r\n setFormGroup(entity: any = null) {\r\n let group: any = {};\r\n this.columns.forEach((question) => {\r\n switch (question.textType) {\r\n case \"text\":\r\n {\r\n let validator: ValidatorFn[] = [];\r\n if (question.required) validator.push(Validators.required);\r\n if (question.minLength && question.minLength > 0) validator.push(Validators.minLength(question.minLength));\r\n if (question.maxLength && question.maxLength > 0) validator.push(Validators.maxLength(question.maxLength));\r\n if (question.max && question.max > 0) validator.push(Validators.max(question.max));\r\n if (question.min && question.min > 0) validator.push(Validators.min(question.min));\r\n\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? null : entity[question.name] || null, validator)\r\n : new UntypedFormControl(!entity ? null : entity[question.name] || null);\r\n }\r\n break;\r\n case \"checkbox\":\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? false : entity[question.name] || false, Validators.required)\r\n : new UntypedFormControl(!entity ? false : entity[question.name] || false);\r\n break;\r\n case \"number\":\r\n {\r\n let validator: ValidatorFn[] = [];\r\n if (question.required) validator.push(Validators.required);\r\n if (question.max && question.max > 0) validator.push(Validators.max(question.max));\r\n if (question.min && question.min > 0) validator.push(Validators.min(question.min));\r\n\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? null : entity[question.name], validator)\r\n : new UntypedFormControl(!entity ? this.DefaultValues[question.name] : entity[question.name] ?? this.DefaultValues[question.name]);\r\n }\r\n break;\r\n case \"date\":\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(entity[question.name], Validators.required)\r\n : new UntypedFormControl(entity[question.name]);\r\n break;\r\n default:\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? null : entity[question.name] || null, Validators.required)\r\n : new UntypedFormControl(!entity ? null : entity[question.name] || null);\r\n break;\r\n }\r\n });\r\n\r\n group[\"AccVoucherHeaderId\"] = new UntypedFormControl(!entity ? 0 : entity[\"AccVoucherHeaderId\"] || 0);\r\n group[\"State\"] = new UntypedFormControl(!entity ? RowState.New : entity[\"State\"] || RowState.NoChange);\r\n group[\"Id\"] = new UntypedFormControl(!entity ? 0 : entity[\"Id\"] || 0);\r\n group[\"RowVersion\"] = new UntypedFormControl(!entity ? \"\" : entity[\"RowVersion\"] || \"\");\r\n\r\n if (this.RowNumberName) group[this.RowNumberName] = new UntypedFormControl(!entity ? this.gridData.length + 1 : entity[this.RowNumberName] || 0);\r\n this.formGroup = new UntypedFormGroup(group);\r\n this.setChanges();\r\n }\r\n setColumnWith() {\r\n this.columns.forEach((x) => {\r\n if (\r\n x.textType === \"number\" &&\r\n x.withComma &&\r\n !x.name.toUpperCase().includes(\"NUMBER\") &&\r\n !x.name.toUpperCase().includes(\"CODE\") &&\r\n !x.name.toUpperCase().includes(\".ID\")\r\n )\r\n x.format = \"#,#.#####\";\r\n else x.format = \"\";\r\n if (!x.columnWidth || x.columnWidth <= 100) {\r\n if (x.textType === \"text\") x.columnWidth = 400;\r\n else x.columnWidth = 200;\r\n\r\n if (x.name === \"RowNumber\") x.columnWidth = 100;\r\n if (x.name === \"TrackNo\") x.columnWidth = 100;\r\n if (x.name === \"TrackDate\") x.columnWidth = 120;\r\n }\r\n //x.tabOrder = -1;\r\n });\r\n setTimeout((x) => this.fitColumns(), 100);\r\n }\r\n\r\n public addHandler() {\r\n this.closeEditor();\r\n this.isNew = true;\r\n if (!this.dataList) this.dataList = [];\r\n\r\n this.rowIsEditing = true;\r\n let _comment: string = \"\";\r\n if (this.headerTitleToDetailTitle) _comment = this.headerTitleToDetailTitle;\r\n const temp = {\r\n Id: -1,\r\n RowNumber:\r\n this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).length > 0\r\n ? this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).length + 1\r\n : 1,\r\n State: RowState.New,\r\n Comment: _comment,\r\n };\r\n this.dataList.push(temp);\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.editedRowIndex = this.gridData.length - 1;\r\n // this.fitColumns();\r\n this.cd.markForCheck();\r\n this.setFormGroup(temp);\r\n if (this.grid) {\r\n this.grid.editRow(this.editedRowIndex, this.formGroup);\r\n }\r\n // const keyboardEvent = new KeyboardEvent('keydown', {\r\n // code: 'Tab',\r\n // key: 'Tab',\r\n // keyCode: 9,\r\n // view: window,\r\n // bubbles: true\r\n // });\r\n // document.activeElement.dispatchEvent(keyboardEvent);\r\n }\r\n\r\n public cancelHandler() {\r\n this.closeEditor();\r\n }\r\n setChanges() {\r\n let isDisablelingColumn: boolean = false;\r\n this.formGroup.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && !isDisablelingColumn) {\r\n isDisablelingColumn = true;\r\n this.setDisableColumn(x);\r\n isDisablelingColumn = false;\r\n }\r\n });\r\n this.fitColumns();\r\n this.cd.markForCheck();\r\n }\r\n\r\n public saveHandler(rowIndex, formGroup): void {\r\n if (this.formGroup && this.formGroup?.valid) {\r\n var entity = formGroup.value;\r\n\r\n if (entity.State === undefined || (entity.State === RowState.New && rowIndex === -1)) {\r\n entity.State = RowState.New;\r\n if (!this.gridData.some((x) => x.RowNumber === entity.RowNumber)) {\r\n this.dataList.push(entity);\r\n }\r\n } else if (rowIndex >= 0) {\r\n if (!entity.State) entity.State = this.dataList[rowIndex].State;\r\n\r\n if (entity.State != RowState.New) (entity as AccVoucherDetail).State = RowState.Modify;\r\n if (entity.Id > 0 && this.dataList.some((x) => x.Id === entity.Id)) {\r\n this.dataList.forEach((m) => {\r\n if (m.Id === entity.Id) {\r\n Object.assign(m, entity);\r\n }\r\n });\r\n } else {\r\n this.dataList.forEach((m) => {\r\n if (m.RowNumber === entity.RowNumber && m.Id === entity.Id && m.State === entity.State) {\r\n if (entity.Id == -1) entity.Id = 0;\r\n Object.assign(m, entity);\r\n }\r\n });\r\n }\r\n }\r\n this.rowIsEditing = false;\r\n this.valueChanges.emit(entity);\r\n this.closeEditor();\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.fitColumns();\r\n this.cd.markForCheck();\r\n } else this.sts.showDialog(`اطلاعات وارده صحیح نیست.`, \"خطا\", DialogType.alert);\r\n }\r\n setDisableColumn(value: AccVoucherDetail) {\r\n this.grid.columns.forEach((c) => {\r\n if (c[\"field\"] === \"Debit\") {\r\n if (value.Credit && value.Credit > 0) this.setValue(\"Debit\", 0);\r\n c[\"editable\"] = !value.Credit || value.Credit <= 0;\r\n }\r\n if (c[\"field\"] === \"Credit\") {\r\n if (value.Debit && value.Debit > 0) this.setValue(\"Credit\", 0);\r\n c[\"editable\"] = !value.Debit || value.Debit <= 0;\r\n }\r\n\r\n if (c[\"field\"] === \"DetailLedgerId\") c[\"editable\"] = value.HasDetailLedger1;\r\n if (c[\"field\"] === \"DetailLedger2Id\") c[\"editable\"] = value.HasDetailLedger2;\r\n if (c[\"field\"] === \"DetailLedger3Id\") c[\"editable\"] = value.HasDetailLedger3;\r\n if (c[\"field\"] === \"DetailLedger4Id\") c[\"editable\"] = value.HasDetailLedger4;\r\n if (c[\"field\"] === \"DetailLedger5Id\") c[\"editable\"] = value.HasDetailLedger5;\r\n if (c[\"field\"] === \"DetailLedger6Id\") c[\"editable\"] = value.HasDetailLedger6;\r\n if (c[\"field\"] === \"DetailLedger7Id\") c[\"editable\"] = value.HasDetailLedger7;\r\n\r\n if (c[\"field\"] === \"TrackNo\") {\r\n c[\"editable\"] = value.HasTrackNo;\r\n c[\"value\"] = value.RequireTrackNo;\r\n //this.setValidators('TrackNo', value.RequireTrackNo)\r\n }\r\n if (c[\"field\"] === \"TrackDate\") {\r\n c[\"editable\"] = value.HasTrackNo;\r\n c[\"value\"] = value.RequireTrackNo;\r\n //this.setValidators('TrackDate', value.RequireTrackNo);\r\n }\r\n });\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n deleteFormHelper(dataItem: any) {\r\n this.dataList.forEach((x) => {\r\n if ((dataItem.Id > 0 && x.Id === dataItem.Id) || x === dataItem || this.mySelection.some((s) => x.RowNumber == s)) {\r\n if (x.State === RowState.New) x.State = RowState.Detached;\r\n else x.State = RowState.Delete;\r\n }\r\n });\r\n this.setRowNumber();\r\n }\r\n public removeHandler({ sender, dataItem }): void {\r\n if (sender.activeCell.colIndex <= 1) {\r\n this.sts.showDialog(`آیا از حذف اطلاعات اطمینان دارید؟`, \"حذف اطلاعات\", DialogType.confirm, () => this.deleteFormHelper(dataItem));\r\n sender.cancelCell();\r\n }\r\n }\r\n\r\n private setRowNumber() {\r\n let index: number = 0;\r\n this.gridData\r\n .filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached)\r\n .sort((a, b) => a.RowNumber - b.RowNumber)\r\n .forEach((x) => {\r\n index += 1;\r\n if (x.State !== RowState.New && x.State !== RowState.Modify) x.State = RowState.Modify;\r\n x.RowNumber = index;\r\n });\r\n this.valueChanges.emit(this.gridData[this.gridData.length - 1]);\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n }\r\n private closeEditor() {\r\n this.editedRow = undefined;\r\n this.grid.closeRow(this.editedRowIndex);\r\n this.rowIsEditing = false;\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n this.dataList = this.dataList.filter((x) => x.Id >= 0);\r\n if (this.dataList) {\r\n if (this.rowinserted) {\r\n this.dataList = this.dataList.filter((x) => x.Id >= 0);\r\n this.setRowNumber();\r\n this.rowinserted = false;\r\n } else {\r\n this.dataList = this.dataList.filter((x) => x.Id >= 0);\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached && x.Id >= 0);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n }\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n public saveCurrent(): void {\r\n if (this.formGroup) {\r\n this.saveHandler(this.editedRowIndex, this.formGroup);\r\n }\r\n }\r\n public cellCloseHandler(args: any) {\r\n const { formGroup, dataItem } = args;\r\n if (!formGroup) return;\r\n if (!formGroup.valid) {\r\n return;\r\n } else if (formGroup.dirty) {\r\n this.saveCurrent();\r\n } else this.closeEditor();\r\n }\r\n public editHandler({ sender, rowIndex, dataItem }) {\r\n this.editedRow = undefined;\r\n if (this.formGroup && this.editedRowIndex !== undefined && this.editedRowIndex >= 0 && this.editedRowIndex !== rowIndex)\r\n this.cellCloseHandler({ formGroup: this.formGroup, dataItem: dataItem });\r\n if (this.rowIsEditing) return;\r\n if (dataItem) this.valueChanges.emit(dataItem);\r\n if (!this.isAdd && !this.isEdit) {\r\n this.valueChanges.emit(dataItem);\r\n return;\r\n }\r\n this.setFormGroup(dataItem);\r\n //if (this.formGroup && !this.formGroup?.valid)\r\n // return;\r\n\r\n this.rowIsEditing = true;\r\n this.editedRowIndex = rowIndex;\r\n this.valueChanges.emit(dataItem);\r\n sender.editRow(rowIndex, this.formGroup);\r\n }\r\n public doubleclic(args: any) {\r\n this.editedRow = undefined;\r\n if (this.editedRowIndex !== undefined && this.editedRowIndex >= 0 && this.editedRowIndex !== this.grid.activeRow.index - 1)\r\n this.cellCloseHandler({ formGroup: this.formGroup, dataItem: this.grid.activeRow.dataItem });\r\n this.editHandler({ sender: this.grid, rowIndex: this.grid.activeRow.index - 1, dataItem: this.grid.activeRow.dataItem });\r\n }\r\n hasMultiColumns(ColumnsName: string) {\r\n if (!ColumnsName) return false;\r\n var columns = ColumnsName.split(\",\");\r\n return columns.length > 1;\r\n }\r\n\r\n getDetailLedgerParameter(apiName: string, columName: string) {\r\n let p1: string = \"\";\r\n if (!this.formGroup || !this.formGroup.controls[\"SubLedgerId\"] || !this.formGroup.controls[\"SubLedgerId\"].value) return p1;\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\") && columName === \"DetailLedgerId\") {\r\n p1 = `/?subLedgerId=${this.formGroup.controls[\"SubLedgerId\"].value}&detailLegerLevel=1`;\r\n }\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\") && columName === \"DetailLedger2Id\") {\r\n p1 = `/?subLedgerId=${this.formGroup.controls[\"SubLedgerId\"].value}&detailLegerLevel=2`;\r\n }\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\") && columName === \"DetailLedger3Id\") {\r\n p1 = `/?subLedgerId=${this.formGroup.controls[\"SubLedgerId\"].value}&detailLegerLevel=3`;\r\n }\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\") && columName === \"DetailLedger4Id\") {\r\n p1 = `/?subLedgerId=${this.formGroup.controls[\"SubLedgerId\"].value}&detailLegerLevel=4`;\r\n }\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\") && columName === \"DetailLedger5Id\") {\r\n p1 = `/?subLedgerId=${this.formGroup.controls[\"SubLedgerId\"].value}&detailLegerLevel=5`;\r\n }\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\") && columName === \"DetailLedger6Id\") {\r\n p1 = `/?subLedgerId=${this.formGroup.controls[\"SubLedgerId\"].value}&detailLegerLevel=6`;\r\n }\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\") && columName === \"DetailLedger7Id\") {\r\n p1 = `/?subLedgerId=${this.formGroup.controls[\"SubLedgerId\"].value}&detailLegerLevel=7`;\r\n }\r\n return p1;\r\n }\r\n async setDropdownlist(apiName: string, columName: string) {\r\n if (apiName.includes(\"DetailLedgerWithSubLedgerId\")) return;\r\n let p = this.getDetailLedgerParameter(apiName, columName);\r\n if (p === undefined) return;\r\n await this._httpCommonService\r\n .getList(apiName + p)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then((x) => {\r\n this.LookupData[columName] = x;\r\n });\r\n }\r\n getItemDisplayById(apiName: string, id: number, displayMember, valueMember: string, dataItem: any, columnName: string) {\r\n if (!id) return \"\";\r\n if (apiName.includes(\"Comment\")) {\r\n return dataItem[columnName];\r\n }\r\n columnName = columnName.replace(\"Id\", \"\");\r\n return dataItem[`${columnName}${displayMember}`];\r\n }\r\n getDateValue(date: Date) {\r\n if (!date) return \"\";\r\n let m: Moment = moment(date.toString()).locale(\"fa\");\r\n return m.format(\"YYYY/MM/DD\");\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.selectorService.setDataList(\"AccVoucherDetail\", undefined);\r\n this.saveGridColumnInfo();\r\n this.LookupData = undefined;\r\n this.LookupIsLoading = undefined;\r\n this.DefaultValues = undefined;\r\n this.grid = undefined;\r\n this.mySelection = undefined;\r\n this.columns = undefined;\r\n this.formGroup = undefined;\r\n this._dataList = undefined;\r\n this._dataList = undefined;\r\n this.gridData = undefined;\r\n this.editedRow = undefined;\r\n }\r\n setValue(key: string, value: any) {\r\n if (!this.formGroup.controls[key]) this.formGroup.addControl(key, new UntypedFormControl(value));\r\n else if (this.formGroup.controls[key].value !== value) this.formGroup.controls[key].setValue(value);\r\n }\r\n async setSubLedgerStandardComent(subLedger: SubLedger) {\r\n let ListItems: string[] = [];\r\n let LatinListItems: string[] = [];\r\n let id = subLedger ? subLedger.Id : this.formGroup.controls[\"SubLedgerId\"].value;\r\n\r\n await this._httpCommonService\r\n .getList(\"SubLedgerStandardComment/GetBySubLedgerId/\" + id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then((x: any[]) => {\r\n x.forEach((l) => {\r\n if (l.SubLedgerComment) ListItems.push(l.SubLedgerComment);\r\n if (l.SubLedgerLatinComment) ListItems.push(l.SubLedgerLatinComment);\r\n });\r\n this.LookupData[\"Comment\"] = ListItems;\r\n this.LookupData[\"LatinComment\"] = LatinListItems;\r\n });\r\n }\r\n selectionChange(event: any, columnName: string = undefined) {\r\n this.valueChanges.emit({ data: event, columnName: columnName });\r\n if (event && columnName && columnName === \"SubLedgerId\") {\r\n // this.dataReadedColumns = \"\";\r\n if (this.formGroup) {\r\n if (this.formGroup.controls[\"SubLedgerCode\"].value !== event.Code) {\r\n this.setValue(\"SubLedgerCode\", event.Code);\r\n this.setValue(\"SubLedgerTitle\", event.Title);\r\n this.setValue(\"GroupLedgerCode\", event.GroupLedgerCode);\r\n this.setValue(\"GroupLedgerTitle\", event.GroupLedgerTitle);\r\n this.setValue(\"GeneralLedgerCode\", event.GeneralLedgerCode);\r\n this.setValue(\"GeneralLedgerTitle\", event.GeneralLedgerTitle);\r\n this.setValue(\"HasDetailLedger1\", event.HasDetailLedger1);\r\n this.setValue(\"HasDetailLedger2\", event.HasDetailLedger2);\r\n this.setValue(\"HasDetailLedger3\", event.HasDetailLedger3);\r\n this.setValue(\"HasDetailLedger4\", event.HasDetailLedger4);\r\n this.setValue(\"HasDetailLedger5\", event.HasDetailLedger5);\r\n this.setValue(\"HasDetailLedger6\", event.HasDetailLedger6);\r\n this.setValue(\"HasDetailLedger7\", event.HasDetailLedger7);\r\n\r\n this.setValue(\"DetailLedgerId\", undefined);\r\n this.setValue(\"DetailLedgerCode\", undefined);\r\n this.setValue(\"DetailLedgerTitle\", undefined);\r\n this.setValue(\"DetailLedger2Id\", undefined);\r\n this.setValue(\"DetailLedger2Code\", undefined);\r\n this.setValue(\"DetailLedger2Title\", undefined);\r\n this.setValue(\"DetailLedger3Id\", undefined);\r\n this.setValue(\"DetailLedger3Code\", undefined);\r\n this.setValue(\"DetailLedger3Title\", undefined);\r\n this.setValue(\"DetailLedger4Id\", undefined);\r\n this.setValue(\"DetailLedger4Code\", undefined);\r\n this.setValue(\"DetailLedger4Title\", undefined);\r\n this.setValue(\"DetailLedger5Id\", undefined);\r\n this.setValue(\"DetailLedger5Code\", undefined);\r\n this.setValue(\"DetailLedger5Title\", undefined);\r\n this.setValue(\"DetailLedger6Id\", undefined);\r\n this.setValue(\"DetailLedger6Code\", undefined);\r\n this.setValue(\"DetailLedger6Title\", undefined);\r\n this.setValue(\"DetailLedger7Id\", undefined);\r\n this.setValue(\"DetailLedger7Code\", undefined);\r\n this.setValue(\"DetailLedger7Title\", undefined);\r\n this.setValue(\"HasTrackNo\", event.HasTrackNo);\r\n this.setValue(\"RequireTrackNo\", event.RequireTrackNo);\r\n }\r\n this.columns\r\n .filter((x) => x.name.includes(\"DetailLedger\"))\r\n .forEach((x) => {\r\n if (x.listVisible && x.apiName) this.setDropdownlist(x.apiName, x.name);\r\n });\r\n this.setSubLedgerStandardComent(event);\r\n\r\n this.setDisableColumn(this.formGroup.value);\r\n }\r\n }\r\n if (event && columnName && columnName === \"DetailLedgerId\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedgerCode\", event.Code);\r\n this.setValue(\"DetailLedgerTitle\", event.Title);\r\n }\r\n }\r\n\r\n if (event && columnName && columnName === \"DetailLedger2Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedger2Code\", event.Code);\r\n this.setValue(\"DetailLedger2Title\", event.Title);\r\n }\r\n }\r\n if (event && columnName && columnName === \"DetailLedger3Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedger3Code\", event.Code);\r\n this.setValue(\"DetailLedger3Title\", event.Title);\r\n }\r\n }\r\n if (event && columnName && columnName === \"DetailLedger4Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedger4Code\", event.Code);\r\n this.setValue(\"DetailLedger4Title\", event.Title);\r\n }\r\n }\r\n if (event && columnName && columnName === \"DetailLedger5Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedger5Code\", event.Code);\r\n this.setValue(\"DetailLedger5Title\", event.Title);\r\n }\r\n }\r\n if (event && columnName && columnName === \"DetailLedger6Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedger6Code\", event.Code);\r\n this.setValue(\"DetailLedger6Title\", event.Title);\r\n }\r\n }\r\n if (event && columnName && columnName === \"DetailLedger7Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedger7Code\", event.Code);\r\n this.setValue(\"DetailLedger7Title\", event.Title);\r\n }\r\n }\r\n if (this.formGroup) this.formGroup.updateValueAndValidity();\r\n this.cd.markForCheck();\r\n if (this.formGroup) this.valueChanges.emit(this.formGroup.value);\r\n }\r\n shouldBeChangedData(columnName: string): boolean {\r\n return !this.dataReadedColumns.includes(columnName);\r\n }\r\n onDataStateChange(columnName: string, searchValue: string, skip: number, take: number): Observable> {\r\n var abs = new BehaviorSubject>(null);\r\n\r\n if (columnName.includes(\"SubLedgerId\")) {\r\n abs.next(this.LookupData[columnName]);\r\n } else {\r\n if (this.LookupIsLoading[columnName]) return abs.asObservable();\r\n let apiName: string = \"DetailLedger/DetailLedgerWithSubLedgerId\";\r\n let p = this.getDetailLedgerParameter(apiName, columnName);\r\n if (!p) return null;\r\n this.LookupIsLoading[columnName] = true;\r\n this._httpCommonService\r\n .get>(apiName + p + `&searchValue=${searchValue}&skip=${skip}&take=${take}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x) => {\r\n if (!this.dataReadedColumns.includes(columnName)) this.dataReadedColumns = this.dataReadedColumns + \",\" + columnName;\r\n if (x) abs.next(x);\r\n this.LookupIsLoading[columnName] = false;\r\n },\r\n (err) => (this.LookupIsLoading[columnName] = false)\r\n );\r\n }\r\n return abs.asObservable();\r\n }\r\n saveSubLedgerStandardComment() {\r\n if (!this.accountService.userHasPermission(`Accounting:SubLedgerStandardComment`, Permission.managePermission)) {\r\n this.sts.showDialog(\"شما دسترسی لازم جهت ذخیره شرح استاندارد را ندارید.\", \"هشدار\");\r\n return;\r\n }\r\n if (!this.formGroup.controls[\"SubLedgerId\"].value) {\r\n this.sts.showDialog(\"معین انتخاب نشده است.\", \"هشدار\");\r\n return;\r\n }\r\n let entity: SubLedgerStandardComment = {};\r\n\r\n entity.SubLedgerId = this.formGroup.controls[\"SubLedgerId\"].value;\r\n entity.SubLedgerComment = this.formGroup.controls[\"Comment\"].value;\r\n entity.SubLedgerLatinComment = this.formGroup.controls[\"LatinComment\"].value;\r\n if (\r\n (entity.SubLedgerLatinComment || entity.SubLedgerComment) &&\r\n (!this.loadingData[\"Comment\"] || !this.loadingData[\"Comment\"].some((x) => x === entity.SubLedgerComment)) &&\r\n (!this.loadingData[\"LatinComment\"] || !this.loadingData[\"LatinComment\"].some((x) => x === entity.SubLedgerLatinComment))\r\n ) {\r\n this._httpCommonService\r\n .create(\"SubLedgerStandardComment\", entity)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => this.setSubLedgerStandardComent(undefined),\r\n (error) => {\r\n this.sts.showDialog(`${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n }\r\n valueChange($event, columnName: string) {\r\n if (this.formGroup) this.formGroup.controls[columnName].setValue($event);\r\n }\r\n hasdatForPaset() {\r\n return this.selectorService.getDataList(\"AccVoucherDetail\") !== undefined && (this.isAdd || this.isEdit);\r\n }\r\n copyHandler() {\r\n if (this.mySelection && this.mySelection.length > 0)\r\n this.selectorService.setDataList(\r\n \"AccVoucherDetail\",\r\n this.dataList.filter(\r\n (x) => x.State !== RowState.Delete && x.State !== RowState.Detached && this.mySelection.some((s) => s[\"RowNumber\"] === x.RowNumber)\r\n )\r\n );\r\n else\r\n this.selectorService.setDataList(\r\n \"AccVoucherDetail\",\r\n this.dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached && x.RowNumber === this.editedRow.RowNumber)\r\n );\r\n }\r\n copyAll() {\r\n this.selectorService.setDataList(\r\n \"AccVoucherDetail\",\r\n this.dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached)\r\n );\r\n }\r\n pasetHandler() {\r\n this.cancelHandler();\r\n if (this.selectorService.getDataList(\"AccVoucherDetail\") !== undefined) {\r\n this.selectorService.getDataList(\"AccVoucherDetail\").forEach((element) => {\r\n const entity = Object.assign({}, element as AccVoucherDetail);\r\n entity.RowNumber = this.dataList.length + 1;\r\n entity.Id = 0;\r\n entity.State = RowState.New;\r\n this.dataList.push(entity);\r\n });\r\n this.setRowNumber();\r\n this.selectorService.setDataList(\"AccVoucherDetail\", undefined);\r\n this.mySelection = [];\r\n }\r\n }\r\n public isRowSelected = (e: RowArgs) => this.mySelection.indexOf(e.dataItem.RowNumber) >= 0;\r\n movableUp(): boolean {\r\n return this.dataList.length > 1 && this.editedRow !== undefined && this.editedRow.RowNumber > 1;\r\n }\r\n movableDown(): boolean {\r\n return (\r\n this.dataList.length > 1 &&\r\n this.editedRow !== undefined &&\r\n this.editedRow.RowNumber < this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).length\r\n );\r\n }\r\n moveUp() {\r\n let tempRow: number = this.editedRow.RowNumber;\r\n if (tempRow <= 1) return;\r\n if (this.dataList.find((x) => x.RowNumber === tempRow - 1).State === RowState.NoChange)\r\n this.dataList.find((x) => x.RowNumber === tempRow - 1).State = RowState.Modify;\r\n this.dataList.find((x) => x.RowNumber === tempRow - 1).RowNumber = tempRow;\r\n this.editedRow.RowNumber = tempRow - 1;\r\n if (this.editedRow.State === RowState.NoChange) this.editedRow.State = RowState.Modify;\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.mySelection = [this.editedRow.RowNumber];\r\n }\r\n moveDown() {\r\n let tempRow: number = this.editedRow.RowNumber;\r\n if (tempRow >= this.dataList.length) return;\r\n if (this.dataList.find((x) => x.RowNumber === tempRow + 1).State === RowState.NoChange)\r\n this.dataList.find((x) => x.RowNumber === tempRow + 1).State = RowState.Modify;\r\n this.dataList.find((x) => x.RowNumber === tempRow + 1).RowNumber = tempRow;\r\n this.editedRow.RowNumber = tempRow + 1;\r\n if (this.editedRow.State === RowState.NoChange) this.editedRow.State = RowState.Modify;\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.mySelection = [this.editedRow.RowNumber];\r\n }\r\n insertRow() {\r\n let currentRow = Object.assign({}, this.editedRow);\r\n this.editedRow = undefined;\r\n this.dataList\r\n .filter((x) => x.State != RowState.Delete && x.State != RowState.Detached && x.RowNumber >= currentRow.RowNumber)\r\n .forEach((x) => {\r\n x.RowNumber = x.RowNumber + 1;\r\n if (x.State !== RowState.New) x.State = RowState.Modify;\r\n });\r\n this.isNew = true;\r\n if (!this.dataList) this.dataList = [];\r\n\r\n this.rowIsEditing = true;\r\n let _comment: string = \"\";\r\n if (this.headerTitleToDetailTitle) _comment = this.headerTitleToDetailTitle;\r\n const temp = { Id: -1, RowNumber: currentRow.RowNumber, State: RowState.New, Comment: _comment };\r\n this.dataList.push(temp);\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.editedRowIndex = currentRow.RowNumber - 1;\r\n this.fitColumns();\r\n this.cd.markForCheck();\r\n this.setFormGroup(temp);\r\n if (this.grid) {\r\n this.grid.editRow(this.editedRowIndex, this.formGroup);\r\n this.rowinserted = true;\r\n }\r\n }\r\n\r\n setColumnInfo(columnInfos: GridColumnInfoDetail[]) {\r\n if (!this.grid)\r\n setTimeout(() => {\r\n this.setColumnInfo(columnInfos);\r\n }, 50);\r\n\r\n if (this.grid?.columns) {\r\n if (this.grid.columns.length <= 1) {\r\n setTimeout(() => this.setColumnInfo(columnInfos), 200);\r\n }\r\n }\r\n if (this.grid?.columns) {\r\n this.grid.columns.forEach((x: ColumnComponent) => {\r\n const column = columnInfos.find((c) => c.name === (x.field ?? x.title));\r\n if (column) {\r\n x.leafIndex = column.leaftindex;\r\n x.orderIndex = column.orderindex;\r\n x.minResizableWidth = column.minResizableWidth;\r\n x.width = column.width;\r\n x.hidden = column.hidden;\r\n }\r\n });\r\n }\r\n this.isFirstLoad = true;\r\n this.cd.detectChanges();\r\n setTimeout(() => {\r\n const firstCol: ScrollRequest = {};\r\n firstCol.column = 0;\r\n if (this.grid && firstCol) this.grid?.scrollTo(firstCol);\r\n }, 110);\r\n }\r\n setDefaultColumnInfo() {\r\n this.grid?.columns?.forEach((x: ColumnComponent) => {\r\n if (x.title === \"عملیات\") {\r\n x.width = 70;\r\n x.minResizableWidth = 60;\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n if (!x.title && !x.field) {\r\n x.width = x.width;\r\n x.minResizableWidth = x.minResizableWidth;\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n const column = this.columns.find((c) => c.name === (x.field ?? x.title));\r\n if (column) {\r\n x.width = column.columnWidth;\r\n x.minResizableWidth = x.minResizableWidth;\r\n x.hidden = !column.listVisible;\r\n\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n });\r\n this.cd.markForCheck();\r\n }\r\n async saveGridColumnInfo() {\r\n const list: GridColumnInfoDetail[] = [];\r\n if (this.grid && this.grid.columns) {\r\n this.grid.columns.forEach((x: ColumnComponent) => {\r\n if (x) {\r\n const column = new GridColumnInfoDetail();\r\n column.leaftindex = x.leafIndex;\r\n column.orderindex = x.orderIndex;\r\n column.hidden = x.hidden;\r\n column.name = x.field ?? x.title;\r\n column.width = x.width;\r\n column.minResizableWidth = x.minResizableWidth;\r\n column.title = x.title;\r\n list.push(column);\r\n }\r\n });\r\n if (!this._GridColumnInfo) this._GridColumnInfo = new GridColumnInfo();\r\n this._GridColumnInfo.Key = \"AccVoucherDetail\";\r\n this._GridColumnInfo.ColumnInfo = JSON.stringify(list);\r\n this._GridColumnInfo.CreatedUserId = this.accountService.authService.currentUser.Id;\r\n if (this.state.group && this.state.group.length > 0) this._GridColumnInfo.Group = JSON.stringify(this.state.group);\r\n else this._GridColumnInfo.Group = undefined;\r\n await this._httpCommonService.updateItem(\"MisSetUp/UpdateGridColumnInfo\", this._GridColumnInfo).pipe(takeUntil(this.ngUnsubscribe)).toPromise();\r\n }\r\n }\r\n async fitColumns() {\r\n if (!this.isFirstLoad) {\r\n if (this._GridColumnInfo) {\r\n let columnInfos: GridColumnInfoDetail[] = JSON.parse(this._GridColumnInfo.ColumnInfo);\r\n this.setColumnInfo(columnInfos);\r\n } else {\r\n const x = await this._httpCommonService\r\n .get(\"MisSetUp/GetGridColumnInfo/?key=\" + \"AccVoucherDetail\" + `&CreatedUserId=${this.accountService.authService.currentUser.Id}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise();\r\n if (x) {\r\n this._GridColumnInfo = x as unknown as GridColumnInfo;\r\n this.setColumnInfo(JSON.parse(x[\"ColumnInfo\"]));\r\n if (this._GridColumnInfo.Group) {\r\n this.state.group = JSON.parse(x[\"Group\"]);\r\n }\r\n } else this.setDefaultColumnInfo();\r\n\r\n this.isFirstLoad = true;\r\n }\r\n }\r\n setTimeout(\r\n () => {\r\n this.cd.detectChanges();\r\n this.cd.markForCheck();\r\n },\r\n this.isFirstLoad ? 500 : 200\r\n );\r\n\r\n this.cd.markForCheck();\r\n }\r\n getSumWithKey(list: any[], key: string): number {\r\n if (list.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).length <= 0) return 0;\r\n return list\r\n .filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached)\r\n .reduce((s: number, b: number) => (s ?? 0) + (b[key] ?? 0), 0);\r\n }\r\n getColumnAggregates(columnName: string) {\r\n if (columnName === \"RowNumber\") return this.dataList?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached)?.length ?? 0;\r\n if (this.dataList && this.dataList.length > 0) return this.dataList?.getSumWithKey(columnName);\r\n return undefined;\r\n }\r\n hasAggregate(columnName: string) {\r\n return this.aggregatesColumnName !== undefined && this.aggregatesColumnName.includes(columnName);\r\n }\r\n public onUserRowSelect({ sender, column, rowIndex, columnIndex, dataItem }): void {\r\n this.editedRow = dataItem;\r\n if (!this.mySelection) this.mySelection = [];\r\n if (!this.mySelection.some((x) => x[\"RowNumber\"] === this.editedRow.RowNumber)) this.mySelection.push(dataItem);\r\n this.valueChanges.emit(this.editedRow);\r\n }\r\n // onKeyup($event) {\r\n // if ($event.key === 'Escape' && !document.getElementsByClassName(\"popovermaincontent\")) {\r\n // this.cd.markForCheck();\r\n // this.formGroup.updateValueAndValidity();\r\n // if (!(this.formGroup && (this.formGroup.touched || this.formGroup.dirty)))\r\n // {\r\n // console.log('Lookup', $event.returnValue);\r\n // console.log('accvoucher');\r\n // $event.preventDefault();\r\n // $event.stopPropagation();\r\n // console.log('Lookup', $event.returnValue);\r\n // this.cancelHandler();\r\n // }\r\n // }\r\n // }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ getItemDisplayById(column.apiName, dataItem[column.name], column.displayMember, column.valueMember, dataItem, column.name) }}\r\n \r\n \r\n {{ getColumnAggregates(column.name) | number }}\r\n \r\n \r\n {{ getDateValue(dataItem[column.name]) }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ value }}\r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostListener, Input, Type, ViewChild } from \"@angular/core\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { AccStatusKind, RowState, SystemKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { AccVoucherHeader } from \"../../models/accvoucherheader.model\";\r\nimport { AccVoucherKind } from \"../../models/accvoucherkind.model\";\r\nimport { VoucherInfo } from \"../../models/voucherInfo.model\";\r\n\r\nimport { UntypedFormControl } from \"@angular/forms\";\r\nimport { Moment } from \"jalali-moment\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\nimport * as moment from \"jalali-moment\";\r\nimport { ReportKindInfo } from \"projects/sepidz-web-framework-data-grid/src/lib/report-kind\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { AccVoucherDetailComponent } from \"../accvoucher-detail/accvoucher-detail.component\";\r\nimport { AccvoucherModalListComponent } from \"../accvoucher-modal-list/accvoucher-modal-list.component\";\r\n\r\n@Component({\r\n selector: \"ngx-accvoucher-form\",\r\n templateUrl: \"./accvoucher-form.component.html\",\r\n styleUrls: [\"./accvoucher-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccVoucherFormComponent extends BaseFormComponent {\r\n @ViewChild(\"detail\") public detail: AccVoucherDetailComponent;\r\n inputEditorform: Type;\r\n reportKinds = ReportKindInfo.reportKinds;\r\n detailcolumns: form_control[];\r\n accVoucerherDetailcolumns: form_control[];\r\n notCloseForm: boolean = false;\r\n isOkForLoad: boolean = false;\r\n isNewVoucher: boolean = false;\r\n selected: boolean = false;\r\n erroremessage: string;\r\n isLoadingDate: boolean = false;\r\n statusKindChanging: boolean = false;\r\n isLoadingMaxNUmber: boolean = false;\r\n @Input() isModal: boolean = false;\r\n confirmLabel: string;\r\n public columnsOrder: form_control[] = [];\r\n OtherInfoColumns: form_control[] = [];\r\n FixNoColumns: form_control[] = [];\r\n DailyNoColumns: form_control[] = [];\r\n SubLedgerColumns: form_control[] = [];\r\n DetailLedger2Columns: form_control[] = [];\r\n DetailLedger5Columns: form_control[] = [];\r\n SummeryDebitcolumns: form_control[] = [];\r\n SummeryCreditcolumns: form_control[] = [];\r\n accountInf: string = \"\";\r\n get currentFiscalYear() {\r\n return this.accountService?.authService?.currentFiscalYear;\r\n }\r\n @HostListener(\"window:keydown\", [\"$event\"])\r\n cs(e: KeyboardEvent) {\r\n if (document.hidden) return;\r\n if (e.ctrlKey && e.shiftKey && !e.altKey && (e.key.toUpperCase() === \"P\" || e.key === \"ح\" || e.key === \"\\\\\")) {\r\n e.preventDefault();\r\n this.currentReport = \"preview\";\r\n this.changeReport(\"preview\");\r\n }\r\n if (e.ctrlKey && e.altKey && !e.shiftKey && (e.key.toUpperCase() === \"P\" || e.key === \"ح\")) {\r\n e.preventDefault();\r\n this.currentReport = \"editReport\";\r\n this.changeReport(\"editReport\");\r\n }\r\n if (e.ctrlKey && !e.altKey && !e.shiftKey && (e.key.toUpperCase() === \"P\" || e.key === \"ح\")) {\r\n e.preventDefault();\r\n this.currentReport = \"print\";\r\n this.changeReport(\"print\");\r\n }\r\n if (e.ctrlKey && (e.key.toUpperCase() === \"N\" || e.key === \"د\")) {\r\n e.preventDefault();\r\n this.newVoucher();\r\n }\r\n if (e.ctrlKey && (e.key.toUpperCase() === \"D\" || e.key === \"ی\" || e.key === \"ی\")) {\r\n e.preventDefault();\r\n this.deleteVoucher();\r\n }\r\n if (e.ctrlKey && e.shiftKey && (e.key.toUpperCase() === \"S\" || e.key === \"س\")) {\r\n e.preventDefault();\r\n this.accountConfirm();\r\n }\r\n if (e.ctrlKey && e.altKey && (e.key.toUpperCase() === \"S\" || e.key === \"س\")) {\r\n e.preventDefault();\r\n this.accountWrite();\r\n }\r\n if (e.ctrlKey && (e.key.toUpperCase() === \"R\" || e.key === \"ق\")) {\r\n e.preventDefault();\r\n this.ngOnInit();\r\n }\r\n }\r\n constructor(\r\n private lookupservice: LookupService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected cd: ChangeDetectorRef,\r\n private missetup: MisSetupService,\r\n public selectorService: SelectorService,\r\n private datatransfer: Datatransfer\r\n ) {\r\n super(selectorService, cd);\r\n if (!this.isModal) {\r\n this._id = __id;\r\n this.currentrow = this.datatransfer?.currentrow;\r\n if (this.datatransfer?.apiName) this.apiName = this.datatransfer?.apiName;\r\n if (this.datatransfer?.label) this.label = this.datatransfer?.label;\r\n if (this.datatransfer?.areaName) this.areaName = this.datatransfer?.areaName;\r\n }\r\n this.tabsservice = _tabsservice;\r\n this.currentFiscalYear;\r\n }\r\n\r\n async ngOnInit() {\r\n let temp = this.accountService.authService.currentFiscalYear;\r\n this.statusKindChanging = false;\r\n if (this.isModal) this._id = undefined;\r\n if (this.currentrow && this.currentrow[\"AccVoucherHeaderId\"]) this.currentrow.Id = this.currentrow[\"AccVoucherHeaderId\"];\r\n this.isNewVoucher = false;\r\n\r\n this.missetup.source$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && x.length > 0) this.setDetailColumns();\r\n });\r\n\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"AccountingDocument\";\r\n this.pathPreFix = \"ACC\";\r\n this.apiName = \"AccVoucherHeader\";\r\n this.areaName = \"Accounting\";\r\n this.setDetailColumns();\r\n this.loadReports();\r\n this.formGroup = undefined;\r\n this.isOkForLoad = false;\r\n this.isClosing = false;\r\n if (this.currentrow && this.currentrow.Id) {\r\n this.id = this.currentrow.Id;\r\n if (this.currentrow.AccVoucherHeaderId) this.id = this.currentrow.AccVoucherHeaderId;\r\n }\r\n super.ngOnInit();\r\n if (this.detail) {\r\n if (this.isNewRow) this.detail.dataList = [];\r\n this.detail?.ngOnInit();\r\n }\r\n }\r\n\r\n async getVoucherDate() {\r\n if (this.missetup.getboolean(\"ACC\", \"ToDayDate\")) {\r\n this.model.VoucherDate = new Date();\r\n this.setValue(\"VoucherDate\", this.model.VoucherDate);\r\n return;\r\n }\r\n if (this.currentFiscalYear && !this.isLoadingDate) {\r\n this.isLoadingDate = true;\r\n await this.httpCommonService\r\n .get(`${this.apiName}/GetMaxDate/?FiscalYearId=${this.currentFiscalYear.Id}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.isLoadingDate = false;\r\n this.model.VoucherDate = data as Date;\r\n this.setMaxCode();\r\n this.setValue(\"VoucherDate\", this.model.VoucherDate);\r\n }\r\n },\r\n (error) => {\r\n this.isLoadingDate = false;\r\n }\r\n );\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe(\r\n async (x) => {\r\n if (x && !this.isLoadingDate) {\r\n this.isLoadingDate = true;\r\n await this.httpCommonService\r\n .get(`${this.apiName}/GetMaxDate/?FiscalYearId=${x.Id}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then((data) => {\r\n if (data) {\r\n this.isLoadingDate = false;\r\n this.model.VoucherDate = data as Date;\r\n this.setValue(\"VoucherDate\", this.model.VoucherDate);\r\n }\r\n });\r\n }\r\n },\r\n (error) => {\r\n this.isLoadingDate = false;\r\n }\r\n );\r\n }\r\n async setMaxCode() {\r\n if (!this.isNewRow && this.model.Id > 0) return;\r\n if (!this.currentFiscalYear) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe(async (x) => {\r\n if (x) {\r\n if (!this.model.VoucherDate && this.formGroup) this.model.VoucherDate = this.formGroup.controls[\"VoucherDate\"].value;\r\n\r\n this.isLoadingMaxNUmber = true;\r\n const voucherInfo = new VoucherInfo();\r\n voucherInfo.VoucherDate = this.model.VoucherDate;\r\n voucherInfo.FiscalYearId = x.Id;\r\n await this.httpCommonService\r\n .create(`${this.apiName}/GetMaxNumber`, voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.isLoadingMaxNUmber = false;\r\n this.model[\"VoucherNo\"] = data[\"VoucherNo\"];\r\n this.model[\"FixNo\"] = data[\"FixNo\"];\r\n this.model[\"DailyNo\"] = data[\"DailyNo\"];\r\n this.setValue(\"VoucherNo\", this.model[\"VoucherNo\"]);\r\n this.setValue(\"FixNo\", this.model[\"FixNo\"]);\r\n this.setValue(\"DailyNo\", this.model[\"DailyNo\"]);\r\n\r\n this.setdefault();\r\n //this.setFormGroup(this.model);\r\n }\r\n },\r\n (error) => {\r\n this.isLoadingMaxNUmber = false;\r\n }\r\n );\r\n }\r\n });\r\n } else if (!this.isLoadingMaxNUmber) {\r\n if (!this.model.VoucherDate && this.formGroup) this.model.VoucherDate = this.formGroup.controls[\"VoucherDate\"].value;\r\n this.isLoadingMaxNUmber = true;\r\n const voucherInfo = new VoucherInfo();\r\n voucherInfo.VoucherDate = this.model.VoucherDate ?? new Date();\r\n voucherInfo.FiscalYearId = this.currentFiscalYear.Id;\r\n await this.httpCommonService\r\n .create(`${this.apiName}/GetMaxNumber`, voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.isLoadingMaxNUmber = false;\r\n this.model[\"VoucherNo\"] = data[\"VoucherNo\"];\r\n this.model[\"FixNo\"] = data[\"FixNo\"];\r\n this.model[\"DailyNo\"] = data[\"DailyNo\"];\r\n this.setValue(\"VoucherNo\", this.model[\"VoucherNo\"]);\r\n this.setValue(\"FixNo\", this.model[\"FixNo\"]);\r\n this.setValue(\"DailyNo\", this.model[\"DailyNo\"]);\r\n this.setdefault();\r\n }\r\n },\r\n (error) => {\r\n this.isLoadingMaxNUmber = false;\r\n }\r\n );\r\n }\r\n }\r\n setdefault() {\r\n this.setDisabledValue().then();\r\n this.setAccVoucherKind().then();\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.AccVoucher.AccVoucherHeader\") + `(${this.model.VoucherNo ?? 0})`;\r\n if (this._id && this.model.VoucherNo) {\r\n this.tabsservice.setTabTitle(this._id.metadata.id, this.getFormTitle());\r\n }\r\n if (!this.model.VoucherDate) {\r\n this.getVoucherDate().then();\r\n }\r\n if (!this.model?.AccVoucherDetails) this.model.AccVoucherDetails = [];\r\n if (!this.model.SystemKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"GNR\", \"SystemKind\", SystemKind.ACC)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.SystemKindId = x.Id;\r\n this.model.SystemKindCode = x.Code;\r\n this.model.SystemKindTitle = x.Title;\r\n this.setValue(\"SystemKindId\", x.Id);\r\n this.setValue(\"SystemKindCode\", x.Code);\r\n this.setValue(\"SystemKindTitle\", x.Title);\r\n });\r\n }\r\n if (!this.model.AccVoucherKindId && this.selectorService.getDataList(\"AccVoucherKindId\")) {\r\n let vk = this.selectorService.getDataList(\"AccVoucherKindId\").find((x) => x.Code === 1);\r\n if (vk) {\r\n this.model.AccVoucherKindId = vk.Id;\r\n this.model.AccVoucherKindCode = vk.Code;\r\n this.model.AccVoucherKindTitle = vk.Title;\r\n this.setValue(\"AccVoucherKindId\", vk.Id);\r\n this.setValue(\"AccVoucherKindCode\", vk.Code);\r\n this.setValue(\"AccVoucherKindTitle\", vk.Title);\r\n }\r\n }\r\n if (!this.model.StatusKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"StatusKind\", AccStatusKind.Inspection)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", x.Id);\r\n this.setValue(\"StatusKindCode\", x.Code);\r\n this.setValue(\"StatusKindTitle\", x.Title);\r\n this.confirmLabel = \"بررسی سند\";\r\n });\r\n }\r\n if (this.model.StatusKindCode >= AccStatusKind.Confirm) this.confirmLabel = \"لغو بررسی\";\r\n else this.confirmLabel = \"بررسی سند\";\r\n if (!this.model.FiscalYearId && this.currentFiscalYear) {\r\n this.model.FiscalYearId = this.currentFiscalYear.Id;\r\n this.model.Year = this.currentFiscalYear.Year;\r\n } else if (!this.model.FiscalYearId) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n this.model.FiscalYearId = x.Id;\r\n this.model.Year = x.Year;\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"Year\", x.Year);\r\n });\r\n }\r\n if (!this.model.BranchId) {\r\n this.model.BranchId = 0;\r\n this.setValue(\"BranchId\", this.model.BranchId);\r\n }\r\n if (!this.model.FiscalMonth && this.model.VoucherDate) {\r\n this.model.FiscalMonth = this.getjMonth(this.model.VoucherDate);\r\n this.setValue(\"FiscalMonth\", this.model.FiscalMonth);\r\n }\r\n this.setColumnAttribute();\r\n if (this.model && this.model?.AccVoucherDetails && this.model?.AccVoucherDetails?.length > 0 && this.detail) {\r\n this.detail.dataList = this.model?.AccVoucherDetails;\r\n }\r\n if (this.detail && this.isNewRow === false && this.model.AccVoucherDetails.length > 0) this.detail?.cancelHandler();\r\n if (this.detail) {\r\n this.detail.dataList = this.model?.AccVoucherDetails ?? [];\r\n this.detail.ngOnInit();\r\n }\r\n\r\n setTimeout(() => {\r\n if (this.detail) {\r\n this.detail.dataList.forEach((x) => {\r\n if (x.Id > 0) x.State = RowState.NoChange;\r\n });\r\n }\r\n this.setAllUnTouched();\r\n }, 100);\r\n }\r\n isNoValidForEdit() {\r\n let StatusKindCode: number = AccStatusKind.Confirm;\r\n return (\r\n !this.isNewRow &&\r\n this.model &&\r\n (this.model?.SystemKindCode > SystemKind.ACC ||\r\n (this.model?.AccVoucherKindCode > 1 && this.model?.AccVoucherKindCode < 7) ||\r\n this.model?.StatusKindCode >= StatusKindCode)\r\n );\r\n }\r\n\r\n setColumnAttribute() {\r\n if (!this.accVoucerherDetailcolumns || this.accVoucerherDetailcolumns.length <= 0)\r\n this.accVoucerherDetailcolumns = this.getDetailControlModels(\"AccVoucherDetails\");\r\n super.setColumnAttribute();\r\n if (this.isNoValidForEdit()) {\r\n this.orignalColumns.forEach((x) => {\r\n x.disabled = true;\r\n if (this.formGroup && this.formGroup.get(x.name)) {\r\n if (x.disabled) this.formGroup.get(x.name).disable();\r\n else this.formGroup.get(x.name).enable();\r\n }\r\n });\r\n }\r\n if (this.formGroup) this.formGroup.updateValueAndValidity();\r\n this.OtherInfoColumns = this.getcolumns(\"OtherInfo\");\r\n this.FixNoColumns = this.getcolumns(\"FixNo\");\r\n this.DailyNoColumns = this.getcolumns(\"DailyNo\");\r\n this.SubLedgerColumns = this.getcolumns(\"SubLedger\");\r\n this.DetailLedger2Columns = this.getcolumns(\"DetailLedger2\");\r\n this.DetailLedger5Columns = this.getcolumns(\"DetailLedger5\");\r\n this.SummeryDebitcolumns = this.getcolumns(\"SummeryDebit\");\r\n this.SummeryCreditcolumns = this.getcolumns(\"SummeryCredit\");\r\n\r\n this.columns.forEach((x) => ((x.isFloat = null), (x.userClass = null)));\r\n this.cd.markForCheck();\r\n }\r\n getjMonth(date: Date) {\r\n let m: Moment = moment(date.toString()).locale(\"fa\");\r\n return Number(m.format(\"jMM\"));\r\n }\r\n settemp() {\r\n console.log(this.model);\r\n }\r\n async setAccVoucherKind() {\r\n await this.httpCommonService\r\n .get(\"AccVoucherKind/ReadAccVoucherKindLookUp\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data: AccVoucherKind[]) => {\r\n let vk = data.filter((x) => x.Code === 1 || !x.IsOperating);\r\n this.selectorService.setDataList(\"AccVoucherKindId\", vk);\r\n let _vk = vk.find((x) => x.Code === 1);\r\n if (_vk) {\r\n this.model.AccVoucherKindId = _vk.Id;\r\n this.model.AccVoucherKindTitle = _vk.Title;\r\n this.model.AccVoucherKindCode = _vk.Code;\r\n this.setValue(\"AccVoucherKindId\", _vk.Id);\r\n this.setValue(\"AccVoucherKindCode\", _vk.Code);\r\n this.setValue(\"AccVoucherKindTitle\", _vk.Title);\r\n }\r\n },\r\n (error) => {}\r\n );\r\n }\r\n\r\n onChanged($event) {\r\n if (this.isNewRow || !this.model) this.setdefault();\r\n if ($event && $event.apiName === \"AccVoucherKind/ReadAccVoucherKindLookUp\") {\r\n this.model.AccVoucherKindTitle = $event.data.Title;\r\n this.model.AccVoucherKindCode = $event.data.Code;\r\n if (this.model?.AccVoucherKindCode > 1 && this.model?.AccVoucherKindCode < 7) {\r\n if (this.selectorService.getDataList(\"AccVoucherKindId\") && this.formGroup.controls[\"AccVoucherKindId\"]) {\r\n let vk = this.selectorService.getDataList(\"AccVoucherKindId\").find((x) => x.Code === 1);\r\n if (vk) {\r\n this.model.AccVoucherKindId = vk.Id;\r\n this.model.AccVoucherKindCode = vk.Code;\r\n this.model.AccVoucherKindTitle = vk.Title;\r\n this.formGroup.controls[\"AccVoucherKindId\"].setValue(vk.Id);\r\n }\r\n } else this.formGroup.controls[\"AccVoucherKindId\"].setValue(undefined);\r\n this.setdefault();\r\n this.sts.showDialog(\"نوع سند از نوع سیستمی قابل انتخاب نیست.\", \"انتخاب نوع سند\");\r\n }\r\n }\r\n }\r\n onValueChange($event) {\r\n this.model.VoucherDate = this.formGroup.controls[\"VoucherDate\"].value;\r\n //this.setMaxCode();\r\n }\r\n async setDisabledValue() {\r\n await this.httpCommonService\r\n .getList(\"AccVoucherKind/ReadAccVoucherKindLookUp\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x: AccVoucherKind[]) => {\r\n if (x) {\r\n let temp = x.filter((x) => x.Code >= 2 && x.Code <= 6).map((x) => x.Id);\r\n this.selectorService.setDisabledValue(\"AccVoucherKindId\", temp);\r\n this.cd.markForCheck();\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n onValueChangeByApiName($event) {\r\n if (this.isNewRow) this.setdefault();\r\n if ($event instanceof AccVoucherKind) {\r\n this.model.AccVoucherKindTitle = ($event as AccVoucherKind).Title;\r\n this.model.AccVoucherKindCode = ($event as AccVoucherKind).Code;\r\n }\r\n }\r\n get detailLedgerLevel(): number {\r\n return this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n }\r\n get copyHeaderTitleToDetailTitle(): boolean {\r\n return this.missetup.getboolean(\"ACC\", \"CopyHeaderTitleToDetailTitle\");\r\n }\r\n\r\n get headerTitleToDetailTitle(): string {\r\n if (this.copyHeaderTitleToDetailTitle && this.formGroup && this.formGroup.controls[\"Comment\"]) return this.formGroup.controls[\"Comment\"].value;\r\n\r\n return undefined;\r\n }\r\n\r\n setDetailColumns() {\r\n const level = this.detailLedgerLevel;\r\n this.detailcolumns = [];\r\n this.detailcolumns.push({\r\n label: \"گروه حساب\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GroupLedgerTitle\",\r\n disabled: true,\r\n name: \"GroupLedgerTitle\",\r\n order: 0,\r\n areaName: \"SubLedger\",\r\n textType: \"text\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.detailcolumns.push({\r\n label: \"حساب کل\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GeneralLedgerTitle\",\r\n disabled: true,\r\n name: \"GeneralLedgerTitle\",\r\n order: 1,\r\n areaName: \"SubLedger\",\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.detailcolumns.push({\r\n label: \"حساب معین\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SubLedgerTitle\",\r\n disabled: true,\r\n name: \"SubLedgerTitle\",\r\n order: 2,\r\n areaName: \"SubLedger\",\r\n textType: \"text\",\r\n formVisible: level >= 1,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.detailcolumns.push({\r\n label: \"حساب تفصیلی 1\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DetailLedger1Title\",\r\n disabled: true,\r\n name: \"DetailLedger1Title\",\r\n order: 3,\r\n areaName: \"DetailLedger2\",\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.detailcolumns.push({\r\n label: \"حساب تفصیلی 2\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DetailLedger2Title\",\r\n disabled: true,\r\n name: \"DetailLedger2Title\",\r\n order: 4,\r\n areaName: \"DetailLedger2\",\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.detailcolumns.push({\r\n label: \"حساب تفصیلی 3\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DetailLedger3Title\",\r\n disabled: true,\r\n name: \"DetailLedger3Title\",\r\n order: 5,\r\n areaName: \"DetailLedger2\",\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.detailcolumns.push({\r\n label: \"حساب تفصیلی 4\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DetailLedger4Title\",\r\n disabled: true,\r\n name: \"DetailLedger4Title\",\r\n order: 6,\r\n areaName: \"DetailLedger5\",\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.detailcolumns.push({\r\n label: \"حساب تفصیلی 5\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DetailLedger5Title\",\r\n disabled: true,\r\n name: \"DetailLedger5Title\",\r\n order: 7,\r\n areaName: \"DetailLedger5\",\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.detailcolumns.push({\r\n label: \"حساب تفصیلی 6\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DetailLedger6Title\",\r\n disabled: true,\r\n name: \"DetailLedger6Title\",\r\n order: 8,\r\n areaName: \"DetailLedger5\",\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.detailcolumns.push({\r\n label: \"حساب تفصیلی 7\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DetailLedger7Title\",\r\n disabled: true,\r\n name: \"DetailLedger7Title\",\r\n order: 9,\r\n areaName: \"DetailLedger6\",\r\n textType: \"text\",\r\n formVisible: level >= 2,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.detailcolumns.push({\r\n label: \"مانده در خط\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"RowRemain\",\r\n disabled: true,\r\n name: \"RowRemain\",\r\n order: 11,\r\n areaName: \"SummeryDebit\",\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n required: false,\r\n });\r\n this.detailcolumns.push({\r\n label: \"جمع بدهکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DebitTotal\",\r\n disabled: true,\r\n name: \"DebitTotal\",\r\n order: 10,\r\n areaName: \"SummeryDebit\",\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n required: false,\r\n });\r\n this.detailcolumns.push({\r\n label: \"جمع بستانکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"CreditTotal\",\r\n disabled: true,\r\n name: \"CreditTotal\",\r\n order: 12,\r\n areaName: \"SummeryCredit\",\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n required: false,\r\n });\r\n this.detailcolumns.push({\r\n label: \"اختلاف سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DocumentDifference\",\r\n disabled: true,\r\n name: \"DocumentDifference\",\r\n order: 13,\r\n areaName: \"SummeryCredit\",\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n required: false,\r\n });\r\n this.detailcolumns.forEach((x) => (x.userClass = \"select-sm\"));\r\n }\r\n getcolumns(key: string) {\r\n let col: form_control[] = [];\r\n if (key === \"SubLedger\" || key === \"DetailLedger2\" || key === \"DetailLedger5\" || key.includes(\"Summery\"))\r\n col = this.detailcolumns.filter((f) => f.areaName === key && f.formVisible);\r\n else col = this.orignalColumns.filter((f) => f.areaName === key && f.formVisible);\r\n return col.sort((a, b) => a.order - b.order);\r\n }\r\n onValueChanges($event) {\r\n this.selectorService.onSubmited.next(true);\r\n const arrowIcon = \"\";\r\n if (this.detail && this.detail?.dataList) this.model.AccVoucherDetails = this.detail?.dataList;\r\n if ($event && !$event.data) {\r\n this.setSummery($event);\r\n }\r\n if ($event && $event[\"SubLedgerId\"]) {\r\n this.setValue(\"GroupLedgerTitle\", $event[\"GroupLedgerTitle\"]);\r\n this.setValue(\"GeneralLedgerTitle\", $event[\"GeneralLedgerTitle\"]);\r\n this.setValue(\"SubLedgerTitle\", $event[\"SubLedgerTitle\"]);\r\n } else if (!$event.columnName) {\r\n this.setValue(\"GroupLedgerTitle\", \"\");\r\n this.setValue(\"GeneralLedgerTitle\", \"\");\r\n this.setValue(\"SubLedgerTitle\", \"\");\r\n }\r\n if ($event && $event.columnName === \"SubLedgerId\") {\r\n this.setValue(\"GroupLedgerTitle\", $event.data.GroupLedgerTitle);\r\n this.setValue(\"GeneralLedgerTitle\", $event.data.GeneralLedgerTitle);\r\n this.setValue(\"SubLedgerTitle\", $event.data.Title);\r\n } else {\r\n if ($event && $event.columnName === \"DetailLedgerId\") this.setValue(\"DetailLedger1Title\", $event.data.Title);\r\n else this.setValue(\"DetailLedger1Title\", \"\");\r\n if ($event && $event[\"DetailLedgerId\"]) this.setValue(\"DetailLedger1Title\", $event[\"DetailLedgerTitle\"]);\r\n else this.setValue(\"DetailLedger1Title\", \"\");\r\n if ($event && $event.columnName === \"DetailLedger2Id\") this.setValue(\"DetailLedger2Title\", $event.data.Title);\r\n else this.setValue(\"DetailLedger2Title\", \"\");\r\n if ($event && $event[\"DetailLedger2Id\"]) this.setValue(\"DetailLedger2Title\", $event[\"DetailLedger2Title\"]);\r\n else this.setValue(\"DetailLedger2Title\", \"\");\r\n if ($event && $event.columnName === \"DetailLedger3Id\") this.setValue(\"DetailLedger3Title\", $event.data.Title);\r\n else this.setValue(\"DetailLedger3Title\", \"\");\r\n if ($event && $event[\"DetailLedger3Id\"]) this.setValue(\"DetailLedger3Title\", $event[\"DetailLedger3Title\"]);\r\n else this.setValue(\"DetailLedger3Title\", \"\");\r\n if ($event && $event.columnName === \"DetailLedger4Id\") this.setValue(\"DetailLedger4Title\", $event.data.Title);\r\n else this.setValue(\"DetailLedger4Title\", \"\");\r\n if ($event && $event[\"DetailLedger4Id\"]) this.setValue(\"DetailLedger4Title\", $event[\"DetailLedger4Title\"]);\r\n else this.setValue(\"DetailLedger4Title\", \"\");\r\n if ($event && $event.columnName === \"DetailLedger5Id\") this.setValue(\"DetailLedger5Title\", $event.data.Title);\r\n if ($event && $event[\"DetailLedger5Id\"]) this.setValue(\"DetailLedger5Title\", $event[\"DetailLedger5Title\"]);\r\n else this.setValue(\"DetailLedger5Title\", \"\");\r\n if ($event && $event.columnName === \"DetailLedger6Id\") this.setValue(\"DetailLedger6Title\", $event.data.Title);\r\n else this.setValue(\"DetailLedger6Title\", \"\");\r\n if ($event && $event[\"DetailLedger6Id\"]) this.setValue(\"DetailLedger6Title\", $event[\"DetailLedger6Title\"]);\r\n else this.setValue(\"DetailLedger6Title\", \"\");\r\n if ($event && $event.columnName === \"DetailLedger7Id\") this.setValue(\"DetailLedger7Title\", $event.data.Title);\r\n else this.setValue(\"DetailLedger7Title\", \"\");\r\n if ($event && $event[\"DetailLedger7Id\"]) this.setValue(\"DetailLedger7Title\", $event[\"DetailLedger7Title\"]);\r\n else this.setValue(\"DetailLedger7Title\", \"\");\r\n this.accountInf = `${this.formGroup.get(\"GroupLedgerTitle\").value} ${arrowIcon} ${\r\n this.formGroup.get(\"GeneralLedgerTitle\").value\r\n } ${arrowIcon} ${this.formGroup.get(\"SubLedgerTitle\").value}`;\r\n if (this.detailLedgerLevel >= 1 && this.formGroup.get(\"DetailLedger1Title\")?.value)\r\n this.accountInf = `${this.accountInf} ${arrowIcon} ${this.formGroup.get(\"DetailLedger1Title\")?.value}`;\r\n if (this.detailLedgerLevel >= 2 && this.formGroup.get(\"DetailLedger2Title\")?.value)\r\n this.accountInf = `${this.accountInf} ${arrowIcon} ${this.formGroup.get(\"DetailLedger2Title\")?.value}`;\r\n if (this.detailLedgerLevel >= 3 && this.formGroup.get(\"DetailLedger3Title\")?.value)\r\n this.accountInf = `${this.accountInf} ${arrowIcon} ${this.formGroup.get(\"DetailLedger3Title\")?.value}`;\r\n if (this.detailLedgerLevel >= 4 && this.formGroup.get(\"DetailLedger4Title\")?.value)\r\n this.accountInf = `${this.accountInf} ${arrowIcon} ${this.formGroup.get(\"DetailLedger4Title\")?.value}`;\r\n this.cd.markForCheck();\r\n }\r\n this.cd.markForCheck();\r\n this.isValid();\r\n }\r\n\r\n isValid() {\r\n let flag: boolean = true;\r\n this.erroremessage = undefined;\r\n if (this.isNoValidForEdit() && this.model.StatusKindCode > AccStatusKind.Inspection && this.statusKindChanging !== true) {\r\n this.erroremessage = `این سند قابل ویرایش نیست.`;\r\n flag = false;\r\n return flag;\r\n }\r\n if (!this.formGroup.controls[\"FiscalYearId\"].value) {\r\n if (!this.formGroup.controls[\"FiscalYearId\"].value && !this.accountService?.authService?.currentFiscalYear) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) this.setValue(\"FiscalYearId\", x.Id);\r\n });\r\n this.erroremessage = `سال مالی انتخاب نشده است.`;\r\n flag = false;\r\n } else if (this.accountService.authService.currentFiscalYear)\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n return flag;\r\n }\r\n if (\r\n new Date(this.formGroup.controls[\"VoucherDate\"].value).setHours(0, 0, 0, 0) <\r\n new Date(this.accountService.authService.currentFiscalYear.StartDate).setHours(0, 0, 0, 0) ||\r\n new Date(this.formGroup.controls[\"VoucherDate\"].value).setHours(0, 0, 0, 0) >\r\n new Date(this.accountService.authService.currentFiscalYear.EndDate).setHours(0, 0, 0, 0)\r\n ) {\r\n this.erroremessage = \"تاریخ سند باید در محدوده سال مالی باشد.\";\r\n return false;\r\n }\r\n if (\r\n flag &&\r\n this.model.StatusKindCode > AccStatusKind.Write &&\r\n this.model &&\r\n this.model?.AccVoucherDetails &&\r\n this.model?.AccVoucherDetails?.getSumWithKey(\"Debit\") !== this.model?.AccVoucherDetails?.getSumWithKey(\"Credit\")\r\n ) {\r\n this.erroremessage = \"جمع بدهکار و بستانکار اختلاف دارد.\";\r\n\r\n flag = false;\r\n }\r\n if (\r\n flag &&\r\n this.model.AccVoucherDetails &&\r\n this.model?.AccVoucherDetails?.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached)?.length > 0\r\n ) {\r\n if (!this.formGroup?.valid) {\r\n let list = this.setFormGroupErrors();\r\n console.log(list);\r\n }\r\n flag = this.formGroup?.valid;\r\n }\r\n if (flag && this.model?.AccVoucherDetails?.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached)?.length <= 0) {\r\n this.erroremessage = \"برای سند هیچ قلمی وارد نشده است.\";\r\n flag = false;\r\n }\r\n if (flag) {\r\n flag = !this.erroremessage;\r\n }\r\n return flag;\r\n }\r\n\r\n beforupdate() {\r\n if (this.detail) {\r\n if (this.detail.formGroup && this.detail?.formGroup?.valid) this.detail.saveCurrent();\r\n else this.detail.cancelHandler();\r\n }\r\n if (this.isValid()) {\r\n if (this.model?.AccVoucherDetails && this.model?.AccVoucherDetails?.length > 0) {\r\n this.model.AccVoucherDetails = this.model?.AccVoucherDetails?.filter((x) => x.State !== RowState.Detached && x.Id >= 0);\r\n if (!this.formGroup.controls[\"AccVoucherDetails\"])\r\n this.formGroup.addControl(\"AccVoucherDetails\", new UntypedFormControl(this.model?.AccVoucherDetails));\r\n else this.formGroup.controls[\"AccVoucherDetails\"].setValue(this.model?.AccVoucherDetails);\r\n this.formGroup.updateValueAndValidity();\r\n } else this.erroremessage = \"برای سند هیچ قلمی وارد نشده است.\";\r\n }\r\n }\r\n addControl() {\r\n this.isOkForLoad = false;\r\n this.detailcolumns.forEach((x) => {\r\n let value: any = 0;\r\n if (x.textType === \"number\") value = 0;\r\n else value = \"\";\r\n if (this.formGroup) {\r\n if (!this.formGroup.controls[x.name]) this.formGroup.addControl(x.name, new UntypedFormControl({ value: value, disabled: true }));\r\n else this.formGroup.controls[x.name].setValue(value);\r\n }\r\n });\r\n if (!this.isNewRow && this.model && this.model?.AccVoucherDetails && this.model?.AccVoucherDetails?.length > 0) {\r\n this.onValueChanges(this.model?.AccVoucherDetails[0]);\r\n }\r\n\r\n this.isOkForLoad =\r\n this.isNewRow ||\r\n (this.model !== undefined && this.model?.AccVoucherDetails !== undefined && this.model?.AccVoucherDetails?.length > 0) ||\r\n (this.detail !== undefined && this.detail?.dataList !== undefined && this.detail?.dataList?.length > 0);\r\n this.cd.markForCheck();\r\n }\r\n setSummery(entity: any) {\r\n if (!entity && (!this.model?.AccVoucherDetails || this.model?.AccVoucherDetails?.length <= 0)) return;\r\n if (!entity) entity = this.model?.AccVoucherDetails[this.model?.AccVoucherDetails?.length - 1];\r\n this.detailcolumns.forEach((x) => {\r\n if (entity[x.name]) this.setValue(x.name, entity[x.name]);\r\n });\r\n if (entity) {\r\n let rws = this.model?.AccVoucherDetails?.filter(\r\n (x) => x.RowNumber <= entity.RowNumber && x.State != RowState.Delete && x.State != RowState.Detached\r\n );\r\n if (rws) this.setValue(\"RowRemain\", rws?.getSumWithKey(\"Debit\") - rws?.getSumWithKey(\"Credit\"));\r\n this.setValue(\"TotalPrice\", this.model?.AccVoucherDetails?.getSumWithKey(\"Debit\"));\r\n this.setValue(\"DebitTotal\", this.model?.AccVoucherDetails?.getSumWithKey(\"Debit\"));\r\n this.setValue(\"CreditTotal\", this.model?.AccVoucherDetails?.getSumWithKey(\"Credit\"));\r\n this.setValue(\r\n \"DocumentDifference\",\r\n this.model?.AccVoucherDetails?.getSumWithKey(\"Debit\") - this.model?.AccVoucherDetails?.getSumWithKey(\"Credit\")\r\n );\r\n }\r\n\r\n this.cd.markForCheck();\r\n }\r\n closeForm(flag: boolean = false) {\r\n if (flag && !this.isNewVoucher) {\r\n if (this._id?.metadata?.id) this.tabsservice.tabItemOnCanClosing.next(this._id?.metadata?.id);\r\n if (this.isNewVoucher) {\r\n this.model = undefined;\r\n this.currentrow = undefined;\r\n this.ngOnInit();\r\n } else this.close();\r\n }\r\n if (this.isNewVoucher && flag) {\r\n this.selectorService.submitted$.next(false);\r\n this.model = undefined;\r\n this.currentrow = undefined;\r\n this.ngOnInit();\r\n }\r\n this.isClosing = false;\r\n }\r\n canDeactivate() {\r\n if (\r\n !(\r\n (this.formGroup && this.formGroup.dirty && this.formGroup.touched) ||\r\n (this.model?.AccVoucherDetails?.length > 0 &&\r\n this.model?.AccVoucherDetails?.some((x) => x.State === RowState.New || x.State === RowState.Modify))\r\n )\r\n )\r\n return true;\r\n this.sts.showDialog(\r\n \"شما اطلاعات ذخیره نشده دارید! در صورت خروج اطلاعات از دست خواهد رفت.\",\r\n \"هشدار\",\r\n DialogType.confirm,\r\n () => this.closeForm(true),\r\n () => this.closeForm(false)\r\n );\r\n return this.notCloseForm;\r\n }\r\n accountInspection() {\r\n if (\r\n this.model &&\r\n this.model?.AccVoucherDetails &&\r\n this.model?.AccVoucherDetails?.getSumWithKey(\"Debit\") !== this.model?.AccVoucherDetails?.getSumWithKey(\"Credit\")\r\n ) {\r\n this.erroremessage = \"جمع بدهکار و بستانکار اختلاف دارد.\";\r\n return;\r\n }\r\n\r\n if (!this.detail?.formGroup?.valid && this.detail.dataList.length <= 0) {\r\n this.sts.showDialog(`اطلاعات وارده صحیح نیست.`, \"خطا\", DialogType.alert);\r\n return;\r\n }\r\n if (this.formGroup.controls[\"StatusKindCode\"].value <= AccStatusKind.Write) {\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"StatusKind\", AccStatusKind.Inspection)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", x.Id);\r\n this.setValue(\"StatusKindCode\", x.Code);\r\n this.setValue(\"StatusKindTitle\", x.Title);\r\n this.confirmLabel = \"بررسی سند\";\r\n if (this.detail) {\r\n if (this.detail.formGroup && this.detail?.formGroup?.valid) this.detail.saveCurrent();\r\n else this.detail.cancelHandler();\r\n }\r\n this.save();\r\n }\r\n });\r\n }\r\n }\r\n isCloseable() {\r\n this.selectorService.submitted$.next(false);\r\n this.formGroup?.markAsUntouched();\r\n return false;\r\n }\r\n accountWrite() {\r\n if (!this.detail?.formGroup?.valid && this.detail.dataList.length <= 0) {\r\n this.sts.showDialog(`اطلاعات وارده صحیح نیست.`, \"خطا\", DialogType.alert);\r\n return;\r\n }\r\n if (this.formGroup.controls[\"StatusKindCode\"].value <= AccStatusKind.Inspection) {\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"StatusKind\", AccStatusKind.Write)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", x.Id);\r\n this.setValue(\"StatusKindCode\", x.Code);\r\n this.setValue(\"StatusKindTitle\", x.Title);\r\n this.confirmLabel = \"بررسی سند\";\r\n if (this.detail) this.detail.saveCurrent();\r\n this.save();\r\n }\r\n });\r\n }\r\n }\r\n accountConfirm() {\r\n if (!this.detail?.formGroup?.valid && this.detail.dataList.length <= 0) {\r\n this.sts.showDialog(`اطلاعات وارده صحیح نیست.`, \"خطا\", DialogType.alert);\r\n return;\r\n }\r\n if (\r\n (this.formGroup.controls[\"StatusKindCode\"].value === AccStatusKind.Confirm || this.isValid()) &&\r\n (this.formGroup.controls[\"StatusKindCode\"].value === AccStatusKind.Inspection ||\r\n this.formGroup.controls[\"StatusKindCode\"].value === AccStatusKind.Confirm)\r\n ) {\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"StatusKind\", this.model.StatusKindCode === AccStatusKind.Confirm ? AccStatusKind.Inspection : AccStatusKind.Confirm)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", x.Id);\r\n this.setValue(\"StatusKindCode\", x.Code);\r\n this.setValue(\"StatusKindTitle\", x.Title);\r\n if (this.model.StatusKindCode === AccStatusKind.Confirm) this.confirmLabel = \"لغو بررسی\";\r\n else this.confirmLabel = \"بررسی سند\";\r\n if (this.detail) this.detail.saveCurrent();\r\n this.statusKindChanging = true;\r\n this.save();\r\n }\r\n });\r\n }\r\n }\r\n async delete_Voucher() {\r\n this.sts.showToast(\"primary\", \"\", \"در حال حذف...\");\r\n await this.httpCommonService\r\n .delete(this.apiName, this.model.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت حذف شد.\");\r\n this.model = undefined;\r\n this.currentrow = undefined;\r\n this.ngOnInit();\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف اطلاعات\");\r\n }\r\n );\r\n }\r\n deleteVoucher() {\r\n this.sts.showDialog(`آیا از حذف سند اطمینان دارید؟`, \"حذف سند\", DialogType.confirm, () => this.delete_Voucher());\r\n }\r\n newVoucher() {\r\n this.isNewVoucher = true;\r\n if (this.canDeactivate()) {\r\n this.isClosing = false;\r\n this.model = undefined;\r\n this.currentrow = undefined;\r\n this.ngOnInit();\r\n setTimeout(() => this.detail?.ngOnInit(), 100);\r\n }\r\n }\r\n\r\n public cancel() {\r\n if (!this.isClosing && this.canDeactivate()) {\r\n this.showValidationErrors = false;\r\n this.sts.showToast(\"primary\", \"انصراف\", \"عملیات توسط کاربر متوقف شد.\");\r\n this.close();\r\n }\r\n }\r\n setSelected() {\r\n this.selected = !this.selected;\r\n }\r\n gridheight() {\r\n return this.selected ? 45 : 57;\r\n }\r\n loadVoucherList() {\r\n this.inputEditorform = AccvoucherModalListComponent;\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (model) => {\r\n if (model) {\r\n if (this.detail) this.detail.cancelHandler();\r\n this.currentrow = model;\r\n this.id = this.currentrow.Id;\r\n await this.ngOnInit();\r\n if (this.detail) setTimeout(() => this.detail.cancelHandler(), 100);\r\n }\r\n });\r\n }\r\n ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this.selectorService.setDataList(\"AccVoucherKindId\", undefined);\r\n this.inputEditorform = undefined;\r\n this.reportKinds = undefined;\r\n this.detailcolumns = undefined;\r\n this.accVoucerherDetailcolumns = undefined;\r\n this.columnsOrder = undefined;\r\n this.OtherInfoColumns = undefined;\r\n this.FixNoColumns = undefined;\r\n this.DailyNoColumns = undefined;\r\n this.SubLedgerColumns = undefined;\r\n this.DetailLedger2Columns = undefined;\r\n this.DetailLedger5Columns = undefined;\r\n this.SummeryDebitcolumns = undefined;\r\n this.SummeryCreditcolumns = undefined;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n 2 || isNoValidForEdit()\">\r\n \r\n 2 || isNoValidForEdit()\">\r\n \r\n 2 || model.SystemKindCode > 1 || isNoValidForEdit()\">\r\n \r\n 3 || isNewRow\">\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, Permission, SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { EntityBase, GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { AccStatusKind, ReportKind, SystemKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, HttpCommonService, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvVoucherFormComponent } from \"src/app/backoffice/inv/invvoucher/invvoucher-form/invvoucher-form.component\";\r\nimport { SellVoucherFormComponent } from \"src/app/backoffice/sell/sell-voucher/sell-voucher-form/sell-voucher-form.component\";\r\nimport { TrsVoucherFormComponent } from \"src/app/backoffice/trs/trs-voucher/trs-voucher-form/trs-voucher-form.component\";\r\nimport { ReportInfo, StimulSoftReportComponent } from \"src/app/stimul-soft-report/stimul-soft-report.component\";\r\nimport { AccVoucherHeader } from \"../../models/accvoucherheader.model\";\r\nimport { VoucherInfo } from \"../../models/voucherInfo.model\";\r\nimport { VoucherApproveComponent } from \"../../voucher-approve/voucher-approve.component\";\r\nimport { AccVoucherDetailFilterComponent } from \"../acc-voucher-detail-filter/acc-voucher-detail-filter.component\";\r\nimport { AccVoucherHeaderImportExcelFormComponent } from \"../acc-voucher-header-import-excel/acc-voucher-header-import-excel-form.component\";\r\nimport { AccVoucherFormComponent } from \"../accvoucher-form/accvoucher-form.component\";\r\n@Component({\r\n selector: \"ngx-accvoucher-list\",\r\n templateUrl: \"./accvoucher-list.component.html\",\r\n styles: [\".list-wrapper { padding: 1vmin; height: 100% }\"],\r\n})\r\nexport class AccVoucherListComponent extends BaseListComponent {\r\n actions: EntityListAction[];\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n filterInfo: NameValue[] = [];\r\n filters: GridFilter[];\r\n constructor(\r\n private _httpCommonService: HttpCommonService,\r\n private tabsservice: TabularService,\r\n private lookupservice: LookupService,\r\n private splashFormService: SplashFormService\r\n ) {\r\n super();\r\n this.inputEditorform = AccVoucherFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n get currentFiscalYear() {\r\n return this.accountService.authService.currentFiscalYear;\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.actions = undefined;\r\n this.filterInfo = undefined;\r\n this.filters = undefined;\r\n }\r\n ngOnInit() {\r\n this.lookupservice.getall();\r\n this.apiName = \"AccVoucherHeader/GetWithCustomFilter\";\r\n this.areaName = \"Accounting\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.AccVoucher.AccVoucherList\");\r\n if (this.currentFiscalYear) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: this.currentFiscalYear?.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: x.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n }\r\n });\r\n this.setactions();\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: AccVoucherHeader,\r\n onRowsSelected: AccVoucherHeader[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n ///شماره گذاری اسناد\r\n if (action.name === \"VoucherRenumber\") {\r\n this._httpCommonService\r\n .get(\"AccVoucherHeader/VoucherRenumber/\" + this.accountService.authService.currentFiscalYear.Id + \"/\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.sts.showDialog(\"اسناد شماره گذاری شد.\", \"\");\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n },\r\n (error) => this.sts.showDialog(`خطا در شماره گذاری اسناد ${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n ///ثبت یاداشت اسناد\r\n if (action.name === \"VoucherWrite\" && onRowsSelected.length > 0) {\r\n if (isAllSelected) {\r\n const voucherInfo = new VoucherInfo();\r\n voucherInfo.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n voucherInfo.StatusKindCode = AccStatusKind.Write;\r\n voucherInfo.FromStatusKindCode = AccStatusKind.Inspection;\r\n this.httpCommonService\r\n .create(this.apiName.split(\"/\")[0] + \"/ChnageStatusKind\", voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.sts.showDialog(\"اسناد با موفقیت ثبت یاداشت شد.\", \"\");\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n },\r\n (error) => this.sts.showDialog(`خطا در ثبت یاداشت اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n } else {\r\n onRowsSelected = onRowsSelected.filter((x) => x.StatusKindCode === AccStatusKind.Inspection);\r\n if (!onRowsSelected || onRowsSelected.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا اسناد انتخاب شده قابل یاداشت شدن نیست\", \"خطا\");\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"StatusKind\", AccStatusKind.Write)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((sk) => {\r\n if (sk) {\r\n onRowsSelected.forEach((x) => {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n });\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName.split(\"/\")[0], onRowsSelected)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.sts.showDialog(\"اسناد با موفقیت ثبت یاداشت شد.\", \"\");\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n },\r\n (error) => this.sts.showDialog(`خطا در ثبت یاداشت اسناد ${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n });\r\n }\r\n }\r\n ///ثبت موقت اسناد\r\n if (action.name === \"VoucherInspection\" && onRowsSelected.length > 0) {\r\n if (isAllSelected) {\r\n const voucherInfo = new VoucherInfo();\r\n voucherInfo.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n voucherInfo.StatusKindCode = AccStatusKind.Inspection;\r\n voucherInfo.FromStatusKindCode = AccStatusKind.Write;\r\n this.httpCommonService\r\n .create(this.apiName.split(\"/\")[0] + \"/ChnageStatusKind\", voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.sts.showDialog(\"اسناد با موفقیت ثبت موقت شد.\", \"\");\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n },\r\n (error) => this.sts.showDialog(`خطا در ثبت موقت اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n } else {\r\n onRowsSelected = onRowsSelected.filter((x) => x.StatusKindCode === AccStatusKind.Write);\r\n if (!onRowsSelected || onRowsSelected.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا وضعیت اسناد انتخاب شده یاداشت نیست\", \"خطا\");\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"StatusKind\", AccStatusKind.Inspection)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((sk) => {\r\n if (sk) {\r\n onRowsSelected.forEach((x) => {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n });\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName.split(\"/\")[0], onRowsSelected)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.sts.showDialog(\"اسناد با موفقیت ثبت موقت شد.\", \"\");\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n },\r\n (error) => this.sts.showDialog(`خطا در ثبت موقت اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n });\r\n }\r\n }\r\n ///بررسی کردن اسناد\r\n if (action.name === \"VoucherConfirm\") {\r\n if (isAllSelected) {\r\n const voucherInfo = new VoucherInfo();\r\n voucherInfo.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n voucherInfo.StatusKindCode = AccStatusKind.Confirm;\r\n voucherInfo.FromStatusKindCode = AccStatusKind.Inspection;\r\n this.httpCommonService\r\n .create(this.apiName.split(\"/\")[0] + \"/ChnageStatusKind\", voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.sts.showDialog(\"اسناد با موفقیت بررسی شد.\", \"\");\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n },\r\n (error) => this.sts.showDialog(`خطا در بررسی اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n } else {\r\n onRowsSelected = onRowsSelected.filter((x) => x.StatusKindCode === AccStatusKind.Inspection);\r\n if (!onRowsSelected || onRowsSelected.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا وضعیت اسناد انتخاب شده ثبت موقت نیست\", \"خطا\");\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"StatusKind\", AccStatusKind.Confirm)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((sk) => {\r\n if (sk) {\r\n onRowsSelected.forEach((x) => {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n });\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName.split(\"/\")[0], onRowsSelected)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.sts.showDialog(\"اسناد با موفقیت بررسی شد.\", \"\");\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n },\r\n (error) => this.sts.showDialog(`خطا در بررسی اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n });\r\n }\r\n }\r\n ///لغو بررسی اسناد\r\n if (action.name === \"VoucherDeConfirm\") {\r\n if (isAllSelected) {\r\n const voucherInfo = new VoucherInfo();\r\n voucherInfo.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n voucherInfo.StatusKindCode = AccStatusKind.Inspection;\r\n voucherInfo.FromStatusKindCode = AccStatusKind.Confirm;\r\n this.httpCommonService\r\n .create(this.apiName.split(\"/\")[0] + \"/ChnageStatusKind\", voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.sts.showDialog(\"اسناد با موفقیت لغو بررسی شد.\", \"\");\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n },\r\n (error) => this.sts.showDialog(`خطا در لغو بررسی اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n } else {\r\n onRowsSelected = onRowsSelected.filter((x) => x.StatusKindCode === AccStatusKind.Confirm);\r\n if (!onRowsSelected || onRowsSelected.length <= 0) {\r\n this.sts.showDialog(\"خطا\", \"هیچ سندی انتخاب نشده یا وضعیت اسناد انتخاب شده بررسی شده نیست\");\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"StatusKind\", AccStatusKind.Inspection)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((sk) => {\r\n if (sk) {\r\n onRowsSelected.forEach((x) => {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n });\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName.split(\"/\")[0], onRowsSelected)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.sts.showDialog(\"اسناد با موفقیت لغو بررسی شد.\", \"\");\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n },\r\n (error) => this.sts.showDialog(`خطا در لغو بررسی اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n });\r\n }\r\n }\r\n ///فیلتر اقلام سند\r\n if (action.name === \"AccVoucherDetailFilter\") {\r\n this.dialogService\r\n .open(\r\n AccVoucherDetailFilterComponent,\r\n {\r\n currentrow: null,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {\r\n if (model && model.length > 0) this.filters = model;\r\n });\r\n }\r\n if (action.name === \"AccVoucherDetailFilterRemove\") {\r\n this.filters = [];\r\n }\r\n ///سند مبنا\r\n if (action.name === \"BaseVoucher\") {\r\n var datatrasfer: Datatransfer = {};\r\n datatrasfer.apiName = action.apiName;\r\n datatrasfer.label = this.label;\r\n datatrasfer.areaName = action.areaName;\r\n datatrasfer.currentrow = onRowSelected;\r\n\r\n if (!onRowSelected.AccountingSubSystemsRelationships || onRowSelected.AccountingSubSystemsRelationships.length <= 0) {\r\n this.sts.showDialog(\"سند مبنا وجود ندارد.\", \"\");\r\n return;\r\n } else if (onRowSelected.AccountingSubSystemsRelationships.length === 1) {\r\n if (onRowSelected.SystemKindCode === SystemKind.INV) {\r\n action.Form_Component = InvVoucherFormComponent;\r\n onRowSelected.Id = onRowSelected.AccountingSubSystemsRelationships[0].InvVoucherHeaderId;\r\n datatrasfer.apiName = \"InvVoucherHeader\";\r\n datatrasfer.areaName = \"Inventory\";\r\n }\r\n if (onRowSelected.SystemKindCode === SystemKind.TRS) {\r\n action.Form_Component = TrsVoucherFormComponent;\r\n onRowSelected.Id = onRowSelected.AccountingSubSystemsRelationships[0].TrsVoucherHeaderId;\r\n datatrasfer.apiName = \"TrsVoucherHeader\";\r\n datatrasfer.areaName = \"Treasury\";\r\n }\r\n if (onRowSelected.SystemKindCode === SystemKind.SELL) {\r\n action.Form_Component = SellVoucherFormComponent;\r\n //onRowSelected.Id=onRowSelected.AccountingSubSystemsRelationships[0].SellVoucherHeaderId;\r\n datatrasfer.apiName = \"SellVoucherHeader\";\r\n datatrasfer.areaName = \"SellCustomer\";\r\n }\r\n } else {\r\n }\r\n const menu = {\r\n title: `${this.label}-(ویرایش)`,\r\n isCloseable: true,\r\n icon: action.iconName,\r\n active: true,\r\n responsive: true,\r\n componentType: action.Form_Component,\r\n data: [\r\n { provide: EntityBase, useValue: onRowSelected },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: 0 } },\r\n ],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n ///دریافت از اکسل\r\n if (action.name === \"ImportFromExcel\") {\r\n var gridInfo = this.getGridInfo();\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n gridInfo: gridInfo,\r\n label: action.displayName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {\r\n this.grid.refreshData();\r\n });\r\n }\r\n\r\n ///ارسال به راهکاران\r\n if (action.name === \"SendAllAccVoucherToRakkaran\") {\r\n this.splashFormService.openDialog(\"\", \"در حال ارسال به راهکاران\");\r\n this.httpCommonService\r\n .get(action.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\"ارسال به راهکاران با موفقیت انجام شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در ارسال به راهکاران ${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n //پیش نمایش سند\r\n if (action.name === \"PreviewVoucher\" || action.name === \"PrintVoucher\") {\r\n let Ids: number[] = [];\r\n this.grid.selectedRows.forEach((x) => Ids.push(x.Id));\r\n this.splashFormService.openDialog(\"\", \"در حال چاپ سند\");\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = \"AccountingDocument\";\r\n saveReportFile.SystemKindName = \"ACC\";\r\n saveReportFile.CategoryName = action.apiName.replace(\"/\", \"_\");\r\n this.httpCommonService\r\n .create(action.apiName, Ids)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n if (action.name === \"PreviewVoucher\") this.preview(saveReportFile, action.apiName, x as []);\r\n else this.print(saveReportFile, action.apiName, x as []);\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در چاپ سند ${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n }\r\n preview(saveReportFile: SaveReportFile, apiName: string, dataList: any[]): void {\r\n let reportInfo: ReportInfo = {};\r\n reportInfo.reportKind = ReportKind.preview;\r\n reportInfo.apiName = apiName;\r\n reportInfo.reportName = saveReportFile.FileName;\r\n reportInfo.dataList = dataList;\r\n reportInfo.saveReportFile = saveReportFile;\r\n reportInfo.pathPreFix = saveReportFile.SystemKindName;\r\n reportInfo.startDate = saveReportFile.startDate;\r\n reportInfo.endDate = saveReportFile.endDate;\r\n reportInfo.startNumber = saveReportFile.startNumber;\r\n reportInfo.endNumber = saveReportFile.endNumber;\r\n\r\n const menu = {\r\n title: saveReportFile.ReportTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n print(saveReportFile: SaveReportFile, apiName: string, dataList: any[]): void {\r\n let reportInfo: ReportInfo = {};\r\n reportInfo.reportKind = ReportKind.editReport;\r\n reportInfo.apiName = apiName;\r\n reportInfo.reportName = saveReportFile.FileName;\r\n reportInfo.dataList = dataList;\r\n reportInfo.saveReportFile = saveReportFile;\r\n const menu = {\r\n title: saveReportFile.ReportTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"VoucherRenumber\",\r\n disabled: false,\r\n displayName: \"شماره گذاری اسناد\",\r\n iconName: \"icon-format_list_numbered_rtl-o\",\r\n apiName: \"AccVoucherHeader/VoucherRenumber\",\r\n areaName: \"Accounting\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherWrite\",\r\n disabled: false,\r\n displayName: \"ثبت یاداشت اسناد\",\r\n iconName: \"icon-Takenote\",\r\n apiName: \"AccVoucherHeader/VoucherWrite\",\r\n areaName: \"Accounting\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherInspection\",\r\n disabled: false,\r\n displayName: \"ثبت موقت اسناد\",\r\n iconName: \"icon-Temporaryregister\",\r\n apiName: \"AccVoucherHeader/VoucherInspection\",\r\n areaName: \"Accounting\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherConfirm\",\r\n disabled: false,\r\n displayName: \"بررسی کردن اسناد\",\r\n iconName: \"icon-Documentreview\",\r\n apiName: \"AccVoucherHeader/VoucherConfirm\",\r\n areaName: \"Accounting\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherDeConfirm\",\r\n disabled: false,\r\n displayName: \"لغو بررسی اسناد\",\r\n iconName: \"icon-canceldocument\",\r\n apiName: \"AccVoucherHeader/VoucherConfirm\",\r\n areaName: \"Accounting\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherApprove\",\r\n disabled: true,\r\n displayName: \"قطعی کردن اسناد\",\r\n iconName: \"icon-fainally\",\r\n Form_Component: VoucherApproveComponent,\r\n apiName: \"AccVoucherHeader/VoucherApprove\",\r\n areaName: \"Accounting\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"AccVoucherDetailFilter\",\r\n disabled: false,\r\n displayName: \"فیلتر اقلام\",\r\n iconName: \"icon-filter-variant-plus\",\r\n apiName: \"AccVoucherHeader\",\r\n areaName: \"Accounting\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"AccVoucherDetailFilterRemove\",\r\n disabled: false,\r\n displayName: \"حذف فیلتر اقلام\",\r\n iconName: \"icon-filter-variant-minus\",\r\n apiName: \"AccVoucherHeader\",\r\n areaName: \"Accounting\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"BaseVoucher\",\r\n disabled: false,\r\n displayName: \"سند مبنا\",\r\n iconName: \"icon-folder-open-outline\",\r\n areaName: \"Accounting\",\r\n Form_Component: AccVoucherFormComponent,\r\n apiName: \"AccVoucherHeader\",\r\n },\r\n {\r\n name: \"ImportFromExcel\",\r\n disabled: false,\r\n displayName: \"ورودی اکسل\",\r\n iconName: \"icon-file-excel-o\",\r\n apiName: \"AccVoucherHeader/ImportExcel\",\r\n areaName: \"Accounting\",\r\n Form_Component: AccVoucherHeaderImportExcelFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"PreviewVoucher\",\r\n disabled: false,\r\n displayName: \"پیش نمایش سند\",\r\n iconName: \"icon-preview-f\",\r\n apiName: \"AccVoucherHeader/PreviewVoucher\",\r\n areaName: \"Accounting\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"PrintVoucher\",\r\n disabled: false,\r\n displayName: \"چاپ سند\",\r\n iconName: \"icon-print-f\",\r\n apiName: \"AccVoucherHeader/PrintVoucher\",\r\n areaName: \"Accounting\",\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n this.actions.push({\r\n name: \"SendAllAccVoucherToRakkaran\",\r\n disabled: false,\r\n displayName: \"ارسال به راهکاران\",\r\n iconName: \"icon-send-F\",\r\n apiName: \"AccVoucherHeader/SendAllAccVoucherToRakkaran\",\r\n areaName: \"Accounting\",\r\n permission: Permission.samePermission,\r\n });\r\n }\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n let Ids: number[] = [];\r\n\r\n this.grid.selectedRows.forEach((x) => Ids.push(x.Id));\r\n let filter = this.grid.getGridFilter();\r\n if (Ids.length > 0)\r\n filter.push({\r\n Filed: \"Ids\",\r\n Value: Ids,\r\n Operator: filter[0].Operator,\r\n Skip: filter[0].Skip,\r\n Take: filter[0].Take,\r\n Type: \"F\",\r\n Logic: filter[0].Logic,\r\n });\r\n return new Promise((resolve, reject) => {\r\n resolve({ GridInfo: this.getGridInfo(), Filters: filter });\r\n });\r\n }\r\n\r\n getGridInfo(): GridColumnInfoDetail[] {\r\n let columns: GridColumnInfoDetail[] = [];\r\n columns.push({ hidden: false, name: \"VoucherNo\", orderindex: 0, title: \"شماره سند\" });\r\n columns.push({ hidden: false, name: \"ShamsiVoucherDate\", orderindex: 1, title: \"تاریخ سند\" });\r\n columns.push({ hidden: false, name: \"BranchCode\", orderindex: 2, title: \"کد شعبه\" });\r\n columns.push({ hidden: false, name: \"HeaderComment\", orderindex: 3, title: \"شرح سند\" });\r\n columns.push({ hidden: false, name: \"RowNumber\", orderindex: 4, title: \"ردیف\" });\r\n columns.push({ hidden: false, name: \"SubLedgerCode\", orderindex: 5, title: \"کد حساب معین\" });\r\n columns.push({ hidden: false, name: \"DetailLedgerCode\", orderindex: 6, title: \"کد حساب تفصیلی 1\" });\r\n columns.push({ hidden: false, name: \"DetailLedger2Code\", orderindex: 7, title: \"کد حساب تفصیلی 2\" });\r\n columns.push({ hidden: false, name: \"DetailLedger3Code\", orderindex: 8, title: \"کد حساب تفصیلی 3\" });\r\n columns.push({ hidden: false, name: \"DetailLedger4Code\", orderindex: 9, title: \"کد حساب تفصیلی 4\" });\r\n columns.push({ hidden: false, name: \"DetailLedger5Code\", orderindex: 10, title: \"کد حساب تفصیلی 5\" });\r\n columns.push({ hidden: false, name: \"Comment\", orderindex: 11, title: \"شرح قلم\" });\r\n columns.push({ hidden: false, name: \"Debit\", orderindex: 12, title: \"بدهکار\" });\r\n columns.push({ hidden: false, name: \"Credit\", orderindex: 13, title: \"بستانکار\" });\r\n columns.push({ hidden: false, name: \"TrackNo\", orderindex: 14, title: \"شماره پیگیری\" });\r\n columns.push({ hidden: false, name: \"ShamsiTrackDate\", orderindex: 15, title: \"تاریخ پیگیری\" });\r\n return columns;\r\n }\r\n}\r\n","
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [isMulti]=\"true\"\r\n [isModal]=\"false\"\r\n [isMultiDelete]=\"true\"\r\n reportName=\"AccountingList\"\r\n pathPreFix=\"ACC\"\r\n [filters]=\"filters\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n defaultSortKey=\"VoucherDate\"\r\n defaultSortKeyKind=\"des\"\r\n [actions]=\"actions\"\r\n [actionTregger]=\"onActionClick\"\r\n [customExportExcelUrl]=\"'AccVoucherHeader/ExportExcel'\"\r\n [inputEditorform]=\"inputEditorform\"\r\n [getParamsForExportExcelWithPostMethod]=\"getParamsForExportExcelWithPostMethod.bind(this)\">\r\n \r\n
\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { FormCanDeactivate } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/form-can-deactivate\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { AuthService, LookupService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherHeader } from \"../../models/accvoucherheader.model\";\r\n\r\n@Component({\r\n selector: \"ngx-accvoucher-modal-list\",\r\n templateUrl: \"./accvoucher-modal-list.component.html\",\r\n styleUrls: [\"./accvoucher-modal-list.component.scss\"],\r\n})\r\nexport class AccvoucherModalListComponent extends FormCanDeactivate implements OnInit, OnDestroy {\r\n filterInfo: NameValue[] = [];\r\n ngUnsubscribe = new Subject();\r\n apiName: string;\r\n areaName: string;\r\n label: string;\r\n currentVoucher: AccVoucherHeader;\r\n constructor(\r\n private authService: AuthService,\r\n protected translateText: TranslateService,\r\n private sts: ShowToastrService,\r\n private lookupservice: LookupService\r\n ) {\r\n super();\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.filterInfo = undefined;\r\n this.currentVoucher = undefined;\r\n }\r\n get currentFiscalYear() {\r\n return this.authService.currentFiscalYear;\r\n }\r\n ngOnInit() {\r\n this.lookupservice.getall();\r\n this.apiName = \"AccVoucherHeader\";\r\n this.areaName = \"Accounting\";\r\n this.label = this.translateText.instant(\"ClientApp.BackOffice.ACC.AccVoucher.AccVoucherList\");\r\n if (this.currentFiscalYear) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: this.currentFiscalYear?.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.authService.currentBranchId, Operator: \"eq\" });\r\n } else\r\n this.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: x.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.authService.currentBranchId, Operator: \"eq\" });\r\n }\r\n });\r\n }\r\n\r\n onDoubleClick(voucher?: AccVoucherHeader) {\r\n this.result = voucher;\r\n this.closeModal();\r\n }\r\n cancel() {\r\n this.result = undefined;\r\n this.closeModal();\r\n }\r\n onRowSelected($event) {\r\n if ($event) {\r\n this.currentVoucher = $event;\r\n }\r\n }\r\n submit() {\r\n if (!this.currentVoucher) this.sts.showDialog(\"هیچ سندی انتخاب نشده است.\", \"انتخاب سند\");\r\n else this.onDoubleClick(this.currentVoucher);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n {{ label }}\r\n
\r\n
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [isMulti]=\"false\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [isModal]=\"false\"\r\n reportName=\"AccountingList\"\r\n pathPreFix=\"ACC\"\r\n [disableOnDoubleClick]=\"true\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n (onRowSelected)=\"onRowSelected($event)\"\r\n (onDoubleClick)=\"onDoubleClick($event)\">\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { DropDownListModule, DropDownsModule } from \"@progress/kendo-angular-dropdowns\";\r\nimport { PopupModule } from \"@progress/kendo-angular-popup\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { ThemeModule } from \"projects/sepidz-web-framework-shell/src/lib/@theme/theme.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { TabularModule } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.module\";\r\nimport { AccVoucherDetailFilterComponent } from \"./acc-voucher-detail-filter/acc-voucher-detail-filter.component\";\r\nimport { AccVoucherHeaderImportExcelFormComponent } from \"./acc-voucher-header-import-excel/acc-voucher-header-import-excel-form.component\";\r\nimport { AccVoucherDetailComponent } from \"./accvoucher-detail/accvoucher-detail.component\";\r\nimport { AccVoucherFormComponent } from \"./accvoucher-form/accvoucher-form.component\";\r\nimport { AccVoucherListComponent } from \"./accvoucher-list/accvoucher-list.component\";\r\nimport { AccvoucherModalListComponent } from \"./accvoucher-modal-list/accvoucher-modal-list.component\";\r\n\r\nconst components = [\r\n AccVoucherListComponent,\r\n AccVoucherFormComponent,\r\n AccVoucherDetailComponent,\r\n AccvoucherModalListComponent,\r\n AccVoucherDetailFilterComponent,\r\n AccVoucherHeaderImportExcelFormComponent,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ThemeModule,\r\n TabularModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule,\r\n DropDownListModule,\r\n PopupModule,\r\n DropDownsModule,\r\n ],\r\n})\r\nexport class AccVoucherModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherKind } from \"../../models/accvoucherkind.model\";\r\n\r\n@Component({\r\n selector: \"accvoucherkind-form\",\r\n templateUrl: \"accvoucherkind-form.component.html\",\r\n styleUrls: [\"accvoucherkind-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccVoucherKindFormComponent extends BaseFormComponent {\r\n public apiName: string = \"AccVoucherKind\";\r\n public label: string = this.translate(\"ClientApp.BackOffice.ACC.AccVoucherKind.VoucherKind\");\r\n erroremessage: string;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (this.model.IsOperating === undefined) this.model.IsOperating = false;\r\n if (this.model.IsOperating) {\r\n this.erroremessage = this.translate(\"ClientApp.BackOffice.ACC.AccVoucherKind.VoucherKindDontEdit\");\r\n }\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n }\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { HttpCommonService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherKindFormComponent } from \"../accvoucherkind-form/accvoucherkind-form.component\";\r\n\r\n@Component({\r\n selector: \"AccVoucherKInd-list\",\r\n templateUrl: \"AccVoucherKInd-list.component.html\",\r\n styleUrls: [\"AccVoucherKInd-list.component.scss\"],\r\n providers: [HttpCommonService],\r\n})\r\nexport class AccVoucherKindListComponent extends BaseListComponent {\r\n constructor(private route: ActivatedRoute) {\r\n super();\r\n this.inputEditorform = AccVoucherKindFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"AccVoucherKind\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.AccVoucherKind.VoucherKind\");\r\n this.areaName = \"Accounting\";\r\n this.route.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe((params) => {\r\n if (params.apiname) this.apiName = params.apiname;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { AccVoucherKindFormComponent } from \"./accvoucherkind-form/accvoucherkind-form.component\";\r\nimport { AccVoucherKindListComponent } from \"./accvoucherkind-list/accvoucherkind-list.component\";\r\n\r\nconst lookups = [AccVoucherKindListComponent, AccVoucherKindFormComponent];\r\n@NgModule({\r\n declarations: [...lookups],\r\n exports: [...lookups],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class AccVoucherKindModule {}\r\n","import { Component } from \"@angular/core\";\r\nimport { GroupDescriptor } from \"@progress/kendo-data-query\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccCloseProfitandLossAccountsDetail } from \"../../models/acc-close-profitand-loss-accounts-detail.model\";\r\nimport { VoucherInfo } from \"../../models/voucherInfo.model\";\r\n\r\n@Component({\r\n selector: \"ngx-control-contrary-nature-account-list\",\r\n templateUrl: \"./control-contrary-nature-account-list.component.html\",\r\n styleUrls: [\"./control-contrary-nature-account-list.component.scss\"],\r\n})\r\nexport class ControlContraryNatureAccountListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n filterInfo: NameValue[] = [];\r\n groups: GroupDescriptor[] = [{ field: \"SubLedgerTitle\" }];\r\n editingName: { name: string };\r\n voucherInfo: VoucherInfo = {};\r\n\r\n constructor(private missetup: MisSetupService) {\r\n super();\r\n }\r\n get detailLedgerLevel(): number {\r\n return this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n }\r\n ngOnInit() {\r\n this.apiName = \"AccCloseProfitandLossAccountsHeader\";\r\n this.areaName = \"Accounting\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.AccCloseProfitandLossAccountsHeader.ControlContraryNatureAccount\");\r\n super.ngOnInit();\r\n this.setColumns();\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.voucherInfo.FiscalYearId = this.accountService.authService.currentFiscalYear?.Id;\r\n this.voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n this.voucherInfo.VoucherDate = new Date();\r\n this.getVoucher();\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.voucherInfo.FiscalYearId = x.Id;\r\n this.voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n this.voucherInfo.VoucherDate = new Date();\r\n this.getVoucher();\r\n }\r\n });\r\n }\r\n getVoucher() {\r\n this.httpCommonService\r\n .create(\"AccCloseProfitandLossAccountsHeader/GetControlContraryNatureAccountDetail\", this.voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data != undefined) {\r\n this.dataList = data as AccCloseProfitandLossAccountsDetail[];\r\n }\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در بارگذاری اطلاعات\");\r\n }\r\n );\r\n }\r\n\r\n setColumns() {\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (data) {\r\n this.columns = (data as form_control[]).find((x) => x.name === \"AccCloseProfitandLossAccountsDetails\").DetailControlModels[\r\n \"AccCloseProfitandLossAccountsDetails\"\r\n ];\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.columns.forEach((x) => {\r\n if (x.name.includes(\"DetailLedger1\")) {\r\n if (!this.groups.some((f) => f.field === \"DetailLedger1Title\") && this.detailLedgerLevel >= 1)\r\n this.groups.push({ field: \"DetailLedger1Title\" });\r\n x.listVisible = this.detailLedgerLevel >= 1;\r\n if (x.name.includes(\"DetailLedgerId\")) x.listVisible = false;\r\n }\r\n if (x.name.includes(\"DetailLedger2\")) {\r\n if (!this.groups.some((f) => f.field === \"DetailLedger2Title\") && this.detailLedgerLevel >= 2)\r\n this.groups.push({ field: \"DetailLedger2Title\" });\r\n x.listVisible = this.detailLedgerLevel >= 2;\r\n if (x.name.includes(\"DetailLedger2Id\")) x.listVisible = false;\r\n }\r\n if (x.name.includes(\"DetailLedger3\")) {\r\n if (!this.groups.some((f) => f.field === \"DetailLedger3Title\") && this.detailLedgerLevel >= 3)\r\n this.groups.push({ field: \"DetailLedger3Title\" });\r\n x.listVisible = this.detailLedgerLevel >= 3;\r\n if (x.name.includes(\"DetailLedger3Id\")) x.listVisible = false;\r\n }\r\n if (x.name.includes(\"DetailLedger4\")) {\r\n if (!this.groups.some((f) => f.field === \"DetailLedger4Title\") && this.detailLedgerLevel >= 4)\r\n this.groups.push({ field: \"DetailLedger4Title\" });\r\n x.listVisible = this.detailLedgerLevel >= 4;\r\n if (x.name.includes(\"DetailLedger4Id\")) x.listVisible = false;\r\n }\r\n if (x.name.includes(\"DetailLedger5\")) {\r\n if (!this.groups.some((f) => f.field === \"DetailLedger5Title\") && this.detailLedgerLevel >= 5)\r\n this.groups.push({ field: \"DetailLedger5Title\" });\r\n x.listVisible = this.detailLedgerLevel >= 5;\r\n if (x.name.includes(\"DetailLedger5Id\")) x.listVisible = false;\r\n }\r\n if (x.name.includes(\"DetailLedger6\")) {\r\n if (!this.groups.some((f) => f.field === \"DetailLedger6Title\") && this.detailLedgerLevel >= 6)\r\n this.groups.push({ field: \"DetailLedger6Title\" });\r\n x.listVisible = this.detailLedgerLevel >= 6;\r\n if (x.name.includes(\"DetailLedger6Id\")) x.listVisible = false;\r\n }\r\n if (x.name.includes(\"DetailLedger7\")) {\r\n if (!this.groups.some((f) => f.field === \"DetailLedger7Title\") && this.detailLedgerLevel >= 7)\r\n this.groups.push({ field: \"DetailLedger7Title\" });\r\n x.listVisible = this.detailLedgerLevel >= 7;\r\n if (x.name.includes(\"DetailLedger7Id\")) x.listVisible = false;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n 0\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [columns]=\"columns\"\r\n [areaName]=\"areaName\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [isAdd]=\"false\"\r\n [isModal]=\"true\"\r\n [groups]=\"groups\"\r\n reportName=\"ControlContraryNatureAccountList\"\r\n pathPreFix=\"ACC\"\r\n [dataList]=\"dataList\">\r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ControlContraryNatureAccountListComponent } from \"./control-contrary-nature-account-list/control-contrary-nature-account-list.component\";\r\n\r\nconst lookups = [ControlContraryNatureAccountListComponent];\r\n@NgModule({\r\n declarations: [...lookups],\r\n exports: [...lookups],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class ControlContraryNatureAccountModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherHeader } from \"../../models/accvoucherheader.model\";\r\nimport { VoucherInfo } from \"../../models/voucherInfo.model\";\r\n\r\n@Component({\r\n selector: \"ngx-create-closing-journal-voucher-form\",\r\n templateUrl: \"./create-closing-journal-voucher-form.component.html\",\r\n styleUrls: [\"./create-closing-journal-voucher-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CreateClosingJournalVoucherFormComponent extends BaseFormComponent {\r\n erroremessage: String;\r\n ClosingJournalVoucherIsLoading: boolean = false;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.AccCloseProfitandLossAccountsHeader.CreateClosingJournalVoucher\");\r\n super.ngOnInit();\r\n this.apiName = \"AccVoucherHeader\";\r\n this.areaName = \"Accounting\";\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.setdefault();\r\n await this.setUnSelectAccounts();\r\n }\r\n setColumnAttribute() {\r\n this.orignalColumns = this.orignalColumns.filter((x) => x.name === \"VoucherDate\");\r\n this.columns = this.orignalColumns;\r\n }\r\n setdefault() {\r\n if (!this.model.VoucherDate) this.model.VoucherDate = new Date();\r\n if (\r\n new Date(this.model.VoucherDate).setHours(0, 0, 0, 0) > new Date(this.accountService.authService.currentFiscalYear.EndDate).setHours(0, 0, 0, 0)\r\n )\r\n this.model.VoucherDate = this.accountService.authService.currentFiscalYear.EndDate;\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n if (!this.model.FiscalYearId) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n this.model.BranchId = this.accountService.authService.currentBranchId;\r\n this.getVoucher();\r\n }\r\n });\r\n } else this.getVoucher();\r\n }\r\n saveData() {\r\n if (this.model.FiscalYearId && this.model.FiscalYearId > 0)\r\n this.sts.showDialog(`آیا از صدور سند اطمینان دارید؟`, \"اختتامیه\", DialogType.confirm, () => this.CreateVoucher());\r\n else\r\n this.accountService.authService.currentFiscalYearobsr.subscribe((x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n this.sts.showDialog(`آیا از صدور سند اطمینان دارید؟`, \"اختتامیه\", DialogType.confirm, () => this.CreateVoucher());\r\n }\r\n });\r\n }\r\n async save() {\r\n if (!this.isSaving) {\r\n this.isSaving = false;\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n if (!this.model.FiscalYearId) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n this.model.BranchId = this.accountService.authService.currentBranchId;\r\n this.saveData();\r\n }\r\n });\r\n } else this.saveData();\r\n }\r\n }\r\n getVoucher() {\r\n if (this.ClosingJournalVoucherIsLoading === true) return;\r\n let entity: VoucherInfo = {};\r\n entity.BranchId = this.accountService.authService.currentBranchId;\r\n entity.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.ClosingJournalVoucherIsLoading = true;\r\n this.httpCommonService\r\n .create(\"AccCloseProfitandLossAccountsHeader/GetClosingJournalVoucher\", entity)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.ClosingJournalVoucherIsLoading = false;\r\n if (data != undefined && (data as []).length > 0) {\r\n this.model = (data as AccVoucherHeader[])[0];\r\n this.setFormGroup(this.model);\r\n }\r\n },\r\n (error) => {\r\n this.ClosingJournalVoucherIsLoading = false;\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در بارگذاری اطلاعات\");\r\n }\r\n );\r\n }\r\n CreateVoucher() {\r\n let entity: VoucherInfo = {};\r\n entity.VoucherDate = this.formGroup.controls[\"VoucherDate\"].value;\r\n entity.BranchId = this.accountService.authService.currentBranchId;\r\n entity.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.httpCommonService\r\n .create(\"AccCloseProfitandLossAccountsHeader/CreateClosingJournalVoucher\", entity)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => this.saveSuccessHelper(row),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n deletVoucher() {\r\n this.sts.showDialog(`آیا از حذف سند اطمینان دارید؟`, \"اختتامیه\", DialogType.confirm, () => this.delete_Voucher());\r\n }\r\n delete_Voucher() {\r\n this.httpCommonService\r\n .delete(\"AccCloseProfitandLossAccountsHeader/DeleteClosingJournalVoucher\", this.currentrow.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => this.saveSuccessHelper(row),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n\r\n async setUnSelectAccounts() {\r\n if (!this.accountService.authService.currentFiscalYear) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe(async (x) => {\r\n if (x) {\r\n if (this.formGroup) this.model.VoucherDate = this.formGroup.controls[\"VoucherDate\"].value;\r\n const voucherInfo = new VoucherInfo();\r\n voucherInfo.VoucherDate = this.model.VoucherDate;\r\n voucherInfo.FiscalYearId = x.Id;\r\n voucherInfo.Id = this.model.Id;\r\n voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n this.setValue(\"BranchId\", voucherInfo.BranchId);\r\n this.setValue(\"FiscalYearId\", voucherInfo.FiscalYearId);\r\n this.setValue(\"VoucherDate\", voucherInfo.VoucherDate);\r\n if (!voucherInfo.VoucherDate) return;\r\n await this.httpCommonService\r\n .create(`AccCloseProfitandLossAccountsHeader/GetUnSelectAccounts`, voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data && data.length > 0) {\r\n this.erroremessage = \"حسابهاي موقت بسته نشده است. اول حسابهاي موقت را به بنديد.\";\r\n }\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n this.saveFailedHelper(error);\r\n }\r\n );\r\n }\r\n });\r\n } else {\r\n if (this.formGroup) this.model.VoucherDate = this.formGroup.controls[\"VoucherDate\"].value;\r\n\r\n const voucherInfo = new VoucherInfo();\r\n voucherInfo.VoucherDate = this.model.VoucherDate;\r\n voucherInfo.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n voucherInfo.Id = this.model.Id;\r\n voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n if (!voucherInfo.VoucherDate) return;\r\n this.setValue(\"BranchId\", voucherInfo.BranchId);\r\n this.setValue(\"FiscalYearId\", voucherInfo.FiscalYearId);\r\n this.setValue(\"VoucherDate\", voucherInfo.VoucherDate);\r\n await this.httpCommonService\r\n .create(`AccCloseProfitandLossAccountsHeader/GetUnSelectAccounts`, voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data && data.length > 0) {\r\n this.erroremessage = \"حسابهاي موقت بسته نشده است. اول حسابهاي موقت را به بنديد.\";\r\n }\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n this.erroremessage = `${Utilities.getHttpResponseMessage(error)}`;\r\n this.saveFailedHelper(error);\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, form_control, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherHeader } from \"../../models/accvoucherheader.model\";\r\nimport { VoucherInfo } from \"../../models/voucherInfo.model\";\r\nimport { CreateClosingJournalVoucherFormComponent } from \"../create-closing-journal-voucher-form/create-closing-journal-voucher-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-create-closing-journal-voucher-list\",\r\n templateUrl: \"./create-closing-journal-voucher-list.component.html\",\r\n styleUrls: [\"./create-closing-journal-voucher-list.component.scss\"],\r\n})\r\nexport class CreateClosingJournalVoucherListComponent extends BaseListComponent {\r\n ClosingJournalVoucherIsLoading: boolean = false;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n actions: EntityListAction[];\r\n voucherInfo: VoucherInfo = {};\r\n constructor() {\r\n super();\r\n this.inputEditorform = CreateClosingJournalVoucherFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"AccVoucherHeader\";\r\n this.areaName = \"Accounting\";\r\n this.setColumns();\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.AccCloseProfitandLossAccountsHeader.CreateClosingJournalVoucher\");\r\n super.ngOnInit();\r\n this.setactions();\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.voucherInfo.FiscalYearId = this.accountService.authService.currentFiscalYear?.Id;\r\n this.voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n this.getVoucher();\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.voucherInfo.FiscalYearId = x.Id;\r\n this.voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n this.getVoucher();\r\n }\r\n });\r\n }\r\n async getVoucher() {\r\n if (this.ClosingJournalVoucherIsLoading === true) return;\r\n this.ClosingJournalVoucherIsLoading = true;\r\n await this.httpCommonService\r\n .create(\"AccCloseProfitandLossAccountsHeader/GetClosingJournalVoucher\", this.voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data != undefined) {\r\n this.dataList = data as AccVoucherHeader[];\r\n }\r\n setTimeout(() => (this.ClosingJournalVoucherIsLoading = false), 1000);\r\n },\r\n (error) => {\r\n this.ClosingJournalVoucherIsLoading = false;\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در بارگذاری اطلاعات\");\r\n }\r\n );\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"CreateClosingJournalVoucher\",\r\n disabled: false,\r\n displayName: \"سند اختتامیه\",\r\n iconName: \"icon-accountdocument\",\r\n apiName: \"AccCloseProfitandLossAccountsHeader/CreateClosingJournalVoucher\",\r\n areaName: \"Accounting\",\r\n Form_Component: CreateClosingJournalVoucherFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n setColumns() {\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (data) {\r\n this.columns = (data as form_control[]).sort((a, b) => a.order - b.order);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n 0\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [columns]=\"columns\"\r\n [areaName]=\"areaName\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [isAdd]=\"false\"\r\n [isModal]=\"true\"\r\n [dataList]=\"dataList\"\r\n [actions]=\"actions\"\r\n (onRefreshData)=\"getVoucher()\"\r\n reportName=\"CreateClosingJournalVoucherList\"\r\n pathPreFix=\"ACC\"\r\n [inputEditorform]=\"inputEditorform\">\r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { CreateClosingJournalVoucherFormComponent } from \"./create-closing-journal-voucher-form/create-closing-journal-voucher-form.component\";\r\nimport { CreateClosingJournalVoucherListComponent } from \"./create-closing-journal-voucher-list/create-closing-journal-voucher-list.component\";\r\n\r\nconst components = [CreateClosingJournalVoucherFormComponent, CreateClosingJournalVoucherListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class CreateClosingJournalVoucherModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherHeader } from \"../../models/accvoucherheader.model\";\r\nimport { VoucherInfo } from \"../../models/voucherInfo.model\";\r\n\r\n@Component({\r\n selector: \"ngx-create-opening-journal-voucher-form\",\r\n templateUrl: \"./create-opening-journal-voucher-form.component.html\",\r\n styleUrls: [\"./create-opening-journal-voucher-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CreateOpeningJournalVoucherFormComponent extends BaseFormComponent {\r\n loadingIndicator: boolean = false;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.AccCloseProfitandLossAccountsHeader.CreateOpeningJournalVoucher\");\r\n super.ngOnInit();\r\n this.apiName = \"AccVoucherHeader\";\r\n this.areaName = \"Accounting\";\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n }\r\n setColumnAttribute() {\r\n this.orignalColumns = this.orignalColumns.filter((x) => x.name === \"VoucherDate\");\r\n this.columns = this.orignalColumns;\r\n }\r\n setdefault() {\r\n if (!this.model.VoucherDate) this.model.VoucherDate = new Date();\r\n if (\r\n new Date(this.model.VoucherDate).setHours(0, 0, 0, 0) > new Date(this.accountService.authService.currentFiscalYear.EndDate).setHours(0, 0, 0, 0)\r\n )\r\n this.model.VoucherDate = this.accountService.authService.currentFiscalYear.EndDate;\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n if (!this.model.FiscalYearId) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n this.model.BranchId = this.accountService.authService.currentBranchId;\r\n this.getVoucher();\r\n }\r\n });\r\n } else this.getVoucher();\r\n }\r\n saveData() {\r\n if (this.model.FiscalYearId && this.model.FiscalYearId > 0)\r\n this.sts.showDialog(`آیا از صدور سند اطمینان دارید؟`, \"افتتاحیه\", DialogType.confirm, () => this.CreateVoucher());\r\n else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n this.sts.showDialog(`آیا از صدور سند اطمینان دارید؟`, \"افتتاحیه\", DialogType.confirm, () => this.CreateVoucher());\r\n }\r\n });\r\n }\r\n async save() {\r\n if (!this.isSaving) {\r\n this.isSaving = true;\r\n\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n if (!this.model.FiscalYearId) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n this.model.BranchId = this.accountService.authService.currentBranchId;\r\n this.saveData();\r\n }\r\n });\r\n } else this.saveData();\r\n }\r\n }\r\n getVoucher() {\r\n if (this.loadingIndicator === true) return;\r\n this.loadingIndicator = false;\r\n let entity: VoucherInfo = {};\r\n entity.BranchId = this.accountService.authService.currentBranchId;\r\n entity.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.httpCommonService\r\n .create(\"AccCloseProfitandLossAccountsHeader/GetOpeningJournalVoucher\", entity)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.loadingIndicator = false;\r\n if (data != undefined && (data as []).length > 0) {\r\n this.model = (data as AccVoucherHeader[])[0];\r\n this.setFormGroup(this.model);\r\n }\r\n },\r\n (error) => {\r\n this.loadingIndicator = false;\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در بارگذاری اطلاعات\");\r\n }\r\n );\r\n }\r\n CreateVoucher() {\r\n let entity: VoucherInfo = {};\r\n entity.VoucherDate = this.formGroup.controls[\"VoucherDate\"].value;\r\n entity.BranchId = this.accountService.authService.currentBranchId;\r\n entity.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.httpCommonService\r\n .create(\"AccCloseProfitandLossAccountsHeader/CreateOpeningJournalVoucher\", entity)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => this.saveSuccessHelper(row),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n deletVoucher() {\r\n this.sts.showDialog(`آیا از حذف سند اطمینان دارید؟`, \"افتتاحیه\", DialogType.confirm, () => this.delete_Voucher());\r\n }\r\n delete_Voucher() {\r\n this.httpCommonService\r\n .delete(\"AccCloseProfitandLossAccountsHeader/DeleteOpeningJournalVoucher\", this.currentrow.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => this.saveSuccessHelper(row),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, form_control, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherHeader } from \"../../models/accvoucherheader.model\";\r\nimport { VoucherInfo } from \"../../models/voucherInfo.model\";\r\nimport { CreateOpeningJournalVoucherFormComponent } from \"../create-opening-journal-voucher-form/create-opening-journal-voucher-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-create-opening-journal-voucher-list\",\r\n templateUrl: \"./create-opening-journal-voucher-list.component.html\",\r\n styleUrls: [\"./create-opening-journal-voucher-list.component.scss\"],\r\n})\r\nexport class CreateOpeningJournalVoucherListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n filterInfo: NameValue[] = [];\r\n editingName: { name: string };\r\n voucherInfo: VoucherInfo = {};\r\n actions: EntityListAction[];\r\n constructor() {\r\n super();\r\n this.inputEditorform = CreateOpeningJournalVoucherFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"AccVoucherHeader\";\r\n this.areaName = \"Accounting\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.AccCloseProfitandLossAccountsHeader.CreateOpeningJournalVoucher\");\r\n super.ngOnInit();\r\n this.setColumns();\r\n this.setactions();\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.voucherInfo.FiscalYearId = this.accountService.authService.currentFiscalYear?.Id;\r\n this.voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n this.getVoucher();\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.voucherInfo.FiscalYearId = x.Id;\r\n this.voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n this.getVoucher();\r\n }\r\n });\r\n }\r\n getVoucher() {\r\n if (this.loadingIndicator === true) return;\r\n this.loadingIndicator = true;\r\n this.httpCommonService\r\n .create(\"AccCloseProfitandLossAccountsHeader/GetOpeningJournalVoucher\", this.voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.loadingIndicator = false;\r\n if (data != undefined) {\r\n this.dataList = data as AccVoucherHeader[];\r\n }\r\n setTimeout(() => (this.loadingIndicator = false), 1000);\r\n },\r\n (error) => {\r\n this.loadingIndicator = false;\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در بارگذاری اطلاعات\");\r\n }\r\n );\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"CreateOpeningJournalVoucher\",\r\n disabled: false,\r\n displayName: \"سند افتتاحیه\",\r\n iconName: \"icon-file-document-multiple-outline\",\r\n apiName: \"AccCloseProfitandLossAccountsHeader/CreateOpeningJournalVoucher\",\r\n areaName: \"Accounting\",\r\n Form_Component: CreateOpeningJournalVoucherFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n setColumns() {\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (data) {\r\n this.columns = (data as form_control[]).sort((a, b) => a.order - b.order);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n 0\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [columns]=\"columns\"\r\n [areaName]=\"areaName\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [isAdd]=\"false\"\r\n [isModal]=\"true\"\r\n [actions]=\"actions\"\r\n [dataList]=\"dataList\"\r\n (onRefreshData)=\"getVoucher()\"\r\n reportName=\"CreateOpeningJournalVoucherList\"\r\n pathPreFix=\"ACC\"\r\n [inputEditorform]=\"inputEditorform\">\r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { CreateOpeningJournalVoucherFormComponent } from \"./create-opening-journal-voucher-form/create-opening-journal-voucher-form.component\";\r\nimport { CreateOpeningJournalVoucherListComponent } from \"./create-opening-journal-voucher-list/create-opening-journal-voucher-list.component\";\r\n\r\nconst components = [CreateOpeningJournalVoucherFormComponent, CreateOpeningJournalVoucherListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class CreateOpeningJournalVoucherModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { DetailLedger, DetailLedgerKind, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"detail-ledger-import-excel-form\",\r\n templateUrl: \"./detail-ledger-import-excel-form.component.html\",\r\n styleUrls: [\"./detail-ledger-import-excel-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DetailLedgerImportExcelFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n gridInfo: GridColumnInfoDetail[];\r\n DetailLedgerLiist: DetailLedger[] = [];\r\n DetailLedgerKindList: DetailLedgerKind[];\r\n public hColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"DetailLedger\";\r\n this.label = \"دریافت فایل اکسل\";\r\n super.ngOnInit();\r\n await this.setData();\r\n }\r\n async setColumns() {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns.push({\r\n label: \"ردیف اول عنون ستونهاست.\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"isFirstRowColumnsName\",\r\n disabled: false,\r\n name: \"isFirstRowColumnsName\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.hColumns = this.hColumns;\r\n }\r\n async setData() {\r\n await this.httpCommonService\r\n .getList(\"DetailLedgerKind\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.DetailLedgerKindList = data as DetailLedgerKind[];\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n alert(\"انتخاب بیش از یک فایل مجاز نیست.\");\r\n return;\r\n } else {\r\n const result = await this.parseExcelDoc(target.files[0]).catch((err) => console.error(err));\r\n await this.SetDetailLedgerInfo(result);\r\n }\r\n }\r\n async SetDetailLedgerInfo(excelData: any[]) {\r\n let ColumnsName = [];\r\n let ErroeMessage: string = \"\";\r\n if (this.formGroup.get(\"isFirstRowColumnsName\")?.value === true) {\r\n ColumnsName = excelData[0] as any[];\r\n } else ColumnsName = this.gridInfo.filter((c) => c.name != null && c.title != \"عملیات\" && !c.hidden) as any[];\r\n let isFirtsRow: boolean = true;\r\n for (var i = 0; i < excelData.length; i++) {\r\n var x = excelData[i];\r\n if (this.formGroup.get(\"isFirstRowColumnsName\").value === true && isFirtsRow === true) {\r\n } else {\r\n let row: DetailLedger = {};\r\n let index: number = 0;\r\n ColumnsName.forEach((c) => {\r\n let key: string;\r\n if (c.name) key = c.name;\r\n else {\r\n if (this.orignalColumns.some((g) => g.label === c || g.name == c)) {\r\n key = this.orignalColumns.find((g) => g.label === c || g.name == c).name;\r\n }\r\n }\r\n row[key] = x[index];\r\n if (key === \"DetailLedgerKindCode\") {\r\n row.DetailLedgerKindId = this.DetailLedgerKindList.find((gg) => gg.Code === row.DetailLedgerKindCode)?.Id;\r\n if (!row.DetailLedgerKindId) {\r\n (ErroeMessage += `برای حساب تفصیلی ${row.Title} نوع تفصیلی' ${row.DetailLedgerKindCode} پیدا نشد.`), \"دریافت نوع تفصیلی\" + \",\";\r\n }\r\n }\r\n index++;\r\n });\r\n if (!this.DetailLedgerLiist.some((g) => g.Code === row.Code || g.Title?.trim() === row.Title?.trim())) {\r\n this.DetailLedgerLiist.push(row);\r\n } else {\r\n console.log(row);\r\n }\r\n }\r\n if (isFirtsRow === true) isFirtsRow = false;\r\n if (ErroeMessage) break;\r\n }\r\n if (!ErroeMessage) {\r\n await this.httpCommonService\r\n .bulkInsert(this.apiName, this.DetailLedgerLiist)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت ذخیره شد.\");\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در ذخیره اطلاعات\");\r\n }\r\n );\r\n } else this.sts.showDialog(ErroeMessage, \"خطا در دریافت کالا\");\r\n }\r\n public cancel() {\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { DetailLedger, DetailLedgerKind } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-detailledger-form\",\r\n templateUrl: \"./detailledger-form.component.html\",\r\n styleUrls: [\"./detailledger-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DetailLedgerFormComponent extends BaseFormComponent {\r\n private selecteddetailLedgeerkindId: number;\r\n private selecteddetailLedgeerkindStartCode: number;\r\n private selecteddetailLedgeerkindEndCode: number;\r\n constructor(private missetup: MisSetupService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.missetup.getall();\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"DetailLedger\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.DetaiLedger.DetaiLedger\");\r\n super.ngOnInit();\r\n }\r\n onChange(value: DetailLedgerKind) {\r\n if (value && value.Id && this.isNewRow) {\r\n this.model.DetailLedgerKindId = value.Id;\r\n this.selecteddetailLedgeerkindId = value.Id;\r\n this.selecteddetailLedgeerkindStartCode = value.StartCode;\r\n this.selecteddetailLedgeerkindEndCode = value.EndCode;\r\n this.setMaxCode();\r\n }\r\n }\r\n setMaxCode() {\r\n if (this.missetup.getnumber(\"ACC\", \"DLLEN\") === 0)\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.BackOffice.ACC.DetaiLedger.AccountingDontSetting\"),\r\n this.translate(\"ClientApp.BackOffice.ACC.DetaiLedger.ErrorSetting\")\r\n );\r\n\r\n if (this.columns && this.columns.length > 0) {\r\n var item = this.columns.filter(function (item) {\r\n return item.name === \"Code\";\r\n })[0];\r\n if (item) {\r\n item.maxLength = this.missetup.getnumber(\"ACC\", \"DLLEN\");\r\n item.minLength = 1;\r\n }\r\n }\r\n this.httpCommonService\r\n .getMaxCodeWithParameter(\r\n this.apiName,\r\n this.selecteddetailLedgeerkindId,\r\n this.selecteddetailLedgeerkindStartCode,\r\n this.selecteddetailLedgeerkindEndCode\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model === {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setColumnAttribute();\r\n this.setFormGroup(this.model);\r\n });\r\n if (this.isNewRow) this.model.Active = true;\r\n }\r\n setColumnAttribute() {\r\n let maxformat = [9, 99, 999, 9999, 99999, 999999, 9999999, 99999999, 999999999, 9999999999];\r\n let DetailLedgerCodeLen = this.missetup.getnumber(\"ACC\", \"DLLEN\");\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"GroupLedgerId\") x.disabled = !this.isNewRow;\r\n if (x.name === \"Code\") {\r\n if (this.selecteddetailLedgeerkindStartCode && this.selecteddetailLedgeerkindStartCode > 0) x.min = this.selecteddetailLedgeerkindStartCode;\r\n else x.min = 1;\r\n if (this.selecteddetailLedgeerkindEndCode && this.selecteddetailLedgeerkindEndCode > 0) x.max = this.selecteddetailLedgeerkindEndCode;\r\n else x.max = maxformat[DetailLedgerCodeLen - 1];\r\n }\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { ColumnBase } from \"@progress/kendo-angular-grid\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { DetailLedger, EntityListAction, Permission, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { RowAccessKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { RowAccessComponent } from \"src/app/gnr/row-access/row-access.component\";\r\nimport { DetailLedgerImportExcelFormComponent } from \"../detail-ledger-import-excel/detail-ledger-import-excel-form.component\";\r\nimport { DetailLedgerFormComponent } from \"../detailledger-form/detailledger-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-detailledger-list\",\r\n templateUrl: \"./detailledger-list.component.html\",\r\n styleUrls: [\"./detailledger-list.component.scss\"],\r\n})\r\nexport class DetailLedgerListComponent extends BaseListComponent {\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n loadingIndicator: boolean;\r\n editingName: { name: string };\r\n HasRowAccess: boolean;\r\n filterInfo: NameValue[] = [];\r\n private controls: Array;\r\n constructor(private lookupservice: LookupService, private splashFormService: SplashFormService, private missetup: MisSetupService) {\r\n super();\r\n this.inputEditorform = DetailLedgerFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: 0, Operator: \"eq\" });\r\n if (this.HasRowAccess === undefined) {\r\n this.HasRowAccess = this.missetup.getboolean(\"GNR\", \"HasRowAccess\");\r\n }\r\n this.apiName = \"DetailLedger\";\r\n this.areaName = \"Accounting\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.DetaiLedger.DetaiLedger\");\r\n this.setactions();\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"ImportFromExcel\",\r\n disabled: false,\r\n displayName: \"ورودی اکسل\",\r\n iconName: \"icon-file-excel-o\",\r\n apiName: \"GroupLedger/ImportExcel\",\r\n areaName: \"Accounting\",\r\n Form_Component: DetailLedgerImportExcelFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n if (this.HasRowAccess === true)\r\n this.actions.push({\r\n name: \"RowAccess\",\r\n disabled: false,\r\n displayName: \"دسترسی در ردیف\",\r\n iconName: \"icon-users\",\r\n apiName: \"DetailLedger/RowAccess\",\r\n areaName: \"Accounting\",\r\n requireSelectedrows: true,\r\n Form_Component: RowAccessComponent,\r\n permission: Permission.samePermission,\r\n });\r\n this.actions.push({\r\n name: \"SendAllDetailLedgerToRakkaran\",\r\n disabled: false,\r\n displayName: \"ارسال کالا به راهکاران\",\r\n iconName: \"icon-send-F\",\r\n apiName: \"DetailLedger/SendAllDetailLedgerToRakkaran\",\r\n areaName: \"Accounting\",\r\n permission: Permission.samePermission,\r\n });\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: DetailLedger,\r\n onRowsSelected: DetailLedger[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n if (action.name === \"RowAccess\") {\r\n let ids: number[] = [];\r\n if (onRowsSelected != null && onRowsSelected.length > 0) {\r\n onRowsSelected.forEach((x) => ids.push(x.Id));\r\n } else ids.push(onRowSelected.Id);\r\n this.lookupservice\r\n .getLookupbyCode(\"Security\", \"RowAccess\", RowAccessKind.DetailLedger)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n SelectedRows: ids,\r\n RowKindId: x.Id,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n },\r\n (error) => {}\r\n );\r\n }\r\n if (action.name === \"ImportFromExcel\") {\r\n var gridInfo = this.getGridInfo(this.grid.grid.columns.toArray());\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n gridInfo: gridInfo,\r\n label: action.displayName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n }\r\n ///ارسال به راهکاران\r\n if (action.name === \"SendAllDetailLedgerToRakkaran\") {\r\n this.splashFormService.openDialog(\"\", \"در حال ارسال به راهکاران\");\r\n this.httpCommonService\r\n .get(action.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\"ارسال به راهکاران با موفقیت انجام شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در ارسال به راهکاران ${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n }\r\n\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.getGridInfo(this.grid.grid.columns.toArray()));\r\n });\r\n }\r\n\r\n getGridInfo(columns: ColumnBase[]): GridColumnInfoDetail[] {\r\n return columns\r\n .filter((x) => !x.hidden)\r\n .map((x) => {\r\n const info = new GridColumnInfoDetail();\r\n info.name = x[\"field\"];\r\n info.hidden = x.hidden;\r\n info.orderindex = x.orderIndex;\r\n info.title = x.title;\r\n return info;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { DetailLedgerImportExcelFormComponent } from \"./detail-ledger-import-excel/detail-ledger-import-excel-form.component\";\r\nimport { DetailLedgerFormComponent } from \"./detailledger-form/detailledger-form.component\";\r\nimport { DetailLedgerListComponent } from \"./detailledger-list/detailledger-list.component\";\r\n\r\nconst components = [DetailLedgerListComponent, DetailLedgerFormComponent, DetailLedgerImportExcelFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class DetailLedgerModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { DetailLedgerKind, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"detail-ledger-kind-import-excel-form\",\r\n templateUrl: \"./detail-ledger-kind-import-excel-form.component.html\",\r\n styleUrls: [\"./detail-ledger-kind-import-excel-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DetailLedgerKindImportExcelFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n gridInfo: GridColumnInfoDetail[];\r\n DetailLedgerKindLiist: DetailLedgerKind[] = [];\r\n public hColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"DetailLedgerKind\";\r\n this.label = \"دریافت فایل اکسل\";\r\n super.ngOnInit();\r\n await this.setData();\r\n }\r\n async setColumns() {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns.push({\r\n label: \"ردیف اول عنون ستونهاست.\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"isFirstRowColumnsName\",\r\n disabled: false,\r\n name: \"isFirstRowColumnsName\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.hColumns = this.hColumns;\r\n }\r\n async setData() {\r\n await this.httpCommonService\r\n .getList(\"DetailLedgerKind\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.DetailLedgerKindLiist = data as DetailLedgerKind[];\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n alert(\"انتخاب بیش از یک فایل مجاز نیست.\");\r\n return;\r\n } else {\r\n const result = await this.parseExcelDoc(target.files[0]).catch((err) => console.error(err));\r\n await this.SetDetailLedgerKindInfo(result);\r\n }\r\n }\r\n async SetDetailLedgerKindInfo(excelData: any[]) {\r\n let ColumnsName = [];\r\n let ErroeMessage: string = \"\";\r\n if (this.formGroup.get(\"isFirstRowColumnsName\")?.value === true) {\r\n ColumnsName = excelData[0] as any[];\r\n } else ColumnsName = this.gridInfo.filter((c) => c.name != null && c.title != \"عملیات\" && !c.hidden) as any[];\r\n let isFirtsRow: boolean = true;\r\n for (var i = 0; i < excelData.length; i++) {\r\n var x = excelData[i];\r\n if (this.formGroup.get(\"isFirstRowColumnsName\").value === true && isFirtsRow === true) {\r\n } else {\r\n let row: DetailLedgerKind = {};\r\n let index: number = 0;\r\n ColumnsName.forEach((c) => {\r\n let key: string;\r\n if (c.name) key = c.name;\r\n else {\r\n if (this.orignalColumns.some((g) => g.label === c || g.name == c)) {\r\n key = this.orignalColumns.find((g) => g.label === c || g.name == c).name;\r\n }\r\n }\r\n row[key] = x[index];\r\n index++;\r\n });\r\n if (!this.DetailLedgerKindLiist.some((g) => g.Code === row.Code || g.Title?.trim() === row.Title?.trim())) {\r\n this.DetailLedgerKindLiist.push(row);\r\n } else {\r\n console.log(row);\r\n }\r\n }\r\n if (isFirtsRow === true) isFirtsRow = false;\r\n if (ErroeMessage) break;\r\n }\r\n if (!ErroeMessage) {\r\n await this.httpCommonService\r\n .bulkInsert(\r\n this.apiName,\r\n this.DetailLedgerKindLiist.filter((x) => !x.Id)\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت ذخیره شد.\");\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در ذخیره اطلاعات\");\r\n }\r\n );\r\n } else this.sts.showDialog(ErroeMessage, \"خطا در دریافت کالا\");\r\n }\r\n public cancel() {\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { DetailLedgerKind } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"detailledgerkind-form\",\r\n templateUrl: \"detailledgerkind-form.component.html\",\r\n styleUrls: [\"detailledgerkind-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DetailLedgerKindFormComponent extends BaseFormComponent {\r\n public apiName: string = \"DetailLedgerKind\";\r\n public label: string = this.translate(\"ClientApp.BackOffice.ACC.DetaiLedgerKind.DetaiLedgerKind\");\r\n constructor(private missetup: MisSetupService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.missetup.getall();\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n if (this.columns && this.columns.length > 0) {\r\n var item = this.columns.filter(function (item) {\r\n return item.name === \"StartCode\";\r\n })[0];\r\n if (item) {\r\n item.maxLength = this.missetup.getnumber(\"ACC\", \"DLLEN\");\r\n item.minLength = 1;\r\n }\r\n var item = this.columns.filter(function (item) {\r\n return item.name === \"EndCode\";\r\n })[0];\r\n if (item) {\r\n item.maxLength = this.missetup.getnumber(\"ACC\", \"DLLEN\");\r\n item.minLength = 1;\r\n }\r\n }\r\n\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { ColumnBase } from \"@progress/kendo-angular-grid\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { GridFilter, HttpCommonService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { DetailLedgerKind } from \"../models/detailledgerkind.model\";\r\nimport { DetailLedgerKindImportExcelFormComponent } from \"./detail-ledger-kind-import-excel/detail-ledger-kind-import-excel-form.component\";\r\nimport { DetailLedgerKindFormComponent } from \"./detailledgerkind-form.component\";\r\n@Component({\r\n selector: \"detailledgerkind-list\",\r\n templateUrl: \"detailledgerkind-list.component.html\",\r\n styleUrls: [\"detailledgerkind-list.component.scss\"],\r\n providers: [HttpCommonService],\r\n})\r\nexport class DetailLedgerKindListComponent extends BaseListComponent {\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n private sub: any;\r\n constructor(private route: ActivatedRoute) {\r\n super();\r\n this.inputEditorform = DetailLedgerKindFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"DetailLedgerKind\";\r\n this.areaName = \"Accounting\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.DetaiLedgerKind.DetaiLedgerKind\");\r\n this.route.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe((params) => {\r\n if (params.apiname) this.apiName = params.apiname;\r\n });\r\n this.setactions();\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"ImportFromExcel\",\r\n disabled: false,\r\n displayName: \"ورودی اکسل\",\r\n iconName: \"icon-file-excel-o\",\r\n apiName: \"GroupLedger/ImportExcel\",\r\n areaName: \"Accounting\",\r\n Form_Component: DetailLedgerKindImportExcelFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: DetailLedgerKind,\r\n onRowsSelected: DetailLedgerKind[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n if (action.name === \"ImportFromExcel\") {\r\n var gridInfo = this.getGridInfo(this.grid.grid.columns.toArray());\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n gridInfo: gridInfo,\r\n label: action.displayName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n }\r\n }\r\n\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.getGridInfo(this.grid.grid.columns.toArray()));\r\n });\r\n }\r\n\r\n getGridInfo(columns: ColumnBase[]): GridColumnInfoDetail[] {\r\n return columns\r\n .filter((x) => !x.hidden)\r\n .map((x) => {\r\n const info = new GridColumnInfoDetail();\r\n info.name = x[\"field\"];\r\n info.hidden = x.hidden;\r\n info.orderindex = x.orderIndex;\r\n info.title = x.title;\r\n return info;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { DetailLedgerKindImportExcelFormComponent } from \"./detail-ledger-kind-import-excel/detail-ledger-kind-import-excel-form.component\";\r\nimport { DetailLedgerKindFormComponent } from \"./detailledgerkind-form.component\";\r\nimport { DetailLedgerKindListComponent } from \"./detailledgerkind-list.component\";\r\n\r\nconst components = [DetailLedgerKindListComponent, DetailLedgerKindFormComponent, DetailLedgerKindImportExcelFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class DetailLedgerKindModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { UntypedFormControl } from \"@angular/forms\";\r\nimport { ReportKindInfo } from \"projects/sepidz-web-framework-data-grid/src/lib/report-kind\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SubLedger } from \"../../models/subledger.model\";\r\nimport { VoucherInfo } from \"../../models/voucherInfo.model\";\r\nimport { GeneralLedgerVoucher } from \"../general-ledger-voucher.model\";\r\n\r\n@Component({\r\n selector: \"ngx-general-ledger-voucher-form\",\r\n templateUrl: \"./general-ledger-voucher-form.component.html\",\r\n styleUrls: [\"./general-ledger-voucher-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GeneralLedgerVoucherFormComponent extends BaseFormComponent {\r\n DefaultValues: Dictionary = [];\r\n isLoadingMaxNUmber: boolean;\r\n erroremessage: string;\r\n currentSubLedger: SubLedger;\r\n reportKinds = ReportKindInfo.reportKinds;\r\n GeneralLedgerVoucherDetails: form_control[];\r\n constructor(\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected cd: ChangeDetectorRef,\r\n public selectorService: SelectorService,\r\n private datatransfer: Datatransfer\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.currentrow = this.datatransfer?.currentrow;\r\n if (this.datatransfer?.apiName) this.apiName = this.datatransfer?.apiName;\r\n if (this.datatransfer?.label) this.label = this.datatransfer?.label;\r\n if (this.datatransfer?.areaName) this.areaName = this.datatransfer?.areaName;\r\n this.tabsservice = _tabsservice;\r\n }\r\n async ngOnInit() {\r\n this.DefaultValues[\"GeneralLedgerVoucherHeaderId\"] = 0;\r\n this.apiName = \"GeneralLedgerVoucherHeader\";\r\n this.label = \"سند کل\";\r\n this.reportName = \"GeneralLedgerVoucherDocument\";\r\n this.pathPreFix = \"ACC\";\r\n super.ngOnInit();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.DefaultValues = undefined;\r\n this.GeneralLedgerVoucherDetails = undefined;\r\n }\r\n setdefault() {\r\n if (!this.model.GeneralLedgerVoucherDetails) this.model.GeneralLedgerVoucherDetails = [];\r\n }\r\n setMaxCode() {\r\n if (!this.isNewRow && this.model.Id > 0) return;\r\n if (!this.accountService.authService.currentFiscalYear) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.isLoadingMaxNUmber = true;\r\n const voucherInfo = new VoucherInfo();\r\n voucherInfo.VoucherDate = new Date();\r\n voucherInfo.FiscalYearId = x.Id;\r\n voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n this.httpCommonService\r\n .create(`${this.apiName}/GetMaxNumber`, voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.isLoadingMaxNUmber = false;\r\n this.model[\"EndVchDate\"] = data[\"EndVchDate\"];\r\n this.model[\"EndVchNum\"] = data[\"EndVchNum\"];\r\n this.model[\"GeneralLedgerVoucherNo\"] = data[\"GeneralLedgerVoucherNo\"];\r\n this.model[\"StartVchDate\"] = data[\"StartVchDate\"];\r\n this.model[\"StartVchNum\"] = data[\"StartVchNum\"];\r\n this.model[\"DateGenerated\"] = data[\"DateGenerated\"];\r\n this.model[\"FiscalYearId\"] = data[\"FiscalYearId\"];\r\n this.model[\"BranchId\"] = data[\"BranchId\"];\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n this.cd.markForCheck();\r\n }\r\n },\r\n (error) => {\r\n this.getFailedHelper(error);\r\n this.isLoadingMaxNUmber = false;\r\n }\r\n );\r\n }\r\n });\r\n } else if (!this.isLoadingMaxNUmber) {\r\n this.isLoadingMaxNUmber = true;\r\n const voucherInfo = new VoucherInfo();\r\n voucherInfo.VoucherDate = new Date();\r\n voucherInfo.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n voucherInfo.BranchId = this.accountService.authService.currentBranchId;\r\n this.httpCommonService\r\n .create(`${this.apiName}/GetMaxNumber`, voucherInfo)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.isLoadingMaxNUmber = false;\r\n this.model[\"EndVchDate\"] = data[\"EndVchDate\"];\r\n this.model[\"EndVchNum\"] = data[\"EndVchNum\"];\r\n this.model[\"GeneralLedgerVoucherNo\"] = data[\"GeneralLedgerVoucherNo\"];\r\n this.model[\"StartVchDate\"] = data[\"StartVchDate\"];\r\n this.model[\"StartVchNum\"] = data[\"StartVchNum\"];\r\n this.model[\"DateGenerated\"] = data[\"DateGenerated\"];\r\n this.model[\"FiscalYearId\"] = data[\"FiscalYearId\"];\r\n this.model[\"BranchId\"] = data[\"BranchId\"];\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n }\r\n },\r\n (error) => {\r\n this.getFailedHelper(error);\r\n this.isLoadingMaxNUmber = false;\r\n }\r\n );\r\n }\r\n }\r\n isValid() {\r\n let flag: boolean = this.isNewRow;\r\n this.erroremessage = undefined;\r\n if (flag && !this.formGroup.controls[\"FiscalYearId\"].value) {\r\n if (!this.formGroup.controls[\"FiscalYearId\"].value && !this.accountService.authService.currentFiscalYear) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) this.setValue(\"FiscalYearId\", x.Id);\r\n });\r\n this.erroremessage = `سال مالی انتخاب نشده است.`;\r\n flag = false;\r\n } else if (this.accountService.authService.currentFiscalYear)\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n return flag;\r\n }\r\n if (flag && (!this.model.GeneralLedgerVoucherDetails || this.model.GeneralLedgerVoucherDetails.length <= 0)) {\r\n this.erroremessage = \"برای سند هیچ قلمی وارد نشده است.\";\r\n flag = false;\r\n }\r\n return flag;\r\n }\r\n createVoucher() {\r\n this.httpCommonService\r\n .create(`${this.apiName}/GetGeneralVoucher`, this.getDataFromFormGroup())\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.isLoadingMaxNUmber = false;\r\n this.model.GeneralLedgerVoucherDetails = data as [];\r\n this.isValid();\r\n this.cd.markForCheck();\r\n }\r\n },\r\n (error) => {\r\n this.getFailedHelper(error);\r\n this.isLoadingMaxNUmber = false;\r\n }\r\n );\r\n }\r\n deleteVoucher() {\r\n this.sts.showDialog(`آیا از حذف اطلاعات اطمینان دارید؟`, \"حذف اطلاعات\", DialogType.confirm, () => this.removeVoucher());\r\n }\r\n removeVoucher() {\r\n this.sts.showToast(\"primary\", \"\", \"در حال حذف...\");\r\n this.httpCommonService\r\n .delete(this.apiName, this.model.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت حذف شد.\");\r\n setTimeout(() => this.close(), 200);\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف اطلاعات\");\r\n }\r\n );\r\n }\r\n getMaxDateNumber() {\r\n if (!this.isLoadingMaxNUmber) {\r\n this.isLoadingMaxNUmber = true;\r\n this.httpCommonService\r\n .create(`${this.apiName}/GetMaxDateNumber`, this.getDataFromFormGroup())\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.model[\"EndVchDate\"] = data[\"EndVchDate\"];\r\n this.setValue(\"EndVchDate\", this.model[\"EndVchDate\"]);\r\n if (this.formGroup.controls[\"EndVchNum\"].value > data[\"EndVchNum\"]) {\r\n this.model[\"EndVchNum\"] = data[\"EndVchNum\"];\r\n this.setValue(\"EndVchNum\", this.model[\"EndVchNum\"]);\r\n }\r\n this.isLoadingMaxNUmber = false;\r\n }\r\n },\r\n (error) => {\r\n this.getFailedHelper(error);\r\n this.isLoadingMaxNUmber = false;\r\n }\r\n );\r\n }\r\n }\r\n onChanged($event) {\r\n if (this.formGroup.invalid) return;\r\n if ($event.GeneralLedgerId) {\r\n this.currentSubLedger = $event;\r\n this.setColumnAttribute();\r\n }\r\n if (\r\n new Date(this.model.EndVchDate).toDateString() !== new Date(this.formGroup.controls[\"EndVchDate\"].value).toDateString() ||\r\n this.model.EndVchNum !== this.formGroup.controls[\"EndVchNum\"].value\r\n ) {\r\n if (!this.isLoadingMaxNUmber) {\r\n setTimeout(() => {\r\n this.getMaxDateNumber();\r\n }, 200);\r\n }\r\n }\r\n this.isValid();\r\n }\r\n setColumnAttribute() {\r\n this.columns.forEach((x) => {\r\n x.disabled = !this.isNewRow;\r\n });\r\n this.columns.forEach((x) => {\r\n if (x.name === \"GeneralLedgerVoucherNo\") x.disabled = true;\r\n if (x.name === \"StartVchDate\") {\r\n x.disabled = true;\r\n }\r\n if (x.name === \"StartVchNum\") {\r\n x.disabled = true;\r\n }\r\n });\r\n this.GeneralLedgerVoucherDetails = this.getDetailControlModels(\"GeneralLedgerVoucherDetails\");\r\n\r\n this.columns.forEach((x) => ((x.isFloat = null), (x.userClass = null)));\r\n this.cd.markForCheck();\r\n }\r\n beforupdate() {\r\n if (this.model.GeneralLedgerVoucherDetails && this.model.GeneralLedgerVoucherDetails.length > 0) {\r\n if (!this.formGroup.controls[\"GeneralLedgerVoucherDetails\"])\r\n this.formGroup.addControl(\"GeneralLedgerVoucherDetails\", new UntypedFormControl(this.model.GeneralLedgerVoucherDetails));\r\n else this.formGroup.controls[\"GeneralLedgerVoucherDetails\"].setValue(this.model.GeneralLedgerVoucherDetails);\r\n this.formGroup.updateValueAndValidity();\r\n } else this.erroremessage = \"برای سند هیچ قلمی وارد نشده است.\";\r\n }\r\n}\r\n"," 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [group]=\"formGroup\"\r\n [model]=\"model\"\r\n [isShowModal]=\"false\"\r\n [areaName]=\"areaName\"\r\n (valueChange)=\"onChanged($event)\"\r\n [columns]=\"columns\"\r\n [erroremessage]=\"erroremessage\"\r\n (cancelChange)=\"cancel()\"\r\n (submitChange)=\"save()\">\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n 0\"\r\n appearance=\"flat\">\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { GeneralLedgerVoucherFormComponent } from \"../general-ledger-voucher-form/general-ledger-voucher-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-general-ledger-voucher-list\",\r\n templateUrl: \"./general-ledger-voucher-list.component.html\",\r\n styleUrls: [\"./general-ledger-voucher-list.component.scss\"],\r\n})\r\nexport class GeneralLedgerVoucherListComponent extends BaseListComponent {\r\n filterInfo: NameValue[] = [];\r\n constructor() {\r\n super();\r\n this.inputEditorform = GeneralLedgerVoucherFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"GeneralLedgerVoucherHeader\";\r\n this.areaName = \"Accounting\";\r\n this.label = \"سند کل\";\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: this.accountService.authService.currentFiscalYear?.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: x.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { GeneralLedgerVoucherFormComponent } from \"./general-ledger-voucher-form/general-ledger-voucher-form.component\";\r\nimport { GeneralLedgerVoucherListComponent } from \"./general-ledger-voucher-list/general-ledger-voucher-list.component\";\r\n\r\nconst components = [GeneralLedgerVoucherFormComponent, GeneralLedgerVoucherListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class GeneralLedgerVoucherModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { GeneralLedger, GroupLedger, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"general-ledger-import-excel-form\",\r\n templateUrl: \"./general-ledger-import-excel-form.component.html\",\r\n styleUrls: [\"./general-ledger-import-excel-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GeneralLedgerImportExcelFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n gridInfo: GridColumnInfoDetail[];\r\n GeneralLedgerLiist: GeneralLedger[] = [];\r\n GroupLedgerList: GroupLedger[];\r\n public hColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"GeneralLedger\";\r\n this.label = \"دریافت فایل اکسل\";\r\n super.ngOnInit();\r\n await this.setData();\r\n }\r\n async setColumns() {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns.push({\r\n label: \"ردیف اول عنون ستونهاست.\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"isFirstRowColumnsName\",\r\n disabled: false,\r\n name: \"isFirstRowColumnsName\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.hColumns = this.hColumns;\r\n }\r\n async setData() {\r\n await this.httpCommonService\r\n .getList(\"GroupLedger\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.GroupLedgerList = data as GroupLedger[];\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n alert(\"انتخاب بیش از یک فایل مجاز نیست.\");\r\n return;\r\n } else {\r\n const result = await this.parseExcelDoc(target.files[0]).catch((err) => console.error(err));\r\n await this.SetGeneralLedgerInfo(result);\r\n }\r\n }\r\n async SetGeneralLedgerInfo(excelData: any[]) {\r\n let ColumnsName = [];\r\n let ErroeMessage: string = \"\";\r\n if (this.formGroup.get(\"isFirstRowColumnsName\")?.value === true) {\r\n ColumnsName = excelData[0] as any[];\r\n } else ColumnsName = this.gridInfo.filter((c) => c.name != null && c.title != \"عملیات\" && !c.hidden) as any[];\r\n let isFirtsRow: boolean = true;\r\n for (var i = 0; i < excelData.length; i++) {\r\n var x = excelData[i];\r\n if (this.formGroup.get(\"isFirstRowColumnsName\").value === true && isFirtsRow === true) {\r\n } else {\r\n let row: GeneralLedger = {};\r\n let index: number = 0;\r\n ColumnsName.forEach((c) => {\r\n let key: string;\r\n if (c.name) key = c.name;\r\n else {\r\n if (this.orignalColumns.some((g) => g.label === c || g.name == c)) {\r\n key = this.orignalColumns.find((g) => g.label === c || g.name == c).name;\r\n }\r\n }\r\n row[key] = x[index];\r\n if (key === \"ProfiteLossKindCode\") {\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"ProfiteLossKind\", Number(row.ProfiteLossKindCode))\r\n .subscribe((gk) => (row.ProfiteLossKindId = gk.Id));\r\n }\r\n if (key === \"GroupLedgerCode\") {\r\n row.GroupLedgerId = this.GroupLedgerList.find((gg) => gg.Code === row.GroupLedgerCode)?.Id;\r\n if (!row.GroupLedgerId) {\r\n (ErroeMessage += `برای حساب کل ${row.Title} گروه حساب' ${row.GroupLedgerCode} پیدا نشد.`), \"دریافت گروه حساب\" + \",\";\r\n }\r\n }\r\n index++;\r\n });\r\n if (!this.GeneralLedgerLiist.some((g) => g.Code === row.Code || g.Title?.trim() === row.Title?.trim())) {\r\n this.GeneralLedgerLiist.push(row);\r\n } else {\r\n console.log(row);\r\n }\r\n }\r\n if (isFirtsRow === true) isFirtsRow = false;\r\n if (ErroeMessage) break;\r\n }\r\n if (!ErroeMessage) {\r\n await this.httpCommonService\r\n .bulkInsert(this.apiName, this.GeneralLedgerLiist)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت ذخیره شد.\");\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در ذخیره اطلاعات\");\r\n }\r\n );\r\n } else this.sts.showDialog(ErroeMessage, \"خطا در دریافت کالا\");\r\n }\r\n public cancel() {\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ValidatorFn, Validators } from \"@angular/forms\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { GeneralLedger, GroupLedger } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"generalledger-form\",\r\n templateUrl: \"generalledger-form.component.html\",\r\n styleUrls: [\"generalledger-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GeneralLedgerFormComponent extends BaseFormComponent {\r\n private selectedgeneralLedgerCodeLen: number;\r\n private selectedGroupLedgerCodeLen: number;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private missetup: MisSetupService) {\r\n super(selectorService, cd);\r\n this.missetup.getall();\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"GeneralLedger\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.GeneralLedger.GeneralLedger\");\r\n super.ngOnInit();\r\n this.setlen();\r\n }\r\n setlen() {\r\n this.selectedgeneralLedgerCodeLen = this.missetup.getnumber(\"ACC\", \"GLLEN\");\r\n this.selectedGroupLedgerCodeLen = this.missetup.getnumber(\"ACC\", \"PLLEN\");\r\n if (this.selectedgeneralLedgerCodeLen === 0 && this.selectedGroupLedgerCodeLen === 0)\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.BackOffice.ACC.GeneralLedger.SettingNotComplete\"),\r\n this.translate(\"ClientApp.BackOffice.ACC.GeneralLedger.ErrorSetting\")\r\n );\r\n\r\n if (this.columns && this.columns.length > 0) {\r\n var item = this.columns.filter((item) => item.name === \"Code\")[0];\r\n\r\n if (item) {\r\n item.maxLength = this.selectedgeneralLedgerCodeLen + this.selectedGroupLedgerCodeLen;\r\n item.minLength = this.selectedGroupLedgerCodeLen + 1;\r\n }\r\n }\r\n }\r\n\r\n onChange($event: GroupLedger) {\r\n if ($event && $event.GroupLedgerKindId && this.isNewRow) {\r\n this.model.GroupLedgerId = $event.Id;\r\n this.model.GroupLedgerCode = $event.Code;\r\n this.setMaxCode();\r\n }\r\n }\r\n setMaxCode() {\r\n if (!this.selectedgeneralLedgerCodeLen || this.selectedgeneralLedgerCodeLen === 0) this.setlen();\r\n\r\n this.httpCommonService\r\n .getMaxCodeWithParameter(this.apiName, this.model.GroupLedgerId, this.model.GroupLedgerCode, this.selectedgeneralLedgerCodeLen)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n this.setdefault();\r\n if (this.formGroup && this.formGroup.controls[\"Code\"]) {\r\n this.formGroup.controls[\"Code\"].setValue(data as number);\r\n this.setColumnAttribute();\r\n }\r\n }\r\n });\r\n }\r\n isValid() {\r\n if (!this.selectedgeneralLedgerCodeLen || this.selectedgeneralLedgerCodeLen <= 0) this.setlen();\r\n let result =\r\n this.model.Code &&\r\n this.model.Code.toString().length > this.selectedGroupLedgerCodeLen &&\r\n this.model.Code.toString().length <= this.selectedgeneralLedgerCodeLen + this.selectedGroupLedgerCodeLen &&\r\n this.model.Code.toString().substring(0, this.selectedGroupLedgerCodeLen) === this.model.GroupLedgerCode.toString();\r\n if (!result)\r\n this.formGroup.controls[\"Code\"].setErrors({ customerror: `${this.translate(\"ClientApp.BackOffice.ACC.GeneralLedger.GeneralLedgerWrong\")}` });\r\n return result;\r\n }\r\n\r\n setColumnAttribute() {\r\n let minfprmat = [10, 100, 1000, 10000, 100000, 1000000];\r\n let maxfprmat = [9, 99, 999, 9999, 99999, 999999];\r\n this.columns.forEach((x) => {\r\n if (x.name === \"GroupLedgerId\") x.disabled = !this.isNewRow;\r\n if (x.name === \"Code\" && this.model.GroupLedgerCode) {\r\n x.min = this.model.GroupLedgerCode * minfprmat[this.selectedGroupLedgerCodeLen - 1];\r\n x.max = Number(this.model.GroupLedgerCode.toString() + maxfprmat[this.selectedgeneralLedgerCodeLen - 1].toString());\r\n if (this.formGroup.get(\"Code\")) {\r\n let validator: ValidatorFn[] = [];\r\n if (x.required && !x.disabled) validator.push(Validators.required);\r\n if (x.max && x.max > 0) validator.push(Validators.max(x.max));\r\n if (x.min && x.min > 0) validator.push(Validators.min(x.min));\r\n this.formGroup.get(\"Code\").setValidators(validator);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n"," 0\"\r\n [apiName]=\"apiName\"\r\n [group]=\"formGroup\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [model]=\"model\"\r\n [columns]=\"columns\"\r\n (cancelChange)=\"cancel()\"\r\n (submitChange)=\"save()\"\r\n (onRowSelected)=\"onChange($event)\">\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { ColumnBase } from \"@progress/kendo-angular-grid\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, GeneralLedger, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { GridFilter, HttpCommonService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { GeneralLedgerImportExcelFormComponent } from \"./general-ledger-import-excel/general-ledger-import-excel-form.component\";\r\nimport { GeneralLedgerFormComponent } from \"./generalledger-form.component\";\r\n\r\n@Component({\r\n selector: \"generalLedger-list\",\r\n templateUrl: \"generalLedger-list.component.html\",\r\n styleUrls: [\"generalLedger-list.component.scss\"],\r\n providers: [HttpCommonService],\r\n})\r\nexport class GeneralLedgerListComponent extends BaseListComponent {\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n loadingIndicator: boolean;\r\n editingName: {\r\n name: string;\r\n };\r\n private sub: any;\r\n constructor(private route: ActivatedRoute) {\r\n super();\r\n this.inputEditorform = GeneralLedgerFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"GeneralLedger\";\r\n this.areaName = \"Accounting\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.GeneralLedger.GeneralLedger\");\r\n this.route.params.pipe(takeUntil(this.ngUnsubscribe)).subscribe((params) => {\r\n if (params.apiname) this.apiName = params.apiname;\r\n });\r\n this.setactions();\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"ImportFromExcel\",\r\n disabled: false,\r\n displayName: \"ورودی اکسل\",\r\n iconName: \"icon-file-excel-o\",\r\n apiName: \"GroupLedger/ImportExcel\",\r\n areaName: \"Accounting\",\r\n Form_Component: GeneralLedgerImportExcelFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: GeneralLedger,\r\n onRowsSelected: GeneralLedger[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n if (action.name === \"ImportFromExcel\") {\r\n var gridInfo = this.getGridInfo(this.grid.grid.columns.toArray());\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n gridInfo: gridInfo,\r\n label: action.displayName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n }\r\n }\r\n\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.getGridInfo(this.grid.grid.columns.toArray()));\r\n });\r\n }\r\n\r\n getGridInfo(columns: ColumnBase[]): GridColumnInfoDetail[] {\r\n return columns\r\n .filter((x) => !x.hidden)\r\n .map((x) => {\r\n const info = new GridColumnInfoDetail();\r\n info.name = x[\"field\"];\r\n info.hidden = x.hidden;\r\n info.orderindex = x.orderIndex;\r\n info.title = x.title;\r\n return info;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { GeneralLedgerImportExcelFormComponent } from \"./general-ledger-import-excel/general-ledger-import-excel-form.component\";\r\nimport { GeneralLedgerFormComponent } from \"./generalledger-form.component\";\r\nimport { GeneralLedgerListComponent } from \"./generalledger-list.component\";\r\n\r\nconst components = [GeneralLedgerListComponent, GeneralLedgerFormComponent, GeneralLedgerImportExcelFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class GeneralLedgerModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { GroupLedger, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"group-ledger-import-excel-form\",\r\n templateUrl: \"./group-ledger-import-excel-form.component.html\",\r\n styleUrls: [\"./group-ledger-import-excel-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GroupLedgerImportExcelFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n gridInfo: GridColumnInfoDetail[];\r\n GroupLedgerLiist: GroupLedger[] = [];\r\n public hColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"GroupLedger\";\r\n this.label = \"دریافت فایل اکسل\";\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns.push({\r\n label: \"ردیف اول عنون ستونهاست.\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"isFirstRowColumnsName\",\r\n disabled: false,\r\n name: \"isFirstRowColumnsName\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.hColumns = this.hColumns;\r\n }\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n alert(\"انتخاب بیش از یک فایل مجاز نیست.\");\r\n return;\r\n } else {\r\n const result = await this.parseExcelDoc(target.files[0]).catch((err) => console.error(err));\r\n this.SetGroupLedgerInfo(result);\r\n }\r\n }\r\n async SetGroupLedgerInfo(excelData: any[]) {\r\n let ColumnsName = [];\r\n let ErroeMessage: string = \"\";\r\n if (this.formGroup.get(\"isFirstRowColumnsName\")?.value === true) {\r\n ColumnsName = excelData[0] as any[];\r\n } else ColumnsName = this.gridInfo.filter((c) => c.name != null && c.title != \"عملیات\" && !c.hidden) as any[];\r\n let isFirtsRow: boolean = true;\r\n for (var i = 0; i < excelData.length; i++) {\r\n var x = excelData[i];\r\n if (this.formGroup.get(\"isFirstRowColumnsName\").value === true && isFirtsRow === true) {\r\n } else {\r\n let row: GroupLedger = {};\r\n let index: number = 0;\r\n ColumnsName.forEach((c) => {\r\n let key: string;\r\n if (c.name) key = c.name;\r\n else {\r\n if (this.orignalColumns.some((g) => g.label === c || g.name == c)) {\r\n key = this.orignalColumns.find((g) => g.label === c || g.name == c).name;\r\n }\r\n }\r\n row[key] = x[index];\r\n if (key === \"GroupLedgerKindCode\") {\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"GroupLedgerKind\", Number(row.GroupLedgerKindCode))\r\n .subscribe((gk) => (row.GroupLedgerKindId = gk.Id));\r\n if (!row.GroupLedgerKindId) {\r\n (ErroeMessage += `برای گروه حساب' ${row.Title} نوع حساب' ${row.GroupLedgerKindCode} پیدا نشد.`), \"دریافت گروه حساب\" + \",\";\r\n }\r\n }\r\n index++;\r\n });\r\n if (!this.GroupLedgerLiist.some((g) => g.Code === row.Code || g.Title?.trim() === row.Title?.trim())) {\r\n this.GroupLedgerLiist.push(row);\r\n } else {\r\n console.log(row);\r\n }\r\n }\r\n if (isFirtsRow === true) isFirtsRow = false;\r\n if (ErroeMessage) break;\r\n }\r\n if (!ErroeMessage) {\r\n await this.httpCommonService\r\n .bulkInsert(this.apiName, this.GroupLedgerLiist)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت ذخیره شد.\");\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در ذخیره اطلاعات\");\r\n }\r\n );\r\n } else this.sts.showDialog(ErroeMessage, \"خطا در دریافت کالا\");\r\n }\r\n public cancel() {\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { GroupLedger } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-groupledger-form\",\r\n templateUrl: \"./groupledger-form.component.html\",\r\n styleUrls: [\"./groupledger-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GroupLedgerFormComponent extends BaseFormComponent {\r\n private selectedGroupLedgerCodeLen: number;\r\n isOk4Load: boolean = false;\r\n constructor(private missetup: MisSetupService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.missetup.getall();\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"GroupLedger\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.GroupLedger.GroupLedger\");\r\n this.setlen();\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n if (this.missetup.getnumber(\"ACC\", \"PLLEN\") === 0)\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.BackOffice.ACC.GroupLedger.SettingNotComplete\"),\r\n this.translate(\"ClientApp.BackOffice.ACC.GroupLedger.ErrorSetting\")\r\n );\r\n\r\n if (!this.model.Code || this.model.Code <= 0) {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n this.setFormGroup(this.model);\r\n }\r\n });\r\n }\r\n if (this.columns && this.columns.length > 0) {\r\n var item = this.columns.filter(function (item) {\r\n return item.name === \"Code\";\r\n })[0];\r\n if (item) {\r\n item.maxLength = this.missetup.getnumber(\"ACC\", \"PLLEN\");\r\n item.minLength = 1;\r\n }\r\n }\r\n }\r\n setlen() {\r\n this.selectedGroupLedgerCodeLen = this.missetup.getnumber(\"ACC\", \"PLLEN\");\r\n if (this.selectedGroupLedgerCodeLen === 0)\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.BackOffice.ACC.GroupLedger.SettingNotComplete\"),\r\n this.translate(\"ClientApp.BackOffice.ACC.GroupLedger.ErrorSetting\")\r\n );\r\n }\r\n\r\n setColumnAttribute() {\r\n let minformat = [1, 10, 100, 1000, 10000, 100000];\r\n let maxformat = [9, 99, 999, 9999, 99999, 999999];\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"GroupLedgerId\") x.disabled = !this.isNewRow;\r\n if (x.name === \"Code\") {\r\n x.min = minformat[this.selectedGroupLedgerCodeLen - 1];\r\n x.max = maxformat[this.selectedGroupLedgerCodeLen - 1];\r\n }\r\n });\r\n }\r\n isValid() {\r\n if (!this.selectedGroupLedgerCodeLen || this.selectedGroupLedgerCodeLen <= 0) this.setlen();\r\n let result =\r\n this.formGroup.controls[\"Code\"] &&\r\n this.formGroup.controls[\"Code\"].value &&\r\n this.formGroup.controls[\"Code\"].value.toString().length === this.selectedGroupLedgerCodeLen;\r\n if (!result)\r\n this.formGroup.controls[\"Code\"].setErrors({ customerror: `${this.translate(\"ClientApp.BackOffice.ACC.GeneralLedger.GroupLedgerWrong\")}` });\r\n return result;\r\n }\r\n addControl() {\r\n this.isOk4Load = false;\r\n this.isOk4Load = true;\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { ColumnBase } from \"@progress/kendo-angular-grid\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, GroupLedger, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { GroupLedgerImportExcelFormComponent } from \"../group-ledger-import-excel/group-ledger-import-excel-form.component\";\r\nimport { GroupLedgerFormComponent } from \"../groupledger-form/groupledger-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-groupledger-list\",\r\n templateUrl: \"./groupledger-list.component.html\",\r\n styleUrls: [\"./groupledger-list.component.scss\"],\r\n})\r\nexport class GroupLedgerListComponent extends BaseListComponent {\r\n actions: EntityListAction[];\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n constructor() {\r\n super();\r\n this.inputEditorform = GroupLedgerFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.areaName = \"Accounting\";\r\n this.apiName = \"GroupLedger\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.GroupLedger.GroupLedger\");\r\n this.setactions();\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"ImportFromExcel\",\r\n disabled: false,\r\n displayName: \"ورودی اکسل\",\r\n iconName: \"icon-file-excel-o\",\r\n apiName: \"GroupLedger/ImportExcel\",\r\n areaName: \"Accounting\",\r\n Form_Component: GroupLedgerImportExcelFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: GroupLedger,\r\n onRowsSelected: GroupLedger[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n if (action.name === \"ImportFromExcel\") {\r\n var gridInfo = this.getGridInfo(this.grid.grid.columns.toArray());\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n gridInfo: gridInfo,\r\n label: action.displayName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n }\r\n }\r\n\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.getGridInfo(this.grid.grid.columns.toArray()));\r\n });\r\n }\r\n\r\n getGridInfo(columns: ColumnBase[]): GridColumnInfoDetail[] {\r\n return columns\r\n .filter((x) => !x.hidden)\r\n .map((x) => {\r\n const info = new GridColumnInfoDetail();\r\n info.name = x[\"field\"];\r\n info.hidden = x.hidden;\r\n info.orderindex = x.orderIndex;\r\n info.title = x.title;\r\n return info;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { GroupLedgerImportExcelFormComponent } from \"./group-ledger-import-excel/group-ledger-import-excel-form.component\";\r\nimport { GroupLedgerFormComponent } from \"./groupledger-form/groupledger-form.component\";\r\nimport { GroupLedgerListComponent } from \"./groupledger-list/groupledger-list.component\";\r\n\r\nconst components = [GroupLedgerListComponent, GroupLedgerFormComponent, GroupLedgerImportExcelFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class GroupLedgerModule {}\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n\r\nexport class AccVoucherKind extends EntityBase {\r\n public Code: number;\r\n public Title: string;\r\n public LatinTitle: string;\r\n public IsOperating: boolean;\r\n}\r\n","export class VoucherInfo {\r\n public StatusKindCode?: number;\r\n public FromStatusKindCode?: number;\r\n public Id?: number;\r\n public FiscalYearId: number;\r\n public VoucherDate: Date;\r\n public BranchId?: number;\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { AccStatusKind, RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models/form-control.model\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherHeader } from \"../models/accvoucherheader.model\";\r\n\r\n@Component({\r\n selector: \"ngx-movement-voucher\",\r\n templateUrl: \"./movement-voucher.component.html\",\r\n styleUrls: [\"./movement-voucher.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MovementVoucherComponent extends BaseFormComponent {\r\n headerColumns: form_control[] = [];\r\n datalist: AccVoucherHeader[] = [];\r\n DefaultValues: Dictionary = [];\r\n isLoading: boolean = false;\r\n isOk4Loading: boolean = false;\r\n constructor(__id: FormContainerModel, _tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n @ViewChild(\"Grid\") public grid: KGridComponent;\r\n async ngOnInit() {\r\n this.currentrow = undefined;\r\n this.apiName = \"AccVoucherHeader\";\r\n this.areaName = \"Accounting\";\r\n this.label = \"جابجایی اسناد\";\r\n this.setHeaderColumns();\r\n super.ngOnInit();\r\n }\r\n setColumnAttribute() {\r\n this.columns = this.columns.filter((x) => x.name === \"VoucherDate\" || x.name === \"Id\");\r\n }\r\n setdefault() {\r\n this.formGroup = this.setFormGroup(this.model, this.columns);\r\n }\r\n addControl() {\r\n this.isOk4Loading = true;\r\n }\r\n onChanged($event) {\r\n if (!this.headerColumns || this.headerColumns.length <= 0) this.setHeaderColumns();\r\n let date = this.formGroup.controls[\"VoucherDate\"].value;\r\n this.datalist = [];\r\n this.httpCommonService\r\n .create(this.apiName + \"/MovementVoucher\", {\r\n VoucherDate: date,\r\n FiscalYearId: this.accountService.authService.currentFiscalYear.Id,\r\n BranchId: this.accountService.authService.currentBranchId,\r\n })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x: AccVoucherHeader[]) => {\r\n if (x) this.datalist = x.sort((a, b) => a.VoucherNo - b.VoucherNo).sort((a, b) => a.DailyNo - b.DailyNo);\r\n this.isLoading = false;\r\n this.grid.refreshData();\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n this.isLoading = false;\r\n this.sts.showDialog(`خطا در بار گذاری اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n moveUp() {\r\n if (!this.currentrow) this.sts.showDialog(\"هیچ سندی انتخاب نشده است.\", \"خطا\");\r\n else {\r\n let preRow = this.datalist.find((x) => x.VoucherNo === this.currentrow.VoucherNo - 1 && x.DailyNo === this.currentrow.DailyNo - 1);\r\n if (preRow) {\r\n if (!this.isLoading) {\r\n this.isLoading = true;\r\n if (preRow.StatusKindCode >= AccStatusKind.Confirm) {\r\n this.sts.showDialog(\"اسناد بررسی شده /قطعی غیر قابل ویرایش است.\", \"خطا\");\r\n return;\r\n }\r\n if (this.currentrow.StatusKindCode >= AccStatusKind.Confirm) {\r\n this.sts.showDialog(\"اسناد بررسی شده /قطعی غیر قابل ویرایش است.\", \"خطا\");\r\n return;\r\n }\r\n preRow.VoucherNo++;\r\n preRow.DailyNo++;\r\n this.currentrow.VoucherNo--;\r\n this.currentrow.DailyNo--;\r\n preRow.State = RowState.Modify;\r\n this.currentrow.State = RowState.Modify;\r\n if (preRow.VoucherNo !== this.currentrow.VoucherNo && preRow.DailyNo !== this.currentrow.DailyNo) this._Save([preRow, this.currentrow]);\r\n }\r\n }\r\n }\r\n }\r\n moveDown() {\r\n if (!this.currentrow) this.sts.showDialog(\"هیچ سندی انتخاب نشده است.\", \"خطا\");\r\n else {\r\n let nextId = this.datalist.find((x) => x.VoucherNo === this.currentrow.VoucherNo + 1 && x.DailyNo === this.currentrow.DailyNo + 1);\r\n if (nextId) {\r\n if (!this.isLoading) {\r\n this.isLoading = true;\r\n if (nextId.StatusKindCode >= AccStatusKind.Confirm) {\r\n this.sts.showDialog(\"اسناد بررسی شده /قطعی غیر قابل ویارشی است.\", \"خطا\");\r\n return;\r\n }\r\n if (this.currentrow.StatusKindCode >= AccStatusKind.Confirm) {\r\n this.sts.showDialog(\"اسناد بررسی شده /قطعی غیر قابل ویارشی است.\", \"خطا\");\r\n return;\r\n }\r\n nextId.VoucherNo--;\r\n nextId.DailyNo--;\r\n this.currentrow.VoucherNo++;\r\n this.currentrow.DailyNo++;\r\n\r\n nextId.State = RowState.Modify;\r\n this.currentrow.State = RowState.Modify;\r\n if (nextId.VoucherNo !== this.currentrow.VoucherNo && nextId.DailyNo !== this.currentrow.DailyNo) this._Save([nextId, this.currentrow]);\r\n }\r\n }\r\n }\r\n }\r\n voucherRenumber() {\r\n this.httpCommonService\r\n .get(\"AccVoucherHeader/VoucherRenumber/\" + this.accountService.authService.currentFiscalYear.Id + \"/\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n if (x) {\r\n this.onChanged(this.model.VoucherDate);\r\n this.sts.showDialog(\"اسناد شماره گذاری شد.\", \"\");\r\n }\r\n },\r\n (error) => this.sts.showDialog(`خطا در شماره گذاری اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n\r\n setHeaderColumns() {\r\n this.headerColumns = [];\r\n this.headerColumns.push({\r\n label: \"شماره سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"VoucherNo\",\r\n disabled: true,\r\n name: \"VoucherNo\",\r\n order: 0,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.headerColumns.push({\r\n label: \"شماره عطف\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"FixNo\",\r\n disabled: true,\r\n name: \"FixNo\",\r\n order: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.headerColumns.push({\r\n label: \"شماره روزانه\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DailyNo\",\r\n disabled: true,\r\n name: \"DailyNo\",\r\n order: 2,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.headerColumns.push({\r\n label: \"شماره فرعی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SlaveNo\",\r\n disabled: true,\r\n name: \"SlaveNo\",\r\n order: 3,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.headerColumns.push({\r\n label: \"تاریخ سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ShamsiVoucherDate\",\r\n disabled: true,\r\n name: \"ShamsiVoucherDate\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.headerColumns.push({\r\n label: \"دوره مالی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Year\",\r\n disabled: true,\r\n name: \"Year\",\r\n order: 5,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.headerColumns.push({\r\n label: \"ماه مالی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"FiscalMonth\",\r\n disabled: true,\r\n name: \"FiscalMonth\",\r\n order: 6,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.headerColumns.push({\r\n label: \"وضعیت سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"StatusKindTitle\",\r\n disabled: true,\r\n name: \"StatusKindTitle\",\r\n order: 7,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.headerColumns.push({\r\n label: \"نوع سیستم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SystemKindTitlee\",\r\n disabled: true,\r\n name: \"SystemKindTitlee\",\r\n order: 8,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.headerColumns.push({\r\n label: \"نوع سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"AccVoucherKindTitle\",\r\n disabled: true,\r\n name: \"AccVoucherKindTitle\",\r\n order: 9,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n }\r\n onRowSelected(event: AccVoucherHeader) {\r\n this.currentrow = event;\r\n }\r\n public _Save(entity: AccVoucherHeader[]) {\r\n if (!this.isSaving) {\r\n if (this.isValid()) {\r\n this.sts.showToast(\"info\", \"\", \"در حال ذخیره تغییرات...\");\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName.split(\"/\")[0], entity)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (response) => {\r\n this.isSaving = false;\r\n this.onChanged(this.currentrow.ShamsiVoucherDate);\r\n },\r\n (error) => {\r\n this.isLoading = false;\r\n this.saveFailedHelper(error);\r\n this.onChanged(this.currentrow.ShamsiVoucherDate);\r\n }\r\n );\r\n }\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { MovementVoucherComponent } from \"./movement-voucher.component\";\r\n\r\nconst components = [MovementVoucherComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class MovementVoucherModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, Permission, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { AggregatesInfo, GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"acc-balance-4\",\r\n templateUrl: \"acc-balance-4.component.html\",\r\n styleUrls: [\"acc-balance-4.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccBalance4Component extends BaseFormComponent {\r\n public apiName: string = \"AccountReview\";\r\n public label: string = \"تراز آزمایشی 4 ستونی\";\r\n public entitys: any[];\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n constructor(__id: FormContainerModel, _tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"AccBalance4\";\r\n this.pathPreFix = \"ACC\";\r\n this.apiName = \"AccountReview\";\r\n this.areaName = \"Accounting\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n getAccountLevel() {\r\n let list: any[] = [];\r\n list.push({ Key: \"PL\", Title: \"گروه حساب\" });\r\n list.push({ Key: \"GL\", Title: \"حساب کل\" });\r\n list.push({ Key: \"SL\", Title: \"حساب معین\" });\r\n list.push({ Key: \"DL1\", Title: \"حساب تفصیلی اول\" });\r\n list.push({ Key: \"DL2\", Title: \"حساب تفصیلی دوم\" });\r\n list.push({ Key: \"DL3\", Title: \"حساب تفصیلی سوم\" });\r\n list.push({ Key: \"DL4\", Title: \"حساب تفصیلی چهارم\" });\r\n list.push({ Key: \"DL5\", Title: \"حساب تفصیلی پنجم\" });\r\n return list;\r\n }\r\n\r\n async setColumns(): Promise {\r\n this.setGridColumns();\r\n this.setHeaderColumns();\r\n }\r\n\r\n private setHeaderColumns(): void {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سطح حساب\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"Key\",\r\n disabled: false,\r\n name: \"Key\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n private setGridColumns(): void {\r\n this.gridColumns.push({\r\n label: \"کد\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"AccountCode\",\r\n disabled: false,\r\n name: \"AccountCode\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"عنوان\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"AccountTitle\",\r\n disabled: false,\r\n name: \"AccountTitle\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"بدهکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SumDebit\",\r\n disabled: false,\r\n name: \"SumDebit\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n this.gridColumns.push({\r\n label: \"بستانکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SumCredit\",\r\n disabled: false,\r\n name: \"SumCredit\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n this.gridColumns.push({\r\n label: \"مانده بدهکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DebitRemain\",\r\n disabled: false,\r\n name: \"DebitRemain\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n this.gridColumns.push({\r\n label: \"مانده بستانکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"CreditRemain\",\r\n disabled: false,\r\n name: \"CreditRemain\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: true,\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: true,\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n\r\n loadData() {\r\n const formValue = this.formGroup.value;\r\n if (!formValue.FiscalYearId || !formValue.BranchId || !formValue.StartVoucherDate || !formValue.EndVoucherDate) return;\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value ?? 0, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n\r\n this.httpCommonService\r\n .GetFilterGrid(\"AccountReview/GetAccBalance4\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entitys = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"acc-balance-6\",\r\n templateUrl: \"acc-balance-6.component.html\",\r\n styleUrls: [\"acc-balance-6.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccBalance6Component extends BaseFormComponent {\r\n public apiName: string = \"AccountReview\";\r\n public label: string = \"تراز آزمایشی 6 ستونی\";\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n public entitys: any[];\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n constructor(__id: FormContainerModel, _tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"AccBalance6\";\r\n this.pathPreFix = \"ACC\";\r\n this.apiName = \"AccountReview\";\r\n this.areaName = \"Accounting\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n getAccountLevel() {\r\n let list: any[] = [];\r\n list.push({ Key: \"PL\", Title: \"گروه حساب\" });\r\n list.push({ Key: \"GL\", Title: \"حساب کل\" });\r\n list.push({ Key: \"SL\", Title: \"حساب معین\" });\r\n list.push({ Key: \"DL1\", Title: \"حساب تفصیلی اول\" });\r\n list.push({ Key: \"DL2\", Title: \"حساب تفصیلی دوم\" });\r\n list.push({ Key: \"DL3\", Title: \"حساب تفصیلی سوم\" });\r\n list.push({ Key: \"DL4\", Title: \"حساب تفصیلی چهارم\" });\r\n list.push({ Key: \"DL5\", Title: \"حساب تفصیلی پنجم\" });\r\n return list;\r\n }\r\n async setColumns() {\r\n this.gridColumns = [];\r\n this.gridColumns.push({\r\n label: \"کد\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"AccountCode\",\r\n disabled: false,\r\n name: \"AccountCode\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"عنوان\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"AccountTitle\",\r\n disabled: false,\r\n name: \"AccountTitle\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.gridColumns.push({\r\n label: \"گردش بدهکار قبل از دوره\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"BeforSumDebit\",\r\n disabled: false,\r\n name: \"BeforSumDebit\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n this.gridColumns.push({\r\n label: \" گردش بستانکار قبل از دوره\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"BeforSumCredit\",\r\n disabled: false,\r\n name: \"BeforSumCredit\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n\r\n this.gridColumns.push({\r\n label: \"بدهکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SumDebit\",\r\n disabled: false,\r\n name: \"SumDebit\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n this.gridColumns.push({\r\n label: \"بستانکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SumCredit\",\r\n disabled: false,\r\n name: \"SumCredit\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n this.gridColumns.push({\r\n label: \"مانده بدهکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DebitRemain\",\r\n disabled: false,\r\n name: \"DebitRemain\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n this.gridColumns.push({\r\n label: \"مانده بستانکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"CreditRemain\",\r\n disabled: false,\r\n name: \"CreditRemain\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سطح حساب\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"Key\",\r\n disabled: false,\r\n name: \"Key\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n const formValue = this.formGroup.value;\r\n if (!formValue.FiscalYearId || !formValue.BranchId || !formValue.StartVoucherDate || !formValue.EndVoucherDate) return;\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value ?? 0, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n\r\n this.httpCommonService\r\n .GetFilterGrid(\"AccountReview/GetAccBalance6\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entitys = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"acc-balance-8\",\r\n templateUrl: \"acc-balance-8.component.html\",\r\n styleUrls: [\"acc-balance-8.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccBalance8Component extends BaseFormComponent {\r\n public apiName: string = \"AccountReview\";\r\n public label: string = \"تراز آزمایشی 8 ستونی\";\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n entitys: any[];\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n constructor(__id: FormContainerModel, _tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"AccBalance8\";\r\n this.pathPreFix = \"ACC\";\r\n this.apiName = \"AccountReview\";\r\n this.areaName = \"Accounting\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n getAccountLevel() {\r\n let list: any[] = [];\r\n list.push({ Key: \"PL\", Title: \"گروه حساب\" });\r\n list.push({ Key: \"GL\", Title: \"حساب کل\" });\r\n list.push({ Key: \"SL\", Title: \"حساب معین\" });\r\n list.push({ Key: \"DL1\", Title: \"حساب تفصیلی اول\" });\r\n list.push({ Key: \"DL2\", Title: \"حساب تفصیلی دوم\" });\r\n list.push({ Key: \"DL3\", Title: \"حساب تفصیلی سوم\" });\r\n list.push({ Key: \"DL4\", Title: \"حساب تفصیلی چهارم\" });\r\n list.push({ Key: \"DL5\", Title: \"حساب تفصیلی پنجم\" });\r\n return list;\r\n }\r\n async setColumns() {\r\n this.gridColumns = [];\r\n this.gridColumns.push({\r\n label: \"کد\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"AccountCode\",\r\n disabled: false,\r\n name: \"AccountCode\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"عنوان\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"AccountTitle\",\r\n disabled: false,\r\n name: \"AccountTitle\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.gridColumns.push({\r\n label: \"بدهکار افتتاحیه\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SumDebitInClosing\",\r\n disabled: false,\r\n name: \"SumDebitInClosing\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n this.gridColumns.push({\r\n label: \"بستانکار افتتاحیه\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SumCreditInClosing\",\r\n disabled: false,\r\n name: \"SumCreditInClosing\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n\r\n this.gridColumns.push({\r\n label: \"گردش بدهکار قبل از دوره\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"BeforSumDebit\",\r\n disabled: false,\r\n name: \"BeforSumDebit\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n this.gridColumns.push({\r\n label: \"گردش بستانکار قبل از دوره\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"BeforSumCredit\",\r\n disabled: false,\r\n name: \"BeforSumCredit\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n columnWidth: 300,\r\n });\r\n\r\n this.gridColumns.push({\r\n label: \"بدهکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SumDebit\",\r\n disabled: false,\r\n name: \"SumDebit\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n columnWidth: 200,\r\n });\r\n this.gridColumns.push({\r\n label: \"بستانکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SumCredit\",\r\n disabled: false,\r\n name: \"SumCredit\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n columnWidth: 200,\r\n });\r\n this.gridColumns.push({\r\n label: \"مانده بدهکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DebitRemain\",\r\n disabled: false,\r\n name: \"DebitRemain\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n columnWidth: 200,\r\n });\r\n this.gridColumns.push({\r\n label: \"مانده بستانکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"CreditRemain\",\r\n disabled: false,\r\n name: \"CreditRemain\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n columnWidth: 200,\r\n });\r\n\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سطح حساب\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"Key\",\r\n disabled: false,\r\n name: \"Key\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n let filter: GridFilter[] = [];\r\n filter.push({ Type: \"F\", Filed: \"Key\", Value: this.formGroup.get(\"Key\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.httpCommonService\r\n .GetFilterGrid(\"AccountReview/GetAccBalance8\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entitys = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ReportReviewModule } from \"src/app/review/review.module\";\r\nimport { AccBalance4Component } from \"./aa-balce4/acc-balance-4.component\";\r\nimport { AccBalance6Component } from \"./aa-balce6/acc-balance-6.component\";\r\nimport { AccBalance8Component } from \"./aa-balce8/acc-balance-8.component\";\r\nimport { AccBalanceSheetCompareWithPrevYearGeneralLedgerFilterdByDetailLedgerComponent } from \"./balance-sheet-compare-prev-year-generalledger-filterd-by-detailLedger/balance-sheet-compare-prev-year-generalledger-filterd-by-detailLedger.component\";\r\nimport { AccBalanceSheetCompareWithPrevYearSubLedgerFilterdByDetailLedgerComponent } from \"./balance-sheet-compare-prev-year-subledger-filterd-by-detailLedger/balance-sheet-compare-prev-year-subledger-filterd-by-detailLedger.component\";\r\nimport { AccBalanceSheetCompareWithPrevYearComponent } from \"./balance-sheet-compare-with-prev-year/balance-sheet-compare-with-prev-year.component\";\r\nimport { AccBalanceSheetComponent } from \"./balance-sheet/acc-balance-sheet.component\";\r\nimport { AccDetailLedegerSubledgerBalancSheetComponent } from \"./detail-ledeger-subledger-balanc-sheet/detail-ledeger-subledger-balanc-sheet.component\";\r\nimport { GeneralLedgerDailyVoucherComponent } from \"./general-ledger-daily-voucher/general-ledger-daily-voucher.component\";\r\nimport { GeneralLedgerVoucherComponent } from \"./general-ledger-voucher/general-ledger-voucher.component\";\r\nimport { GeneralLedgerVoucherDocumentComponent } from \"./general-ledger-voucher-document/general-ledger-voucher-document.component\";\r\nimport { GeneralLedgerDailyVoucherDocumentComponent } from \"./general-ledger-daily-voucher-document/general-ledger-daily-voucher-document.component\";\r\n\r\nconst components = [\r\n AccBalanceSheetComponent,\r\n AccBalance4Component,\r\n AccBalance6Component,\r\n AccBalance8Component,\r\n AccDetailLedegerSubledgerBalancSheetComponent,\r\n AccBalanceSheetCompareWithPrevYearComponent,\r\n AccBalanceSheetCompareWithPrevYearGeneralLedgerFilterdByDetailLedgerComponent,\r\n AccBalanceSheetCompareWithPrevYearSubLedgerFilterdByDetailLedgerComponent,\r\n GeneralLedgerVoucherComponent,\r\n GeneralLedgerVoucherDocumentComponent,\r\n GeneralLedgerDailyVoucherComponent,\r\n GeneralLedgerDailyVoucherDocumentComponent,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, ReportReviewModule],\r\n})\r\nexport class AccountReportModule {}\r\n","import { ChangeDetectionStrategy, Component, OnDestroy, OnInit, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup } from \"@angular/forms\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { SsgTabsetComponent } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabset/tabset.component\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, form_control, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { SystemKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { AccountService, GridFilter, HttpCommonService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvVoucherFormComponent } from \"src/app/backoffice/inv/invvoucher/invvoucher-form/invvoucher-form.component\";\r\nimport { SellVoucherFormComponent } from \"src/app/backoffice/sell/sell-voucher/sell-voucher-form/sell-voucher-form.component\";\r\nimport { TrsVoucherFormComponent } from \"src/app/backoffice/trs/trs-voucher/trs-voucher-form/trs-voucher-form.component\";\r\nimport { TrsVoucherModalListComponent } from \"src/app/backoffice/trs/trs-voucher/trs-voucher-modal-list/trs-voucher-modal-list.component\";\r\nimport { ReviewFilterItem } from \"src/app/review/models/review-filter-item\";\r\nimport { GirdReviewComponent } from \"src/app/review/review-card/grid-review/grid-review.component\";\r\nimport { ReviewService } from \"src/app/review/review.service\";\r\nimport { InvVoucherModalListComponent } from \"../../../inv/invvoucher/inv-voucher-modal-list/inv-voucher-modal-list.component\";\r\nimport { AccVoucherFormComponent } from \"../../accvoucher/accvoucher-form/accvoucher-form.component\";\r\n\r\n@Component({\r\n selector: \"account-review\",\r\n templateUrl: \"./account-review.component.html\",\r\n styleUrls: [\"./account-review.component.scss\"],\r\n providers: [ReviewService],\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class AccountReviewComponent implements OnInit, OnDestroy {\r\n actions: EntityListAction[];\r\n unSortableFilterable: string[] = [];\r\n formGroup: UntypedFormGroup;\r\n protected ngUnsubscribe = new Subject();\r\n GetGroupLedgerColumns: form_control[];\r\n GetGeneralLedgerColumns: form_control[];\r\n GetSubLedgerColumns: form_control[];\r\n GetDetailLedger1Columns: form_control[];\r\n GetDetailLedger2Columns: form_control[];\r\n GetDetailLedger3Columns: form_control[];\r\n GetDetailLedger4Columns: form_control[];\r\n GetDetailLedger5Columns: form_control[];\r\n GetDetailLedger6Columns: form_control[];\r\n GetDetailLedger7Columns: form_control[];\r\n GetDetailLedgerColumns: form_control[];\r\n GetVoucherDetailColumns: form_control[];\r\n GetAcoountAnalysticColumns: form_control[];\r\n selected: string = \"\";\r\n AccVoucherKindIds: number[] = [];\r\n AccStatusKindIds: number[] = [];\r\n SystemKindIds: number[] = [];\r\n BranchIds: number[] = [];\r\n DetailLedgerKindIds: number[] = [];\r\n isloaded: boolean = false;\r\n permisionList: NameValue[] = [];\r\n public activeTabTitle: string;\r\n @ViewChild(GirdReviewComponent) public sepidzgrid: GirdReviewComponent;\r\n @ViewChild(SsgTabsetComponent) public ssgTabset: SsgTabsetComponent;\r\n\r\n constructor(\r\n private service: ReviewService,\r\n private fb: UntypedFormBuilder,\r\n private missetup: MisSetupService,\r\n private tabsservice: TabularService,\r\n protected translateText: TranslateService,\r\n private sts: ShowToastrService,\r\n private accountService: AccountService,\r\n protected dialogService: SimpleModalService,\r\n private httpCommonService: HttpCommonService\r\n ) {\r\n this.onDoubleClick = this.onDoubleClick.bind(this);\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n get _GetVoucherDetailColumns() {\r\n const filter = this.service.filterSubject.getValue();\r\n if (filter) {\r\n let ShowBeforeRemain: boolean = filter.items.some((r) => r.key === \"ShowBeforeRemain\");\r\n let RunningTotal: boolean = filter.items.some((r) => r.key === \"ShowRunningTotal\");\r\n this.GetVoucherDetailColumns.find((x) => x.name === \"RunningTotal\").listVisible = RunningTotal;\r\n this.GetVoucherDetailColumns.find((x) => x.name === \"BeforRemainDebit\").listVisible = ShowBeforeRemain;\r\n this.GetVoucherDetailColumns.find((x) => x.name === \"BeforRemainCredit\").listVisible = ShowBeforeRemain;\r\n this.sepidzgrid.onlyDefaultSortKey = RunningTotal;\r\n }\r\n return this.GetVoucherDetailColumns;\r\n }\r\n translate = function _translate(str: string): string {\r\n return this.translateText.instant(str);\r\n };\r\n _detailLedgerLevel: number;\r\n get detailLedgerLevel(): number {\r\n if (!this._detailLedgerLevel) this._detailLedgerLevel = this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n return this._detailLedgerLevel;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setactions();\r\n let level = this.detailLedgerLevel;\r\n // this.service.startDate = new Date();\r\n // this.service.endDate = new Date();\r\n\r\n let currentFiscalYear = this.accountService.authService.currentFiscalYear;\r\n if (currentFiscalYear) {\r\n this.service.startDate.setDate(this.service.startDate.getDate() - 30);\r\n this.service.startDate$.next(this.service.startDate);\r\n if (currentFiscalYear && currentFiscalYear.StartDate) {\r\n let fystartDate = new Date(currentFiscalYear.StartDate);\r\n if (fystartDate.setHours(0, 0, 0, 0) > this.service.startDate.setHours(0, 0, 0, 0))\r\n this.service.startDate = this.accountService.authService.currentFiscalYear.StartDate;\r\n else if (fystartDate.setHours(0, 0, 0, 0) < this.service.startDate.setHours(0, 0, 0, 0)) {\r\n this.service.startDate = currentFiscalYear.StartDate;\r\n this.service.endDate = currentFiscalYear.EndDate;\r\n this.service.startDate$.next(currentFiscalYear.StartDate);\r\n this.service.endDate$.next(currentFiscalYear.EndDate);\r\n }\r\n }\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.service.startDate.setDate(this.service.startDate.getDate() - 30);\r\n let fystartDate = new Date(x.StartDate);\r\n if (fystartDate.setHours(0, 0, 0, 0) > this.service.startDate.setHours(0, 0, 0, 0)) this.service.startDate = x.StartDate;\r\n else if (fystartDate.setHours(0, 0, 0, 0) < this.service.startDate.setHours(0, 0, 0, 0)) {\r\n this.service.startDate = x.StartDate;\r\n this.service.endDate = x.EndDate;\r\n this.service.startDate$.next(x.StartDate);\r\n this.service.endDate$.next(x.EndDate);\r\n }\r\n }\r\n });\r\n this.BranchIds.push(this.accountService.authService.currentBranchId);\r\n this.service.addFilter(this.accountService.authService.currentBranch.Title, [\r\n {\r\n key: \"BranchIds\",\r\n value: this.accountService.authService.currentBranchId,\r\n title: this.accountService.authService.currentBranch.Title,\r\n persianKey: this.accountService.authService.currentBranch.Title,\r\n },\r\n ]);\r\n this.formGroup = this.fb.group({\r\n AccVoucherKindIds: this.AccVoucherKindIds,\r\n AccStatusKindIds: this.AccStatusKindIds,\r\n SystemKindIds: this.SystemKindIds,\r\n BranchIds: this.BranchIds,\r\n DetailLedgerKindIds: this.DetailLedgerKindIds,\r\n ShowBeforeRemain: false,\r\n ShowRunningTotal: false,\r\n NotShowWithRemain: false,\r\n SlaveNo: undefined,\r\n StartNumber: undefined,\r\n EndNumber: undefined,\r\n });\r\n let ShowBeforeRemain: boolean = false;\r\n this.service.filterSubject.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n ShowBeforeRemain = x.items.some((r) => r.key === \"ShowBeforeRemain\");\r\n let RunningTotal: boolean = x.items.some((r) => r.key === \"ShowRunningTotal\");\r\n this.populateGridColumns(ShowBeforeRemain);\r\n if (this.GetVoucherDetailColumns && this.GetVoucherDetailColumns.length > 0) {\r\n this.GetVoucherDetailColumns.find((x) => x.name === \"RunningTotal\").listVisible = RunningTotal;\r\n this.GetVoucherDetailColumns.find((x) => x.name === \"BeforRemainDebit\").listVisible = ShowBeforeRemain;\r\n this.GetVoucherDetailColumns.find((x) => x.name === \"BeforRemainCredit\").listVisible = ShowBeforeRemain;\r\n }\r\n }\r\n });\r\n this.populateGridColumns(ShowBeforeRemain);\r\n this.setColumns();\r\n }\r\n setColumns() {\r\n this.httpCommonService\r\n .get(\"AccountReview/GetAccountReviewInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetVoucherDetailColumns = data as form_control[];\r\n this.GetVoucherDetailColumns.forEach((x) => {\r\n if (x.listVisible === null) x.listVisible = undefined;\r\n });\r\n this.GetVoucherDetailColumns = this.GetVoucherDetailColumns.sort((a, b) => a.order - b.order);\r\n this.setColumnVisiblty();\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n setColumnVisiblty() {\r\n this.GetVoucherDetailColumns.forEach((x) => {\r\n if (x.name === \"DetailLedger1Code\" || x.name === \"DetailLedger1Title\") {\r\n x.listVisible = this.detailLedgerLevel >= 1;\r\n }\r\n if (x.name === \"DetailLedger2Code\" || x.name === \"DetailLedger2Title\") {\r\n x.listVisible = this.detailLedgerLevel >= 2;\r\n }\r\n if (x.name === \"DetailLedger3Code\" || x.name === \"DetailLedger3Title\") {\r\n x.listVisible = this.detailLedgerLevel >= 3;\r\n }\r\n if (x.name === \"DetailLedger4Code\" || x.name === \"DetailLedger4Title\") {\r\n x.listVisible = this.detailLedgerLevel >= 4;\r\n }\r\n if (x.name === \"DetailLedger5Code\" || x.name === \"DetailLedger5Title\") {\r\n x.listVisible = this.detailLedgerLevel >= 5;\r\n }\r\n if (x.name === \"DetailLedger6Code\" || x.name === \"DetailLedger6Title\") {\r\n x.listVisible = this.detailLedgerLevel >= 6;\r\n }\r\n if (x.name === \"DetailLedger7Code\" || x.name === \"DetailLedger7Title\") {\r\n x.listVisible = this.detailLedgerLevel >= 7;\r\n }\r\n if (x.name === \"DetailLedger1Code\" || x.name === \"DetailLedger1Title\") {\r\n x.listVisible = this.detailLedgerLevel >= 2;\r\n }\r\n });\r\n }\r\n populateGridColumns(ShowBeforeRemain: boolean): any {\r\n this.GetGroupLedgerColumns = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"GroupLedgerCode\",\r\n modelName: \"GroupLedgerCode\",\r\n listVisible: true,\r\n label: \"کد گروه\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"GroupLedgerTitle\",\r\n modelName: \"GroupLedgerTitle\",\r\n listVisible: true,\r\n label: \"عنوان گروه\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Debit\",\r\n modelName: \"Debit\",\r\n listVisible: true,\r\n label: \"بدهکار\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Credit\",\r\n modelName: \"Credit\",\r\n listVisible: true,\r\n label: \"بستانکار\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainDebit\",\r\n modelName: \"RemainDebit\",\r\n listVisible: true,\r\n label: \"مانده بدهکار\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainCredit\",\r\n modelName: \"RemainCredit\",\r\n listVisible: true,\r\n label: \"مانده بستانکار\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n if (ShowBeforeRemain) {\r\n this.GetGroupLedgerColumns.push({\r\n name: \"BeforRemainDebit\",\r\n modelName: \"BeforRemainDebit\",\r\n listVisible: true,\r\n label: \"بدهکار ابتدای دوره\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGroupLedgerColumns.push({\r\n name: \"BeforRemainCredit\",\r\n modelName: \"BeforRemainCredit\",\r\n listVisible: true,\r\n label: \"بستانکار ابتدای دوره\",\r\n order: 4,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGroupLedgerColumns = this.GetGroupLedgerColumns.sort((a, b) => a.order - b.order);\r\n }\r\n this.GetGeneralLedgerColumns = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"GeneralLedgerCode\",\r\n modelName: \"GeneralLedgerCode\",\r\n listVisible: true,\r\n label: \"کد کل\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"GeneralLedgerTitle\",\r\n modelName: \"GeneralLedgerTitle\",\r\n listVisible: true,\r\n label: \"عنوان کل\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Debit\",\r\n modelName: \"Debit\",\r\n listVisible: true,\r\n label: \"بدهکار\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Credit\",\r\n modelName: \"Credit\",\r\n listVisible: true,\r\n label: \"بستانکار\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainDebit\",\r\n modelName: \"RemainDebit\",\r\n listVisible: true,\r\n label: \"مانده بدهکار\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainCredit\",\r\n modelName: \"RemainCredit\",\r\n listVisible: true,\r\n label: \"مانده بستانکار\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n if (ShowBeforeRemain) {\r\n this.GetGeneralLedgerColumns.push({\r\n name: \"BeforRemainDebit\",\r\n modelName: \"BeforRemainDebit\",\r\n listVisible: true,\r\n label: \"بدهکار ابتدای دوره\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGeneralLedgerColumns.push({\r\n name: \"BeforRemainCredit\",\r\n modelName: \"BeforRemainCredit\",\r\n listVisible: true,\r\n label: \"بستانکار ابتدای دوره\",\r\n order: 4,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGeneralLedgerColumns = this.GetGeneralLedgerColumns.sort((a, b) => a.order - b.order);\r\n }\r\n this.GetSubLedgerColumns = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"SubLedgerCode\",\r\n modelName: \"SubLedgerCode\",\r\n listVisible: true,\r\n label: \"کد معین\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"SubLedgerTitle\",\r\n modelName: \"SubLedgerTitle\",\r\n listVisible: true,\r\n label: \"عنوان معین\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Debit\",\r\n modelName: \"Debit\",\r\n listVisible: true,\r\n label: \"بدهکار\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Credit\",\r\n modelName: \"Credit\",\r\n listVisible: true,\r\n label: \"بستانکار\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainDebit\",\r\n modelName: \"RemainDebit\",\r\n listVisible: true,\r\n label: \"مانده بدهکار\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainCredit\",\r\n modelName: \"RemainCredit\",\r\n listVisible: true,\r\n label: \"مانده بستانکار\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n if (ShowBeforeRemain) {\r\n this.GetSubLedgerColumns.push({\r\n name: \"BeforRemainDebit\",\r\n modelName: \"BeforRemainDebit\",\r\n listVisible: true,\r\n label: \"بدهکار ابتدای دوره\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetSubLedgerColumns.push({\r\n name: \"BeforRemainCredit\",\r\n modelName: \"BeforRemainCredit\",\r\n listVisible: true,\r\n label: \"بستانکار ابتدای دوره\",\r\n order: 4,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetSubLedgerColumns = this.GetSubLedgerColumns.sort((a, b) => a.order - b.order);\r\n }\r\n this.GetDetailLedger1Columns = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedgerCode\",\r\n modelName: \"DetailLedgerCode\",\r\n listVisible: true,\r\n label: \"کد حساب تفصیلی\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedgerTitle\",\r\n modelName: \"DetailLedgerTitle\",\r\n listVisible: true,\r\n label: \"عنوان حساب تفصیلی\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Debit\",\r\n modelName: \"Debit\",\r\n listVisible: true,\r\n label: \"بدهکار\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Credit\",\r\n modelName: \"Credit\",\r\n listVisible: true,\r\n label: \"بستانکار\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainDebit\",\r\n modelName: \"RemainDebit\",\r\n listVisible: true,\r\n label: \"مانده بدهکار\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainCredit\",\r\n modelName: \"RemainCredit\",\r\n listVisible: true,\r\n label: \"مانده بستانکار\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n if (ShowBeforeRemain) {\r\n this.GetDetailLedger1Columns.push({\r\n name: \"BeforRemainDebit\",\r\n modelName: \"BeforRemainDebit\",\r\n listVisible: true,\r\n label: \"بدهکار ابتدای دوره\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedger1Columns.push({\r\n name: \"BeforRemainCredit\",\r\n modelName: \"BeforRemainCredit\",\r\n listVisible: true,\r\n label: \"بستانکار ابتدای دوره\",\r\n order: 4,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedger1Columns = this.GetDetailLedger1Columns.sort((a, b) => a.order - b.order);\r\n }\r\n this.GetDetailLedger2Columns = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedger2Code\",\r\n modelName: \"DetailLedger2Code\",\r\n listVisible: true,\r\n label: \"کد حساب تفصیلی\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedger2Title\",\r\n modelName: \"DetailLedger2Title\",\r\n listVisible: true,\r\n label: \"عنوان حساب تفصیلی\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Debit\",\r\n modelName: \"Debit\",\r\n listVisible: true,\r\n label: \"بدهکار\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Credit\",\r\n modelName: \"Credit\",\r\n listVisible: true,\r\n label: \"بستانکار\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainDebit\",\r\n modelName: \"RemainDebit\",\r\n listVisible: true,\r\n label: \"مانده بدهکار\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainCredit\",\r\n modelName: \"RemainCredit\",\r\n listVisible: true,\r\n label: \"مانده بستانکار\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n if (ShowBeforeRemain) {\r\n this.GetDetailLedger2Columns.push({\r\n name: \"BeforRemainDebit\",\r\n modelName: \"BeforRemainDebit\",\r\n listVisible: true,\r\n label: \"بدهکار ابتدای دوره\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedger2Columns.push({\r\n name: \"BeforRemainCredit\",\r\n modelName: \"BeforRemainCredit\",\r\n listVisible: true,\r\n label: \"بستانکار ابتدای دوره\",\r\n order: 4,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedger2Columns = this.GetDetailLedger2Columns.sort((a, b) => a.order - b.order);\r\n }\r\n this.GetDetailLedger3Columns = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedger3Code\",\r\n modelName: \"DetailLedger3Code\",\r\n listVisible: true,\r\n label: \"کد حساب تفصیلی\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedger3Title\",\r\n modelName: \"DetailLedger3Title\",\r\n listVisible: true,\r\n label: \"عنوان حساب تفصیلی\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Debit\",\r\n modelName: \"Debit\",\r\n listVisible: true,\r\n label: \"بدهکار\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Credit\",\r\n modelName: \"Credit\",\r\n listVisible: true,\r\n label: \"بستانکار\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainDebit\",\r\n modelName: \"RemainDebit\",\r\n listVisible: true,\r\n label: \"مانده بدهکار\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainCredit\",\r\n modelName: \"RemainCredit\",\r\n listVisible: true,\r\n label: \"مانده بستانکار\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n if (ShowBeforeRemain) {\r\n this.GetDetailLedger3Columns.push({\r\n name: \"BeforRemainDebit\",\r\n modelName: \"BeforRemainDebit\",\r\n listVisible: true,\r\n label: \"بدهکار ابتدای دوره\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedger3Columns.push({\r\n name: \"BeforRemainCredit\",\r\n modelName: \"BeforRemainCredit\",\r\n listVisible: true,\r\n label: \"بستانکار ابتدای دوره\",\r\n order: 4,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedger3Columns = this.GetDetailLedger3Columns.sort((a, b) => a.order - b.order);\r\n }\r\n this.GetDetailLedger4Columns = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedger4Code\",\r\n modelName: \"DetailLedger4Code\",\r\n listVisible: true,\r\n label: \"کد حساب تفصیلی\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedger4Title\",\r\n modelName: \"DetailLedger4Title\",\r\n listVisible: true,\r\n label: \"عنوان حساب تفصیلی\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Debit\",\r\n modelName: \"Debit\",\r\n listVisible: true,\r\n label: \"بدهکار\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Credit\",\r\n modelName: \"Credit\",\r\n listVisible: true,\r\n label: \"بستانکار\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainDebit\",\r\n modelName: \"RemainDebit\",\r\n listVisible: true,\r\n label: \"مانده بدهکار\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainCredit\",\r\n modelName: \"RemainCredit\",\r\n listVisible: true,\r\n label: \"مانده بستانکار\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n if (ShowBeforeRemain) {\r\n this.GetDetailLedger4Columns.push({\r\n name: \"BeforRemainDebit\",\r\n modelName: \"BeforRemainDebit\",\r\n listVisible: true,\r\n label: \"بدهکار ابتدای دوره\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedger4Columns.push({\r\n name: \"BeforRemainCredit\",\r\n modelName: \"BeforRemainCredit\",\r\n listVisible: true,\r\n label: \"بستانکار ابتدای دوره\",\r\n order: 4,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedger4Columns = this.GetDetailLedger4Columns.sort((a, b) => a.order - b.order);\r\n }\r\n this.GetDetailLedger5Columns = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedger5Code\",\r\n modelName: \"DetailLedger5Code\",\r\n listVisible: true,\r\n label: \"کد حساب تفصیلی\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedger5Title\",\r\n modelName: \"DetailLedger5Title\",\r\n listVisible: true,\r\n label: \"عنوان حساب تفصیلی\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Debit\",\r\n modelName: \"Debit\",\r\n listVisible: true,\r\n label: \"بدهکار\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Credit\",\r\n modelName: \"Credit\",\r\n listVisible: true,\r\n label: \"بستانکار\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainDebit\",\r\n modelName: \"RemainDebit\",\r\n listVisible: true,\r\n label: \"مانده بدهکار\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainCredit\",\r\n modelName: \"RemainCredit\",\r\n listVisible: true,\r\n label: \"مانده بستانکار\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n if (ShowBeforeRemain) {\r\n this.GetDetailLedger5Columns.push({\r\n name: \"BeforRemainDebit\",\r\n modelName: \"BeforRemainDebit\",\r\n listVisible: true,\r\n label: \"بدهکار ابتدای دوره\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedger5Columns.push({\r\n name: \"BeforRemainCredit\",\r\n modelName: \"BeforRemainCredit\",\r\n listVisible: true,\r\n label: \"بستانکار ابتدای دوره\",\r\n order: 4,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedger5Columns = this.GetDetailLedger5Columns.sort((a, b) => a.order - b.order);\r\n }\r\n this.GetDetailLedger6Columns = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedger6Code\",\r\n modelName: \"DetailLedger6Code\",\r\n listVisible: true,\r\n label: \"کد حساب تفصیلی\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedger6Title\",\r\n modelName: \"DetailLedger6Title\",\r\n listVisible: true,\r\n label: \"عنوان حساب تفصیلی\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Debit\",\r\n modelName: \"Debit\",\r\n listVisible: true,\r\n label: \"بدهکار\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Credit\",\r\n modelName: \"Credit\",\r\n listVisible: true,\r\n label: \"بستانکار\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainDebit\",\r\n modelName: \"RemainDebit\",\r\n listVisible: true,\r\n label: \"مانده بدهکار\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainCredit\",\r\n modelName: \"RemainCredit\",\r\n listVisible: true,\r\n label: \"مانده بستانکار\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n if (ShowBeforeRemain) {\r\n this.GetDetailLedger6Columns.push({\r\n name: \"BeforRemainDebit\",\r\n modelName: \"BeforRemainDebit\",\r\n listVisible: true,\r\n label: \"بدهکار ابتدای دوره\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedger6Columns.push({\r\n name: \"BeforRemainCredit\",\r\n modelName: \"BeforRemainCredit\",\r\n listVisible: true,\r\n label: \"بستانکار ابتدای دوره\",\r\n order: 4,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedger6Columns = this.GetDetailLedger6Columns.sort((a, b) => a.order - b.order);\r\n }\r\n this.GetDetailLedger7Columns = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedger7Code\",\r\n modelName: \"DetailLedger7Code\",\r\n listVisible: true,\r\n label: \"کد حساب تفصیلی\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedger7Title\",\r\n modelName: \"DetailLedger7Title\",\r\n listVisible: true,\r\n label: \"عنوان حساب تفصیلی\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Debit\",\r\n modelName: \"Debit\",\r\n listVisible: true,\r\n label: \"بدهکار\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Credit\",\r\n modelName: \"Credit\",\r\n listVisible: true,\r\n label: \"بستانکار\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainDebit\",\r\n modelName: \"RemainDebit\",\r\n listVisible: true,\r\n label: \"مانده بدهکار\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainCredit\",\r\n modelName: \"RemainCredit\",\r\n listVisible: true,\r\n label: \"مانده بستانکار\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n if (ShowBeforeRemain) {\r\n this.GetDetailLedger7Columns.push({\r\n name: \"BeforRemainDebit\",\r\n modelName: \"BeforRemainDebit\",\r\n listVisible: true,\r\n label: \"بدهکار ابتدای دوره\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedger7Columns.push({\r\n name: \"BeforRemainCredit\",\r\n modelName: \"BeforRemainCredit\",\r\n listVisible: true,\r\n label: \"بستانکار ابتدای دوره\",\r\n order: 4,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedger7Columns = this.GetDetailLedger7Columns.sort((a, b) => a.order - b.order);\r\n }\r\n this.GetDetailLedgerColumns = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedgerCode\",\r\n modelName: \"DetailLedgerCode\",\r\n listVisible: true,\r\n label: \"کد حساب تفصیلی\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedgerTitle\",\r\n modelName: \"DetailLedgerTitle\",\r\n listVisible: true,\r\n label: \"عنوان حساب تفصیلی\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Debit\",\r\n modelName: \"Debit\",\r\n listVisible: true,\r\n label: \"بدهکار\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Credit\",\r\n modelName: \"Credit\",\r\n listVisible: true,\r\n label: \"بستانکار\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainDebit\",\r\n modelName: \"RemainDebit\",\r\n listVisible: true,\r\n label: \"مانده بدهکار\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainCredit\",\r\n modelName: \"RemainCredit\",\r\n listVisible: true,\r\n label: \"مانده بستانکار\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n if (ShowBeforeRemain) {\r\n this.GetDetailLedgerColumns.push({\r\n name: \"BeforRemainDebit\",\r\n modelName: \"BeforRemainDebit\",\r\n listVisible: true,\r\n label: \"بدهکار ابتدای دوره\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedgerColumns.push({\r\n name: \"BeforRemainCredit\",\r\n modelName: \"BeforRemainCredit\",\r\n listVisible: true,\r\n label: \"بستانکار ابتدای دوره\",\r\n order: 4,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedgerColumns = this.GetDetailLedgerColumns.sort((a, b) => a.order - b.order);\r\n }\r\n this.GetAcoountAnalysticColumns = [\r\n {\r\n name: \"GroupLedgerCode\",\r\n modelName: \"GroupLedgerCode\",\r\n listVisible: true,\r\n label: \"کد گروه حساب\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"GroupLedgerTitle\",\r\n modelName: \"GroupLedgerTitle\",\r\n listVisible: true,\r\n label: \"عنوان گروه حساب\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"GeneralLedgerCode\",\r\n modelName: \"GeneralLedgerCode\",\r\n listVisible: true,\r\n label: \"کد حساب کل\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"GeneralLedgerTitle\",\r\n modelName: \"GeneralLedgerTitle\",\r\n listVisible: true,\r\n label: \"عنوان حساب کل\",\r\n order: 4,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"SubLedgerCode\",\r\n modelName: \"SubLedgerCode\",\r\n listVisible: true,\r\n label: \"کد حساب معین\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"SubLedgerTitle\",\r\n modelName: \"SubLedgerTitle\",\r\n listVisible: true,\r\n label: \"عنوان حساب معین\",\r\n order: 6,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n\r\n if (this.detailLedgerLevel >= 1) {\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"DetailLedger1Code\",\r\n modelName: \"DetailLedger1Code\",\r\n listVisible: true,\r\n label: \"کد حساب تفصیلی 1\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"DetailLedger1Title\",\r\n modelName: \"DetailLedger1Title\",\r\n listVisible: true,\r\n label: \"عنوان حساب تفصیلی 1\",\r\n order: 8,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n }\r\n if (this.detailLedgerLevel >= 2) {\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"DetailLedger2Code\",\r\n modelName: \"DetailLedger2Code\",\r\n listVisible: true,\r\n label: \"کد حساب تفصیلی 2\",\r\n order: 9,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"DetailLedger2Title\",\r\n modelName: \"DetailLedger2Title\",\r\n listVisible: true,\r\n label: \"عنوان حساب تفصیلی 2\",\r\n order: 10,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n }\r\n if (this.detailLedgerLevel >= 3) {\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"DetailLedger3Code\",\r\n modelName: \"DetailLedger3Code\",\r\n listVisible: true,\r\n label: \"کد حساب تفصیلی 3\",\r\n order: 11,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"DetailLedger3Title\",\r\n modelName: \"DetailLedger3Title\",\r\n listVisible: true,\r\n label: \"عنوان حساب تفصیلی 3\",\r\n order: 12,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n }\r\n if (this.detailLedgerLevel >= 4) {\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"DetailLedger4Code\",\r\n modelName: \"DetailLedger4Code\",\r\n listVisible: true,\r\n label: \"کد حساب تفصیلی 4\",\r\n order: 13,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"DetailLedger4Title\",\r\n modelName: \"DetailLedger4Title\",\r\n listVisible: true,\r\n label: \"عنوان حساب تفصیلی 4\",\r\n order: 14,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n }\r\n if (this.detailLedgerLevel >= 5) {\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"DetailLedger5Code\",\r\n modelName: \"DetailLedger5Code\",\r\n listVisible: true,\r\n label: \"کد حساب تفصیلی 5\",\r\n order: 15,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"DetailLedger5Title\",\r\n modelName: \"DetailLedger5Title\",\r\n listVisible: true,\r\n label: \"عنوان حساب تفصیلی 5\",\r\n order: 16,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n }\r\n if (this.detailLedgerLevel >= 6) {\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"DetailLedger6Code\",\r\n modelName: \"DetailLedger6Code\",\r\n listVisible: true,\r\n label: \"کد حساب تفصیلی 6\",\r\n order: 17,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"DetailLedger6Title\",\r\n modelName: \"DetailLedger6Title\",\r\n listVisible: true,\r\n label: \"عنوان حساب تفصیلی 6\",\r\n order: 18,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n }\r\n if (this.detailLedgerLevel >= 7) {\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"DetailLedger7Code\",\r\n modelName: \"DetailLedger7Code\",\r\n listVisible: true,\r\n label: \"کد تفصیلی هفتم\",\r\n order: 19,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"DetailLedger7Title\",\r\n modelName: \"DetailLedger7Title\",\r\n listVisible: true,\r\n label: \"عنوان تفصیلی هفتم\",\r\n order: 20,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n }\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"Debit\",\r\n modelName: \"Debit\",\r\n listVisible: true,\r\n label: \"بدهکار\",\r\n order: 25,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"Credit\",\r\n modelName: \"Credit\",\r\n listVisible: true,\r\n label: \"بستانکار\",\r\n order: 26,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"RemainDebit\",\r\n modelName: \"RemainDebit\",\r\n listVisible: false,\r\n label: \"مانده بدهکار\",\r\n order: 27,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"RemainCredit\",\r\n modelName: \"RemainCredit\",\r\n listVisible: false,\r\n label: \"مانده بستانکار\",\r\n order: 28,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n\r\n if (ShowBeforeRemain) {\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"BeforRemainDebit\",\r\n modelName: \"BeforRemainDebit\",\r\n listVisible: true,\r\n label: \"بدهکار ابتدای دوره\",\r\n order: 21,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetAcoountAnalysticColumns.push({\r\n name: \"BeforRemainCredit\",\r\n modelName: \"BeforRemainCredit\",\r\n listVisible: true,\r\n label: \"بستانکار ابتدای دوره\",\r\n order: 22,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetAcoountAnalysticColumns = this.GetAcoountAnalysticColumns.sort((a, b) => a.order - b.order);\r\n }\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n detailLedgerLevelValidate(level: number, _apiName: string): boolean {\r\n let flag: boolean = false;\r\n\r\n let temp = this.permisionList.find((x) => x.Name === `${_apiName}-${level}`);\r\n if (!temp) flag = this.detailLedgerLevel >= level && this.accountService.userHasPermission(_apiName, Permission.samePermission);\r\n else flag = temp.Value as boolean;\r\n if (!this.permisionList.some((x) => x.Name === `${_apiName}-${level}`)) this.permisionList.push({ Name: `${_apiName}-${level}`, Value: flag });\r\n return flag;\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: any, onRowsSelected: any[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n ///نمایش سند حسابداری\r\n if (action.name === \"AccVoucherHeader\") {\r\n var datatrasfer: Datatransfer = {};\r\n onRowSelected.Id = onRowSelected.AccVoucherHeaderId;\r\n datatrasfer.apiName = action.apiName;\r\n datatrasfer.areaName = action.areaName;\r\n datatrasfer.currentrow = onRowSelected;\r\n action.Form_Component = AccVoucherFormComponent;\r\n datatrasfer.apiName = \"AccVoucherHeader\";\r\n datatrasfer.areaName = \"Accounting\";\r\n datatrasfer.label = \"سند حسابداری\";\r\n this.showVoucher(datatrasfer, action);\r\n }\r\n\r\n ///سند مبنا\r\n if (action.name === \"BaseVoucher\") {\r\n var datatrasfer: Datatransfer = {};\r\n datatrasfer.apiName = action.apiName;\r\n datatrasfer.areaName = action.areaName;\r\n\r\n if (!onRowSelected || !onRowSelected.AccVoucherHeaderId || onRowSelected.SystemKindCode === SystemKind.ACC) {\r\n this.sts.showDialog(\"هیچ رکوردی انتخاب نشده است/سند مبنا وجود ندارد.\", \"\");\r\n return;\r\n } else if (onRowSelected) {\r\n if (onRowSelected.SystemKindCode === SystemKind.INV) {\r\n action.Form_Component = InvVoucherFormComponent;\r\n datatrasfer.apiName = \"InvVoucherHeader\";\r\n datatrasfer.areaName = \"Inventory\";\r\n datatrasfer.label = \"سند انبار\";\r\n this.httpCommonService\r\n .getList(`InvVoucherHeader/GetbyAccVoucherId/${onRowSelected.AccVoucherHeaderId}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any[]) => {\r\n if (data) {\r\n if (data.length == 1) {\r\n datatrasfer.currentrow = data[0];\r\n this.showVoucher(datatrasfer, action);\r\n } else {\r\n this.dialogService\r\n .open(\r\n InvVoucherModalListComponent,\r\n {\r\n label: datatrasfer.label,\r\n dataList: data,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n datatrasfer.currentrow = model;\r\n this.showVoucher(datatrasfer, action);\r\n }\r\n });\r\n }\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n if (onRowSelected.SystemKindCode === SystemKind.TRS) {\r\n action.Form_Component = TrsVoucherFormComponent;\r\n onRowSelected.Id = onRowSelected.TrsVoucherHeaderId;\r\n datatrasfer.apiName = \"TrsVoucherHeader\";\r\n datatrasfer.areaName = \"Treasury\";\r\n datatrasfer.label = \"سند خزانه\";\r\n this.httpCommonService\r\n .getList(`TrsVoucherHeader/GetbyAccVoucherId/${onRowSelected.AccVoucherHeaderId}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any[]) => {\r\n if (data) {\r\n if (data.length == 1) {\r\n datatrasfer.currentrow = data[0];\r\n this.showVoucher(datatrasfer, action);\r\n } else {\r\n this.dialogService\r\n .open(\r\n TrsVoucherModalListComponent,\r\n {\r\n label: datatrasfer.label,\r\n dataList: data,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n datatrasfer.currentrow = model;\r\n this.showVoucher(datatrasfer, action);\r\n }\r\n });\r\n }\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n if (onRowSelected.SystemKindCode === SystemKind.SELL) {\r\n action.Form_Component = SellVoucherFormComponent;\r\n //onRowSelected.Id=onRowSelected.AccountingSubSystemsRelationships[0].SellVoucherHeaderId;\r\n datatrasfer.apiName = \"SellVoucherHeader\";\r\n datatrasfer.areaName = \"SellCustomer\";\r\n datatrasfer.label = \"سند فروش\";\r\n }\r\n }\r\n }\r\n }\r\n showVoucher(datatrasfer: Datatransfer, action: any) {\r\n const menu = {\r\n title: datatrasfer.label,\r\n isCloseable: true,\r\n icon: action.iconName,\r\n active: true,\r\n responsive: true,\r\n componentType: action.Form_Component,\r\n data: [\r\n { provide: EntityBase, useValue: datatrasfer.currentrow },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: 0 } },\r\n ],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"AccVoucherHeader\",\r\n disabled: false,\r\n displayName: \"نمایش سند حسابداری\",\r\n isModal: false,\r\n iconName: \"icon-table_view-f\",\r\n Form_Component: AccVoucherFormComponent,\r\n apiName: \"AccVoucherHeader\",\r\n areaName: \"Accounting\",\r\n },\r\n {\r\n name: \"BaseVoucher\",\r\n disabled: false,\r\n displayName: \"سند مبنا\",\r\n iconName: \"icon-folder-open-outline\",\r\n areaName: \"Accounting\",\r\n Form_Component: AccVoucherFormComponent,\r\n apiName: \"AccVoucherHeader\",\r\n },\r\n ];\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n }\r\n\r\n onDoubleClick(): boolean {\r\n if (this.activeTabTitle === this.translate(\"ClientApp.BackOffice.ACC.GroupLedger.GroupLedger\"))\r\n this.activeTabTitle = this.translate(\"ClientApp.BackOffice.ACC.GeneralLedger.GeneralLedger\");\r\n else if (this.activeTabTitle === this.translate(\"ClientApp.BackOffice.ACC.GeneralLedger.GeneralLedger\"))\r\n this.activeTabTitle = this.translate(\"ClientApp.BackOffice.ACC.SubLedger.SubLedger\");\r\n else if (this.activeTabTitle === this.translate(\"ClientApp.BackOffice.ACC.SubLedger.SubLedger\") && this.detailLedgerLevel >= 1)\r\n this.activeTabTitle = this.translate(\"ClientApp.BackOffice.ACC.SubLedger.DetailLedger1\");\r\n else if (this.activeTabTitle === this.translate(\"ClientApp.BackOffice.ACC.SubLedger.DetailLedger1\") && this.detailLedgerLevel >= 2)\r\n this.activeTabTitle = this.translate(\"ClientApp.BackOffice.ACC.SubLedger.DetailLedger2\");\r\n else if (this.activeTabTitle === this.translate(\"ClientApp.BackOffice.ACC.SubLedger.DetailLedger2\") && this.detailLedgerLevel >= 3)\r\n this.activeTabTitle = this.translate(\"ClientApp.BackOffice.ACC.SubLedger.DetailLedger3\");\r\n else if (this.activeTabTitle === this.translate(\"ClientApp.BackOffice.ACC.SubLedger.DetailLedger3\") && this.detailLedgerLevel >= 4)\r\n this.activeTabTitle = this.translate(\"ClientApp.BackOffice.ACC.SubLedger.DetailLedger4\");\r\n else if (this.activeTabTitle === this.translate(\"ClientApp.BackOffice.ACC.SubLedger.DetailLedger4\") && this.detailLedgerLevel >= 5)\r\n this.activeTabTitle = this.translate(\"ClientApp.BackOffice.ACC.SubLedger.DetailLedger5\");\r\n else if (this.activeTabTitle === this.translate(\"ClientApp.BackOffice.ACC.SubLedger.DetailLedger5\") && this.detailLedgerLevel >= 6)\r\n this.activeTabTitle = this.translate(\"ClientApp.BackOffice.ACC.SubLedger.DetailLedger6\");\r\n else {\r\n this.activeTabTitle = \"گردش حساب\";\r\n let index = 0;\r\n this.ssgTabset.tabs.forEach((x) => {\r\n if (x.tabTitle === this.activeTabTitle) {\r\n x.active = true;\r\n this.ssgTabset.selectTab(x, index);\r\n index++;\r\n }\r\n });\r\n }\r\n return true;\r\n }\r\n setSelectedFilter(filter: string) {\r\n if (this.selected === filter) this.selected = \"\";\r\n else this.selected = filter;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n فیلتر سند\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n نوع سند\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n وضعیت سند\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n نوع سیستم\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n شعب\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n نوع تفصیلی\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n name=\"VoucherDetail\"\r\n title=\"گردش حساب\"\r\n apiName=\"AccountReview/GetVoucherDetail\"\r\n areaName=\"Accounting\"\r\n [columns]=\"_GetVoucherDetailColumns\"\r\n [selective]=\"false\"\r\n [filtering]=\"true\"\r\n defaultSortKeyKind=\"asc\"\r\n defaultSortKey=\"SubLedgerCode,DetailLedger1Code,DetailLedger2Code,DetailLedger3Code,DetailLedger4Code,DetailLedger5Code,DetailLedger6Code,DetailLedger7Code,VoucherDate,VoucherNo,RowNumber\"\r\n aggregatesColumnName=\"Debit,Credit\"\r\n [isModal]=\"false\"\r\n pathPreFix=\"ACC\"\r\n [actionTregger]=\"onActionClick\"\r\n [actions]=\"actions\"\r\n key=\"VoucherDetailIds\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ReportReviewModule } from \"src/app/review/review.module\";\r\nimport { AccountReviewComponent } from \"./account-review.component\";\r\n\r\nconst components = [AccountReviewComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, ReportReviewModule],\r\n})\r\nexport class AccountReviewModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"balance-sheet-compare-prev-year-generalledger-filterd-by-detailLedger\",\r\n templateUrl: \"balance-sheet-compare-prev-year-generalledger-filterd-by-detailLedger.component.html\",\r\n styleUrls: [\"balance-sheet-compare-prev-year-generalledger-filterd-by-detailLedger.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccBalanceSheetCompareWithPrevYearGeneralLedgerFilterdByDetailLedgerComponent extends BaseFormComponent {\r\n public apiName: string = \"AccountReview\";\r\n public label: string = \"صورت سود و زيان مقايسه اي كل با فيلتر تفصيلي\";\r\n constructor(__id: FormContainerModel, _tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetAccBalanceSheetCompareWithPrevYearGeneralLedgerFilterdByDetailLedger\";\r\n this.pathPreFix = \"ACC\";\r\n this.apiName = \"AccountReview\";\r\n this.areaName = \"Accounting\";\r\n this.loadReports();\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"تفصیلی\",\r\n controlType: FormControlTypes.lookup,\r\n modelName: \"DetailLedgerId\",\r\n disabled: false,\r\n name: \"DetailLedgerId\",\r\n textType: \"text\",\r\n order: 5,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"DetailLedger/GetPagining\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n columnsName: \"Code,Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n addControl(): void {\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData(reprtName, saveReportFile);\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData(reprtName, saveReportFile);\r\n }\r\n loadData(reportName: string, saveReportFile: SaveReportFile) {\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"DetailLedgerId\",\r\n Value: this.formGroup.get(\"DetailLedgerId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n saveReportFile.startDate = this.formGroup.get(\"StartVoucherDate\").value;\r\n saveReportFile.endDate = this.formGroup.get(\"EndVoucherDate\").value;\r\n saveReportFile.startDate = this.formGroup.get(\"StartVoucherDate\").value;\r\n saveReportFile.endDate = this.formGroup.get(\"EndVoucherDate\").value;\r\n this.httpCommonService\r\n .GetFilterGrid(\"AccountReview/GetAccBalanceSheetCompareWithPrevYearGeneralLedgerFilterdByDetailLedger\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n this.setReport(reportName, saveReportFile, data as []);\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"balance-sheet-compare-prev-year-subledger-filterd-by-detailLedger\",\r\n templateUrl: \"balance-sheet-compare-prev-year-subledger-filterd-by-detailLedger.component.html\",\r\n styleUrls: [\"balance-sheet-compare-prev-year-subledger-filterd-by-detailLedger.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccBalanceSheetCompareWithPrevYearSubLedgerFilterdByDetailLedgerComponent extends BaseFormComponent {\r\n public apiName: string = \"AccountReview\";\r\n public label: string = \"صورت سود و زيان مقايسه اي معين با فيلتر تفصيلي\";\r\n constructor(__id: FormContainerModel, _tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetAccBalanceSheetCompareWithPrevYearSubLedgerFilterdByDetailLedger\";\r\n this.pathPreFix = \"ACC\";\r\n this.apiName = \"AccountReview\";\r\n this.areaName = \"Accounting\";\r\n this.loadReports();\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"تفصیلی\",\r\n controlType: FormControlTypes.lookup,\r\n modelName: \"DetailLedgerId\",\r\n disabled: false,\r\n name: \"DetailLedgerId\",\r\n textType: \"text\",\r\n order: 5,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"DetailLedger/GetPagining\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n columnsName: \"Code,Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n addControl(): void {\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData(reprtName, saveReportFile);\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData(reprtName, saveReportFile);\r\n }\r\n loadData(reportName: string, saveReportFile: SaveReportFile) {\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"DetailLedgerId\",\r\n Value: this.formGroup.get(\"DetailLedgerId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n saveReportFile.startDate = this.formGroup.get(\"StartVoucherDate\").value;\r\n saveReportFile.endDate = this.formGroup.get(\"EndVoucherDate\").value;\r\n this.httpCommonService\r\n .GetFilterGrid(\"AccountReview/GetAccBalanceSheetCompareWithPrevYearSubLedgerFilterdByDetailLedger\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n this.setReport(reportName, saveReportFile, data as []);\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"balance-sheet-compare-with-prev-year\",\r\n templateUrl: \"balance-sheet-compare-with-prev-year.component.html\",\r\n styleUrls: [\"balance-sheet-compare-with-prev-year.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccBalanceSheetCompareWithPrevYearComponent extends BaseFormComponent {\r\n public apiName: string = \"AccountReview\";\r\n public label: string = \"صورت سود و زيان\";\r\n public entitys: any[];\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n constructor(__id: FormContainerModel, _tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetAccBalanceSheetCompareWithPrevYear\";\r\n this.pathPreFix = \"ACC\";\r\n this.apiName = \"AccountReview\";\r\n this.areaName = \"Accounting\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سطح حساب\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"Key\",\r\n disabled: false,\r\n name: \"Key\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.columns.push({\r\n label: \"تفضیلی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"DetailLedgerId\",\r\n disabled: false,\r\n name: \"DetailLedgerId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"DetailLedger/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.gridColumns.push({\r\n label: \"سرفصل حساب\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ProfiteLossKindId\",\r\n disabled: false,\r\n name: \"ProfiteLossKindId\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"عنوان حساب\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"AccountTitle\",\r\n disabled: false,\r\n name: \"AccountTitle\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مبلغ (ریال)\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Price\",\r\n disabled: false,\r\n name: \"Price\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n\r\n getAccountLevel() {\r\n let list: any[] = [];\r\n list.push({ Key: \"PL\", Title: \"گروه حساب\" });\r\n list.push({ Key: \"GL\", Title: \"حساب کل\" });\r\n list.push({ Key: \"SL\", Title: \"حساب معین\" });\r\n return list;\r\n }\r\n\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n const formValue = this.formGroup.value;\r\n if (!formValue.FiscalYearId || !formValue.BranchId || !formValue.StartVoucherDate || !formValue.EndVoucherDate || !formValue.DetailLedgerId) return;\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"BranchId\",\r\n Value: this.formGroup.get(\"BranchId\").value ?? 0,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"DetailLedgerId\",\r\n Value: this.formGroup.get(\"DetailLedgerId\").value ?? 0,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n\r\n this.httpCommonService\r\n .GetFilterGrid(\"AccountReview/GetAccBalanceSheetCompareWithPrevYear\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entitys = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"acc-balance-sheet\",\r\n templateUrl: \"acc-balance-sheet.component.html\",\r\n styleUrls: [\"acc-balance-sheet.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccBalanceSheetComponent extends BaseFormComponent {\r\n public apiName: string = \"AccountReview\";\r\n public label: string = \"گزارش ترازنامه\";\r\n public entities: any[];\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n\r\n constructor(__id: FormContainerModel, _tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"AccBalanceSheet\";\r\n this.pathPreFix = \"ACC\";\r\n this.apiName = \"AccountReview\";\r\n this.areaName = \"Accounting\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns(): Promise {\r\n this.setGridColumns();\r\n this.setHeaderColumns();\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: true,\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: true,\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n switch (action.name) {\r\n case \"print\":\r\n case \"preview\":\r\n case \"editReport\":\r\n case \"copyReport\":\r\n case \"deleteReport\":\r\n this.changeReport(action.name);\r\n break;\r\n\r\n case \"isRefreshing\":\r\n this.loadData();\r\n break;\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n const formValue = this.formGroup.value;\r\n if (!formValue.FiscalYearId || !formValue.BranchId || !formValue.StartVoucherDate || !formValue.EndVoucherDate) return;\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value ?? 0, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n\r\n this.httpCommonService\r\n .GetFilterGrid(\"AccountReview/GetAccBalanceSheet\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entities = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n\r\n private setHeaderColumns(): void {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n listVisible: true,\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n private setGridColumns(): void {\r\n this.gridColumns.push({\r\n label: \"داراییها\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مبلغ\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"بدهی‌ها و حقوق صاحبان سهام\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مبلغ\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"detail-ledeger-subledger-balanc-sheet\",\r\n templateUrl: \"detail-ledeger-subledger-balanc-sheet.component.html\",\r\n styleUrls: [\"detail-ledeger-subledger-balanc-sheet.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccDetailLedegerSubledgerBalancSheetComponent extends BaseFormComponent {\r\n public apiName: string = \"AccountReview\";\r\n public label: string = \"تراز تفصیلی بیلان معین و تفصیل\";\r\n entitys: any[];\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n constructor(__id: FormContainerModel, _tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetAccDetailLedegerSubledgerBalancSheet\";\r\n this.pathPreFix = \"ACC\";\r\n this.apiName = \"AccountReview\";\r\n this.areaName = \"Accounting\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.gridColumns.push({\r\n label: \"کد معین\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کد تفضیل اول\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کد تفضیل دوم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کد تفضیل سوم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"عنوان\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مانده بدهکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مانده بستانکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n\r\n this.httpCommonService\r\n .GetFilterGrid(\"AccountReview/GetAccDetailLedegerSubledgerBalancSheet\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entitys = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, form_control, SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"app-general-ledger-daily-voucher-document\",\r\n templateUrl: \"./general-ledger-daily-voucher-document.component.html\",\r\n styleUrls: [\"./general-ledger-daily-voucher-document.component.scss\"],\r\n})\r\nexport class GeneralLedgerDailyVoucherDocumentComponent extends BaseFormComponent {\r\n public apiName: string = \"AccountReview\";\r\n public label: string = \"دفتر روزنامه(سند کل)\";\r\n public entities: any[];\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n constructor(__id: FormContainerModel, _tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetGeneralLedgerDailyVoucher\";\r\n this.pathPreFix = \"ACC\";\r\n this.apiName = \"AccountReview\";\r\n this.areaName = \"Accounting\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns(): Promise {\r\n this.setGridColumns();\r\n this.setHeaderColumns();\r\n }\r\n\r\n private setHeaderColumns(): void {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سطح حساب\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"Key\",\r\n disabled: false,\r\n name: \"Key\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n private setGridColumns(): void {\r\n this.gridColumns.push({\r\n label: \"ردیف\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"RowNumber\",\r\n disabled: false,\r\n name: \"RowNumber\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n dataList: null,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"شماره سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"VoucherNo\",\r\n disabled: false,\r\n name: \"VoucherNo\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"تاریخ سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"VoucherDate\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کد\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Code\",\r\n disabled: false,\r\n name: \"Code\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"عنوان حساب\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"AccountTitle\",\r\n disabled: false,\r\n name: \"AccountTitle\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"بدهکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SumDebit\",\r\n disabled: false,\r\n name: \"SumDebit\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n this.gridColumns.push({\r\n label: \"بستانکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SumCredit\",\r\n disabled: false,\r\n name: \"SumCredit\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n }\r\n\r\n getAccountLevel() {\r\n let list: any[] = [];\r\n list.push({ Key: \"PL\", Title: \"گروه حساب\" });\r\n list.push({ Key: \"GL\", Title: \"حساب کل\" });\r\n list.push({ Key: \"SL\", Title: \"حساب معین\" });\r\n list.push({ Key: \"DL1\", Title: \"حساب تفصیلی اول\" });\r\n list.push({ Key: \"DL2\", Title: \"حساب تفصیلی دوم\" });\r\n list.push({ Key: \"DL3\", Title: \"حساب تفصیلی سوم\" });\r\n list.push({ Key: \"DL4\", Title: \"حساب تفصیلی چهارم\" });\r\n list.push({ Key: \"DL5\", Title: \"حساب تفصیلی پنجم\" });\r\n return list;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: true,\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: true,\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.httpCommonService\r\n .GetFilterGrid(\"AccountReview/GetGeneralLedgerDailyVoucher\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entities = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"general-ledger-daily-voucher\",\r\n templateUrl: \"general-ledger-daily-voucher.component.html\",\r\n styleUrls: [\"general-ledger-daily-voucher.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GeneralLedgerDailyVoucherComponent extends BaseFormComponent {\r\n public apiName: string = \"AccountReview\";\r\n public label: string = \"دفتر روزنامه\";\r\n public entitys: any[];\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n constructor(__id: FormContainerModel, _tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetGeneralLedgerDailyVoucher\";\r\n this.pathPreFix = \"ACC\";\r\n this.apiName = \"AccountReview\";\r\n this.areaName = \"Accounting\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سطح حساب\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"Key\",\r\n disabled: false,\r\n name: \"Key\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.gridColumns.push({\r\n label: \"ردیف\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n dataList: null,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"شماره سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"تاریخ سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کد\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"عنوان حساب\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"AccountTitle\",\r\n disabled: false,\r\n name: \"AccountTitle\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"بدهکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SumDebit\",\r\n disabled: false,\r\n name: \"SumDebit\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n this.gridColumns.push({\r\n label: \"بستانکار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SumCredit\",\r\n disabled: false,\r\n name: \"SumCredit\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: this.getAccountLevel(),\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n withComma: true,\r\n });\r\n\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n getAccountLevel() {\r\n let list: any[] = [];\r\n list.push({ Key: \"PL\", Title: \"گروه حساب\" });\r\n list.push({ Key: \"GL\", Title: \"حساب کل\" });\r\n list.push({ Key: \"SL\", Title: \"حساب معین\" });\r\n list.push({ Key: \"DL1\", Title: \"حساب تفصیلی اول\" });\r\n list.push({ Key: \"DL2\", Title: \"حساب تفصیلی دوم\" });\r\n list.push({ Key: \"DL3\", Title: \"حساب تفصیلی سوم\" });\r\n list.push({ Key: \"DL4\", Title: \"حساب تفصیلی چهارم\" });\r\n list.push({ Key: \"DL5\", Title: \"حساب تفصیلی پنجم\" });\r\n return list;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: true,\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"AccountReview\",\r\n areaName: this.areaName,\r\n permission: true,\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.httpCommonService\r\n .GetFilterGrid(\"AccountReview/GetGeneralLedgerDailyVoucher\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entitys = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"general-ledger-voucher-document\",\r\n templateUrl: \"general-ledger-voucher-document.component.html\",\r\n styleUrls: [\"general-ledger-voucher-document.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GeneralLedgerVoucherDocumentComponent extends BaseFormComponent {\r\n public apiName: string = \"AccountReview\";\r\n public label: string = \"دفتر كل(سند كل)\";\r\n constructor(__id: FormContainerModel, _tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetGeneralLedgerVoucher\";\r\n this.pathPreFix = \"ACC\";\r\n this.apiName = \"AccountReview\";\r\n this.areaName = \"Accounting\";\r\n this.loadReports();\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.orignalColumns = this.columns;\r\n }\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData(reprtName, saveReportFile);\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData(reprtName, saveReportFile);\r\n }\r\n loadData(reportName: string, saveReportFile: SaveReportFile) {\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n saveReportFile.startDate = this.formGroup.get(\"StartVoucherDate\").value;\r\n saveReportFile.endDate = this.formGroup.get(\"EndVoucherDate\").value;\r\n this.httpCommonService\r\n .GetFilterGrid(\"AccountReview/GetGeneralLedgerVoucher\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data) => {\r\n this.setReport(reportName, saveReportFile, data as []);\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"general-ledger-voucher\",\r\n templateUrl: \"general-ledger-voucher.component.html\",\r\n styleUrls: [\"general-ledger-voucher.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GeneralLedgerVoucherComponent extends BaseFormComponent {\r\n public apiName: string = \"AccountReview\";\r\n public label: string = \"دفتر كل\";\r\n constructor(__id: FormContainerModel, _tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetGeneralLedgerVoucher\";\r\n this.pathPreFix = \"ACC\";\r\n this.apiName = \"AccountReview\";\r\n this.areaName = \"Accounting\";\r\n this.loadReports();\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.orignalColumns = this.columns;\r\n }\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData(reprtName, saveReportFile);\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData(reprtName, saveReportFile);\r\n }\r\n loadData(reportName: string, saveReportFile: SaveReportFile) {\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n saveReportFile.startDate = this.formGroup.get(\"StartVoucherDate\").value;\r\n saveReportFile.endDate = this.formGroup.get(\"EndVoucherDate\").value;\r\n this.httpCommonService\r\n .GetFilterGrid(\"AccountReview/GetGeneralLedgerVoucher\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data) => {\r\n this.setReport(reportName, saveReportFile, data as []);\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { GeneralLedger, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SubLedger } from \"../../models/subledger.model\";\r\n\r\n@Component({\r\n selector: \"sub-ledger-import-excel-form\",\r\n templateUrl: \"./sub-ledger-import-excel-form.component.html\",\r\n styleUrls: [\"./sub-ledger-import-excel-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SubLedgerImportExcelFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n gridInfo: GridColumnInfoDetail[];\r\n SubLedgerLiist: SubLedger[] = [];\r\n GeneralLedgerList: GeneralLedger[];\r\n public hColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"SubLedger\";\r\n this.label = \"دریافت فایل اکسل\";\r\n super.ngOnInit();\r\n await this.setData();\r\n }\r\n async setColumns() {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns.push({\r\n label: \"ردیف اول عنون ستونهاست.\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"isFirstRowColumnsName\",\r\n disabled: false,\r\n name: \"isFirstRowColumnsName\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.hColumns = this.hColumns;\r\n }\r\n async setData() {\r\n await this.httpCommonService\r\n .getList(\"GeneralLedger\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.GeneralLedgerList = data as GeneralLedger[];\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n alert(\"انتخاب بیش از یک فایل مجاز نیست.\");\r\n return;\r\n } else {\r\n const result = await this.parseExcelDoc(target.files[0]).catch((err) => console.error(err));\r\n await this.SetSubLedgerInfo(result);\r\n }\r\n }\r\n async SetSubLedgerInfo(excelData: any[]) {\r\n let ColumnsName = [];\r\n let ErroeMessage: string = \"\";\r\n if (this.formGroup.get(\"isFirstRowColumnsName\")?.value === true) {\r\n ColumnsName = excelData[0] as any[];\r\n } else ColumnsName = this.gridInfo.filter((c) => c.name != null && c.title != \"عملیات\" && !c.hidden) as any[];\r\n let isFirtsRow: boolean = true;\r\n for (var i = 0; i < excelData.length; i++) {\r\n var x = excelData[i];\r\n if (this.formGroup.get(\"isFirstRowColumnsName\").value === true && isFirtsRow === true) {\r\n } else {\r\n let row: SubLedger = {};\r\n let index: number = 0;\r\n ColumnsName.forEach((c) => {\r\n let key: string;\r\n if (c.name) key = c.name;\r\n else {\r\n if (this.orignalColumns.some((g) => g.label === c || g.name == c)) {\r\n key = this.orignalColumns.find((g) => g.label === c || g.name == c).name;\r\n }\r\n }\r\n row[key] = x[index];\r\n if (key === \"ProfiteLossKindCode\") {\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"ProfiteLossKind\", Number(row.ProfiteLossKindCode))\r\n .subscribe((gk) => (row.ProfiteLossKindId = gk.Id));\r\n }\r\n if (key === \"BalanceKindCode\") {\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"AccountBalanceKind\", Number(row.BalanceKindCode))\r\n .subscribe((gk) => (row.BalanceKindId = gk.Id));\r\n if (!row.BalanceKindId) {\r\n (ErroeMessage += `برای حساب کل' ${row.Title} ماهیت حساب' ${row.BalanceKindCode} پیدا نشد.`), \"دریافت ماهیت حساب\" + \",\";\r\n }\r\n }\r\n if (key === \"GeneralLedgerCode\") {\r\n row.GeneralLedgerId = this.GeneralLedgerList.find((gg) => gg.Code === row.GeneralLedgerCode)?.Id;\r\n if (!row.GeneralLedgerId) {\r\n (ErroeMessage += `برای حساب کل ${row.Title} گروه حساب' ${row.GeneralLedgerCode} پیدا نشد.`), \"دریافت گروه حساب\" + \",\";\r\n }\r\n }\r\n index++;\r\n });\r\n if (!this.SubLedgerLiist.some((g) => g.Code === row.Code || g.Title?.trim() === row.Title?.trim())) {\r\n this.SubLedgerLiist.push(row);\r\n } else {\r\n console.log(row);\r\n }\r\n }\r\n if (isFirtsRow === true) isFirtsRow = false;\r\n if (ErroeMessage) break;\r\n }\r\n if (!ErroeMessage) {\r\n await this.httpCommonService\r\n .bulkInsert(this.apiName, this.SubLedgerLiist)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت ذخیره شد.\");\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در ذخیره اطلاعات\");\r\n }\r\n );\r\n } else this.sts.showDialog(ErroeMessage, \"خطا در دریافت کالا\");\r\n }\r\n public cancel() {\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ValidatorFn, Validators } from \"@angular/forms\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { GeneralLedger } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { AccountBalanceKind, RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SubLedgerDetailLedgerKind } from \"../../models/subledger-detailledgerkind.model\";\r\nimport { SubLedger } from \"../../models/subledger.model\";\r\n\r\n@Component({\r\n selector: \"subledger-form\",\r\n templateUrl: \"subledger-form.component.html\",\r\n styleUrls: [\"subledger-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SubLedgerFormComponent extends BaseFormComponent {\r\n private selectedgeneralLedgerCodeLen: number;\r\n private selectedSubLedgerCodeLen: number;\r\n formGroupIsOk: boolean = false;\r\n get detailLedgerLevel(): number {\r\n return this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n }\r\n private _selectedLevel1Ids: number[] = [];\r\n get selectedLevel1Ids(): number[] {\r\n if (this.model && this.detailLedgerLevel > 0 && this._selectedLevel1Ids.length === 0 && this.model.SubLedgerDetailLedgerKinds) {\r\n this.model.SubLedgerDetailLedgerKinds.filter((x) => x.DetailLedgerLevel === 1).forEach((x) => {\r\n this._selectedLevel1Ids.push(x.DetailLedgerKindId);\r\n });\r\n }\r\n return this._selectedLevel1Ids;\r\n }\r\n set selectedLevel1Ids(valuse: number[]) {\r\n this._selectedLevel1Ids = valuse;\r\n }\r\n private _selectedLevel2Ids: number[] = [];\r\n get selectedLevel2Ids(): number[] {\r\n if (this.model && this.detailLedgerLevel > 1 && this._selectedLevel2Ids.length === 0 && this.model.SubLedgerDetailLedgerKinds) {\r\n this.model.SubLedgerDetailLedgerKinds.filter((x) => x.DetailLedgerLevel === 2).forEach((x) => {\r\n this._selectedLevel2Ids.push(x.DetailLedgerKindId);\r\n });\r\n }\r\n return this._selectedLevel2Ids;\r\n }\r\n set selectedLevel2Ids(valuse: number[]) {\r\n this._selectedLevel2Ids = valuse;\r\n }\r\n private _selectedLevel3Ids: number[] = [];\r\n get selectedLevel3Ids(): number[] {\r\n if (this.model && this.detailLedgerLevel > 2 && this._selectedLevel3Ids.length === 0 && this.model.SubLedgerDetailLedgerKinds) {\r\n this.model.SubLedgerDetailLedgerKinds.filter((x) => x.DetailLedgerLevel === 3).forEach((x) => {\r\n this._selectedLevel3Ids.push(x.DetailLedgerKindId);\r\n });\r\n }\r\n return this._selectedLevel3Ids;\r\n }\r\n set selectedLevel3Ids(valuse: number[]) {\r\n this._selectedLevel3Ids = valuse;\r\n }\r\n private _selectedLevel4Ids: number[] = [];\r\n get selectedLevel4Ids(): number[] {\r\n if (this.model && this.detailLedgerLevel > 4 && this._selectedLevel4Ids.length === 0 && this.model.SubLedgerDetailLedgerKinds) {\r\n this.model.SubLedgerDetailLedgerKinds.filter((x) => x.DetailLedgerLevel === 4).forEach((x) => {\r\n this._selectedLevel4Ids.push(x.DetailLedgerKindId);\r\n });\r\n }\r\n return this._selectedLevel4Ids;\r\n }\r\n set selectedLevel4Ids(valuse: number[]) {\r\n this._selectedLevel4Ids = valuse;\r\n }\r\n private _selectedLevel5Ids: number[] = [];\r\n get selectedLevel5Ids(): number[] {\r\n if (this.model && this.detailLedgerLevel > 4 && this._selectedLevel5Ids.length === 0 && this.model.SubLedgerDetailLedgerKinds) {\r\n this.model.SubLedgerDetailLedgerKinds.filter((x) => x.DetailLedgerLevel === 5).forEach((x) => {\r\n this._selectedLevel5Ids.push(x.DetailLedgerKindId);\r\n });\r\n }\r\n return this._selectedLevel5Ids;\r\n }\r\n set selectedLevel5Ids(valuse: number[]) {\r\n this._selectedLevel5Ids = valuse;\r\n }\r\n private _selectedLevel6Ids: number[] = [];\r\n get selectedLevel6Ids(): number[] {\r\n if (this.model && this.detailLedgerLevel > 5 && this._selectedLevel6Ids.length === 0 && this.model.SubLedgerDetailLedgerKinds) {\r\n this.model.SubLedgerDetailLedgerKinds.filter((x) => x.DetailLedgerLevel === 6).forEach((x) => {\r\n this._selectedLevel6Ids.push(x.DetailLedgerKindId);\r\n });\r\n }\r\n return this._selectedLevel6Ids;\r\n }\r\n set selectedLevel6Ids(valuse: number[]) {\r\n this._selectedLevel6Ids = valuse;\r\n }\r\n private _selectedLevel7Ids: number[] = [];\r\n get selectedLevel7Ids(): number[] {\r\n if (this.model && this.detailLedgerLevel > 6 && this._selectedLevel7Ids.length === 0 && this.model.SubLedgerDetailLedgerKinds) {\r\n this.model.SubLedgerDetailLedgerKinds.filter((x) => x.DetailLedgerLevel === 7).forEach((x) => {\r\n this._selectedLevel7Ids.push(x.DetailLedgerKindId);\r\n });\r\n }\r\n return this._selectedLevel7Ids;\r\n }\r\n set selectedLevel7Ids(valuse: number[]) {\r\n this._selectedLevel7Ids = valuse;\r\n }\r\n\r\n get HasDetailLedger1() {\r\n if (this.formGroup && this.formGroup.controls[\"HasDetailLedger1\"]) return this.formGroup.controls[\"HasDetailLedger1\"].value;\r\n return false;\r\n }\r\n get HasDetailLedger2() {\r\n if (this.formGroup && this.formGroup.controls[\"HasDetailLedger2\"]) return this.formGroup.controls[\"HasDetailLedger2\"].value;\r\n return false;\r\n }\r\n get HasDetailLedger3() {\r\n if (this.formGroup && this.formGroup.controls[\"HasDetailLedger3\"]) return this.formGroup.controls[\"HasDetailLedger3\"].value;\r\n return false;\r\n }\r\n get HasDetailLedger4() {\r\n if (this.formGroup && this.formGroup.controls[\"HasDetailLedger4\"]) return this.formGroup.controls[\"HasDetailLedger4\"].value;\r\n return false;\r\n }\r\n get HasDetailLedger5() {\r\n if (this.formGroup && this.formGroup.controls[\"HasDetailLedger5\"]) return this.formGroup.controls[\"HasDetailLedger5\"].value;\r\n return false;\r\n }\r\n get HasDetailLedger6() {\r\n if (this.formGroup && this.formGroup.controls[\"HasDetailLedger6\"]) return this.formGroup.controls[\"HasDetailLedger6\"].value;\r\n return false;\r\n }\r\n get HasDetailLedger7() {\r\n if (this.formGroup && this.formGroup.controls[\"HasDetailLedger7\"]) return this.formGroup.controls[\"HasDetailLedger7\"].value;\r\n return false;\r\n }\r\n constructor(\r\n private missetup: MisSetupService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n private lookupservice: LookupService\r\n ) {\r\n super(selectorService, cd);\r\n this.missetup.getall();\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"SubLedger\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.SubLedger.SubLedger\");\r\n super.ngOnInit();\r\n this.setlen();\r\n }\r\n setdefault() {\r\n if (!this.model.BalanceKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"AccountBalanceKind\", AccountBalanceKind.neutral)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.BalanceKindId = x.Id;\r\n this.model.BalanceKindCode = x.Code;\r\n this.model.BalanceKindTitle = x.Title;\r\n this.setValue(\"BalanceKindId\", x.Id);\r\n this.setValue(\"BalanceKindCode\", x.Code);\r\n this.setValue(\"BalanceKindTitle\", x.Title);\r\n });\r\n }\r\n if (this.model.Active === undefined) {\r\n this.model.Active = true;\r\n this.setValue(\"Active\", this.model.Active);\r\n }\r\n if (this.model.HasTrackNo === undefined) {\r\n this.model.HasTrackNo = false;\r\n this.setValue(\"HasTrackNo\", this.model.HasTrackNo);\r\n }\r\n if (this.model.RequireTrackNo === undefined) {\r\n this.model.RequireTrackNo = false;\r\n this.setValue(\"RequireTrackNo\", this.model.RequireTrackNo);\r\n }\r\n }\r\n addControl() {\r\n this.formGroupIsOk = false;\r\n this.setValue(\"DetailLedger1\", this.selectedLevel1Ids);\r\n this.setValue(\"DetailLedger2\", this.selectedLevel2Ids);\r\n this.setValue(\"DetailLedger3\", this.selectedLevel3Ids);\r\n this.setValue(\"DetailLedger4\", this.selectedLevel4Ids);\r\n this.setValue(\"DetailLedger5\", this.selectedLevel5Ids);\r\n this.setValue(\"DetailLedger6\", this.selectedLevel6Ids);\r\n this.setValue(\"DetailLedger7\", this.selectedLevel7Ids);\r\n this.setValue(\"SubLedgerDetailLedgerKinds\", this.model.SubLedgerDetailLedgerKinds);\r\n this.formGroupIsOk = true;\r\n this.cd.markForCheck();\r\n }\r\n setlen() {\r\n this.selectedgeneralLedgerCodeLen = this.missetup.getnumber(\"ACC\", \"PLLEN\") + this.missetup.getnumber(\"ACC\", \"GLLEN\");\r\n this.selectedSubLedgerCodeLen = this.missetup.getnumber(\"ACC\", \"SLLEN\");\r\n if (this.selectedgeneralLedgerCodeLen === 0 && this.selectedSubLedgerCodeLen === 0)\r\n this.sts.showDialog(\"تنظیمات کدینگ حسابداری انجام نشده است.\", \"خطای تنظیم کدینگ\");\r\n }\r\n onChange($event: GeneralLedger) {\r\n if ($event && $event.GroupLedgerId && this.isNewRow) {\r\n this.model.GeneralLedgerId = $event.Id;\r\n this.model.GeneralLedgerCode = $event.Code;\r\n this.model.GeneralLedgerTitle = $event.Title;\r\n this.setMaxCode();\r\n }\r\n }\r\n setMaxCode() {\r\n if (!this.selectedSubLedgerCodeLen || this.selectedSubLedgerCodeLen === 0) this.setlen();\r\n\r\n this.httpCommonService\r\n .getMaxCodeWithParameter(this.apiName, this.model.GeneralLedgerId, this.model.GeneralLedgerCode, this.selectedSubLedgerCodeLen)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setdefault();\r\n if (this.formGroup && this.formGroup.controls[\"Code\"]) this.formGroup.controls[\"Code\"].setValue(data as number);\r\n this.setColumnAttribute();\r\n });\r\n if (this.columns && this.columns.length > 0) {\r\n var item = this.columns.filter((item) => item.name === \"Code\")[0];\r\n if (item) {\r\n item.maxLength = this.selectedgeneralLedgerCodeLen + this.selectedSubLedgerCodeLen;\r\n item.minLength = this.selectedgeneralLedgerCodeLen + 1;\r\n }\r\n }\r\n }\r\n isValidDetailLedgerKind() {\r\n if (!this.model.SubLedgerDetailLedgerKinds) this.model.SubLedgerDetailLedgerKinds = [];\r\n this._selectedLevel1Ids = this.formGroup.value.DetailLedger1;\r\n if (!this.formGroup.value.HasDetailLedger1) this._selectedLevel1Ids = null;\r\n if (this._selectedLevel1Ids && this._selectedLevel1Ids?.length > 0) {\r\n this._selectedLevel1Ids.forEach((x) => {\r\n let temp = this.model.SubLedgerDetailLedgerKinds.filter((sdk) => sdk.DetailLedgerKindId === x && sdk.DetailLedgerLevel === 1);\r\n if (!temp || temp.length <= 0) {\r\n let entity = {};\r\n entity.DetailLedgerKindId = x;\r\n entity.SubLedgerId = this.model.Id;\r\n entity.DetailLedgerLevel = 1;\r\n entity.State = RowState.New;\r\n if (\r\n !this.model.SubLedgerDetailLedgerKinds.some(\r\n (x) => x.DetailLedgerLevel === entity.DetailLedgerLevel && x.DetailLedgerKindId == entity.DetailLedgerKindId\r\n )\r\n )\r\n this.model.SubLedgerDetailLedgerKinds.push(entity);\r\n }\r\n });\r\n }\r\n this.model.SubLedgerDetailLedgerKinds.filter((x) => x.DetailLedgerLevel === 1).forEach((item) => {\r\n if (this._selectedLevel1Ids && !this._selectedLevel1Ids.some((x) => x === item.DetailLedgerKindId)) {\r\n item.State = RowState.Delete;\r\n }\r\n });\r\n\r\n this._selectedLevel2Ids = this.formGroup.value.DetailLedger2;\r\n if (!this.formGroup.value.HasDetailLedger2) this._selectedLevel2Ids = null;\r\n if (this._selectedLevel2Ids && this._selectedLevel2Ids?.length > 0) {\r\n this._selectedLevel2Ids.forEach((x) => {\r\n let temp = this.model.SubLedgerDetailLedgerKinds.filter((sdk) => sdk.DetailLedgerKindId === x && sdk.DetailLedgerLevel === 2);\r\n if (!temp || temp.length <= 0) {\r\n let entity = {};\r\n entity.DetailLedgerKindId = x;\r\n entity.SubLedgerId = this.model.Id;\r\n entity.DetailLedgerLevel = 2;\r\n entity.State = RowState.New;\r\n if (\r\n !this.model.SubLedgerDetailLedgerKinds.some(\r\n (x) => x.DetailLedgerLevel === entity.DetailLedgerLevel && x.DetailLedgerKindId == entity.DetailLedgerKindId\r\n )\r\n )\r\n this.model.SubLedgerDetailLedgerKinds.push(entity);\r\n }\r\n });\r\n }\r\n this.model.SubLedgerDetailLedgerKinds.filter((x) => x.DetailLedgerLevel === 2).forEach((item) => {\r\n if (this._selectedLevel2Ids && !this._selectedLevel2Ids.some((x) => x === item.DetailLedgerKindId)) {\r\n item.State = RowState.Delete;\r\n }\r\n });\r\n\r\n this._selectedLevel3Ids = this.formGroup.value.DetailLedger3;\r\n if (!this.formGroup.value.HasDetailLedger3) this._selectedLevel3Ids = null;\r\n if (this._selectedLevel3Ids && this._selectedLevel3Ids?.length > 0) {\r\n this._selectedLevel3Ids.forEach((x) => {\r\n let temp = this.model.SubLedgerDetailLedgerKinds.filter((sdk) => sdk.DetailLedgerKindId === x && sdk.DetailLedgerLevel === 3);\r\n if (!temp || temp.length <= 0) {\r\n let entity = {};\r\n entity.DetailLedgerKindId = x;\r\n entity.SubLedgerId = this.model.Id;\r\n entity.DetailLedgerLevel = 3;\r\n entity.State = RowState.New;\r\n if (\r\n !this.model.SubLedgerDetailLedgerKinds.some(\r\n (x) => x.DetailLedgerLevel === entity.DetailLedgerLevel && x.DetailLedgerKindId == entity.DetailLedgerKindId\r\n )\r\n )\r\n this.model.SubLedgerDetailLedgerKinds.push(entity);\r\n }\r\n });\r\n }\r\n this.model.SubLedgerDetailLedgerKinds.filter((x) => x.DetailLedgerLevel === 3).forEach((item, index) => {\r\n if (this._selectedLevel3Ids && !this._selectedLevel3Ids.some((x) => x === item.DetailLedgerKindId)) {\r\n item.State = RowState.Delete;\r\n }\r\n });\r\n this._selectedLevel4Ids = this.formGroup.value.DetailLedger4;\r\n if (!this.formGroup.value.HasDetailLedger4) this._selectedLevel4Ids = null;\r\n if (this._selectedLevel4Ids && this._selectedLevel4Ids?.length > 0) {\r\n this._selectedLevel4Ids.forEach((x) => {\r\n let temp = this.model.SubLedgerDetailLedgerKinds.filter((sdk) => sdk.DetailLedgerKindId === x && sdk.DetailLedgerLevel === 4);\r\n if (!temp || temp.length <= 0) {\r\n let entity = {};\r\n entity.DetailLedgerKindId = x;\r\n entity.SubLedgerId = this.model.Id;\r\n entity.DetailLedgerLevel = 4;\r\n entity.State = RowState.New;\r\n if (\r\n !this.model.SubLedgerDetailLedgerKinds.some(\r\n (x) => x.DetailLedgerLevel === entity.DetailLedgerLevel && x.DetailLedgerKindId == entity.DetailLedgerKindId\r\n )\r\n )\r\n this.model.SubLedgerDetailLedgerKinds.push(entity);\r\n }\r\n });\r\n }\r\n this.model.SubLedgerDetailLedgerKinds.filter((x) => x.DetailLedgerLevel === 4).forEach((item, index) => {\r\n if (this._selectedLevel4Ids && !this._selectedLevel4Ids.some((x) => x === item.DetailLedgerKindId)) {\r\n item.State = RowState.Delete;\r\n }\r\n });\r\n this._selectedLevel5Ids = this.formGroup.value.DetailLedger5;\r\n if (!this.formGroup.value.HasDetailLedger5) this._selectedLevel5Ids = null;\r\n if (this._selectedLevel5Ids && this._selectedLevel5Ids?.length > 0) {\r\n this._selectedLevel5Ids.forEach((x) => {\r\n let temp = this.model.SubLedgerDetailLedgerKinds.filter((sdk) => sdk.DetailLedgerKindId === x && sdk.DetailLedgerLevel === 5);\r\n if (!temp || temp.length <= 0) {\r\n let entity = {};\r\n entity.DetailLedgerKindId = x;\r\n entity.SubLedgerId = this.model.Id;\r\n entity.DetailLedgerLevel = 5;\r\n entity.State = RowState.New;\r\n if (\r\n !this.model.SubLedgerDetailLedgerKinds.some(\r\n (x) => x.DetailLedgerLevel === entity.DetailLedgerLevel && x.DetailLedgerKindId == entity.DetailLedgerKindId\r\n )\r\n )\r\n this.model.SubLedgerDetailLedgerKinds.push(entity);\r\n }\r\n });\r\n }\r\n this.model.SubLedgerDetailLedgerKinds.filter((x) => x.DetailLedgerLevel === 5).forEach((item, index) => {\r\n if (this._selectedLevel5Ids && !this._selectedLevel5Ids.some((x) => x === item.DetailLedgerKindId)) {\r\n item.State = RowState.Delete;\r\n }\r\n });\r\n this._selectedLevel6Ids = this.formGroup.value.DetailLedger6;\r\n if (!this.formGroup.value.HasDetailLedger6) this._selectedLevel6Ids = null;\r\n if (this._selectedLevel6Ids && this._selectedLevel6Ids?.length > 0) {\r\n this._selectedLevel6Ids.forEach((x) => {\r\n let temp = this.model.SubLedgerDetailLedgerKinds.filter((sdk) => sdk.DetailLedgerKindId === x && sdk.DetailLedgerLevel === 6);\r\n if (!temp || temp.length <= 0) {\r\n let entity = {};\r\n entity.DetailLedgerKindId = x;\r\n entity.SubLedgerId = this.model.Id;\r\n entity.DetailLedgerLevel = 6;\r\n entity.State = RowState.New;\r\n if (\r\n !this.model.SubLedgerDetailLedgerKinds.some(\r\n (x) => x.DetailLedgerLevel === entity.DetailLedgerLevel && x.DetailLedgerKindId == entity.DetailLedgerKindId\r\n )\r\n )\r\n this.model.SubLedgerDetailLedgerKinds.push(entity);\r\n }\r\n });\r\n }\r\n this.model.SubLedgerDetailLedgerKinds.filter((x) => x.DetailLedgerLevel === 6).forEach((item, index) => {\r\n if (this._selectedLevel6Ids && !this._selectedLevel6Ids.some((x) => x === item.DetailLedgerKindId)) {\r\n item.State = RowState.Delete;\r\n }\r\n });\r\n this._selectedLevel7Ids = this.formGroup.value.DetailLedger7;\r\n if (!this.formGroup.value.HasDetailLedger7) this._selectedLevel7Ids = null;\r\n if (this._selectedLevel7Ids && this._selectedLevel7Ids?.length > 0) {\r\n this._selectedLevel7Ids.forEach((x) => {\r\n let temp = this.model.SubLedgerDetailLedgerKinds.filter((sdk) => sdk.DetailLedgerKindId === x && sdk.DetailLedgerLevel === 7);\r\n if (!temp || temp.length <= 0) {\r\n let entity = {};\r\n entity.DetailLedgerKindId = x;\r\n entity.SubLedgerId = this.model.Id;\r\n entity.DetailLedgerLevel = 7;\r\n entity.State = RowState.New;\r\n if (\r\n !this.model.SubLedgerDetailLedgerKinds.some(\r\n (x) => x.DetailLedgerLevel === entity.DetailLedgerLevel && x.DetailLedgerKindId == entity.DetailLedgerKindId\r\n )\r\n )\r\n this.model.SubLedgerDetailLedgerKinds.push(entity);\r\n }\r\n });\r\n }\r\n this.model.SubLedgerDetailLedgerKinds.filter((x) => x.DetailLedgerLevel === 7).forEach((item, index) => {\r\n if (this._selectedLevel7Ids && !this._selectedLevel7Ids.some((x) => x === item.DetailLedgerKindId)) {\r\n item.State = RowState.Delete;\r\n }\r\n });\r\n this.formGroup.controls[\"SubLedgerDetailLedgerKinds\"].setValue(this.model.SubLedgerDetailLedgerKinds);\r\n }\r\n isValid() {\r\n if (!this.selectedgeneralLedgerCodeLen || this.selectedgeneralLedgerCodeLen === 0) this.setlen();\r\n this.isValidDetailLedgerKind();\r\n let result =\r\n this.model.Code &&\r\n this.model.Code.toString().length >= this.selectedgeneralLedgerCodeLen + 1 &&\r\n this.model.Code.toString().length <= this.selectedgeneralLedgerCodeLen + this.selectedSubLedgerCodeLen &&\r\n this.model.Code.toString().substring(0, this.selectedgeneralLedgerCodeLen) === this.model.GeneralLedgerCode.toString();\r\n if (!result) this.formGroup.controls[\"Code\"].setErrors({ customerror: `${this.translate(\"ClientApp.BackOffice.ACC.SubLedger.SubLedgerWrong\")}` });\r\n return result;\r\n }\r\n\r\n setColumnAttribute() {\r\n const dlLevel = this.detailLedgerLevel;\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"GeneralLedgerId\") x.disabled = !this.isNewRow;\r\n if (x.name === \"HasDetailLedger1\") x.formVisible = dlLevel >= 1;\r\n if (x.name === \"HasDetailLedger2\") x.formVisible = dlLevel >= 2;\r\n if (x.name === \"HasDetailLedger3\") x.formVisible = dlLevel >= 3;\r\n if (x.name === \"HasDetailLedger4\") x.formVisible = dlLevel >= 4;\r\n if (x.name === \"HasDetailLedger5\") x.formVisible = dlLevel >= 5;\r\n if (x.name === \"HasDetailLedger6\") x.formVisible = dlLevel >= 6;\r\n if (x.name === \"HasDetailLedger7\") x.formVisible = dlLevel >= 7;\r\n });\r\n let minfprmat = [10, 100, 1000, 10000, 100000, 1000000];\r\n let maxfprmat = [9, 99, 999, 9999, 99999, 999999];\r\n this.columns.forEach((x) => {\r\n if (x.name === \"GroupLedgerId\") x.disabled = !this.isNewRow;\r\n if (x.name === \"Code\" && this.model.GeneralLedgerCode) {\r\n x.min = this.model.GeneralLedgerCode * minfprmat[this.selectedSubLedgerCodeLen - 1];\r\n x.max = Number(this.model.GeneralLedgerCode.toString() + maxfprmat[this.selectedSubLedgerCodeLen - 1].toString());\r\n if (this.formGroup.get(\"Code\")) {\r\n let validator: ValidatorFn[] = [];\r\n if (x.required && !x.disabled) validator.push(Validators.required);\r\n if (x.max && x.max > 0) validator.push(Validators.max(x.max));\r\n if (x.min && x.min > 0) validator.push(Validators.min(x.min));\r\n this.formGroup.get(\"Code\").setValidators(validator);\r\n }\r\n }\r\n });\r\n }\r\n}\r\n"," 0\"\r\n [apiName]=\"apiName\"\r\n [group]=\"formGroup\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [model]=\"model\"\r\n [columns]=\"columns\"\r\n (cancelChange)=\"cancel()\"\r\n (submitChange)=\"save()\"\r\n (onRowSelected)=\"onChange($event)\">\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { ColumnBase } from \"@progress/kendo-angular-grid\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, Permission, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { RowAccessKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { GridFilter, LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { RowAccessComponent } from \"src/app/gnr/row-access/row-access.component\";\r\nimport { SubLedger } from \"../../models/subledger.model\";\r\nimport { SubLedgerImportExcelFormComponent } from \"../sub-ledger-import-excel/sub-ledger-import-excel-form.component\";\r\nimport { SubLedgerFormComponent } from \"../subledger-form/subledger-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-subledger-list\",\r\n templateUrl: \"./subledger-list.component.html\",\r\n styleUrls: [\"./subledger-list.component.scss\"],\r\n})\r\nexport class SubLedgerListComponent extends BaseListComponent {\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n HasRowAccess: boolean;\r\n get detailLedgerLevel(): number {\r\n return this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n }\r\n constructor(private missetup: MisSetupService, private lookupservice: LookupService) {\r\n super();\r\n this.inputEditorform = SubLedgerFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n if (this.HasRowAccess === undefined) {\r\n this.HasRowAccess = this.missetup.getboolean(\"GNR\", \"HasRowAccess\");\r\n }\r\n this.apiName = \"SubLedger\";\r\n this.areaName = \"Accounting\";\r\n this.label = this.translate(\"ClientApp.BackOffice.ACC.SubLedger.SubLedger\");\r\n this.setColumns();\r\n this.setactions();\r\n }\r\n\r\n ngOnDestroy(): void {}\r\n setColumns() {\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (data) {\r\n this.columns = data as form_control[];\r\n this.setColumnAttribute();\r\n this.columns = (data as form_control[]).filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.listVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n }\r\n });\r\n }\r\n setColumnAttribute() {\r\n const dlLevel = this.detailLedgerLevel;\r\n this.columns.forEach((x) => {\r\n if (x.name === \"HasDetailLedger1\") x.listVisible = dlLevel >= 1;\r\n if (x.name === \"HasDetailLedger2\") x.listVisible = dlLevel >= 2;\r\n if (x.name === \"HasDetailLedger3\") x.listVisible = dlLevel >= 3;\r\n if (x.name === \"HasDetailLedger4\") x.listVisible = dlLevel >= 4;\r\n if (x.name === \"HasDetailLedger5\") x.listVisible = dlLevel >= 5;\r\n if (x.name === \"HasDetailLedger6\") x.listVisible = dlLevel >= 6;\r\n if (x.name === \"HasDetailLedger7\") x.listVisible = dlLevel >= 7;\r\n });\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"ImportFromExcel\",\r\n disabled: false,\r\n displayName: \"ورودی اکسل\",\r\n iconName: \"icon-file-excel-o\",\r\n apiName: \"GroupLedger/ImportExcel\",\r\n areaName: \"Accounting\",\r\n Form_Component: SubLedgerImportExcelFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n if (this.HasRowAccess === true)\r\n this.actions.push({\r\n name: \"RowAccess\",\r\n disabled: false,\r\n displayName: \"دسترسی در ردیف\",\r\n iconName: \"icon-users\",\r\n apiName: \"SubLedger/RowAccess\",\r\n areaName: \"Accounting\",\r\n requireSelectedrows: true,\r\n Form_Component: RowAccessComponent,\r\n permission: Permission.samePermission,\r\n });\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: SubLedger, onRowsSelected: SubLedger[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n if (action.name === \"RowAccess\") {\r\n let ids: number[] = [];\r\n if (onRowsSelected != null && onRowsSelected.length > 0) {\r\n onRowsSelected.forEach((x) => ids.push(x.Id));\r\n } else ids.push(onRowSelected.Id);\r\n this.lookupservice\r\n .getLookupbyCode(\"Security\", \"RowAccess\", RowAccessKind.SubLedger)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n SelectedRows: ids,\r\n RowKindId: x.Id,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n },\r\n (error) => {}\r\n );\r\n }\r\n if (action.name === \"ImportFromExcel\") {\r\n var gridInfo = this.getGridInfo(this.grid.grid.columns.toArray());\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n gridInfo: gridInfo,\r\n label: action.displayName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n }\r\n }\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.getGridInfo(this.grid.grid.columns.toArray()));\r\n });\r\n }\r\n\r\n getGridInfo(columns: ColumnBase[]): GridColumnInfoDetail[] {\r\n return columns\r\n .filter((x) => !x.hidden)\r\n .map((x) => {\r\n const info = new GridColumnInfoDetail();\r\n info.name = x[\"field\"];\r\n info.hidden = x.hidden;\r\n info.orderindex = x.orderIndex;\r\n info.title = x.title;\r\n return info;\r\n });\r\n }\r\n}\r\n","
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [paging]=\"true\"\r\n reportName=\"SubLedger\"\r\n pathPreFix=\"ACC\"\r\n [columns]=\"columns\"\r\n [isMulti]=\"false\"\r\n [actions]=\"actions\"\r\n [actionTregger]=\"onActionClick\"\r\n [customExportExcelUrl]=\"'SubLedger/ExportExcel'\"\r\n [inputEditorform]=\"inputEditorform\"\r\n [getParamsForExportExcelWithPostMethod]=\"getParamsForExportExcelWithPostMethod.bind(this)\">\r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SubLedgerImportExcelFormComponent } from \"./sub-ledger-import-excel/sub-ledger-import-excel-form.component\";\r\nimport { SubLedgerFormComponent } from \"./subledger-form/subledger-form.component\";\r\nimport { SubLedgerListComponent } from \"./subledger-list/subledger-list.component\";\r\n\r\nconst components = [SubLedgerFormComponent, SubLedgerListComponent, SubLedgerImportExcelFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class SubLedgerModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherHeader } from \"../models/accvoucherheader.model\";\r\nimport { VoucherInfo } from \"../models/voucherInfo.model\";\r\n\r\n@Component({\r\n selector: \"ngx-voucher-approve\",\r\n templateUrl: \"./voucher-approve.component.html\",\r\n styleUrls: [\"./voucher-approve.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class VoucherApproveComponent extends BaseFormComponent {\r\n erroremessage: string;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.label = \"قطعی کردن اسناد\";\r\n this.apiName = \"AccVoucherHeader/VoucherApprove\";\r\n super.ngOnInit();\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n }\r\n setColumnAttribute() {\r\n this.orignalColumns = this.orignalColumns.filter((x) => x.name === \"VoucherDate\");\r\n this.columns = this.orignalColumns;\r\n }\r\n setdefault() {\r\n if (!this.model.VoucherDate) this.model.VoucherDate = new Date();\r\n if (\r\n new Date(this.model.VoucherDate).setHours(0, 0, 0, 0) > new Date(this.accountService.authService.currentFiscalYear.EndDate).setHours(0, 0, 0, 0)\r\n )\r\n this.model.VoucherDate = this.accountService.authService.currentFiscalYear.EndDate;\r\n }\r\n isValid() {\r\n let flag: boolean = true;\r\n if (!this.formGroup.controls[\"VoucherDate\"].value) {\r\n flag = false;\r\n this.erroremessage = \"تاریخ انتخاب نشده است.\";\r\n }\r\n return flag;\r\n }\r\n async save() {\r\n if (!this.isSaving && this.isValid()) {\r\n this.isSaving = true;\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n if (this.model.FiscalYearId && this.model.FiscalYearId > 0)\r\n this.sts.showDialog(`آیا از قطعی کردن اسناد اطمینان دارید؟`, \"قطعی کردن اسناد\", DialogType.confirm, () => this.VoucherApprove());\r\n else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n this.sts.showDialog(`آیا از قطعی کردن اسناد اطمینان دارید؟`, \"قطعی کردن اسناد\", DialogType.confirm, () => this.VoucherApprove());\r\n }\r\n });\r\n }\r\n }\r\n VoucherApprove() {\r\n let entity: VoucherInfo = {};\r\n entity.VoucherDate = this.formGroup.controls[\"VoucherDate\"].value;\r\n entity.BranchId = this.accountService.authService.currentBranchId;\r\n entity.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.httpCommonService\r\n .create(this.apiName, entity)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => this.saveSuccessHelper(row),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n

در صورت قطعی شدن اسناد دیگر قابل برگشت نخواهد بود.

\r\n
\r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { VoucherApproveComponent } from \"./voucher-approve.component\";\r\n\r\nconst components = [VoucherApproveComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class VoucherApproveModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { HrmAccVoucherCode } from \"../../models/hrm-acc-voucher-code.mode\";\r\n@Component({\r\n selector: \"hrm-acc-voucher-code-form\",\r\n templateUrl: \"./hrm-acc-voucher-code-form.component.html\",\r\n styleUrls: [\"./hrm-acc-voucher-code-form.component.scss\"],\r\n})\r\nexport class HrmAccVoucherCodeFormComponent extends BaseFormComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n DetailLedgerLevel: number = 0;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private missetup: MisSetupService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.DetailLedgerLevel = this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n this.apiName = \"HrmAccVoucherCode\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"ارتباط حسابها و عوامل\";\r\n super.ngOnInit();\r\n }\r\n setColumnAttribute() {\r\n if (!this.DetailLedgerLevel) this.DetailLedgerLevel = this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name.includes(\"DetailLedgerId\") || x.name.includes(\"DetailLedgerKindId\")) {\r\n x.formVisible = this.DetailLedgerLevel >= 1;\r\n }\r\n if (x.name.includes(\"DetailLedger2Id\") || x.name.includes(\"DetailLedgerKind2Id\")) {\r\n x.formVisible = this.DetailLedgerLevel >= 2;\r\n }\r\n if (x.name.includes(\"DetailLedger3Id\") || x.name.includes(\"DetailLedgerKind3Id\")) {\r\n x.formVisible = this.DetailLedgerLevel >= 3;\r\n }\r\n if (x.name.includes(\"DetailLedger4Id\") || x.name.includes(\"DetailLedgerKind4Id\")) {\r\n x.formVisible = this.DetailLedgerLevel >= 4;\r\n }\r\n if (x.name.includes(\"DetailLedger5Id\") || x.name.includes(\"DetailLedgerKind5Id\")) {\r\n x.formVisible = this.DetailLedgerLevel >= 5;\r\n }\r\n });\r\n this.columns = this.orignalColumns.filter((x) => x.formVisible);\r\n this.columns.forEach((x) => (x.userClass = \"select-sm\"));\r\n this.setColumnNumber(this.columns, 5);\r\n }\r\n}\r\n","\r\n\r\n","import { ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormControl, Validators, UntypedFormGroup } from \"@angular/forms\";\r\nimport { GroupDescriptor } from \"@progress/kendo-data-query\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HrmAccVoucherCodeFormComponent } from \"./hrm-acc-voucher-code-form.component\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\n@Component({\r\n selector: 'hrm-acc-voucher-code',\r\n templateUrl: './hrm-acc-voucher-code.component.html',\r\n styleUrls: ['./hrm-acc-voucher-code.component.scss']\r\n})\r\nexport class HrmAccVoucherCodeComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n public gridColumns: form_control[] = [];\r\n groups: GroupDescriptor[] = [{ field: \"ElementGroupTitle\" }, { field: \"CostCenterTitle\" }];\r\n editingName: { name: string };\r\n actions: EntityListAction[];\r\n PayCompaniesIds: number[] = [];\r\n model: any;\r\n DetailLedgerLevel: number = 0;\r\n pcColumns: form_control[] = [];\r\n filterInfo: NameValue[] = [];\r\n @ViewChild(KGridComponent) grid: KGridComponent;\r\n constructor(\r\n private lookupservice: LookupService, protected cd: ChangeDetectorRef, private missetup: MisSetupService) {\r\n super();\r\n this.inputEditorform = HrmAccVoucherCodeFormComponent;\r\n }\r\n ngOnInit() {\r\n this.DetailLedgerLevel = this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n this.apiName = \"HrmAccVoucherCode/GetByHrmVouchrKindId\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"ارتباط حسابها و عوامل\";\r\n this.setColumns();\r\n }\r\n async setGridColumns() {\r\n if (!this.DetailLedgerLevel)\r\n this.DetailLedgerLevel = this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n const data = await this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.gridColumns = (data as form_control[]).sort((a, b) => a.order - b.order);\r\n this.gridColumns.forEach(x => {\r\n if (x.name.includes('DetailLedgerCode') ||\r\n x.name.includes('DetailLedgerTitle') ||\r\n x.name.includes('DetailLedgerKindTitle')) {\r\n x.listVisible = this.DetailLedgerLevel >= 1;\r\n }\r\n if (x.name.includes('DetailLedger2Code') ||\r\n x.name.includes('DetailLedger2Title') ||\r\n x.name.includes('DetailLedgerKind2Title')) {\r\n x.listVisible = this.DetailLedgerLevel >= 2;\r\n }\r\n if (x.name.includes('DetailLedger3Code') ||\r\n x.name.includes('DetailLedger3Title') ||\r\n x.name.includes('DetailLedgerKind3Title')) {\r\n x.listVisible = this.DetailLedgerLevel >= 3;\r\n }\r\n if (x.name.includes('DetailLedger4Code') ||\r\n x.name.includes('DetailLedger4Title') ||\r\n x.name.includes('DetailLedgerKind4Title')) {\r\n x.listVisible = this.DetailLedgerLevel >= 4;\r\n }\r\n if (x.name.includes('DetailLedger5Code') ||\r\n x.name.includes('DetailLedger5Title') ||\r\n x.name.includes('DetailLedgerKind5Title')) {\r\n x.listVisible = this.DetailLedgerLevel >= 5;\r\n }\r\n });\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n setColumns() {\r\n this.setGridColumns();\r\n let group: any = {};\r\n this.model = {};\r\n this.columns = [];\r\n this.columns.push({ label: 'نوع سند', controlType: FormControlTypes.dropdown, modelName: 'HrmVouchrKindId', disabled: false, name: 'HrmVouchrKindId', order: 1, textType: 'text', formVisible: true, listVisible: true, required: true, columnNumber: 1, userClass: \"select-sm\", apiName: \"Lookup\", systemName: 'HRM', category: 'HrmVouchrKind', valueMember: 'Id', displayMember: 'Title' });\r\n this.lookupservice.getLookupbyCode(\"HRM\", \"HrmVouchrKind\", 1).\r\n pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(rk => {\r\n this.filterInfo.push({ Name: 'HrmVouchrKindId', Value: rk.Id, Operator: 'eq' });\r\n this.filterInfo.push({ Name: 'HrmVouchrKindCode', Value: rk.Code, Operator: 'eq' });\r\n \r\n group['HrmVouchrKindId'] = new UntypedFormControl(rk.Id, Validators.required);\r\n });\r\n this.group = new UntypedFormGroup(group);\r\n this.model = this.getDataFromFormGroup(this.model);\r\n this.group.get('HrmVouchrKindId')\r\n .valueChanges\r\n .subscribe(x => {\r\n if (x) {\r\n var HrmVouchrKind = this.lookupservice.getLookupbyId(x); \r\n this.filterInfo.find(x => x.Name === 'HrmVouchrKindId').Value = x;\r\n this.filterInfo.find(x => x.Name === 'HrmVouchrKindCode').Value = HrmVouchrKind.Code;\r\n if (this.grid) {\r\n this.grid.defaultFilterKey = this.filterInfo;\r\n this.grid.refreshData();\r\n }\r\n }\r\n });\r\n this.cd.markForCheck();\r\n }\r\n}","
\r\n
\r\n \r\n
\r\n 0 && gridColumns && gridColumns.length > 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n pathPreFix=\"HRM\"\r\n [isMulti]=\"false\"\r\n [columns]=\"gridColumns\"\r\n [SelectById]=\"'ElementId'\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n [inputEditorform]=\"inputEditorform\">\r\n \r\n
\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, Permission, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherFormComponent } from \"src/app/backoffice/acc/accvoucher/accvoucher-form/accvoucher-form.component\";\r\nimport { HrmPayCurentYearMonthComponent } from \"../../hrm-pay-curent-year-month/hrm-pay-curent-year-month.component\";\r\nimport { HrmAccVoucherHeader } from \"../../models/hrm-acc-voucher-header.model\";\r\n@Component({\r\n selector: \"hrm-acc-voucher-header\",\r\n templateUrl: \"./hrm-acc-voucher-header.component.html\",\r\n styleUrls: [\"./hrm-acc-voucher-header.component.scss\"],\r\n})\r\nexport class HrmAccVoucherHeaderComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n actions: EntityListAction[];\r\n PayCompaniesIds: number[] = [];\r\n public HrmAccVoucherColimns: form_control[] = [];\r\n model: any;\r\n filterInfo: NameValue[] = [];\r\n @ViewChild(KGridComponent) grid: KGridComponent;\r\n constructor(private tabsservice: TabularService, private splashFormService: SplashFormService, private lookupservice: LookupService) {\r\n super();\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"HrmAccVoucherHeader\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"فهرست اسناد حسابداری\";\r\n this.setColumns();\r\n this.setactions();\r\n if (this.accountService.authService.getHrmPayCurentYearMonth()) {\r\n if (\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentYear &&\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth\r\n ) {\r\n this.filterInfo.push({ Name: \"IssueYear\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"IssueMonth\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth, Operator: \"eq\" });\r\n }\r\n } else this.setHrmPayCurentYearMonth();\r\n }\r\n setColumns() {\r\n let group: any = {};\r\n this.model = {};\r\n this.model.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n this.model.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"نوع سند\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"HrmVouchrKindId\",\r\n disabled: false,\r\n name: \"HrmVouchrKindId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 1,\r\n userClass: \"select-sm\",\r\n apiName: \"Lookup\",\r\n systemName: \"HRM\",\r\n category: \"HrmVouchrKind\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"سال\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueYear\",\r\n disabled: false,\r\n name: \"IssueYear\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 1,\r\n userClass: \"select-sm\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"ماه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueMonth\",\r\n disabled: false,\r\n name: \"IssueMonth\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 2,\r\n userClass: \"select-sm\",\r\n apiName: \"MonthsName\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n group[\"IssueYear\"] = new UntypedFormControl(this.model.IssueYear, Validators.required);\r\n group[\"IssueMonth\"] = new UntypedFormControl(this.model.IssueMonth, Validators.required);\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"HrmVouchrKind\", 1)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((rk) => {\r\n this.filterInfo.push({ Name: \"HrmVouchrKindId\", Value: rk.Id, Operator: \"eq\" });\r\n group[\"HrmVouchrKindId\"] = new UntypedFormControl(rk.Id, Validators.required);\r\n });\r\n this.group = new UntypedFormGroup(group);\r\n this.model = this.getDataFromFormGroup(this.model);\r\n this.httpCommonService\r\n .getList(\"HrmAccVoucherCode/GetHrmAccVoucherColimns\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.HrmAccVoucherColimns = x as [];\r\n },\r\n (error) => {\r\n console.timeLog(error);\r\n }\r\n );\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: HrmAccVoucherHeader,\r\n onRowsSelected: HrmAccVoucherHeader[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n if (onRowSelected && (!onRowsSelected || onRowsSelected.length <= 0)) onRowsSelected = [onRowSelected];\r\n let HrmAccVoucherHeaderIds: number[] = [];\r\n if (isAllSelected) {\r\n if (!gridFilter.some((x) => x.Filed === \"IsAllSelected\"))\r\n gridFilter.push({ Filed: \"IsAllSelected\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: isAllSelected, Logic: \"and\" });\r\n else gridFilter.find((x) => x.Filed === \"IsAllSelected\").Value = isAllSelected;\r\n }\r\n\r\n ///نمایش سند حسابداری\r\n if (action.name === \"ViewAccVoucher\") {\r\n if (onRowSelected) {\r\n if (!onRowSelected.AccVoucherHeaderFixNo) {\r\n this.sts.showDialog(\"سندحسابداری صادر نشده است.\", \"خطا\");\r\n return;\r\n }\r\n this.httpCommonService\r\n .getItem(\"HrmAccVoucherHeader/ViewAccVoucher\", onRowSelected.AccVoucherHeaderId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n var datatrasfer: Datatransfer = {};\r\n datatrasfer.apiName = \"AccVoucherHeader\";\r\n datatrasfer.label = \"صدور سند حسابداری\";\r\n datatrasfer.areaName = \"Accounting\";\r\n datatrasfer.currentrow = x;\r\n const menu = {\r\n title: `سند حسابداری-(نمایش)`,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: AccVoucherFormComponent,\r\n data: [\r\n { provide: EntityBase, useValue: x },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: x[\"\"] } },\r\n ],\r\n };\r\n this.tabsservice.open(menu);\r\n },\r\n (error) => this.sts.showDialog(`خطا در نمایش سند:${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n }\r\n ///حذف سند حسابداری\r\n if (action.name === \"DeleteAccVoucher\") {\r\n if (onRowSelected) {\r\n if (!HrmAccVoucherHeaderIds) HrmAccVoucherHeaderIds = [];\r\n HrmAccVoucherHeaderIds.push(onRowSelected.Id);\r\n }\r\n if (onRowsSelected && onRowsSelected.length > 0) {\r\n onRowsSelected.forEach((x) => {\r\n if (x) {\r\n if (!HrmAccVoucherHeaderIds) HrmAccVoucherHeaderIds = [];\r\n if (!HrmAccVoucherHeaderIds.some((id) => id === x.Id) && action.name === \"DeleteAccVoucher\") HrmAccVoucherHeaderIds.push(x.Id);\r\n }\r\n });\r\n }\r\n\r\n let filter: GridFilter = {\r\n Type: \"F\",\r\n Filed: \"HrmAccVoucherHeaderIds\",\r\n Value: HrmAccVoucherHeaderIds,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n };\r\n if (HrmAccVoucherHeaderIds && HrmAccVoucherHeaderIds.length > 0) gridFilter.push(filter);\r\n\r\n if (action.name === \"DeleteAccVoucher\") {\r\n if (gridFilter.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا اسناد انتخاب شده قابل حذف نیست\", \"خطا\");\r\n return;\r\n }\r\n this.sts.showDialog(\"آیا از حذف سند حسابداری اطمینان دارید؟\", \"حذف سند\", DialogType.confirm, () => this.deleteAccVoucher(gridFilter));\r\n }\r\n }\r\n }\r\n\r\n deleteAccVoucher(gridFilter: GridFilter[]) {\r\n this.splashFormService.openDialog(\"\", \"در حال حذف سند حسابداری\");\r\n this.httpCommonService\r\n .create(this.apiName.split(\"/\")[0] + \"/DeleteAccVoucher\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"اسناد با موفقیت حذف شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در حذف اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n setHrmPayCurentYearMonth() {\r\n this.dialogService\r\n .open(\r\n HrmPayCurentYearMonthComponent,\r\n {\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.ngOnInit();\r\n });\r\n }\r\n onvalueChangeByApiName($event) {\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Lookup\") && $event.KeyName === \"HrmVouchrKindId\") {\r\n this.filterInfo.find((x) => x.Name === \"HrmVouchrKindId\").Value = $event.data.Id;\r\n }\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"FiscalYear/FiscalYear\") && $event.KeyName === \"IssueYear\") {\r\n this.filterInfo.find((x) => x.Name === \"IssueYear\").Value = $event.data.Year;\r\n }\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"MonthsName\") && $event.KeyName === \"IssueMonth\") {\r\n this.filterInfo.find((x) => x.Name === \"IssueMonth\").Value = $event.data.Id;\r\n }\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"DeleteAccVoucher\",\r\n disabled: false,\r\n displayName: \"حذف سند حسابداری\",\r\n iconName: \"icon-delete-sweep-outline\",\r\n apiName: \"InvVoucherHeader/DeleteAccVoucher\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"ViewAccVoucher\",\r\n disabled: false,\r\n displayName: \"نمایش سند حسابداری\",\r\n iconName: \"icon-table_view-f\",\r\n apiName: \"InvVoucherHeader/ViewAccVoucher\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n pathPreFix=\"HRM\"\r\n [isMulti]=\"true\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n defaultSortKey=\"PersCode\"\r\n defaultSortKeyKind=\"asc\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n [actionTregger]=\"onActionClick\"\r\n [actions]=\"actions\">\r\n \r\n
\r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { HrmAccVoucherCodeFormComponent } from \"./hrm-acc-voucher-code/hrm-acc-voucher-code-form.component\";\r\nimport { HrmAccVoucherCodeComponent } from \"./hrm-acc-voucher-code/hrm-acc-voucher-code.component\";\r\nimport { HrmAccVoucherHeaderComponent } from \"./hrm-acc-voucher-header/hrm-acc-voucher-header.component\";\r\nimport { HrmAccVoucherDateFormComponent } from \"./hrm-acc-voucher/hrm-acc-voucher-date/hrm-acc-voucher-date-form.component\";\r\nimport { HrmAccVoucherComponent } from \"./hrm-acc-voucher/hrm-acc-voucher.component\";\r\n\r\nconst components = [\r\n HrmAccVoucherCodeComponent,\r\n HrmAccVoucherCodeFormComponent,\r\n HrmAccVoucherComponent,\r\n HrmAccVoucherHeaderComponent,\r\n HrmAccVoucherDateFormComponent,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class HrmAccVoucherModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\n@Component({\r\n selector: \"ngx-unit-form\",\r\n templateUrl: \"./hrm-acc-voucher-date-form.component.html\",\r\n styleUrls: [\"./hrm-acc-voucher-date-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HrmAccVoucherDateFormComponent extends BaseFormComponent {\r\n deactivateSave: boolean = false;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n erroremessage: string;\r\n async ngOnInit() {\r\n await this.setColumns();\r\n }\r\n async setColumns() {\r\n this.orignalColumns = [];\r\n this.orignalColumns.push({\r\n label: \"تاریخ سند\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"VoucherDate\",\r\n disabled: false,\r\n name: \"VoucherDate\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.orignalColumns.push({\r\n label: \"شعه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.model = {};\r\n this.model.VoucherDate = new Date();\r\n this.model.BranchId = this.accountService.authService.currentBranchId;\r\n this.columns = this.orignalColumns;\r\n this.setFormGroup(this.model);\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n async save() {\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.result = this.getDataFromFormGroup();\r\n this.closeModal();\r\n }\r\n}\r\n"," 0\"\r\n [apiName]=\"apiName\"\r\n [group]=\"formGroup\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [model]=\"model\"\r\n [columns]=\"columns\"\r\n (cancelChange)=\"cancel()\"\r\n (submitChange)=\"save()\">\r\n\r\n","import { ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { EntityListAction, form_control, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HrmPayCurentYearMonthComponent } from \"../../hrm-pay-curent-year-month/hrm-pay-curent-year-month.component\";\r\nimport { HRNotificationHeader } from \"../../models/hrnotification-header.model\";\r\nimport { HrmAccVoucherDateFormComponent } from \"./hrm-acc-voucher-date/hrm-acc-voucher-date-form.component\";\r\n\r\n@Component({\r\n selector: \"hrm-acc-voucher\",\r\n templateUrl: \"./hrm-acc-voucher.component.html\",\r\n styleUrls: [\"./hrm-acc-voucher.component.scss\"],\r\n})\r\nexport class HrmAccVoucherComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n actions: EntityListAction[];\r\n PayCompaniesIds: number[] = [];\r\n public HrmAccVoucherColimns: form_control[] = [];\r\n model: any;\r\n filterInfo: NameValue[] = [];\r\n @ViewChild(KGridComponent) grid: KGridComponent;\r\n constructor(private splashFormService: SplashFormService, private cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super();\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"HrmAccVoucherCode/GetAccVoucherInfo\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"صدور سند حسابداری\";\r\n this.setColumns();\r\n this.setactions();\r\n if (this.accountService.authService.getHrmPayCurentYearMonth()) {\r\n if (\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentYear &&\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth\r\n ) {\r\n this.filterInfo.push({ Name: \"IssueYear\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"IssueMonth\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth, Operator: \"eq\" });\r\n }\r\n } else this.setHrmPayCurentYearMonth();\r\n }\r\n setColumns() {\r\n let group: any = {};\r\n this.model = {};\r\n this.model.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n this.model.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"نوع سند\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"HrmVouchrKindId\",\r\n disabled: false,\r\n name: \"HrmVouchrKindId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 1,\r\n userClass: \"select-sm\",\r\n apiName: \"Lookup\",\r\n systemName: \"HRM\",\r\n category: \"HrmVouchrKind\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"سال\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueYear\",\r\n disabled: false,\r\n name: \"IssueYear\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 1,\r\n userClass: \"select-sm\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"ماه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueMonth\",\r\n disabled: false,\r\n name: \"IssueMonth\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 2,\r\n userClass: \"select-sm\",\r\n apiName: \"MonthsName\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n group[\"IssueYear\"] = new UntypedFormControl(this.model.IssueYear, Validators.required);\r\n group[\"IssueMonth\"] = new UntypedFormControl(this.model.IssueMonth, Validators.required);\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"HrmVouchrKind\", 1)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((rk) => {\r\n this.filterInfo.push({ Name: \"HrmVouchrKindId\", Value: rk.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"HrmVouchrKindCode\", Value: rk.Code, Operator: \"eq\" });\r\n group[\"HrmVouchrKindId\"] = new UntypedFormControl(rk.Id, Validators.required);\r\n });\r\n this.group = new UntypedFormGroup(group);\r\n this.model = this.getDataFromFormGroup(this.model);\r\n this.httpCommonService\r\n .getList(\"HrmAccVoucherCode/GetHrmAccVoucherColimns\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.HrmAccVoucherColimns = x as [];\r\n },\r\n (error) => {\r\n console.timeLog(error);\r\n }\r\n );\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: HRNotificationHeader,\r\n onRowsSelected: HRNotificationHeader[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n let skip = gridFilter[0]?.Skip ?? 0;\r\n let take = gridFilter[0]?.Take ?? 10;\r\n if (isAllSelected) {\r\n gridFilter.push({ Filed: \"IsAllSelected\", Operator: \"eq\", Type: \"F\", Skip: skip, Take: take, Value: isAllSelected, Logic: \"and\" });\r\n } else if (onRowsSelected && onRowsSelected.length > 0) {\r\n let PersonnelIds: number[] = [];\r\n onRowsSelected.forEach((x) => {\r\n if (PersonnelIds.some((s) => s === x.HrmPersonnelId)) PersonnelIds.push(x.HrmPersonnelId);\r\n });\r\n if (!gridFilter.some((s) => s.Filed === \"PersonnelIds\"))\r\n gridFilter.push({ Filed: \"PersonnelIds\", Operator: \"eq\", Type: \"F\", Skip: skip, Take: take, Value: PersonnelIds, Logic: \"and\" });\r\n else gridFilter.find((s) => s.Filed === \"PersonnelIds\").Value = PersonnelIds;\r\n } else if (onRowSelected) {\r\n let PersonnelIds: number[] = [];\r\n PersonnelIds.push(onRowSelected.HrmPersonnelId);\r\n gridFilter.push({ Filed: \"PersonnelIds\", Operator: \"eq\", Type: \"F\", Skip: skip, Take: take, Value: PersonnelIds, Logic: \"and\" });\r\n }\r\n this.inputEditorform = HrmAccVoucherDateFormComponent;\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: null,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.splashFormService.openDialog(\"\", \"در حال صدور سند حسابداری\");\r\n if (!gridFilter.some((s) => s.Filed === \"FiscalYearId\"))\r\n gridFilter.push({\r\n Filed: \"FiscalYearId\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: skip,\r\n Take: take,\r\n Value: this.accountService.authService.currentFiscalYear.Id,\r\n Logic: \"and\",\r\n });\r\n else gridFilter.find((s) => s.Filed === \"FiscalYearId\").Value = this.accountService.authService.currentFiscalYear.Id;\r\n\r\n if (!gridFilter.some((s) => s.Filed === \"VoucherDate\"))\r\n gridFilter.push({ Filed: \"VoucherDate\", Operator: \"eq\", Type: \"F\", Skip: skip, Take: take, Value: model[\"VoucherDate\"], Logic: \"and\" });\r\n else gridFilter.find((s) => s.Filed === \"VoucherDate\").Value = model[\"VoucherDate\"];\r\n\r\n if (!gridFilter.some((s) => s.Filed === \"BranchId\"))\r\n gridFilter.push({ Filed: \"BranchId\", Operator: \"eq\", Type: \"F\", Skip: skip, Take: take, Value: model[\"BranchId\"], Logic: \"and\" });\r\n else gridFilter.find((s) => s.Filed === \"BranchId\").Value = model[\"BranchId\"];\r\n\r\n this.httpCommonService\r\n .create(action.apiName, gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.sts.showDialog(\"سند با موفقیت صادر شد.\", \"\");\r\n this.splashFormService.closeLoading();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(` خطا در صدور سند حسابداری${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n });\r\n }\r\n setHrmPayCurentYearMonth() {\r\n this.dialogService\r\n .open(\r\n HrmPayCurentYearMonthComponent,\r\n {\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.ngOnInit();\r\n });\r\n }\r\n onvalueChangeByApiName($event) {\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Lookup\") && $event.KeyName === \"HrmVouchrKindId\") {\r\n this.filterInfo.find((x) => x.Name === \"HrmVouchrKindId\").Value = $event.data.Id;\r\n this.filterInfo.find((x) => x.Name === \"HrmVouchrKindCode\").Value = $event.data.Code;\r\n if (this.grid) this.grid.defaultFilterKey = this.filterInfo;\r\n this.cd.markForCheck();\r\n }\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"FiscalYear/FiscalYear\") && $event.KeyName === \"IssueYear\") {\r\n this.filterInfo.find((x) => x.Name === \"IssueYear\").Value = $event.data.Id;\r\n if (this.grid) this.grid.defaultFilterKey = this.filterInfo;\r\n this.cd.markForCheck();\r\n }\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"MonthsName\") && $event.KeyName === \"IssueMonth\") {\r\n this.filterInfo.find((x) => x.Name === \"IssueMonth\").Value = $event.data.Id;\r\n if (this.grid) this.grid.defaultFilterKey = this.filterInfo;\r\n this.cd.markForCheck();\r\n }\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"MakeAccVoucher\",\r\n disabled: false,\r\n displayName: \"صدور سند\",\r\n iconName: \"icon-preview-f\",\r\n apiName: \"HrmAccVoucherCode/MakeAccVoucher\",\r\n areaName: \"Payroll\",\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n 0 && HrmAccVoucherColimns && HrmAccVoucherColimns.length > 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n pathPreFix=\"HRM\"\r\n [columns]=\"HrmAccVoucherColimns\"\r\n [isMulti]=\"true\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [SelectById]=\"'HrmPersonnelId'\"\r\n defaultSortKey=\"PersCode\"\r\n aggregatesColumnName=\"Debit,Credit\"\r\n defaultSortKeyKind=\"asc\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n [actionTregger]=\"onActionClick\"\r\n [actions]=\"actions\">\r\n\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CostCenter } from \"../../../models/base-info/cost-center.model\";\r\n\r\n@Component({\r\n selector: \"ngx-cost-center-form\",\r\n templateUrl: \"./cost-center-form.component.html\",\r\n styleUrls: [\"./cost-center-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CostCenterFormComponent extends BaseFormComponent {\r\n public apiName: string = \"CostCenter\";\r\n public label: string = \"مرکز هزینه\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { CostCenterFormComponent } from \"../cost-center-form/cost-center-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-cost-center-list\",\r\n templateUrl: \"./cost-center-list.component.html\",\r\n styleUrls: [\"./cost-center-list.component.scss\"],\r\n})\r\nexport class CostCenterListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = CostCenterFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"CostCenter\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"مراکز هزینه\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { CostCenterFormComponent } from \"./cost-center-form/cost-center-form.component\";\r\nimport { CostCenterListComponent } from \"./cost-center-list/cost-center-list.component\";\r\n\r\nconst components = [CostCenterFormComponent, CostCenterListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class CostCenterModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Type, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ElementFormula } from \"../../../models/base-info/element-formula.model\";\r\nimport { ElementProperty } from \"../../../models/base-info/element-property.model\";\r\nimport { Element } from \"../../../models/base-info/element.model\";\r\nimport { FormulaInfo } from \"../../../models/base-info/formula.model\";\r\nimport { EffectBase } from \"../../../models/enums/effect-base\";\r\nimport { ElementGroup } from \"../../../models/enums/element-group\";\r\nimport { ElementKind } from \"../../../models/enums/element-kind\";\r\nimport { ElementFormulaComponent } from \"../element-formula/element-formula.component\";\r\nimport { ElementPropertyFormComponent } from \"../element-property-form/element-property-form.component\";\r\n@Component({\r\n selector: \"ngx-element-form\",\r\n templateUrl: \"./element-form.component.html\",\r\n styleUrls: [\"./element-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ElementFormComponent extends BaseFormComponent {\r\n _columns: form_control[] = [];\r\n public apiName: string = \"Element\";\r\n public label: string = \"تعریف عوامل\";\r\n RowForSelect: ElementProperty;\r\n @ViewChild(\"ElementPropertys\") public ElementPropertys: KGridComponent;\r\n inputEditorform: Type;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super(selectorService, cd);\r\n this.inputEditorform = ElementPropertyFormComponent;\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setColumnAttribute() {\r\n this._columns = this.getDetailControlModels(\"ElementPropertys\");\r\n }\r\n onChange($event) {\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Lookup\") && $event.KeyName === \"ElementGroupId\") {\r\n this.setValue(\"ElementGroupCode\", $event.data.Code);\r\n this.setValue(\"ElementGroupTitle\", $event.data.Title);\r\n this.model.ElementGroupTitle = $event.data.Title;\r\n this.model.ElementGroupCode = $event.data.Code;\r\n if ($event.data.Code === ElementGroup.Loan) {\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"ElementKind\", ElementKind.Computational)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.setValue(\"ElementKindId\", x.Id);\r\n this.formGroup.controls[\"ElementKindId\"].disable();\r\n this.setValue(\"ElementKindCode\", x.Code);\r\n this.setValue(\"ElementKindTitle\", x.Title);\r\n this.model.ElementKindTitle = x.Title;\r\n this.model.ElementKindCode = x.Code;\r\n this.model.ElementKindId = x.Id;\r\n });\r\n } else this.formGroup.controls[\"ElementKindId\"].enable();\r\n } else if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Lookup\") && $event.KeyName === \"ElementKindId\") {\r\n this.setValue(\"ElementKindCode\", $event.data.Code);\r\n this.setValue(\"ElementKindTitle\", $event.data.Title);\r\n this.model.ElementKindCode = $event.data.Code;\r\n this.model.ElementKindTitle = $event.data.Title;\r\n }\r\n }\r\n onDeleteElementProperty($event: ElementProperty) {\r\n if (\r\n $event.ElementFormulas.some((x) => x.State !== RowState.Delete && x.State !== RowState.Detached) &&\r\n $event.ElementFormulas.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).length > 0\r\n ) {\r\n this.sts.showDialog(\"به علت وجود فرمول عامل امکان حذف نیست.\", \"حذف خصوصیت\");\r\n } else {\r\n let temp = this.model.ElementPropertys.find(\r\n (x) => (x.Id && x.Id !== 0 && x.Id === $event.Id) || ($event.TempRowNumber && x.TempRowNumber === $event.TempRowNumber)\r\n );\r\n if (temp && temp.State === RowState.New) temp.State = RowState.Detached;\r\n else temp.State = RowState.Delete;\r\n if (this.ElementPropertys) this.ElementPropertys.refreshData();\r\n this.cd.markForCheck();\r\n }\r\n }\r\n onEditElementProperty($event) {\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: $event,\r\n _columns: this.getDetailControlModels(\"ElementPropertys\"),\r\n areaName: this.areaName,\r\n ElementGroupCode: this.formGroup?.get(\"ElementGroupCode\")?.value,\r\n ElementKindCode: this.formGroup?.get(\"ElementKindCode\")?.value,\r\n label: `خصوصیت عامل(${this.model.Title})`,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n (model as ElementProperty).State = RowState.Modify;\r\n this.model.ElementPropertys.forEach((x) => {\r\n if ((x.Id && x.Id !== 0 && x.Id === $event.Id) || ($event.TempRowNumber && x.TempRowNumber === $event.TempRowNumber)) {\r\n this.makeFormula(model as ElementProperty);\r\n Object.assign(x, model);\r\n if (this.ElementPropertys) this.ElementPropertys.refreshData();\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n setdefault() {\r\n this.model.ShowInBillPay = this.model.ShowInBillPay ?? true;\r\n }\r\n onCreateElementProperty($event: ElementProperty) {\r\n if (!this.model.ElementPropertys) this.model.ElementPropertys = [];\r\n $event = this.model.ElementPropertys.length > 0 ? Object.assign({}, this.model.ElementPropertys[0]) : {};\r\n $event.ElementId = this.model.Id ?? 0;\r\n $event.Id = 0;\r\n $event.TempRowNumber = this.model.ElementPropertys.length + 100;\r\n $event.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n $event.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n $event.EffectYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n $event.EffectMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n $event.State = RowState.New;\r\n if ($event.ElementFormulas && $event.ElementFormulas.length > 0) $event.ElementFormulas.forEach((x) => (x.Id = 0));\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: $event,\r\n _columns: this.getDetailControlModels(\"ElementPropertys\"),\r\n areaName: this.areaName,\r\n ElementGroupCode: this.formGroup?.get(\"ElementGroupCode\")?.value,\r\n ElementKindCode: this.formGroup?.get(\"ElementKindCode\")?.value,\r\n label: `خصوصیت عامل(${this.model.Title})`,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n if (\r\n !this.model.ElementPropertys.some(\r\n (x) => (x.TempRowNumber && x.TempRowNumber === $event.TempRowNumber) || (x.Id && x.Id !== 0 && x.Id === $event.Id)\r\n )\r\n ) {\r\n if (!this.model.ElementPropertys) this.model.ElementPropertys = [];\r\n this.makeFormula(model as ElementProperty);\r\n this.model.ElementPropertys.push(model as ElementProperty);\r\n this.model.ElementPropertys = this.model.ElementPropertys;\r\n if (this.ElementPropertys) this.ElementPropertys.refreshData();\r\n this.cd.markForCheck();\r\n }\r\n }\r\n });\r\n }\r\n editFormula() {\r\n if (!this.RowForSelect) {\r\n this.sts.showDialog(\"هیچ رکوردی انتخاب نشده است.\", \"حذف خصوصیت\");\r\n return;\r\n }\r\n this.dialogService\r\n .open(\r\n ElementFormulaComponent,\r\n {\r\n currentrow: this.RowForSelect,\r\n areaName: this.areaName,\r\n label: `فرمول عامل(${this.model.Title})`,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n (model as ElementProperty).State = RowState.Modify;\r\n this.model.ElementPropertys.forEach((x) => {\r\n if (\r\n (x.Id && x.Id !== 0 && x.Id === this.RowForSelect.Id) ||\r\n (this.RowForSelect.TempRowNumber && x.TempRowNumber === this.RowForSelect.TempRowNumber)\r\n ) {\r\n Object.assign(x, model);\r\n if (this.ElementPropertys) this.ElementPropertys.refreshData();\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n beforupdate() {\r\n if (this.model.ElementPropertys && this.model.ElementPropertys.some((x) => !x.ElementId)) {\r\n this.model.ElementPropertys.filter((x) => !x.ElementId).forEach((x) => {\r\n x.ElementId = 0;\r\n });\r\n }\r\n if (this.model.ElementPropertys) {\r\n this.model.ElementPropertys.forEach((x) => {\r\n if (x.Id && (!x.ElementFormulas || x.ElementFormulas.length <= 0) && x.State <= RowState.Modify && x.State >= RowState.New)\r\n this.makeFormula(x as ElementProperty);\r\n });\r\n }\r\n }\r\n makeFormula(model: ElementProperty) {\r\n if (model.ElementFormulas && model.ElementFormulas.length > 0) return;\r\n let PropertyInfo: FormulaInfo[] = [];\r\n let _elementFormula: ElementFormula = {};\r\n _elementFormula.State = RowState.New;\r\n //از نوع فرم ورودی\r\n if (this.model.ElementKindCode === ElementKind.InputForm && this.model.Id) {\r\n _elementFormula.ElementPropertyId = model.Id;\r\n _elementFormula.Formula = `MW_${this.model.Id}`;\r\n model.ElementFormulas = [];\r\n model.ElementFormulas.push(_elementFormula);\r\n }\r\n //از نوع حکمی\r\n if (this.model.ElementKindCode === ElementKind.EmploymentOrder && this.model.Id) {\r\n _elementFormula.ElementPropertyId = model.Id;\r\n if (model.Coefficien && model.Coefficien > 0) {\r\n if (!model.ProportionalWorkEffect) _elementFormula.Formula = `EMP_${this.model.Id}*${model.Coefficien}`;\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.WithoutBase && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `EMP_${this.model.Id}*MV_${model.ProportionalwithElementId}*${model.Coefficien}`;\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.FixedWork && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `EMP_${this.model.Id}*MV_${model.ProportionalwithElementId}/${model.EffectBaseAmount}`;\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.StandardWork && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `EMP_${this.model.Id}*MV_${model.ProportionalwithElementId}/S_MonthlyStandardWorks*${model.Coefficien}`;\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.CalendarWork && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `EMP_${this.model.Id}*MV_${model.ProportionalwithElementId}/S_MonthlycalendardWorks*${model.Coefficien}`;\r\n } else {\r\n if (!model.ProportionalWorkEffect) _elementFormula.Formula = `EMP_${this.model.Id}`;\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.WithoutBase && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `EMP_${this.model.Id}*MV_${model.ProportionalwithElementId}`;\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.FixedWork && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `EMP_${this.model.Id}*MV_${model.ProportionalwithElementId}/${model.EffectBaseAmount}`;\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.StandardWork && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `EMP_${this.model.Id}*MV_${model.ProportionalwithElementId}/S_MonthlyStandardWorks`;\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.CalendarWork && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `EMP_${this.model.Id}*MV_${model.ProportionalwithElementId}/S_MonthlycalendardWorks`;\r\n }\r\n PropertyInfo.push({ Title: this.model.Title, key: `EMP_${this.model.Id}`, Formula: `EMP_${this.model.Id}`, items: [] });\r\n PropertyInfo.push({\r\n Title: model.ProportionalwithElementTitle,\r\n key: `MV_${model.ProportionalwithElementId}`,\r\n Formula: `MV_${model.ProportionalwithElementId}`,\r\n items: [],\r\n });\r\n PropertyInfo.push({ Title: \"کارکرد استاندارد\", key: `S_MonthlyStandardWorks`, Formula: `S_MonthlyStandardWorks`, items: [] });\r\n PropertyInfo.push({ Title: \"کارکرد تقویمی\", key: `S_MonthlycalendardWorks`, Formula: `S_MonthlycalendardWorks`, items: [] });\r\n\r\n model.ElementFormulas = [];\r\n _elementFormula.PropertyInfo = JSON.stringify(PropertyInfo);\r\n model.ElementFormulas.push(_elementFormula);\r\n }\r\n //از نوع محاسباتی\r\n if (this.model.ElementKindCode === ElementKind.Computational && this.model.Id && model.ProportionalwithElementId) {\r\n _elementFormula.ElementPropertyId = model.Id;\r\n if (model.Coefficien && model.Coefficien > 0) {\r\n if (!model.ProportionalWorkEffect && model.CalcBaseId) _elementFormula.Formula = `MV_${model.CalcBaseId}*${model.Coefficien}`;\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.WithoutBase && model.CalcBaseId && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `MV_${model.CalcBaseId}*MV_${model.ProportionalwithElementId}*${model.Coefficien}`;\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.FixedWork && model.CalcBaseId && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `MV_${model.CalcBaseId}*MV_${model.ProportionalwithElementId}/${model.EffectBaseAmount}*${model.Coefficien}`;\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.StandardWork && model.CalcBaseId && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `MV_${model.CalcBaseId}*MV_${model.ProportionalwithElementId}/S_MonthlyStandardWorks*${model.Coefficien}`;\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.CalendarWork && model.CalcBaseId && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `MV_${model.CalcBaseId}*MV_${model.ProportionalwithElementId}/S_MonthlycalendardWorks*${model.Coefficien}`;\r\n } else {\r\n ///بدون مبنا\r\n if (!model.ProportionalWorkEffect && model.CalcBaseId) _elementFormula.Formula = `MV_${model.CalcBaseId}`;\r\n ////متناسب با کردکرد و بدون مبنا\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.WithoutBase && model.CalcBaseId && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `MV_${model.CalcBaseId}*MV_${model.ProportionalwithElementId}`;\r\n ///مبتناسب با کردکرد و با مبنای ثابت\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.FixedWork && model.CalcBaseId && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `MV_${model.CalcBaseId}*MV_${model.ProportionalwithElementId}/${model.EffectBaseAmount}`;\r\n ///متنباسب با کار کرد و با مبنای کارکرد استاندارد\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.StandardWork && model.CalcBaseId && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `MV_${model.CalcBaseId}*MV_${model.ProportionalwithElementId}/S_MonthlyStandardWorks`;\r\n //متناسب با کارکرد و با مبنای کارکرد تقویمی\r\n if (model.ProportionalWorkEffect && model.EffectBaseCode === EffectBase.CalendarWork && model.CalcBaseId && model.ProportionalwithElementId)\r\n _elementFormula.Formula = `MV_${model.CalcBaseId}*MV_${model.ProportionalwithElementId}/S_MonthlycalendardWorks`;\r\n }\r\n\r\n if (model.CalcBaseId)\r\n PropertyInfo.push({ Title: model.CalcBaseTitle, key: `MV_${model.CalcBaseId}`, Formula: `MV_${model.CalcBaseId}`, items: [] });\r\n if (model.ProportionalwithElementId)\r\n PropertyInfo.push({\r\n Title: model.ProportionalwithElementTitle,\r\n key: `MV_${model.ProportionalwithElementId}`,\r\n Formula: `MV_${model.ProportionalwithElementId}`,\r\n items: [],\r\n });\r\n\r\n PropertyInfo.push({ Title: \"کارکرد استاندارد\", key: `S_MonthlyStandardWorks`, Formula: `S_MonthlyStandardWorks`, items: [] });\r\n PropertyInfo.push({ Title: \"کارکرد تقویمی\", key: `S_MonthlycalendardWorks`, Formula: `S_MonthlycalendardWorks`, items: [] });\r\n\r\n _elementFormula.PropertyInfo = JSON.stringify(PropertyInfo);\r\n model.ElementFormulas = [];\r\n model.ElementFormulas.push(_elementFormula);\r\n }\r\n }\r\n}\r\n","\r\n 0\">\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { of } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ElementFormula } from \"../../../models/base-info/element-formula.model\";\r\nimport { Element } from \"../../../models/base-info/element.model\";\r\nimport { FormulaInfo } from \"../../../models/base-info/formula.model\";\r\nimport { ElementGroup } from \"../../../models/enums/element-group\";\r\nimport { ElementKind } from \"../../../models/enums/element-kind\";\r\n\r\n@Component({\r\n selector: \"ngx-element-formula\",\r\n templateUrl: \"./element-formula.component.html\",\r\n styleUrls: [\"./element-formula.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ElementFormulaComponent extends BaseFormComponent {\r\n @Input() _columns: form_control[] = [];\r\n @ViewChild(\"elementFormula\") public elementFormula: KGridComponent;\r\n currentSeletedColumnKey: string = \"Formula\";\r\n rows = 4;\r\n cols = 73;\r\n ElementIsLoading: boolean;\r\n public apiName: string = \"Element\";\r\n public label: string = \"تعریف فرمول عامل\";\r\n formulaInfo: FormulaInfo[];\r\n PropertyInfo: FormulaInfo[] = [];\r\n elements: Element[];\r\n ActiveAdjustmentElemenet: Element[];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.PropertyInfo = [];\r\n this.setColumns();\r\n this.setFormulaInfo();\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"عبارت شرطی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Condition\",\r\n disabled: false,\r\n name: \"Condition\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"عبارت محاسباتی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Formula\",\r\n disabled: false,\r\n name: \"Formula\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n\r\n this.orignalColumns = this.columns;\r\n this.setFormGroup(this.model);\r\n this.setValue(\"formulaInfo\", undefined);\r\n }\r\n _filterFormula: ElementFormula[];\r\n get filterFormula(): ElementFormula[] {\r\n if (!this._filterFormula || this._filterFormula.length <= 0)\r\n this._filterFormula = this.currentrow?.ElementFormulas?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached);\r\n return this._filterFormula;\r\n }\r\n set filterFormula(value: ElementFormula[]) {\r\n value.forEach((x) => {\r\n if (\r\n !this.currentrow.ElementFormulas.some(\r\n (s) => (s.Id && s.Id !== 0 && s.Id === x.Id) || (x.TempRowNumber && s.TempRowNumber === x.TempRowNumber)\r\n )\r\n )\r\n this.currentrow.ElementFormulas.push(x);\r\n });\r\n this._filterFormula = this.currentrow?.ElementFormulas?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached);\r\n }\r\n setFormulaInfo() {\r\n this.formulaInfo = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.formulaInfo.push(this.getpersonelInfo());\r\n this.formulaInfo.push(this.getElement());\r\n this.formulaInfo.push(this.getTaxTable());\r\n this.formulaInfo.push(this.getCurrentMontBackpay());\r\n } else {\r\n this.httpCommonService\r\n .getList(\"Element\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.elements = data as [];\r\n this.formulaInfo.push(this.getpersonelInfo());\r\n this.formulaInfo.push(this.getElement());\r\n this.formulaInfo.push(this.getTaxTable());\r\n this.formulaInfo.push(this.getCurrentMontBackpay());\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n getElement() {\r\n const element: FormulaInfo = {};\r\n element.Title = \"عوامل\";\r\n element.key = \"element\";\r\n element.items = [];\r\n\r\n element.items.push(this.getEmploymentOrderElement());\r\n element.items.push(this.getComputationalElement());\r\n element.items.push(this.getPrevMonthComputationalElement());\r\n element.items.push(this.getPrevYearMonthComputationalElement());\r\n element.items.push(this.getMonthlyInputElement());\r\n element.items.push(this.getLoanElement());\r\n element.items.push(this.getSystemsInfo());\r\n element.items.push(this.getPersonnelElementInitial());\r\n\r\n return element;\r\n }\r\n getTaxTable() {\r\n const TaxTable: FormulaInfo = {};\r\n TaxTable.Title = \"خروجی جدول\";\r\n TaxTable.key = \"TaxTable\";\r\n TaxTable.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n TaxTable.items.push(Bonus);\r\n Bonus.Title = \"مزایا-خروجی جدول\";\r\n Bonus.key = \"TT\";\r\n Bonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Bonus, \"\");\r\n });\r\n }\r\n const Deduct: FormulaInfo = {};\r\n TaxTable.items.push(Deduct);\r\n Deduct.Title = \"کسور-خروجی جدول\";\r\n Deduct.key = \"TT\";\r\n Deduct.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Deduct, \"\");\r\n });\r\n }\r\n const Boss: FormulaInfo = {};\r\n TaxTable.items.push(Boss);\r\n Boss.Title = \"تعهدات-خروجی جدول\";\r\n Boss.key = \"TT\";\r\n Boss.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Boss, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n TaxTable.items.push(Others);\r\n Others.Title = \"سایر-خروجی جدول\";\r\n Others.key = \"TT\";\r\n Others.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Others, \"\");\r\n });\r\n }\r\n const RewardPaymentBonus: FormulaInfo = {};\r\n TaxTable.items.push(RewardPaymentBonus);\r\n RewardPaymentBonus.Title = \"هزینه عیدی-مالیات کل\";\r\n RewardPaymentBonus.key = \"RPTT\";\r\n RewardPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdPay)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardPaymentBonus, \"\");\r\n });\r\n }\r\n const VacationPaymentBonus: FormulaInfo = {};\r\n TaxTable.items.push(VacationPaymentBonus);\r\n VacationPaymentBonus.Title = \"بازخرید مرخصی-مالیات کل\";\r\n VacationPaymentBonus.key = \"VPTT\";\r\n VacationPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationBuy)\r\n .forEach((x) => {\r\n this.getNode(x as Element, VacationPaymentBonus, \"\");\r\n });\r\n }\r\n return TaxTable;\r\n }\r\n getCurrentMontBackpay() {\r\n const CurrentMontBackpay: FormulaInfo = {};\r\n CurrentMontBackpay.Title = \"معوقه های ماه جاری\";\r\n CurrentMontBackpay.key = \"CurrentMontBackpay\";\r\n CurrentMontBackpay.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n CurrentMontBackpay.items.push(Bonus);\r\n Bonus.Title = \"مزایا-معوقه های ماه جاری\";\r\n Bonus.key = \"BMV\";\r\n Bonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Bonus, \"\");\r\n });\r\n }\r\n const Deduct: FormulaInfo = {};\r\n CurrentMontBackpay.items.push(Deduct);\r\n Deduct.Title = \"کسور-معوقه های ماه جاری\";\r\n Deduct.key = \"BMV\";\r\n Deduct.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Deduct, \"\");\r\n });\r\n }\r\n const Boss: FormulaInfo = {};\r\n CurrentMontBackpay.items.push(Boss);\r\n Boss.Title = \"تعهدات-معوقه های ماه جاری\";\r\n Boss.key = \"BMV\";\r\n Boss.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Boss, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n CurrentMontBackpay.items.push(Others);\r\n Others.Title = \"سایر-معوقه های ماه جاری\";\r\n Others.key = \"BMV\";\r\n Others.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Others, \"\");\r\n });\r\n }\r\n return CurrentMontBackpay;\r\n }\r\n getEmploymentOrderElement() {\r\n const EmploymentOrder: FormulaInfo = {};\r\n EmploymentOrder.Title = \"حکمی\";\r\n EmploymentOrder.key = \"EmploymentOrder\";\r\n EmploymentOrder.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n EmploymentOrder.items.push(Bonus);\r\n Bonus.Title = \"مزایا\";\r\n Bonus.key = \"Bonus\";\r\n Bonus.items = [];\r\n const EMP: FormulaInfo = {};\r\n Bonus.items.push(EMP);\r\n EMP.Title = \"حکم معادل\";\r\n EMP.key = \"EMP\";\r\n EMP.items = [];\r\n const FMEMP: FormulaInfo = {};\r\n Bonus.items.push(FMEMP);\r\n FMEMP.Title = \"اولین حکم ماه\";\r\n FMEMP.key = \"FMEMP\";\r\n FMEMP.items = [];\r\n const LMEMP: FormulaInfo = {};\r\n Bonus.items.push(LMEMP);\r\n LMEMP.Title = \"آخرین حکم ماه\";\r\n LMEMP.key = \"LMEMP\";\r\n LMEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, EMP, \"\");\r\n this.getNode(x as Element, FMEMP, \"\");\r\n this.getNode(x as Element, LMEMP, \"\");\r\n });\r\n }\r\n const Deduct: FormulaInfo = {};\r\n EmploymentOrder.items.push(Deduct);\r\n Deduct.Title = \"کسور\";\r\n Deduct.key = \"Deduct\";\r\n Deduct.items = [];\r\n const DEMP: FormulaInfo = {};\r\n Deduct.items.push(DEMP);\r\n DEMP.Title = \"حکم معادل\";\r\n DEMP.key = \"EMP\";\r\n DEMP.items = [];\r\n const FMDEMP: FormulaInfo = {};\r\n Deduct.items.push(FMDEMP);\r\n FMDEMP.Title = \"اولین حکم ماه\";\r\n FMDEMP.key = \"FMEMP\";\r\n FMDEMP.items = [];\r\n const LMDEMP: FormulaInfo = {};\r\n Deduct.items.push(LMDEMP);\r\n LMDEMP.Title = \"آخرین حکم ماه\";\r\n LMDEMP.key = \"LMEMP\";\r\n LMDEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, DEMP, \"\");\r\n this.getNode(x as Element, FMDEMP, \"\");\r\n this.getNode(x as Element, LMDEMP, \"\");\r\n });\r\n }\r\n\r\n const Boss: FormulaInfo = {};\r\n EmploymentOrder.items.push(Boss);\r\n Boss.Title = \"تعهدات\";\r\n Boss.key = \"Boss\";\r\n Boss.items = [];\r\n const BEMP: FormulaInfo = {};\r\n Boss.items.push(BEMP);\r\n BEMP.Title = \"حکم معادل\";\r\n BEMP.key = \"EMP\";\r\n BEMP.items = [];\r\n const FMBEMP: FormulaInfo = {};\r\n Boss.items.push(FMBEMP);\r\n FMBEMP.Title = \"اولین حکم ماه\";\r\n FMBEMP.key = \"FMEMP\";\r\n FMBEMP.items = [];\r\n const LMBEMP: FormulaInfo = {};\r\n Boss.items.push(LMBEMP);\r\n LMBEMP.Title = \"آخرین حکم ماه\";\r\n LMBEMP.key = \"LMEMP\";\r\n LMBEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, BEMP, \"\");\r\n this.getNode(x as Element, FMBEMP, \"\");\r\n this.getNode(x as Element, LMBEMP, \"\");\r\n });\r\n }\r\n const Works: FormulaInfo = {};\r\n EmploymentOrder.items.push(Works);\r\n Works.Title = \"کارکرد\";\r\n Works.key = \"Works\";\r\n Works.items = [];\r\n const WEMP: FormulaInfo = {};\r\n Works.items.push(WEMP);\r\n WEMP.Title = \"حکم معادل\";\r\n WEMP.key = \"EMP\";\r\n WEMP.items = [];\r\n const FMWEMP: FormulaInfo = {};\r\n Works.items.push(FMWEMP);\r\n FMWEMP.Title = \"اولین حکم ماه\";\r\n FMWEMP.key = \"FMEMP\";\r\n FMWEMP.items = [];\r\n const LMWEMP: FormulaInfo = {};\r\n Works.items.push(LMWEMP);\r\n LMWEMP.Title = \"آخرین حکم ماه\";\r\n LMWEMP.key = \"LMEMP\";\r\n LMWEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Work && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, WEMP, \"\");\r\n this.getNode(x as Element, FMWEMP, \"\");\r\n this.getNode(x as Element, LMWEMP, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n EmploymentOrder.items.push(Others);\r\n Others.Title = \"سایر\";\r\n Others.key = \"Others\";\r\n Others.items = [];\r\n const OEMP: FormulaInfo = {};\r\n Others.items.push(OEMP);\r\n OEMP.Title = \"حکم معادل\";\r\n OEMP.key = \"EMP\";\r\n OEMP.items = [];\r\n const FMOEMP: FormulaInfo = {};\r\n Others.items.push(FMOEMP);\r\n FMOEMP.Title = \"اولین حکم ماه\";\r\n FMOEMP.key = \"FMEMP\";\r\n FMOEMP.items = [];\r\n const LMOEMP: FormulaInfo = {};\r\n Others.items.push(LMWEMP);\r\n LMOEMP.Title = \"آخرین حکم ماه\";\r\n LMOEMP.key = \"LMEMP\";\r\n LMOEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, OEMP, \"\");\r\n this.getNode(x as Element, FMOEMP, \"\");\r\n this.getNode(x as Element, LMOEMP, \"\");\r\n });\r\n }\r\n return EmploymentOrder;\r\n }\r\n getNode(Row: Element, Node: FormulaInfo, kind: string) {\r\n const p: FormulaInfo = {};\r\n p.Title = \"محاسباتی\";\r\n p.key = Node.key + \"_\" + Row[\"Id\"].toString();\r\n p.items = [];\r\n if (kind.includes(\"X\")) p.Formula = \"Tax_\" + Node.key + \"_\" + Row[\"Id\"].toString() + \",EYear,EMonth,TaxGroupRef)\";\r\n else p.Formula = Node.key + \"_\" + Row[\"Id\"].toString();\r\n p.Title = `${Node.Title}_${Row[\"Title\"]}`;\r\n Node.items.push(p);\r\n }\r\n getPrevYearMonthComputationalElement() {\r\n const PreYearComputational: FormulaInfo = {};\r\n PreYearComputational.Title = \"محاسباتی سال تا ماه\";\r\n PreYearComputational.key = \"PreYearComputational\";\r\n PreYearComputational.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n PreYearComputational.items.push(Bonus);\r\n Bonus.Title = \"مزایا-سال تا ماه\";\r\n Bonus.key = \"YMV\";\r\n Bonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Bonus, \"\");\r\n });\r\n }\r\n const Deduct: FormulaInfo = {};\r\n PreYearComputational.items.push(Deduct);\r\n Deduct.Title = \"کسور-سال تا ماه\";\r\n Deduct.key = \"YMV\";\r\n Deduct.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Deduct, \"\");\r\n });\r\n }\r\n const Boss: FormulaInfo = {};\r\n PreYearComputational.items.push(Boss);\r\n Boss.Title = \"تعهدات-سال تا ماه\";\r\n Boss.key = \"YMV\";\r\n Boss.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Boss, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n PreYearComputational.items.push(Others);\r\n Others.Title = \"سایر-سال تا ماه\";\r\n Others.key = \"YMV\";\r\n Others.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Others, \"\");\r\n });\r\n }\r\n\r\n const EndYearBonus: FormulaInfo = {};\r\n PreYearComputational.items.push(EndYearBonus);\r\n EndYearBonus.Title = \"عيدي و پاداش آخر سال\";\r\n EndYearBonus.key = \"EndYearBonus\";\r\n EndYearBonus.items = [];\r\n\r\n const RewardSaveBonus: FormulaInfo = {};\r\n EndYearBonus.items.push(RewardSaveBonus);\r\n RewardSaveBonus.Title = \"ذخیره عیدی\";\r\n RewardSaveBonus.key = \"RSYMV\";\r\n RewardSaveBonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdSave)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardSaveBonus, \"\");\r\n });\r\n }\r\n const RewardPaymentBonus: FormulaInfo = {};\r\n EndYearBonus.items.push(RewardPaymentBonus);\r\n RewardPaymentBonus.Title = \"هزینه عیدی\";\r\n RewardPaymentBonus.key = \"RPYMV\";\r\n RewardPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdPay)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardPaymentBonus, \"\");\r\n });\r\n }\r\n\r\n const Buy: FormulaInfo = {};\r\n PreYearComputational.items.push(Buy);\r\n Buy.Title = \"ذخيره سنوات\";\r\n Buy.key = \"YBuy\";\r\n Buy.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.EstablishmentTheReserveOfYearsOfService)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Buy, \"\");\r\n });\r\n }\r\n const Vacation: FormulaInfo = {};\r\n PreYearComputational.items.push(Vacation);\r\n Vacation.Title = \"مرخصی\";\r\n Vacation.key = \"Vacation\";\r\n Vacation.items = [];\r\n const VacationSaveBonus: FormulaInfo = {};\r\n Vacation.items.push(VacationSaveBonus);\r\n VacationSaveBonus.Title = \"ذخیره مرخصی\";\r\n VacationSaveBonus.key = \"VSYMV\";\r\n VacationSaveBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationSave)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Vacation, \"\");\r\n });\r\n }\r\n const VacationPaymentBonus: FormulaInfo = {};\r\n Vacation.items.push(VacationPaymentBonus);\r\n VacationPaymentBonus.Title = \"بازخرید مرخصی\";\r\n VacationPaymentBonus.key = \"VPYMV\";\r\n VacationPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationBuy)\r\n .forEach((x) => {\r\n this.getNode(x as Element, VacationPaymentBonus, \"\");\r\n });\r\n }\r\n\r\n return PreYearComputational;\r\n }\r\n getPrevMonthComputationalElement() {\r\n const PreComputational: FormulaInfo = {};\r\n PreComputational.Title = \"محاسباتی ماه قبل\";\r\n PreComputational.key = \"PreComputational\";\r\n PreComputational.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n PreComputational.items.push(Bonus);\r\n Bonus.Title = \"مزایا-محاسباتی ماه قبل\";\r\n Bonus.key = \"PMV\";\r\n Bonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Bonus, \"\");\r\n });\r\n }\r\n const Deduct: FormulaInfo = {};\r\n PreComputational.items.push(Deduct);\r\n Deduct.Title = \"کسور-محاسباتی ماه قبل\";\r\n Deduct.key = \"PMV\";\r\n Deduct.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Deduct, \"\");\r\n });\r\n }\r\n const Boss: FormulaInfo = {};\r\n PreComputational.items.push(Boss);\r\n Boss.Title = \"تعهدات-محاسباتی ماه قبل\";\r\n Boss.key = \"PMV\";\r\n Boss.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Boss, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n PreComputational.items.push(Others);\r\n Others.Title = \"سایر-محاسباتی ماه قبل\";\r\n Others.key = \"PMV\";\r\n Others.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Others, \"\");\r\n });\r\n }\r\n\r\n const EndYearBonus: FormulaInfo = {};\r\n PreComputational.items.push(EndYearBonus);\r\n EndYearBonus.Title = \"عيدي و پاداش آخر سال\";\r\n EndYearBonus.key = \"EndYearBonus\";\r\n EndYearBonus.items = [];\r\n\r\n const RewardSaveBonus: FormulaInfo = {};\r\n EndYearBonus.items.push(RewardSaveBonus);\r\n RewardSaveBonus.Title = \"ذخیره عیدی\";\r\n RewardSaveBonus.key = \"RSPMV\";\r\n RewardSaveBonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdSave)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardSaveBonus, \"\");\r\n });\r\n }\r\n const RewardPaymentBonus: FormulaInfo = {};\r\n EndYearBonus.items.push(RewardPaymentBonus);\r\n RewardPaymentBonus.Title = \"هزینه عیدی\";\r\n RewardPaymentBonus.key = \"RPPMV\";\r\n RewardPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdPay)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardPaymentBonus, \"\");\r\n });\r\n }\r\n\r\n const Vacation: FormulaInfo = {};\r\n PreComputational.items.push(Vacation);\r\n Vacation.Title = \"مرخصی\";\r\n Vacation.key = \"Vacation\";\r\n Vacation.items = [];\r\n const VacationSaveBonus: FormulaInfo = {};\r\n Vacation.items.push(VacationSaveBonus);\r\n VacationSaveBonus.Title = \"ذخیره مرخصی\";\r\n VacationSaveBonus.key = \"VSPMV\";\r\n VacationSaveBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationSave)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Vacation, \"\");\r\n });\r\n }\r\n const VacationPaymentBonus: FormulaInfo = {};\r\n Vacation.items.push(VacationPaymentBonus);\r\n VacationPaymentBonus.Title = \"بازخرید مرخصی\";\r\n VacationPaymentBonus.key = \"VPPMV\";\r\n VacationPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationBuy)\r\n .forEach((x) => {\r\n this.getNode(x as Element, VacationPaymentBonus, \"\");\r\n });\r\n }\r\n\r\n const Buy: FormulaInfo = {};\r\n PreComputational.items.push(Buy);\r\n Buy.Title = \"ذخيره سنوات\";\r\n Buy.key = \"PBuy\";\r\n Buy.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.EstablishmentTheReserveOfYearsOfService)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Buy, \"\");\r\n });\r\n }\r\n return PreComputational;\r\n }\r\n getComputationalElement() {\r\n const Computational: FormulaInfo = {};\r\n Computational.Title = \"محاسباتی\";\r\n Computational.key = \"Computational\";\r\n Computational.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n Computational.items.push(Bonus);\r\n Bonus.Title = \"مزایا\";\r\n Bonus.key = \"MV\";\r\n Bonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Bonus, \"\");\r\n });\r\n }\r\n\r\n const Deduct: FormulaInfo = {};\r\n Computational.items.push(Deduct);\r\n Deduct.Title = \"کسور\";\r\n Deduct.key = \"MV\";\r\n Deduct.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Deduct, \"\");\r\n });\r\n }\r\n const Boss: FormulaInfo = {};\r\n Computational.items.push(Boss);\r\n Boss.Title = \"تعهدات\";\r\n Boss.key = \"MV\";\r\n Boss.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Boss, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n Computational.items.push(Others);\r\n Others.Title = \"سایر\";\r\n Others.key = \"MV\";\r\n Others.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Others, \"\");\r\n });\r\n }\r\n\r\n const EndYearBonus: FormulaInfo = {};\r\n Computational.items.push(EndYearBonus);\r\n EndYearBonus.Title = \"عيدي و پاداش آخر سال\";\r\n EndYearBonus.key = \"EndYearBonus\";\r\n EndYearBonus.items = [];\r\n\r\n const RewardSaveBonus: FormulaInfo = {};\r\n EndYearBonus.items.push(RewardSaveBonus);\r\n RewardSaveBonus.Title = \"ذخیره عیدی\";\r\n RewardSaveBonus.key = \"RSMV\";\r\n RewardSaveBonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdSave)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardSaveBonus, \"\");\r\n });\r\n }\r\n const RewardPaymentBonus: FormulaInfo = {};\r\n EndYearBonus.items.push(RewardPaymentBonus);\r\n RewardPaymentBonus.Title = \"هزینه عیدی\";\r\n RewardPaymentBonus.key = \"RPMV\";\r\n RewardPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdPay)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardPaymentBonus, \"\");\r\n });\r\n }\r\n\r\n const Vacation: FormulaInfo = {};\r\n Computational.items.push(Vacation);\r\n Vacation.Title = \"مرخصی\";\r\n Vacation.key = \"Vacation\";\r\n Vacation.items = [];\r\n const VacationSaveBonus: FormulaInfo = {};\r\n Vacation.items.push(VacationSaveBonus);\r\n VacationSaveBonus.Title = \"ذخیره مرخصی\";\r\n VacationSaveBonus.key = \"VSMV\";\r\n VacationSaveBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationSave)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Vacation, \"\");\r\n });\r\n }\r\n const VacationPaymentBonus: FormulaInfo = {};\r\n Vacation.items.push(VacationPaymentBonus);\r\n VacationPaymentBonus.Title = \"بازخرید مرخصی\";\r\n VacationPaymentBonus.key = \"VPMV\";\r\n VacationPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationBuy)\r\n .forEach((x) => {\r\n this.getNode(x as Element, VacationPaymentBonus, \"\");\r\n });\r\n }\r\n const Buy: FormulaInfo = {};\r\n Computational.items.push(Buy);\r\n Buy.Title = \"ذخيره سنوات\";\r\n Buy.key = \"Buy\";\r\n Buy.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.EstablishmentTheReserveOfYearsOfService)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Buy, \"\");\r\n });\r\n }\r\n return Computational;\r\n }\r\n getMonthlyInputElement() {\r\n const MonthlyInput: FormulaInfo = {};\r\n MonthlyInput.Title = \"ماهانه(فرم ورودی)\";\r\n MonthlyInput.key = \"MonthlyInput\";\r\n MonthlyInput.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n MonthlyInput.items.push(Bonus);\r\n Bonus.Title = \"مزایا\";\r\n Bonus.key = \"MW\";\r\n Bonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Bonus, \"\");\r\n });\r\n }\r\n const Work: FormulaInfo = {};\r\n MonthlyInput.items.push(Work);\r\n Work.Title = \"کارکرد\";\r\n Work.key = \"MW\";\r\n Work.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Work && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Work, \"\");\r\n });\r\n }\r\n const Deduct: FormulaInfo = {};\r\n MonthlyInput.items.push(Deduct);\r\n Deduct.Title = \"کسور\";\r\n Deduct.key = \"MW\";\r\n Deduct.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Deduct, \"\");\r\n });\r\n }\r\n const Boss: FormulaInfo = {};\r\n MonthlyInput.items.push(Boss);\r\n Boss.Title = \"تعهدات\";\r\n Boss.key = \"MW\";\r\n Boss.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Boss, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n MonthlyInput.items.push(Others);\r\n Others.Title = \"سایر\";\r\n Others.key = \"MW\";\r\n Others.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Others, \"\");\r\n });\r\n }\r\n return MonthlyInput;\r\n }\r\n getLoanElement() {\r\n const Loan: FormulaInfo = {};\r\n Loan.Title = \"وام کارکنان\";\r\n Loan.key = \"Loan\";\r\n Loan.items = [];\r\n\r\n const LoanInstallments: FormulaInfo = {};\r\n Loan.items.push(LoanInstallments);\r\n LoanInstallments.Title = \"قسط وام\";\r\n LoanInstallments.key = \"L\";\r\n LoanInstallments.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Loan && x.ElementKindCode === ElementKind.Computational)\r\n .forEach((x) => {\r\n this.getNode(x as Element, LoanInstallments, \"\");\r\n });\r\n }\r\n const LoanPyed: FormulaInfo = {};\r\n Loan.items.push(LoanPyed);\r\n LoanPyed.Title = \"جمع اقساط پرداخت شده\";\r\n LoanPyed.key = \"LP\";\r\n LoanPyed.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Loan && x.ElementKindCode === ElementKind.Computational)\r\n .forEach((x) => {\r\n this.getNode(x as Element, LoanPyed, \"\");\r\n });\r\n }\r\n const LoanOrignal: FormulaInfo = {};\r\n Loan.items.push(LoanOrignal);\r\n LoanOrignal.Title = \"اصل وام\";\r\n LoanOrignal.key = \"LO\";\r\n LoanOrignal.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Loan && x.ElementKindCode === ElementKind.Computational)\r\n .forEach((x) => {\r\n this.getNode(x as Element, LoanOrignal, \"\");\r\n });\r\n }\r\n return Loan;\r\n }\r\n getEmployment() {\r\n const empKind: FormulaInfo = {};\r\n empKind.Title = \"استخدامی\";\r\n empKind.key = \"EmpKind\";\r\n empKind.items = [];\r\n\r\n const StnWorkDays: FormulaInfo = {};\r\n empKind.items.push(StnWorkDays);\r\n StnWorkDays.Title = \"کارکرد استاندارد سال\";\r\n StnWorkDays.key = \"StnWorkDays\";\r\n StnWorkDays.Formula = \"StnWorkDays\";\r\n\r\n const YearDays: FormulaInfo = {};\r\n empKind.items.push(YearDays);\r\n YearDays.Title = \"جمع روزهای سال تا بحال\";\r\n YearDays.key = \"YearDays\";\r\n YearDays.Formula = \"YearDays\";\r\n\r\n const YearMonths: FormulaInfo = {};\r\n empKind.items.push(YearMonths);\r\n YearMonths.Title = \"جمع ماه های سال تا بحال\";\r\n YearMonths.key = \"YearMonths\";\r\n YearMonths.Formula = \"YearMonths\";\r\n\r\n const GroupCode: FormulaInfo = {};\r\n empKind.items.push(GroupCode);\r\n GroupCode.Title = \"مقدار عددي گروه شغلي\";\r\n GroupCode.key = \"JobGroupCode\";\r\n GroupCode.Formula = \"JobGroupCode\";\r\n\r\n const BaseCode: FormulaInfo = {};\r\n empKind.items.push(BaseCode);\r\n BaseCode.Title = \"مقدار عددي پايه شغلي\";\r\n BaseCode.key = \"JobBaseCode\";\r\n BaseCode.Formula = \"JobBaseCode\";\r\n\r\n const JobLevel_Code: FormulaInfo = {};\r\n empKind.items.push(JobLevel_Code);\r\n JobLevel_Code.Title = \"مقدار عددي رتبه شغلي\";\r\n JobLevel_Code.key = \"JobRankingCode\";\r\n JobLevel_Code.Formula = \"JobRankingCode\";\r\n\r\n const PersonnalCount: FormulaInfo = {};\r\n empKind.items.push(PersonnalCount);\r\n PersonnalCount.Title = \"تعداد كل كاركنان\";\r\n PersonnalCount.key = \"PersonnalCount\";\r\n PersonnalCount.Formula = \"PersonnalCount\";\r\n\r\n const CCPersonnalCount: FormulaInfo = {};\r\n empKind.items.push(CCPersonnalCount);\r\n CCPersonnalCount.Title = \"تعداد كاركنان به تفكيك مركز هزينه\";\r\n CCPersonnalCount.key = \"CCPersonnalCount\";\r\n CCPersonnalCount.Formula = \"CCPersonnalCount\";\r\n\r\n const LPersonnalCount: FormulaInfo = {};\r\n empKind.items.push(LPersonnalCount);\r\n LPersonnalCount.Title = \"تعداد كاركنان به تفكيك محل خدمت\";\r\n LPersonnalCount.key = \"WrkPlacePersonnalCount\";\r\n LPersonnalCount.Formula = \"WrkPlacePersonnalCount\";\r\n\r\n const OPersonnalCount: FormulaInfo = {};\r\n empKind.items.push(OPersonnalCount);\r\n OPersonnalCount.Title = \"تعداد كاركنان به تفكيك واحد سازماني\";\r\n OPersonnalCount.key = \"OraganationPersonnalCount\";\r\n OPersonnalCount.Formula = \"OraganationPersonnalCount\";\r\n\r\n const PPersonnalCount: FormulaInfo = {};\r\n empKind.items.push(PPersonnalCount);\r\n PPersonnalCount.Title = \"تعداد كاركنان به تفكيك پست\";\r\n PPersonnalCount.key = \"PositionPersonnalCount\";\r\n PPersonnalCount.Formula = \"PositionPersonnalCount\";\r\n\r\n const EMPPersonnalCount: FormulaInfo = {};\r\n empKind.items.push(EMPPersonnalCount);\r\n EMPPersonnalCount.Title = \"تعداد كاركنان به تفكيك استخدام\";\r\n EMPPersonnalCount.key = \"EmploymentPersonnalCount\";\r\n EMPPersonnalCount.Formula = \"EmploymentPersonnalCount\";\r\n\r\n const WorkYears: FormulaInfo = {};\r\n empKind.items.push(WorkYears);\r\n WorkYears.Title = \"سابقه كار درون سازماني به سال\";\r\n WorkYears.key = \"WorkYears\";\r\n WorkYears.Formula = \"WorkYears\";\r\n\r\n const WorkMonths: FormulaInfo = {};\r\n empKind.items.push(WorkMonths);\r\n WorkMonths.Title = \"سابقه كار درون سازماني به ماه\";\r\n WorkMonths.key = \"WorkMonths\";\r\n WorkMonths.Formula = \"WorkMonths\";\r\n\r\n const AllWorkDays: FormulaInfo = {};\r\n empKind.items.push(AllWorkDays);\r\n AllWorkDays.Title = \"سابقه كار درون سازماني به روز\";\r\n AllWorkDays.key = \"AllWorkDays\";\r\n AllWorkDays.Formula = \"AllWorkDays\";\r\n\r\n const JobCode: FormulaInfo = {};\r\n empKind.items.push(JobCode);\r\n JobCode.Title = \"كد شغل شخص\";\r\n JobCode.key = \"JobCode\";\r\n JobCode.Formula = \"JobCode\";\r\n\r\n const PositionCode: FormulaInfo = {};\r\n empKind.items.push(PositionCode);\r\n PositionCode.Title = \"كدپست شخص\";\r\n PositionCode.key = \"PositionCode\";\r\n PositionCode.Formula = \"PositionCode\";\r\n\r\n const OrgCode: FormulaInfo = {};\r\n empKind.items.push(OrgCode);\r\n OrgCode.Title = \"كد واحد سازماني شخص\";\r\n OrgCode.key = \"OrganizationnaCode\";\r\n OrgCode.Formula = \"OrganizationCode\";\r\n\r\n const PersEMPKind: FormulaInfo = {};\r\n empKind.items.push(PersEMPKind);\r\n PersEMPKind.Title = \"كد نوع استخدام شخص\";\r\n PersEMPKind.key = \"EmploymentKindCode\";\r\n PersEMPKind.Formula = \"EmploymentKindodeCode\";\r\n\r\n const PersWorkplace: FormulaInfo = {};\r\n empKind.items.push(PersWorkplace);\r\n PersWorkplace.Title = \"كد محل خدمت شخص\";\r\n PersWorkplace.key = \"PersWorkplaceCode\";\r\n PersWorkplace.Formula = \"PersWorkplaceCode\";\r\n\r\n const PersCostCenter: FormulaInfo = {};\r\n empKind.items.push(PersCostCenter);\r\n PersCostCenter.Title = \"كد مركز هزينه شخص\";\r\n PersCostCenter.key = \"PersCostCenter\";\r\n PersCostCenter.Formula = \"PersCostCenterCode\";\r\n\r\n const BuyDelayWork: FormulaInfo = {};\r\n empKind.items.push(BuyDelayWork);\r\n BuyDelayWork.Title = \"استقرار کسر خدمت\";\r\n BuyDelayWork.key = \"BuyDelayWork\";\r\n BuyDelayWork.Formula = \"BuyDelayWork\";\r\n\r\n const BuyInitAmount: FormulaInfo = {};\r\n empKind.items.push(BuyInitAmount);\r\n BuyInitAmount.Title = \"استقرار ذخیره سنوات\";\r\n BuyInitAmount.key = \"BuyInitAmount\";\r\n BuyInitAmount.Formula = \"BuyInitAmount\";\r\n\r\n const CurWorkDays: FormulaInfo = {};\r\n empKind.items.push(CurWorkDays);\r\n CurWorkDays.Title = \"كاركرد ماه جاري\";\r\n CurWorkDays.key = \"CurWorkDays\";\r\n CurWorkDays.Formula = \"CurWorkDays\";\r\n\r\n const GrpAmount: FormulaInfo = {};\r\n empKind.items.push(GrpAmount);\r\n GrpAmount.Title = \"مقدار مبلغي گروه شغلي\";\r\n GrpAmount.key = \"JobGroupAmount\";\r\n GrpAmount.Formula = \"JobGroupAmount\";\r\n\r\n const BaseAmount: FormulaInfo = {};\r\n empKind.items.push(BaseAmount);\r\n BaseAmount.Title = \"مقدار مبلغي پايه شغلي\";\r\n BaseAmount.key = \"JobBaseAmount\";\r\n BaseAmount.Formula = \"JobBaseAmount\";\r\n\r\n const JobLevelAmount: FormulaInfo = {};\r\n empKind.items.push(JobLevelAmount);\r\n JobLevelAmount.Title = \"مقدار مبلغي رتبه شغلي\";\r\n JobLevelAmount.key = \"JobRankingAmount\";\r\n JobLevelAmount.Formula = \"JobRankingAmount\";\r\n\r\n return empKind;\r\n }\r\n getPersonnelElementInitial() {\r\n const PersonnelElementInitial: FormulaInfo = {};\r\n PersonnelElementInitial.Title = \"استقرار عوامل\";\r\n PersonnelElementInitial.key = \"PEI\";\r\n PersonnelElementInitial.items = [];\r\n\r\n if (this.ActiveAdjustmentElemenet && this.ActiveAdjustmentElemenet.length > 0) {\r\n this.ActiveAdjustmentElemenet.forEach((x) => {\r\n this.getNode(x as Element, PersonnelElementInitial, \"\");\r\n });\r\n } else\r\n this.httpCommonService\r\n .getList(`Element/GetHrmActiveAdjustmentElemenet/${this.accountService.authService.getHrmPayCurentYearMonth().CurrentYearMonth}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.ActiveAdjustmentElemenet = data as [];\r\n this.ActiveAdjustmentElemenet.forEach((x) => {\r\n this.getNode(x as Element, PersonnelElementInitial, \"\");\r\n });\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n\r\n return PersonnelElementInitial;\r\n }\r\n getpersonelInfo() {\r\n const personelInfo: FormulaInfo = {};\r\n personelInfo.Title = \"مشخصات کارکنان\";\r\n personelInfo.key = \"PersonelInfo\";\r\n personelInfo.items = [];\r\n personelInfo.items.push(this.getIDCard());\r\n personelInfo.items.push(this.getEmployment());\r\n return personelInfo;\r\n }\r\n getSystemsInfo() {\r\n const systems: FormulaInfo = {};\r\n systems.Title = \"سیستمی\";\r\n systems.key = \"systems\";\r\n systems.items = [];\r\n\r\n const monthDays: FormulaInfo = {};\r\n monthDays.Title = \"تعداد روزهای ماه\";\r\n monthDays.key = \"S_MonthDays\";\r\n monthDays.Formula = \"S_MonthDays\";\r\n monthDays.items = [];\r\n systems.items.push(monthDays);\r\n\r\n const IssueYear: FormulaInfo = {};\r\n IssueYear.Title = \"سال جاری\";\r\n IssueYear.key = \"S_IssueYear\";\r\n IssueYear.Formula = \"S_IssueYear\";\r\n IssueYear.items = [];\r\n systems.items.push(IssueYear);\r\n\r\n const IssueMonth: FormulaInfo = {};\r\n IssueMonth.Title = \"ماه جاری\";\r\n IssueMonth.key = \"S_IssueMonth\";\r\n IssueMonth.Formula = \"S_IssueMonth\";\r\n IssueMonth.items = [];\r\n systems.items.push(IssueMonth);\r\n\r\n const EffectYear: FormulaInfo = {};\r\n EffectYear.Title = \"سال محاسبه\";\r\n EffectYear.key = \"S_EffectYear\";\r\n EffectYear.Formula = \"S_EffectYear\";\r\n EffectYear.items = [];\r\n systems.items.push(EffectYear);\r\n\r\n const EffectMonth: FormulaInfo = {};\r\n EffectMonth.Title = \"ماه محاسبه\";\r\n EffectMonth.key = \"S_EffectMonth\";\r\n EffectMonth.Formula = \"S_EffectMonth\";\r\n EffectMonth.items = [];\r\n systems.items.push(EffectMonth);\r\n\r\n const InsurableItems: FormulaInfo = {};\r\n InsurableItems.Title = \"جمع مزایای مشمول بیمه\";\r\n InsurableItems.key = \"S_InsurableItems\";\r\n InsurableItems.Formula = \"S_InsurableItems\";\r\n InsurableItems.items = [];\r\n systems.items.push(InsurableItems);\r\n\r\n const TaxableContinues: FormulaInfo = {};\r\n TaxableContinues.Title = \"جمع مزایای مشمول مالیات مستمر\";\r\n TaxableContinues.key = \"S_TaxableContinues\";\r\n TaxableContinues.Formula = \"S_TaxableContinues\";\r\n TaxableContinues.items = [];\r\n systems.items.push(TaxableContinues);\r\n\r\n const TaxableUnContinues: FormulaInfo = {};\r\n TaxableUnContinues.Title = \"جمع مشمول ماليات غير مستمر\";\r\n TaxableUnContinues.key = \"S_TaxableUnContinues\";\r\n TaxableUnContinues.Formula = \"S_TaxableUnContinues\";\r\n TaxableUnContinues.items = [];\r\n systems.items.push(TaxableUnContinues);\r\n\r\n const BonusSum: FormulaInfo = {};\r\n BonusSum.Title = \"جمع مزایا\";\r\n BonusSum.key = \"S_BonusSum\";\r\n BonusSum.Formula = \"S_BonusSum\";\r\n BonusSum.items = [];\r\n systems.items.push(BonusSum);\r\n\r\n const DeductSum: FormulaInfo = {};\r\n DeductSum.Title = \"جمع کسور\";\r\n DeductSum.key = \"S_DeductSum\";\r\n DeductSum.Formula = \"S_DeductSum\";\r\n DeductSum.items = [];\r\n systems.items.push(DeductSum);\r\n\r\n const BossSum: FormulaInfo = {};\r\n BossSum.Title = \"جمع تعهدات\";\r\n BossSum.key = \"S_BossSum\";\r\n BossSum.Formula = \"S_BossSum\";\r\n BossSum.items = [];\r\n systems.items.push(BossSum);\r\n\r\n const LoanPaymentSum: FormulaInfo = {};\r\n LoanPaymentSum.Title = \"جمع اقساط وام\";\r\n LoanPaymentSum.key = \"S_LoanPaymentSum\";\r\n LoanPaymentSum.Formula = \"S_LoanPaymentSum\";\r\n LoanPaymentSum.items = [];\r\n systems.items.push(LoanPaymentSum);\r\n\r\n const MonthlyStandardWorks: FormulaInfo = {};\r\n MonthlyStandardWorks.Title = \"کارکرد استاندارد ماه\";\r\n MonthlyStandardWorks.key = \"S_MonthlyStandardWorks\";\r\n MonthlyStandardWorks.Formula = \"S_MonthlyStandardWorks\";\r\n MonthlyStandardWorks.items = [];\r\n systems.items.push(MonthlyStandardWorks);\r\n\r\n const MonthlycalendardWorks: FormulaInfo = {};\r\n MonthlycalendardWorks.Title = \"کارکرد تقویمی ماه\";\r\n MonthlycalendardWorks.key = \"S_MonthlycalendardWorks\";\r\n MonthlycalendardWorks.Formula = \"S_MonthlycalendardWorks\";\r\n MonthlycalendardWorks.items = [];\r\n systems.items.push(MonthlycalendardWorks);\r\n\r\n const MonthEffectWork: FormulaInfo = {};\r\n MonthEffectWork.Title = \"کارکرد موثر ماه\";\r\n MonthEffectWork.key = \"S_MonthEffectWork\";\r\n MonthEffectWork.Formula = \"S_MonthEffectWork\";\r\n MonthEffectWork.items = [];\r\n systems.items.push(MonthEffectWork);\r\n\r\n const YearDaysCount: FormulaInfo = {};\r\n YearDaysCount.Title = \"تعداد روزهای سال\";\r\n YearDaysCount.key = \"S_YearDaysCount\";\r\n YearDaysCount.Formula = \"S_YearDaysCount\";\r\n YearDaysCount.items = [];\r\n systems.items.push(YearDaysCount);\r\n\r\n const RewardEffectWork: FormulaInfo = {};\r\n RewardEffectWork.Title = \"کارکرد موثر عیدی پس از اصلاح\";\r\n RewardEffectWork.key = \"S_RewardEffectWork\";\r\n RewardEffectWork.Formula = \"S_RewardEffectWork\";\r\n RewardEffectWork.items = [];\r\n systems.items.push(RewardEffectWork);\r\n\r\n const VacationBuyAmount: FormulaInfo = {};\r\n VacationBuyAmount.Title = \"مقدار باز خرید مرخصی\";\r\n VacationBuyAmount.key = \"S_VacationBuyAmount\";\r\n VacationBuyAmount.Formula = \"S_VacationBuyAmount\";\r\n VacationBuyAmount.items = [];\r\n systems.items.push(VacationBuyAmount);\r\n\r\n const PersonnelCount: FormulaInfo = {};\r\n PersonnelCount.Title = \"تعداد نفر\";\r\n PersonnelCount.key = \"S_PersonnelCount\";\r\n PersonnelCount.Formula = \"S_PersonnelCount\";\r\n PersonnelCount.items = [];\r\n systems.items.push(PersonnelCount);\r\n\r\n const BuyToutalDays: FormulaInfo = {};\r\n BuyToutalDays.Title = \"ایام ذخیره سنوات خدمت\";\r\n BuyToutalDays.key = \"S_BuyToutalDays\";\r\n BuyToutalDays.Formula = \"S_BuyToutalDays\";\r\n BuyToutalDays.items = [];\r\n systems.items.push(BuyToutalDays);\r\n\r\n const IssueSickLeave: FormulaInfo = {};\r\n IssueSickLeave.Title = \"مرخصی استعلاجی حکمی\";\r\n IssueSickLeave.key = \"S_IssueSickLeave\";\r\n IssueSickLeave.Formula = \"S_IssueSickLeave\";\r\n IssueSickLeave.items = [];\r\n systems.items.push(IssueSickLeave);\r\n\r\n const IssueUnpaidVacationDays: FormulaInfo = {};\r\n IssueUnpaidVacationDays.Title = \"مرخصی بدون حقوق حکمی\";\r\n IssueUnpaidVacationDays.key = \"S_IssueUnpaidVacationDays\";\r\n IssueUnpaidVacationDays.Formula = \"S_IssueUnpaidVacationDays\";\r\n IssueUnpaidVacationDays.items = [];\r\n systems.items.push(IssueUnpaidVacationDays);\r\n\r\n return systems;\r\n }\r\n public hasChildren = (item: any) => item.items && item.items.length > 0;\r\n public fetchChildren = (item: any) => of(item.items);\r\n getIDCard() {\r\n const IDCard: FormulaInfo = {};\r\n IDCard.Title = \"شناسنامه ای\";\r\n IDCard.key = \"IDCard\";\r\n IDCard.items = [];\r\n const Marage: FormulaInfo = {};\r\n IDCard.items.push(Marage);\r\n Marage.Title = \"وضعیت تاهل\";\r\n Marage.key = \"MrgStateKindCode\";\r\n Marage.Formula = \"MrgStateKindCode\";\r\n\r\n const PersDateDIFFYear: FormulaInfo = {};\r\n IDCard.items.push(PersDateDIFFYear);\r\n PersDateDIFFYear.Title = \"سن شخص به سال\";\r\n PersDateDIFFYear.key = \"EmployeesAgeYear\";\r\n PersDateDIFFYear.Formula = \"EmployeesAgeYear\";\r\n\r\n const PersDateDIFFMonth: FormulaInfo = {};\r\n IDCard.items.push(PersDateDIFFMonth);\r\n PersDateDIFFMonth.Title = \"سن شخص به ماه\";\r\n PersDateDIFFMonth.key = \"EmployeesAgeMonth\";\r\n PersDateDIFFMonth.Formula = \"EmployeesAgeMonth\";\r\n\r\n const PersDateDIFFDay: FormulaInfo = {};\r\n IDCard.items.push(PersDateDIFFDay);\r\n PersDateDIFFDay.Title = \"سن شخص به روز\";\r\n PersDateDIFFDay.key = \"EmployeesAgeDay\";\r\n PersDateDIFFDay.Formula = \"EmployeesAgeDay\";\r\n\r\n const SexualityCode: FormulaInfo = {};\r\n IDCard.items.push(SexualityCode);\r\n SexualityCode.Title = \"جنسیت شخص\";\r\n SexualityCode.key = \"SexualityCode\";\r\n SexualityCode.Formula = \"SexualityCode\";\r\n\r\n const PersCode: FormulaInfo = {};\r\n IDCard.items.push(PersCode);\r\n PersCode.Title = \"کد پرسنلی\";\r\n PersCode.key = \"PersCode\";\r\n PersCode.Formula = \"PersCode\";\r\n return IDCard;\r\n }\r\n onDeleteElementFormula($event: ElementFormula) {\r\n this.PropertyInfo = [];\r\n let temp = this.currentrow.ElementFormulas.find(\r\n (x) => (x.Id && x.Id !== 0 && x.Id === $event.Id) || ($event.TempRowNumber && x.TempRowNumber === $event.TempRowNumber)\r\n );\r\n if (temp && temp.State === RowState.New) temp.State = RowState.Detached;\r\n else temp.State = RowState.Delete;\r\n this._filterFormula = this.currentrow?.ElementFormulas?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached);\r\n setTimeout(() => this.cd.markForCheck(), 200);\r\n }\r\n onSave() {\r\n let model: ElementFormula = this.getDataFromFormGroup();\r\n model.PropertyInfo = JSON.stringify(this.PropertyInfo);\r\n this.beforupdate();\r\n if (!this.isNewRow && model) {\r\n model.State = RowState.Modify;\r\n if (!this.currentrow.ElementFormulas) this.currentrow.ElementFormulas = [];\r\n this.currentrow.ElementFormulas.forEach((x) => {\r\n if ((x.Id && x.Id !== 0 && x.Id === model.Id) || (model.TempRowNumber && x.TempRowNumber === model.TempRowNumber)) {\r\n Object.assign(x, model);\r\n setTimeout(() => this.cd.markForCheck(), 400);\r\n }\r\n });\r\n } else if (this.isNewRow) {\r\n this.currentrow.ElementFormulas.push(model as ElementFormula);\r\n this.isNewRow = false;\r\n }\r\n this._filterFormula = this.currentrow?.ElementFormulas?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached);\r\n this.elementFormula.refreshData();\r\n setTimeout(() => this.cd.markForCheck(), 400);\r\n }\r\n onEditElementFormula($event) {\r\n this.isNewRow = false;\r\n this.model = $event;\r\n if (this.model.PropertyInfo) this.PropertyInfo = JSON.parse(this.model.PropertyInfo);\r\n this.setFormGroup(this.model);\r\n if (this.model.State === RowState.NoChange) this.model.State = RowState.Modify;\r\n setTimeout(() => this.cd.markForCheck(), 400);\r\n }\r\n onCreateElementFormula($event: ElementFormula) {\r\n this.isNewRow = true;\r\n if (!this.currentrow.ElementFormulas) this.currentrow.ElementFormulas = [];\r\n this.model = {};\r\n this.model.ElementPropertyId = this.currentrow.Id ?? 0;\r\n this.model.TempRowNumber = this.currentrow.ElementFormulas.length + 100;\r\n this.model.State = RowState.New;\r\n this.setFormGroup(this.model);\r\n setTimeout(() => this.cd.markForCheck(), 400);\r\n }\r\n addControl() {\r\n this.setValue(\"PropertyInfo\", this.model.PropertyInfo);\r\n this.setInputControlValue();\r\n setTimeout(() => this.cd.markForCheck(), 400);\r\n }\r\n private setInputControlValue() {\r\n if (this.formGroup && this.formGroup.controls[\"Formula\"]) this.formGroup.controls[\"Formula\"].setValue(this.replaceItemNames(this.model.Formula));\r\n if (this.formGroup && this.formGroup.controls[\"Condition\"])\r\n this.formGroup.controls[\"Condition\"].setValue(this.replaceItemNames(this.model.Condition));\r\n }\r\n beforupdate(): void {\r\n if (this.model && this.model.Formula) this.model.Formula = this.replaceItemValues(this.model.Formula);\r\n if (this.model && this.model.Condition) this.model.Condition = this.replaceItemValues(this.model.Condition);\r\n }\r\n private replaceItemValues(value: string): string {\r\n this.PropertyInfo.forEach((t) => {\r\n value = value.replace(this.wrap(t.Title), t.Formula);\r\n });\r\n return value;\r\n }\r\n\r\n private replaceItemNames(value: string): string {\r\n if (!value) {\r\n return;\r\n }\r\n this.PropertyInfo.forEach((t) => {\r\n value = value.replace(t.Formula, this.wrap(t.Title));\r\n });\r\n return value;\r\n }\r\n\r\n addItem(selected: any, cinput: HTMLTextAreaElement, finput: HTMLTextAreaElement) {\r\n if (selected && selected.dataItem) {\r\n if (selected.dataItem.items && selected.dataItem.items.lengh > 0) return;\r\n if (!this.PropertyInfo) this.PropertyInfo = [];\r\n const text = this.wrap(selected.dataItem.Title);\r\n if (!this.PropertyInfo.some((x) => x.key === selected.dataItem.key)) this.PropertyInfo.push(selected.dataItem);\r\n if (this.currentSeletedColumnKey === \"Formula\") {\r\n const value = finput.value;\r\n\r\n const start = finput.selectionStart;\r\n const end = finput.selectionEnd;\r\n\r\n finput.value = `${value.slice(0, start)}${text}${value.slice(end)}`;\r\n\r\n finput.selectionStart = finput.selectionEnd = start + text.length;\r\n this.formGroup.controls[\"Formula\"].setValue(finput.value);\r\n finput.focus();\r\n } else {\r\n const value = cinput.value;\r\n\r\n const start = cinput.selectionStart;\r\n const end = cinput.selectionEnd;\r\n\r\n cinput.value = `${value.slice(0, start)}${text}${value.slice(end)}`;\r\n\r\n cinput.selectionStart = cinput.selectionEnd = start + text.length;\r\n this.formGroup.controls[\"Condition\"].setValue(cinput.value);\r\n cinput.focus();\r\n }\r\n }\r\n }\r\n\r\n wrap(text) {\r\n return `[${text}]`;\r\n }\r\n onChange(key: string) {\r\n this.currentSeletedColumnKey = key;\r\n }\r\n async save() {\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.result = this.currentrow;\r\n this.closeModal();\r\n }\r\n}\r\n","\r\n 0\">\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ElementGroup } from \"../../../models/enums/element-group\";\r\nimport { ElementFormComponent } from \"../element-form/element-form.component\";\r\nimport { ElementPriorityFormComponent } from \"../element-priority-form/element-priority-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-element-list\",\r\n templateUrl: \"./element-list.component.html\",\r\n styleUrls: [\"./element-list.component.scss\"],\r\n})\r\nexport class ElementListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n actions: EntityListAction[];\r\n filterInfo: NameValue[] = [];\r\n editingName: { name: string };\r\n constructor(private tabsservice: TabularService, private splashFormService: SplashFormService, private _VoucherKindInfo: VoucherKindInfo) {\r\n super();\r\n this.onActionClick = this.onActionClick.bind(this);\r\n this.inputEditorform = ElementFormComponent;\r\n //\r\n if (_VoucherKindInfo.VoucherKindId <= ElementGroup.Other)\r\n this.filterInfo = [{ Name: \"ElementGroupCode\", Value: _VoucherKindInfo.VoucherKindId, Operator: \"lte\" }];\r\n else this.filterInfo = [{ Name: \"ElementGroupCode\", Value: _VoucherKindInfo.VoucherKindId, Operator: \"eq\" }];\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Element\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"تعریف عوامل\";\r\n this.setactions();\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: Element, onRowsSelected: Element[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n if (action.name === \"MakeDefaultElement\") {\r\n this.splashFormService.openDialog(\"\", \"در حال ایجاد عوامل\");\r\n this.httpCommonService\r\n .get(`Element/MakeDefaultElement/${this._VoucherKindInfo.VoucherKindId}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\"عوامل با موفقیت ایجاد شد.\", \"\");\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در ایجاد عوامل\");\r\n this.splashFormService.closeLoading();\r\n }\r\n );\r\n } else if (action.name === \"UpdateComputationalPriority\") {\r\n this.splashFormService.openDialog(\"\", \"در حال الویت بندی عوامل\");\r\n this.httpCommonService\r\n .get(\"Element/UpdateComputationalPriority\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.sts.showDialog(\"الویت عوامل با موفقیت انجام شد.\", \"\");\r\n this.splashFormService.closeLoading();\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در اولویت عوامل\");\r\n this.splashFormService.closeLoading();\r\n }\r\n );\r\n } else {\r\n this.dialogService\r\n .open(\r\n ElementPriorityFormComponent,\r\n {\r\n currentrow: onRowSelected,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: action.displayName,\r\n PriorityName: action.name,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n });\r\n }\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"MakeDefaultElement\",\r\n disabled: false,\r\n displayName: \"ایجاد عوامل عمومی\",\r\n iconName: \"icon-edit2\",\r\n apiName: \"Element/MakeDefaultElement\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"UpdateComputationalPriority\",\r\n disabled: false,\r\n displayName: \"الویت خودکار عوامل\",\r\n iconName: \"icon-sort-o\",\r\n apiName: \"Element/UpdateComputationalPriority\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"CalculationPriority\",\r\n disabled: false,\r\n displayName: \"الویت در محاسبه\",\r\n iconName: \"icon-sort-o\",\r\n apiName: \"Element\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.managePermission,\r\n },\r\n {\r\n name: \"DataEntryPriority\",\r\n disabled: false,\r\n displayName: \"الویت در ورود اطلاعات\",\r\n iconName: \"icon-sort-o\",\r\n apiName: \"Element\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.managePermission,\r\n },\r\n {\r\n name: \"ReportPriority\",\r\n disabled: false,\r\n displayName: \"الویت در گزارشات\",\r\n iconName: \"icon-sort-o\",\r\n apiName: \"Element\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.managePermission,\r\n },\r\n {\r\n name: \"IssuePriority\",\r\n disabled: false,\r\n displayName: \"الویت در حکم\",\r\n iconName: \"icon-sort-o\",\r\n apiName: \"Element\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.managePermission,\r\n },\r\n {\r\n name: \"ShowInBillPay\",\r\n disabled: false,\r\n displayName: \"نمایش در فیش\",\r\n iconName: \"icon-sort-o\",\r\n apiName: \"Element\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.managePermission,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { GridFilter, PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services/http-common.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-element-priority-form\",\r\n templateUrl: \"./element-priority-form.component.html\",\r\n styleUrls: [\"./element-priority-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ElementPriorityFormComponent extends BaseFormComponent {\r\n @Input() PriorityName: string;\r\n gridColumns: form_control[] = [];\r\n dataList: Element[];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.setColumns();\r\n }\r\n onChange($event: any) {\r\n this.loadData();\r\n }\r\n loadData() {\r\n this.dataList = [];\r\n var filters: GridFilter[] = [];\r\n filters.push({ Filed: \"ElementGroupId\", Value: this.formGroup.get(\"ElementGroupId\").value, Operator: \"eq\", Type: \"F\", Skip: 0, Take: 0 });\r\n this.httpCommonService\r\n .GetFilterGrid>(\"Element/GetFilterGrid\", filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: PagingDataResult) => {\r\n if (data) {\r\n this.dataList = data.Data.sort((a, b) => a[this.PriorityName] - b[this.PriorityName]);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n async setColumns() {\r\n this.orignalColumns = [];\r\n this.orignalColumns.push({\r\n label: \"طبقه عامل\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"ElementGroupId\",\r\n textType: \"text\",\r\n disabled: false,\r\n name: \"ElementGroupId\",\r\n order: 0,\r\n formVisible: true,\r\n listVisible: false,\r\n required: true,\r\n apiName: \"Lookup\",\r\n systemName: \"HRM\",\r\n category: \"ElementGroup\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns = this.orignalColumns;\r\n this.model = {};\r\n this.setFormGroup(this.model);\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n (data as form_control[]).forEach((x) => {\r\n if (x.name == \"Title\") {\r\n x.disabled = true;\r\n x.listVisible = true;\r\n x.order = 0;\r\n } else if (x.name == this.PriorityName) {\r\n x.listVisible = true;\r\n x.order = 1;\r\n } else x.listVisible = false;\r\n });\r\n this.gridColumns = (data as form_control[]).sort((a, b) => a.order - b.order);\r\n }\r\n this.cd.markForCheck();\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n async save() {\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName.split(\"/\")[0], this.dataList)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.close();\r\n },\r\n (error) => this.sts.showDialog(`خطا در ذخیره اطلاعات:${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n}\r\n","\r\n 0\">\r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ElementProperty } from \"../../../models/base-info/element-property.model\";\r\nimport { EffectBase } from \"../../../models/enums/effect-base\";\r\nimport { EffectOnEffectWrk } from \"../../../models/enums/effect-on-effect-wrk\";\r\nimport { EffectStatuteKind } from \"../../../models/enums/effect-statute-kind\";\r\nimport { EffectWorkKind } from \"../../../models/enums/effect-work-kind\";\r\nimport { ElementGroup } from \"../../../models/enums/element-group\";\r\nimport { ElementKind } from \"../../../models/enums/element-kind\";\r\nimport { ElemntshowKind } from \"../../../models/enums/elemntshow-kind\";\r\nimport { RoundKind } from \"../../../models/enums/round-kind\";\r\n\r\n@Component({\r\n selector: \"ngx-element-property-form\",\r\n templateUrl: \"./element-property-form.component.html\",\r\n styleUrls: [\"./element-property-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ElementPropertyFormComponent extends BaseFormComponent {\r\n @Input() _columns: form_control[] = [];\r\n public apiName: string = \"Element\";\r\n public label: string = \"تعریف خصوصیت عامل\";\r\n @Input() ElementGroupCode: number;\r\n @Input() ElementKindCode: number;\r\n\r\n constructor(protected selectorService: SelectorService, private lookupservice: LookupService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.columns = this._columns;\r\n this.orignalColumns = this._columns;\r\n\r\n if (!this.currentrow) this.newRow();\r\n else {\r\n this.model = Object.assign({}, this.currentrow as ElementProperty);\r\n this.isNewRow = this.model === undefined || this.model.State === RowState.New;\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n }\r\n }\r\n onvalueChangeWithName($event) {\r\n if ($event && $event?.name === \"ProportionalWorkEffect\") {\r\n this.model.ProportionalWorkEffect = $event.value;\r\n if (this.formGroup && this.formGroup.get(\"EffectBaseId\")) {\r\n if ($event.value) {\r\n this.formGroup.get(\"EffectBaseId\").enable();\r\n this.formGroup.get(\"EffectBaseId\").setValue(13200);\r\n } else this.formGroup.get(\"EffectBaseId\").disable();\r\n }\r\n }\r\n\r\n if ($event && $event?.name === \"EffectBaseId\") {\r\n this.model.EffectBaseCode = $event.value;\r\n }\r\n this.setdefault();\r\n this.cd.markForCheck();\r\n }\r\n addControl() {\r\n this.setDefaultValues();\r\n }\r\n onChange($event) {\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Lookup\") && $event.KeyName === \"EffectBaseId\") {\r\n this.setValue(\"EffectBaseCode\", $event.data.Code);\r\n this.setValue(\"EffectBaseTitle\", $event.data.Title);\r\n this.model.EffectBaseTitle = $event.data.Title;\r\n this.model.EffectBaseCode = $event.data.Code;\r\n this.setdefault();\r\n this.cd.markForCheck();\r\n }\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"EmploymentKind/ReadLookUp\")) {\r\n this.setValue(\"EmploymentKindCode\", $event.data.Code);\r\n this.setValue(\"EmploymentKindTitle\", $event.data.Title);\r\n this.model.EmploymentKindTitle = $event.data.Title;\r\n this.model.EmploymentKindCode = $event.data.Code;\r\n this.setdefault();\r\n this.cd.markForCheck();\r\n }\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Element/ReadLookUp\") && $event.KeyName === \"CalcBaseId\") {\r\n this.setValue(\"CalcBaseTitle\", $event.data.Title);\r\n this.model.CalcBaseTitle = $event.data.Title;\r\n this.setdefault();\r\n this.cd.markForCheck();\r\n }\r\n if (\r\n $event.apiName &&\r\n $event.data &&\r\n $event.data.Id &&\r\n $event.apiName.includes(\"Element/ReadLookUp\") &&\r\n $event.KeyName === \"ProportionalwithElementId\"\r\n ) {\r\n this.setValue(\"ProportionalwithElementTitle\", $event.data.Title);\r\n this.model.ProportionalwithElementTitle = $event.data.Title;\r\n this.setdefault();\r\n this.cd.markForCheck();\r\n }\r\n }\r\n setDefaultValues() {\r\n this.columns.forEach((x) => {\r\n if (x.controlType === FormControlTypes.checkbox && this.model[x.name] === undefined) {\r\n if (this.model[x.name] == undefined) {\r\n this.model[x.name] = false;\r\n this.setValue(x.name, this.model[x.name]);\r\n }\r\n }\r\n });\r\n }\r\n setdefault() {\r\n if (!this.model.IssueYear) this.model.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n if (!this.model.IssueMonth) this.model.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n\r\n if (!this.model.EffectYear) this.model.EffectYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n if (!this.model.EffectMonth) this.model.EffectMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n\r\n if (this.isNewRow && this.model.Active === undefined) this.model.Active = true;\r\n if (this.isNewRow && !this.model.EffectWorkKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"EffectWorkKind\", EffectWorkKind.Work)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.EffectWorkKindId = x.Id;\r\n this.model.EffectWorkKindTitle = x.Title;\r\n this.setValue(\"EffectWorkKindId\", x.Id);\r\n this.setValue(\"EffectWorkKindTitle\", x.Title);\r\n });\r\n }\r\n if (this.isNewRow && !this.model.ElemntshowKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"ElemntshowKind\", ElemntshowKind.HHMM)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.ElemntshowKindId = x.Id;\r\n this.model.ElemntshowKindTitle = x.Title;\r\n this.setValue(\"ElemntshowKindId\", x.Id);\r\n this.setValue(\"ElemntshowKindTitle\", x.Title);\r\n });\r\n }\r\n if (this.isNewRow && !this.model.EffectOnEffectWrkId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"EffectOnEffectWrk\", EffectOnEffectWrk.Neutral)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.EffectOnEffectWrkId = x.Id;\r\n this.model.EffectOnEffectWrkTitle = x.Title;\r\n this.setValue(\"EffectOnEffectWrkId\", x.Id);\r\n this.setValue(\"EffectOnEffectWrkTitle\", x.Title);\r\n });\r\n }\r\n if (this.isNewRow && !this.model.EffectStatuteKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"EffectStatuteKind\", EffectStatuteKind.Monthly)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.EffectStatuteKindId = x.Id;\r\n this.model.EffectStatuteKindTitle = x.Title;\r\n this.setValue(\"EffectStatuteKindId\", x.Id);\r\n this.setValue(\"EffectStatuteKindTitle\", x.Title);\r\n });\r\n }\r\n if (this.isNewRow && !this.model.RoundKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"RoundKind\", RoundKind.Normal)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.RoundKindId = x.Id;\r\n this.model.RoundKindTitle = x.Title;\r\n this.setValue(\"RoundKindId\", x.Id);\r\n this.setValue(\"RoundKindTitle\", x.Title);\r\n });\r\n }\r\n this.columns.forEach((x) => {\r\n if (\r\n x.name === \"ProportionalwithElementId\" ||\r\n x.name === \"EffectStatuteKindId\" ||\r\n x.name === \"RoundLength\" ||\r\n x.name === \"RoundKindId\" ||\r\n x.name === \"ProportionalwithElementId\" ||\r\n x.name === \"CalcBaseId\" ||\r\n x.name === \"Coefficien\" ||\r\n x.name === \"ProportionalWorkEffect\" ||\r\n x.name === \"EffectBaseAmount\" ||\r\n x.name === \"EffectBaseId\"\r\n )\r\n x.formVisible = this.ElementGroupCode !== ElementGroup.Work;\r\n\r\n if (\r\n x.name === \"Insurable\" ||\r\n x.name === \"TaxableContinues\" ||\r\n x.name === \"HasBackpay\" ||\r\n x.name === \"Adjustment\" ||\r\n x.name === \"TaxableUnContinues\"\r\n )\r\n x.formVisible = this.ElementGroupCode !== ElementGroup.Work && this.ElementGroupCode !== ElementGroup.Loan;\r\n\r\n if (x.name === \"EffectBaseId\" && this.ElementGroupCode !== ElementGroup.Work) {\r\n x.disabled = !this.model.ProportionalWorkEffect;\r\n x.required = this.model.ProportionalWorkEffect;\r\n if (this.formGroup && this.formGroup.get(\"EffectBaseId\")) {\r\n if (x.disabled) this.formGroup.get(\"EffectBaseId\").disable();\r\n else this.formGroup.get(\"EffectBaseId\").enable();\r\n }\r\n }\r\n\r\n if (x.name === \"EffectWorkKindId\" || x.name === \"EffectOnEffectWrkId\" || x.name === \"ElemntshowKindId\" || x.name === \"DayBase\") {\r\n if (x.name === \"ElemntshowKindId\" || x.name === \"DayBase\")\r\n x.formVisible = this.ElementGroupCode === ElementGroup.Work || this.ElementKindCode === ElementKind.LeaveRemain;\r\n else x.formVisible = this.ElementGroupCode === ElementGroup.Work;\r\n }\r\n if (x.name === \"EffectStatuteKindId\") {\r\n x.formVisible = this.ElementGroupCode !== ElementGroup.Work && this.ElementKindCode === ElementKind.EmploymentOrder;\r\n }\r\n if (x.name === \"EffectBaseAmount\") {\r\n x.disabled = this.model.EffectBaseCode !== EffectBase.FixedWork && this.formGroup?.controls[\"EffectBaseCode\"]?.value !== EffectBase.FixedWork;\r\n if (this.formGroup && this.formGroup.get(\"EffectBaseAmount\")) {\r\n if (!x.disabled) {\r\n this.formGroup.get(\"EffectBaseAmount\").setValue(13200);\r\n this.formGroup.get(\"EffectBaseAmount\").enable();\r\n } else this.formGroup.get(\"EffectBaseAmount\").disable();\r\n }\r\n x.required = !x.disabled;\r\n }\r\n if (x.name === \"EffectMonth\") {\r\n if (this.ElementGroupCode === ElementGroup.Work || this.ElementGroupCode === ElementGroup.Loan) x.isFloat = undefined;\r\n else x.isFloat = 1;\r\n }\r\n if (x.name === \"MaxAmount\") {\r\n if (this.ElementGroupCode === ElementGroup.Loan) x.isFloat = undefined;\r\n else x.isFloat = 1;\r\n }\r\n if (x.name === \"CalcBaseId\") {\r\n if (this.ElementGroupCode === ElementGroup.Loan) x.isFloat = 1;\r\n else x.isFloat = undefined;\r\n }\r\n });\r\n }\r\n\r\n async save() {\r\n this.result = this.getDataFromFormGroup();\r\n this.closeModal();\r\n }\r\n}\r\n","\r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { TreeViewModule } from \"@progress/kendo-angular-treeview\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ElementFormComponent } from \"./element-form/element-form.component\";\r\nimport { ElementFormulaComponent } from \"./element-formula/element-formula.component\";\r\nimport { ElementListComponent } from \"./element-list/element-list.component\";\r\nimport { ElementPriorityFormComponent } from \"./element-priority-form/element-priority-form.component\";\r\nimport { ElementPropertyFormComponent } from \"./element-property-form/element-property-form.component\";\r\n\r\nconst components = [ElementFormComponent, ElementListComponent, ElementPriorityFormComponent];\r\n@NgModule({\r\n declarations: [...components, ElementPropertyFormComponent, ElementFormulaComponent],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, SharedModule, SepidzGridModule, TreeViewModule],\r\n})\r\nexport class ElementModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { EmploymentKind } from \"../../../models/base-info/employment-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-employment-kind-form\",\r\n templateUrl: \"./employment-kind-form.component.html\",\r\n styleUrls: [\"./employment-kind-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class EmploymentKindFormComponent extends BaseFormComponent {\r\n public apiName: string = \"EmploymentKind\";\r\n public label: string = this.translate(\"ClientApp.BackOffice.ACC.DetaiLedgerKind.DetaiLedgerKind\");\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EmploymentKindFormComponent } from \"../employment-kind-form/employment-kind-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-employment-kind-list\",\r\n templateUrl: \"./employment-kind-list.component.html\",\r\n styleUrls: [\"./employment-kind-list.component.scss\"],\r\n})\r\nexport class EmploymentKindListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = EmploymentKindFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"EmploymentKind\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"انواع استخدام\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { EmploymentKindFormComponent } from \"./employment-kind-form/employment-kind-form.component\";\r\nimport { EmploymentKindListComponent } from \"./employment-kind-list/employment-kind-list.component\";\r\n\r\nconst components = [EmploymentKindFormComponent, EmploymentKindListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class EmploymentKindModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { HrmBankAccount } from \"../../../models/hrm-bank-account.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-bank-account-form\",\r\n templateUrl: \"./hrm-bank-account-form.component.html\",\r\n styleUrls: [\"./hrm-bank-account-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HrmBankAccountFormComponent extends BaseFormComponent {\r\n public apiName: string = \"CostCenter\";\r\n public label: string = \"ارتباط حساب کارکنان به محل خدمت\";\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"HrmBankAccount\";\r\n this.areaName = \"Payroll\";\r\n this.defaultCoumnNumber = 6;\r\n super.ngOnInit();\r\n }\r\n setdefault(): void {\r\n if (this.accountService.authService.getHrmPayCurentYearMonth()) {\r\n if (\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentYear &&\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth\r\n ) {\r\n this.model.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n this.model.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n }\r\n if (!this.model.PersCode) this.model.PersCode = this.currentrow.PersCode;\r\n if (!this.model.FirstName) this.model.FirstName = this.currentrow.FirstName;\r\n if (!this.model.LastName) this.model.LastName = this.currentrow.LastName;\r\n if (!this.model.HrmPersonnelId) this.model.HrmPersonnelId = this.currentrow.HrmPersonnelId;\r\n }\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { HrmBankAccountFormComponent } from \"../hrm-bank-account-form/hrm-bank-account-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-bank-account-list\",\r\n templateUrl: \"./hrm-bank-account-list.component.html\",\r\n styleUrls: [\"./hrm-bank-account-list.component.scss\"],\r\n})\r\nexport class HrmBankAccountListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n filterInfo: NameValue[] = [];\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = HrmBankAccountFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"HrmBankAccount/GetHrmBankAccountList\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"ارتباط حساب کارکنان به محل خدمت\";\r\n if (this.accountService.authService.getHrmPayCurentYearMonth()) {\r\n if (\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentYear &&\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth\r\n ) {\r\n this.filterInfo.push({ Name: \"IssueYear\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear, Operator: \"lte\" });\r\n this.filterInfo.push({ Name: \"IssueMonth\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth, Operator: \"lte\" });\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n pathPreFix=\"HRM\"\r\n [isAdd]=\"false\"\r\n reportName=\"HrmBankAccountList\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n [inputEditorform]=\"inputEditorform\">\r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { HrmBankAccountFormComponent } from \"./hrm-bank-account-form/hrm-bank-account-form.component\";\r\nimport { HrmBankAccountListComponent } from \"./hrm-bank-account-list/hrm-bank-account-list.component\";\r\nconst components = [HrmBankAccountListComponent, HrmBankAccountFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class HrmBankAccountModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HrmBank } from \"../../../models/hrm-bank.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-bank-form\",\r\n templateUrl: \"./hrm-bank-form.component.html\",\r\n styleUrls: [\"./hrm-bank-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HrmBankFormComponent extends BaseFormComponent {\r\n public apiName: string = \"CostCenter\";\r\n public label: string = \"مرکز هزینه\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { HrmBankFormComponent } from \"../hrm-bank-form/hrm-bank-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-bank-list\",\r\n templateUrl: \"./hrm-bank-list.component.html\",\r\n styleUrls: [\"./hrm-bank-list.component.scss\"],\r\n})\r\nexport class HrmBankListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = HrmBankFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"HrmBank\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"محل پرداخت\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { HrmBankFormComponent } from \"./hrm-bank-form/hrm-bank-form.component\";\r\nimport { HrmBankListComponent } from \"./hrm-bank-list/hrm-bank-list.component\";\r\n\r\nconst components = [HrmBankListComponent, HrmBankFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class HrmBankModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { HrmMapReport } from \"../../../models/hrm-map-report.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-map-report-form\",\r\n templateUrl: \"./hrm-map-report-form.component.html\",\r\n styleUrls: [\"./hrm-map-report-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HrmMapReportFormComponent extends BaseFormComponent {\r\n public apiName: string = \"HrmMapReport\";\r\n public label: string = \"ارتباط عوامل با گزارشات\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { HrmMapReportFormComponent } from \"../hrm-map-report-form/hrm-map-report-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-map-report-list\",\r\n templateUrl: \"./hrm-map-report-list.component.html\",\r\n styleUrls: [\"./hrm-map-report-list.component.scss\"],\r\n})\r\nexport class HrmMapReportListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = HrmMapReportFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"HrmMapReport\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"ارتباط عوامل با گزارشات\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { HrmMapReportFormComponent } from \"./hrm-map-report-form/hrm-map-report-form.component\";\r\nimport { HrmMapReportListComponent } from \"./hrm-map-report-list/hrm-map-report-list.component\";\r\n\r\nconst components = [HrmMapReportListComponent, HrmMapReportFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class HrmMapReportModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { HrmTaxTable } from \"../../../models/hrm-tax-table.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-tax-table-form\",\r\n templateUrl: \"./hrm-tax-table-form.component.html\",\r\n styleUrls: [\"./hrm-tax-table-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HrmTaxTableFormComponent extends BaseFormComponent {\r\n public apiName: string = \"HrmTaxTable\";\r\n public label: string = \"جدول مالیاتی\";\r\n DefaultValues: Dictionary = [];\r\n HrmTaxTableDetails: form_control[];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.DefaultValues[\"HrmTaxTableId\"] = 0;\r\n this.DefaultValues[\"Amount\"] = 0;\r\n\r\n super.ngOnInit();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.DefaultValues = undefined;\r\n this.HrmTaxTableDetails = undefined;\r\n }\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.HrmTaxTableDetails = this.getDetailControlModels(\"HrmTaxTableDetails\");\r\n }\r\n setdefault() {\r\n if (!this.model.HrmTaxTableDetails) this.model.HrmTaxTableDetails = [];\r\n }\r\n valueChanges($event) {\r\n if ($event && $event.controls[\"ToAmount\"]?.value && $event.controls[\"FromAmount\"]?.value && $event.controls[\"Prercent\"]?.value) {\r\n $event\r\n .get(\"Amount\")\r\n .setValue((($event.controls[\"ToAmount\"].value - $event.controls[\"FromAmount\"].value) * $event.controls[\"Prercent\"]?.value) / 100);\r\n }\r\n }\r\n}\r\n"," 0\"\r\n [apiName]=\"apiName\"\r\n [group]=\"formGroup\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [model]=\"model\"\r\n reportName=\"HrmTaxTable\"\r\n pathPreFix=\"HRM\"\r\n (cancelChange)=\"cancel()\"\r\n [columns]=\"columns\"\r\n (submitChange)=\"save()\">\r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { HrmTaxTableFormComponent } from \"../hrm-tax-table-form/hrm-tax-table-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-tax-table-list\",\r\n templateUrl: \"./hrm-tax-table-list.component.html\",\r\n styleUrls: [\"./hrm-tax-table-list.component.scss\"],\r\n})\r\nexport class HrmTaxTableListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = HrmTaxTableFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"HrmTaxTable\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"جدول مالیاتی\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { HrmTaxTableFormComponent } from \"./hrm-tax-table-form/hrm-tax-table-form.component\";\r\nimport { HrmTaxTableListComponent } from \"./hrm-tax-table-list/hrm-tax-table-list.component\";\r\n\r\nconst components = [HrmTaxTableFormComponent, HrmTaxTableListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class HrmTaxTableModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { HrmWorkCalendar } from \"../../../models/hrm-work-calendar.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-work-calendar-form\",\r\n templateUrl: \"./hrm-work-calendar-form.component.html\",\r\n styleUrls: [\"./hrm-work-calendar-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HrmWorkCalendarFormComponent extends BaseFormComponent {\r\n public apiName: string = \"HrmWorkCalendar\";\r\n public label: string = \"جدول تقویم کاری\";\r\n DefaultValues: Dictionary = [];\r\n HrmWorkCalendarDetails: form_control[];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.DefaultValues[\"HrmWorkCalendarId\"] = 0;\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (!this.model.HrmWorkCalendarDetails) this.model.HrmWorkCalendarDetails = [];\r\n if (!this.model.DayBase) this.model.DayBase = 440;\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.DefaultValues = undefined;\r\n this.HrmWorkCalendarDetails = undefined;\r\n }\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.HrmWorkCalendarDetails = this.getDetailControlModels(\"HrmWorkCalendarDetails\");\r\n }\r\n valueChanges($event) {\r\n if ($event && $event.controls[\"DayNum\"]?.value && this.formGroup.controls[\"DayBase\"]?.value) {\r\n $event.get(\"DayMM\").setValue($event.controls[\"DayNum\"].value * this.formGroup.controls[\"DayBase\"].value);\r\n }\r\n }\r\n}\r\n"," 0 && formGroup\"\r\n [apiName]=\"apiName\"\r\n [group]=\"formGroup\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [model]=\"model\"\r\n reportName=\"HrmWorkCalendar\"\r\n pathPreFix=\"HRM\"\r\n (cancelChange)=\"cancel()\"\r\n [columns]=\"columns\"\r\n (submitChange)=\"save()\">\r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { HrmWorkCalendarFormComponent } from \"../hrm-work-calendar-form/hrm-work-calendar-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-work-calendar-list\",\r\n templateUrl: \"./hrm-work-calendar-list.component.html\",\r\n styleUrls: [\"./hrm-work-calendar-list.component.scss\"],\r\n})\r\nexport class HrmWorkCalendarListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = HrmWorkCalendarFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"HrmWorkCalendar\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"جدول تقویم کاری\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { HrmWorkCalendarFormComponent } from \"./hrm-work-calendar-form/hrm-work-calendar-form.component\";\r\nimport { HrmWorkCalendarListComponent } from \"./hrm-work-calendar-list/hrm-work-calendar-list.component\";\r\n\r\nconst components = [HrmWorkCalendarListComponent, HrmWorkCalendarFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class HrmWorkCalendarModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HRNotificationKind } from \"../../../models/base-info/hrnotification-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrnotification-kind-form\",\r\n templateUrl: \"./hrnotification-kind-form.component.html\",\r\n styleUrls: [\"./hrnotification-kind-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HRNotificationKindFormComponent extends BaseFormComponent {\r\n public apiName: string = \"HRNotificationKind\";\r\n public label: string = \"نوع حکم کار گزینی\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { HRNotificationKindFormComponent } from \"../hrnotification-kind-form/hrnotification-kind-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-hrnotification-kind-list\",\r\n templateUrl: \"./hrnotification-kind-list.component.html\",\r\n styleUrls: [\"./hrnotification-kind-list.component.scss\"],\r\n})\r\nexport class HRNotificationKindListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = HRNotificationKindFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"HRNotificationKind\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"نوع حکم کار گزینی\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { HRNotificationKindFormComponent } from \"./hrnotification-kind-form/hrnotification-kind-form.component\";\r\nimport { HRNotificationKindListComponent } from \"./hrnotification-kind-list/hrnotification-kind-list.component\";\r\n\r\nconst components = [HRNotificationKindFormComponent, HRNotificationKindListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class HRNotificationKindModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { JobClassification } from \"../../../models/base-info/job-classification.model\";\r\n\r\n@Component({\r\n selector: \"ngx-job-classification-form\",\r\n templateUrl: \"./job-classification-form.component.html\",\r\n styleUrls: [\"./job-classification-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class JobClassificationFormComponent extends BaseFormComponent {\r\n public apiName: string = \"JobClassification\";\r\n public label: string = \"طبقه بندی شغل\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { JobClassificationFormComponent } from \"../job-classification-form/job-classification-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-job-classification-list\",\r\n templateUrl: \"./job-classification-list.component.html\",\r\n styleUrls: [\"./job-classification-list.component.scss\"],\r\n})\r\nexport class JobClassificationListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = JobClassificationFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"JobClassification\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"طبقه بندی شغل\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { JobClassificationFormComponent } from \"./job-classification-form/job-classification-form.component\";\r\nimport { JobClassificationListComponent } from \"./job-classification-list/job-classification-list.component\";\r\n\r\nconst components = [JobClassificationFormComponent, JobClassificationListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class JobClassificationModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Jobs } from \"../../../models/base-info/jobs.model\";\r\n\r\n@Component({\r\n selector: \"ngx-jobs-form\",\r\n templateUrl: \"./jobs-form.component.html\",\r\n styleUrls: [\"./jobs-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class JobsFormComponent extends BaseFormComponent {\r\n public apiName: string = \"Jobs\";\r\n public label: string = \"مشاغل\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setdefault(): void {\r\n if (this.isNewRow && !this.model.JobCount) this.model.JobCount = 1;\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { JobsFormComponent } from \"../jobs-form/jobs-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-jobs-list\",\r\n templateUrl: \"./jobs-list.component.html\",\r\n styleUrls: [\"./jobs-list.component.scss\"],\r\n})\r\nexport class JobsListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = JobsFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Jobs\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"مشاغل\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { JobsFormComponent } from \"./jobs-form/jobs-form.component\";\r\nimport { JobsListComponent } from \"./jobs-list/jobs-list.component\";\r\n\r\nconst components = [JobsFormComponent, JobsListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class JobsModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { OrganizationalPosts } from \"../../../models/base-info/organizational-posts.model\";\r\n\r\n@Component({\r\n selector: \"ngx-organizational-posts-form\",\r\n templateUrl: \"./organizational-posts-form.component.html\",\r\n styleUrls: [\"./organizational-posts-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrganizationalPostsFormComponent extends BaseFormComponent {\r\n public apiName: string = \"OrganizationalPosts\";\r\n public label: string = \"پست های سازمانی\";\r\n DefaultValues: Dictionary = [];\r\n OrganizationalPostsRelatedJobss: form_control[];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n this.DefaultValues[\"OrganizationalPostsId\"] = 0;\r\n this.DefaultValues[\"RequierdPostsCount\"] = 0;\r\n }\r\n setdefault() {\r\n if (this.isNewRow && this.model.Active === undefined) this.model.Active = true;\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.DefaultValues = undefined;\r\n this.OrganizationalPostsRelatedJobss = undefined;\r\n }\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.OrganizationalPostsRelatedJobss = this.getDetailControlModels(\"OrganizationalPostsRelatedJobss\");\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n \r\n 0\"\r\n [columns]=\"OrganizationalPostsRelatedJobss\"\r\n [dataList]=\"model.OrganizationalPostsRelatedJobss\"\r\n [isAdd]=\"true\"\r\n [isEdit]=\"true\"\r\n [DefaultValues]=\"DefaultValues\"\r\n [isDelete]=\"true\">\r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { OrganizationalPostsFormComponent } from \"../organizational-posts-form/organizational-posts-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-organizational-posts-list\",\r\n templateUrl: \"organizational-posts-list.component.html\",\r\n styleUrls: [\"organizational-posts-list.component.scss\"],\r\n})\r\nexport class OrganizationalPostsListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = OrganizationalPostsFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"OrganizationalPosts\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"پست های سازمانی\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { OrganizationalPostsFormComponent } from \"./organizational-posts-form/organizational-posts-form.component\";\r\nimport { OrganizationalPostsListComponent } from \"./organizational-posts-list/organizational-posts-list.component\";\r\n\r\nconst components = [OrganizationalPostsFormComponent, OrganizationalPostsListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class OrganizationalPostsModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { OrganizationalUnit } from \"../../../models/base-info/organizational-unit.model\";\r\n\r\n@Component({\r\n selector: \"ngx-organizational-unit-form\",\r\n templateUrl: \"./organizational-unit-form.component.html\",\r\n styleUrls: [\"./organizational-unit-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrganizationalUnitFormComponent extends BaseFormComponent {\r\n public apiName: string = \"OrganizationalUnit\";\r\n public label: string = \"واحدهای سازمانی\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (this.isNewRow && this.model.Active === undefined) this.model.Active = true;\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { OrganizationalUnitFormComponent } from \"../organizational-unit-form/organizational-unit-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-organizational-unit-list\",\r\n templateUrl: \"./organizational-unit-list.component.html\",\r\n styleUrls: [\"./organizational-unit-list.component.scss\"],\r\n})\r\nexport class OrganizationalUnitListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = OrganizationalUnitFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"OrganizationalUnit\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"واحدهای سازمانی\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { OrganizationalUnitFormComponent } from \"./organizational-unit-form/organizational-unit-form.component\";\r\nimport { OrganizationalUnitListComponent } from \"./organizational-unit-list/organizational-unit-list.component\";\r\n\r\nconst components = [OrganizationalUnitFormComponent, OrganizationalUnitListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class OrganizationalUnitModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { PayCompanies } from \"../../../models/base-info/pay-companies.model\";\r\n\r\n@Component({\r\n selector: \"ngx-pay-companies-form\",\r\n templateUrl: \"./pay-companies-form.component.html\",\r\n styleUrls: [\"./pay-companies-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PayCompaniesFormComponent extends BaseFormComponent {\r\n public apiName: string = \"PayCompanies\";\r\n public label: string = \"سازمانها و شعب بیمه و دارائی\";\r\n DefaultValues: Dictionary = [];\r\n PayCompaniesBranchs: form_control[];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.DefaultValues[\"PayCompaniesId\"] = 0;\r\n super.ngOnInit();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.DefaultValues = undefined;\r\n this.PayCompaniesBranchs = undefined;\r\n }\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.PayCompaniesBranchs = this.getDetailControlModels(\"PayCompaniesBranchs\");\r\n }\r\n setdefault() {\r\n if (!this.model.PayCompaniesBranchs) this.model.PayCompaniesBranchs = [];\r\n if (this.model.IsInsurance === undefined) this.model.IsInsurance = false;\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n 0\">\r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { PayCompaniesFormComponent } from \"../pay-companies-form/pay-companies-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-pay-companies-list\",\r\n templateUrl: \"./pay-companies-list.component.html\",\r\n styleUrls: [\"./pay-companies-list.component.scss\"],\r\n})\r\nexport class PayCompaniesListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = PayCompaniesFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"PayCompanies\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"سازمانها و شعب بیمه و دارائی\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { PayCompaniesFormComponent } from \"./pay-companies-form/pay-companies-form.component\";\r\nimport { PayCompaniesListComponent } from \"./pay-companies-list/pay-companies-list.component\";\r\n\r\nconst components = [PayCompaniesFormComponent, PayCompaniesListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class PayCompaniesModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Project } from \"../../../models/base-info/project.model\";\r\n\r\n@Component({\r\n selector: \"ngx-project-form\",\r\n templateUrl: \"./project-form.component.html\",\r\n styleUrls: [\"./project-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ProjectFormComponent extends BaseFormComponent {\r\n public apiName: string = \"Project\";\r\n public label: string = \"پروژه ها\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { ProjectFormComponent } from \"../project-form/project-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-project-list\",\r\n templateUrl: \"./project-list.component.html\",\r\n styleUrls: [\"./project-list.component.scss\"],\r\n})\r\nexport class ProjectListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = ProjectFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Project\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"پروژه ها\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ProjectFormComponent } from \"./project-form/project-form.component\";\r\nimport { ProjectListComponent } from \"./project-list/project-list.component\";\r\n\r\nconst components = [ProjectFormComponent, ProjectListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class ProjectModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { WorkHoursImportHeader } from \"../../../models/base-info/work-hours-import-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-work-hours-import-header-form\",\r\n templateUrl: \"./work-hours-import-header-form.component.html\",\r\n styleUrls: [\"./work-hours-import-header-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class WorkHoursImportHeaderFormComponent extends BaseFormComponent {\r\n public apiName: string = \"WorkHoursImportHeader\";\r\n public label: string = \"ارتباط عوامل با کارت ساعت\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { WorkHoursImportHeaderFormComponent } from \"../work-hours-import-header-form/work-hours-import-header-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-work-hours-import-header-list\",\r\n templateUrl: \"./work-hours-import-header-list.component.html\",\r\n styleUrls: [\"./work-hours-import-header-list.component.scss\"],\r\n})\r\nexport class WorkHoursImportHeaderListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = WorkHoursImportHeaderFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"WorkHoursImportHeader\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"ارتباط عوامل با کارت ساعت\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { WorkHoursImportHeaderFormComponent } from \"./work-hours-import-header-form/work-hours-import-header-form.component\";\r\nimport { WorkHoursImportHeaderListComponent } from \"./work-hours-import-header-list/work-hours-import-header-list.component\";\r\n\r\nconst components = [WorkHoursImportHeaderFormComponent, WorkHoursImportHeaderListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class WorkHoursImportHeaderModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Workplace } from \"../../../models/base-info/workplace.model\";\r\n\r\n@Component({\r\n selector: \"ngx-workplace-form\",\r\n templateUrl: \"./workplace-form.component.html\",\r\n styleUrls: [\"./workplace-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class WorkplaceFormComponent extends BaseFormComponent {\r\n public apiName: string = \"Workplace\";\r\n public label: string = \"محل خدمت\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { WorkplaceFormComponent } from \"../workplace-form/workplace-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-workplace-list\",\r\n templateUrl: \"./workplace-list.component.html\",\r\n styleUrls: [\"./workplace-list.component.scss\"],\r\n})\r\nexport class WorkplaceListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = WorkplaceFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Workplace\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"محل خدمت\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { WorkplaceFormComponent } from \"./workplace-form/workplace-form.component\";\r\nimport { WorkplaceListComponent } from \"./workplace-list/workplace-list.component\";\r\n\r\nconst components = [WorkplaceListComponent, WorkplaceFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class WorkplaceModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-change-pay-curent-year-month\",\r\n templateUrl: \"./change-pay-curent-year-month.component.html\",\r\n styleUrls: [\"./change-pay-curent-year-month.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChangePayCurentYearMonthComponent extends BaseFormComponent {\r\n public apiName: string = \"MonthlySalaryCalculationInformation/ChangePayCurentYearMonth\";\r\n public label: string = \"تغییر ماه سیستم حقوق\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.model = {};\r\n this.setColumns();\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"IssueYear\",\r\n disabled: true,\r\n name: \"IssueYear\",\r\n order: 0,\r\n textType: \"number\",\r\n columnNumber: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.columns.push({\r\n label: \"ماه جاری\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueMonth\",\r\n userClass: \"select-shr\",\r\n disabled: true,\r\n name: \"IssueMonth\",\r\n order: 2,\r\n textType: \"number\",\r\n columnNumber: 2,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"MonthsName\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n this.model.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n this.model.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n this.setFormGroup(this.model);\r\n this._save();\r\n }\r\n public saveSuccessHelper(row?: any) {\r\n this.isClosing = false;\r\n this.submitted = true;\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.showValidationErrors = false;\r\n this.selectorService.submitted$.next(false);\r\n }\r\n\r\n protected saveFailedHelper(error: any) {\r\n this.submitted = false;\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.isClosing = false;\r\n this.isSaving = false;\r\n this.model.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n this.model.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n this.sts.showDialog(`خطای ذخیره تغییرات: ${Utilities.getHttpResponseMessage(error)}`, \"پیغام خطا\");\r\n setTimeout(() => {\r\n this.model.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n this.model.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n }, 200);\r\n this.setFormGroup(this.model);\r\n }\r\n\r\n _save() {\r\n if (this.formGroup.get(\"IssueYear\").value && this.formGroup.get(\"IssueMonth\").value) {\r\n this.httpCommonService\r\n .get(\r\n `MonthlySalaryCalculationInformation/ChangePayCurentYearMonth/${this.formGroup.get(\"IssueYear\").value}/${\r\n this.formGroup.get(\"IssueMonth\").value\r\n }`\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.accountService.authService.saveHrmPayCurentYearMonth();\r\n this.saveSuccessHelper();\r\n },\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n }\r\n prevMonth() {\r\n if (this.formGroup.get(\"IssueMonth\").value === 1) {\r\n this.formGroup.get(\"IssueYear\").setValue(this.formGroup.get(\"IssueYear\").value - 1);\r\n this.formGroup.get(\"IssueMonth\").setValue(12);\r\n } else this.formGroup.get(\"IssueMonth\").setValue(this.formGroup.get(\"IssueMonth\").value - 1);\r\n this._save();\r\n }\r\n nextMonth() {\r\n if (this.formGroup.get(\"IssueMonth\").value === 12) {\r\n this.formGroup.get(\"IssueYear\").setValue(this.formGroup.get(\"IssueYear\").value + 1);\r\n this.formGroup.get(\"IssueMonth\").setValue(1);\r\n } else this.formGroup.get(\"IssueMonth\").setValue(this.formGroup.get(\"IssueMonth\").value + 1);\r\n this._save();\r\n }\r\n async save() {\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ChangePayCurentYearMonthComponent } from \"./change-pay-curent-year-month.component\";\r\n\r\nconst components = [ChangePayCurentYearMonthComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class ChangePayCurentYearMonthModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Element } from \"../../models/base-info/element.model\";\r\nimport { EffectStatuteKind } from \"../../models/enums/effect-statute-kind\";\r\nimport { ElementGroup } from \"../../models/enums/element-group\";\r\nimport { FinanceNotificationDetail, FinanceNotificationHeader } from \"../../models/finance-notification-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-finance-notification-header-form\",\r\n templateUrl: \"./finance-notification-header-form.component.html\",\r\n styleUrls: [\"./finance-notification-header-form.component.scss\"],\r\n})\r\nexport class FinanceNotificationHeaderFormComponent extends BaseFormComponent {\r\n public apiName: string = \"FinanceNotificationHeader\";\r\n public label: string = \"حکم مالی\";\r\n activeTabTitle: string = \"کسور\";\r\n EmploymentKindId: number = 0;\r\n DeductColumns: FinanceNotificationDetail[];\r\n BossColumns: FinanceNotificationDetail[];\r\n WorkColumns: FinanceNotificationDetail[];\r\n OtherColumns: FinanceNotificationDetail[];\r\n ActiveElement: Element[];\r\n FinanceNotificationDetails: form_control[];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.DeductColumns = undefined;\r\n this.BossColumns = undefined;\r\n this.WorkColumns = undefined;\r\n this.OtherColumns = undefined;\r\n this.ActiveElement = undefined;\r\n this.FinanceNotificationDetails = undefined;\r\n }\r\n async ngOnInit() {\r\n if (this.currentrow) this.EmploymentKindId = this.currentrow.EmploymentKindId;\r\n super.ngOnInit();\r\n this.apiName = \"FinanceNotificationHeader\";\r\n this.label = \"حکم مالی\";\r\n super.ngOnInit();\r\n this.isNewRow = this.currentrow.State === RowState.New;\r\n }\r\n setdefault(): void {\r\n this.isNewRow = this.currentrow.State === RowState.New;\r\n if (this.isNewRow && !this.model.HrmPersonnelId && this.currentrow) Object.assign(this.model, this.currentrow);\r\n if (!this.model.IsGroupedIssue) {\r\n this.model.IsGroupedIssue = false;\r\n }\r\n if (this.isNewRow) {\r\n this.model.Id = 0;\r\n if (this.model.FinanceNotificationDetails) {\r\n this.model.FinanceNotificationDetails.forEach((x) => {\r\n x.Id = 0;\r\n x.FinanceNotificationHeaderId = 0;\r\n });\r\n }\r\n }\r\n if (this.model) this.populateElement();\r\n }\r\n populateElement() {\r\n this.httpCommonService\r\n .getList(\"FinanceNotificationHeader/GetActiveElement/\" + this.EmploymentKindId + \"/\" + this.model.HrmPersonnelId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: Element[]) => {\r\n if (data) {\r\n this.ActiveElement = data as [];\r\n if (!this.model.FinanceNotificationDetails) this.model.FinanceNotificationDetails = [];\r\n data.forEach((element) => {\r\n if (!this.model.FinanceNotificationDetails.some((e) => e.ElementId === element.Id)) {\r\n this.model.FinanceNotificationDetails.push({\r\n ElementId: element.Id,\r\n ElementTitle: element.Title,\r\n State: RowState.New,\r\n FinanceNotificationHeaderId: this.model.Id,\r\n Id: 0,\r\n EffectDate: new Date(),\r\n ElementGroupId: element.ElementGroupId,\r\n ElementGroupTitle: element.ElementGroupTitle,\r\n ElementGroupCode: element.ElementGroupCode,\r\n Amount: 0,\r\n MonthAmount: 0,\r\n DayAmount: 0,\r\n HourAmount: 0,\r\n });\r\n }\r\n });\r\n this.DeductColumns = this.model.FinanceNotificationDetails.filter((x) => x.ElementGroupCode === ElementGroup.Deduct) as [];\r\n this.BossColumns = this.model.FinanceNotificationDetails.filter((x) => x.ElementGroupCode === ElementGroup.Boss) as [];\r\n this.WorkColumns = this.model.FinanceNotificationDetails.filter((x) => x.ElementGroupCode === ElementGroup.Work) as [];\r\n this.OtherColumns = this.model.FinanceNotificationDetails.filter((x) => x.ElementGroupCode === ElementGroup.Other) as [];\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.FinanceNotificationDetails = this.getDetailControlModels(\"FinanceNotificationDetails\");\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n beforupdate() {\r\n this.model.FinanceNotificationDetails = [...this.DeductColumns, ...this.BossColumns, ...this.WorkColumns, ...this.OtherColumns];\r\n this.model.FinanceNotificationDetails.forEach((x) => {\r\n if (x.Amount) {\r\n let elmnt = this.ActiveElement.find((f) => f.Id === x.ElementId);\r\n elmnt.ElementPropertys = elmnt.ElementPropertys.sort((a, b) => b.Id - a.Id);\r\n\r\n if (elmnt && elmnt.ElementPropertys[0].EffectStatuteKindCode === EffectStatuteKind.Monthly) x.MonthAmount = x.Amount;\r\n if (elmnt && elmnt.ElementPropertys[0].EffectStatuteKindCode === EffectStatuteKind.Daily) x.DayAmount = x.Amount;\r\n if (elmnt && elmnt.ElementPropertys[0].EffectStatuteKindCode === EffectStatuteKind.Hourly) x.HourAmount = x.Amount;\r\n }\r\n });\r\n }\r\n}\r\n","\r\n 0\">\r\n \r\n \r\n 0\"\r\n [columns]=\"FinanceNotificationDetails\"\r\n [dataList]=\"DeductColumns\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\">\r\n \r\n \r\n \r\n 0\"\r\n [columns]=\"FinanceNotificationDetails\"\r\n [dataList]=\"BossColumns\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\">\r\n \r\n \r\n \r\n 0\"\r\n [columns]=\"FinanceNotificationDetails\"\r\n [dataList]=\"WorkColumns\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\">\r\n \r\n \r\n \r\n 0\"\r\n [columns]=\"FinanceNotificationDetails\"\r\n [dataList]=\"OtherColumns\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\">\r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { GridFilter, PagingDataResult, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { DialogType } from \"../../../../../../projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { FinanceNotificationHeader } from \"../../models/finance-notification-header.model\";\r\nimport { HRNotificationHeader } from \"../../models/hrnotification-header.model\";\r\nimport { FinanceNotificationHeaderFormComponent } from \"../finance-notification-header-form/finance-notification-header-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-finance-notification-header-list\",\r\n templateUrl: \"./finance-notification-header-list.component.html\",\r\n styleUrls: [\"./finance-notification-header-list.component.scss\"],\r\n})\r\nexport class FinanceNotificationHeaderListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n HRNtificationItemColumns: form_control[] = [];\r\n _HRNtificationItems: FinanceNotificationHeader[];\r\n selectedRow: FinanceNotificationHeader;\r\n hRNotificationHeader: HRNotificationHeader;\r\n get HRNtificationItems() {\r\n return this._HRNtificationItems;\r\n }\r\n constructor() {\r\n super();\r\n this.inputEditorform = FinanceNotificationHeaderFormComponent;\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.inputEditorform = undefined;\r\n this.editingName = undefined;\r\n this.HRNtificationItemColumns = undefined;\r\n this._HRNtificationItems = undefined;\r\n this.selectedRow = undefined;\r\n this.hRNotificationHeader = undefined;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"HRNotificationHeader/HRNotifications\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"احکام مالی\";\r\n this.setDetailColumns();\r\n }\r\n setDetailColumns() {\r\n this.httpCommonService\r\n .getControlsList(\"FinanceNotificationHeader\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.HRNtificationItemColumns = data as form_control[];\r\n this.HRNtificationItemColumns.forEach((x) => {\r\n if (x.name === \"PersCode\" || x.name === \"FullName\" || x.name === \"CertificateID\") {\r\n x.listVisible = false;\r\n }\r\n });\r\n this.HRNtificationItemColumns = this.HRNtificationItemColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n onEdit(event: FinanceNotificationHeader) {\r\n if (!event && !this.selectedRow) {\r\n this.sts.showDialog(`هیچ کارمندی انتخاب نشده است.`, \"پیغام خطا\");\r\n } else if (this.HRNtificationItems && this.HRNtificationItems.length > 0) {\r\n this._HRNtificationItems = this.HRNtificationItems.sort((a, b) => b.Id - a.Id);\r\n event = this.HRNtificationItems[0];\r\n } else if (!event && this.selectedRow) event = this.selectedRow;\r\n event.State = RowState.Modify;\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: event,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n setTimeout(() => this.onDoubleClick(model as HRNotificationHeader), 200);\r\n });\r\n }\r\n onCreate(event: FinanceNotificationHeader) {\r\n if (!event && !this.hRNotificationHeader && (!this.HRNtificationItems || this.HRNtificationItems.length <= 0)) {\r\n this.sts.showDialog(`هیچ کارمندی انتخاب نشده است.`, \"پیغام خطا\");\r\n } else if (this.HRNtificationItems && this.HRNtificationItems.length > 0) {\r\n this._HRNtificationItems = this.HRNtificationItems.sort((a, b) => b.Id - a.Id);\r\n event = this.HRNtificationItems[0];\r\n } else if (!event && this.hRNotificationHeader) event = new FinanceNotificationHeader();\r\n event.HrmPersonnelId = this.hRNotificationHeader.HrmPersonnelId;\r\n event.State = RowState.New;\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: event,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n setTimeout(() => this.onDoubleClick(model as HRNotificationHeader), 200);\r\n });\r\n }\r\n onDelete(event: FinanceNotificationHeader) {\r\n this.sts.showDialog(`آیا از حذف اطلاعات اطمینان دارید؟`, \"حذف اطلاعات\", DialogType.confirm, () => this.deleteFormHelper(event));\r\n }\r\n deleteFormHelper(row: any) {\r\n this.sts.showToast(\"primary\", \"\", \"در حال حذف...\");\r\n this.httpCommonService\r\n .delete(\"FinanceNotificationHeader/DeleteItem\", row.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت حذف شد.\");\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف اطلاعات\");\r\n }\r\n );\r\n }\r\n onDoubleClick(hRNotificationHeader: HRNotificationHeader) {\r\n this.hRNotificationHeader = hRNotificationHeader;\r\n var filters: GridFilter[] = [];\r\n filters.push({ Filed: \"HrmPersonnelId\", Value: hRNotificationHeader.HrmPersonnelId, Operator: \"eq\", Type: \"F\", Skip: 0, Take: 0 });\r\n this.httpCommonService\r\n .GetFilterGrid>(\"FinanceNotificationHeader/GetFilterGrid\", filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: PagingDataResult) => {\r\n if (data) {\r\n this._HRNtificationItems = data.Data.sort((a, b) => b.Id - a.Id);\r\n this.selectedRow = this._HRNtificationItems[0];\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n 0\"\r\n class=\"griddetail\"\r\n [label]=\"label\"\r\n [isAdd]=\"true\"\r\n [isEdit]=\"true\"\r\n [isDelete]=\"true\"\r\n [groupable]=\"false\"\r\n [noToolBar]=\"true\"\r\n [name]=\"HRNtificationItems\"\r\n pathPreFix=\"Hrm\"\r\n [columns]=\"HRNtificationItemColumns\"\r\n [dataList]=\"HRNtificationItems\"\r\n [editFromForm]=\"true\"\r\n (onEdit)=\"onEdit($event)\"\r\n (onCreate)=\"onCreate($event)\"\r\n (onDelete)=\"onDelete($event)\"\r\n [isMulti]=\"false\">\r\n \r\n
\r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { FinanceNotificationHeaderFormComponent } from \"./finance-notification-header-form/finance-notification-header-form.component\";\r\nimport { FinanceNotificationHeaderListComponent } from \"./finance-notification-header-list/finance-notification-header-list.component\";\r\n\r\nconst components = [FinanceNotificationHeaderListComponent, FinanceNotificationHeaderFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class FinanceNotificationHeaderModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-pay-curent-year-month\",\r\n templateUrl: \"./hrm-pay-curent-year-month.component.html\",\r\n styleUrls: [\"./hrm-pay-curent-year-month.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HrmPayCurentYearMonthComponent extends BaseFormComponent {\r\n public apiName: string = \"MonthlySalaryCalculationInformation/ChangePayCurentYearMonth\";\r\n public label: string = \"ایجاد ماه جاری سیستم حقوق\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.model = {};\r\n this.setColumns();\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"IssueYear\",\r\n disabled: false,\r\n name: \"IssueYear\",\r\n order: 0,\r\n textType: \"number\",\r\n columnNumber: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.columns.push({\r\n label: \"ماه جاری\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueMonth\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"IssueMonth\",\r\n order: 2,\r\n textType: \"number\",\r\n columnNumber: 2,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"MonthsName\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n this.setFormGroup(this.model);\r\n }\r\n async save() {\r\n if (this.formGroup.get(\"IssueYear\").value && this.formGroup.get(\"IssueMonth\").value) {\r\n this.httpCommonService\r\n .get(\r\n `MonthlySalaryCalculationInformation/ChangePayCurentYearMonth/${this.formGroup.get(\"IssueYear\").value}/${\r\n this.formGroup.get(\"IssueMonth\").value\r\n }`\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.accountService.authService.saveHrmPayCurentYearMonth();\r\n this.saveSuccessHelper();\r\n },\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n }\r\n}\r\n","\r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { HrmPayCurentYearMonthComponent } from \"./hrm-pay-curent-year-month.component\";\r\n\r\nconst components = [HrmPayCurentYearMonthComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class HrmPayCurentYearMonthModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Element } from \"../models/base-info/element.model\";\r\nimport { ElementGroup } from \"../models/enums/element-group\";\r\nimport { ElementKind } from \"../models/enums/element-kind\";\r\nimport { ElemntshowKind } from \"../models/enums/elemntshow-kind\";\r\n\r\n@Component({\r\n selector: \"hrm-personnel-element-initial\",\r\n templateUrl: \"./hrm-personnel-element-initial.component.html\",\r\n styleUrls: [\"./hrm-personnel-element-initial.component.scss\"],\r\n})\r\nexport class HrmPersonnelElementInitialComponent extends BaseFormComponent {\r\n public dColumns: form_control[] = [];\r\n activeElement: Element[];\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n HrmPersonnelElementInitials: any[];\r\n isLoading: boolean = false;\r\n constructor(\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n private lookupservice: LookupService\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"HrmPersonnelElementInitial\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"اطلاعات استقرار عوامل\";\r\n this.lookupservice\r\n .getLookupbyCategory(\"HRM\", \"ElementGroup\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n this.activeElement = data.filter((x) => x.Code <= ElementGroup.Other && x.Code !== ElementGroup.Loan).sort((a, b) => a.Code - b.Code) as [];\r\n });\r\n this.setColumns();\r\n this.setFormGroup({});\r\n this.setdefault();\r\n this.loadData();\r\n }\r\n setdefault() {\r\n super.setdefault();\r\n if (this.accountService.authService.getHrmPayCurentYearMonth()) {\r\n this.setValue(\"IssueYear\", this.accountService.authService.getHrmPayCurentYearMonth().CurentYear);\r\n this.setValue(\"IssueMonth\", this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth);\r\n this.setValue(\"EffectYear\", this.accountService.authService.getHrmPayCurentYearMonth().CurentYear);\r\n this.setValue(\"EffectMonth\", this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth);\r\n }\r\n }\r\n\r\n loadData() {\r\n let filter: GridFilter[] = [];\r\n if (\r\n !this.formGroup ||\r\n this.isLoading ||\r\n !this.formGroup.get(\"IssueYear\").value ||\r\n this.formGroup.get(\"IssueYear\").value === null ||\r\n !this.formGroup.get(\"IssueMonth\").value ||\r\n this.formGroup.get(\"IssueMonth\").value === null\r\n )\r\n return;\r\n\r\n filter.push({ Type: \"F\", Filed: \"IssueYear\", Value: this.formGroup.get(\"IssueYear\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"IssueMonth\", Value: this.formGroup.get(\"IssueMonth\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"EffectYear\", Value: this.formGroup.get(\"EffectYear\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"EffectMonth\", Value: this.formGroup.get(\"EffectMonth\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"S\", Filed: \"PersCode\", Value: 0, Logic: \"and\", Operator: \"asc\", Skip: 0, Take: 0 });\r\n\r\n this.isLoading = true;\r\n this.httpCommonService\r\n .create(this.apiName + \"/MonthlyInformations\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.isLoading = false;\r\n this.HrmPersonnelElementInitials = x as [];\r\n },\r\n (error) => (this.isLoading = false)\r\n );\r\n }\r\n async setColumns() {\r\n let filter: GridFilter[] = [];\r\n\r\n if (this.formGroup) {\r\n filter.push({ Type: \"F\", Filed: \"IssueYear\", Value: this.formGroup.get(\"IssueYear\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"IssueMonth\", Value: this.formGroup.get(\"IssueMonth\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"EffectYear\", Value: this.formGroup.get(\"EffectYear\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EffectMonth\",\r\n Value: this.formGroup.get(\"EffectMonth\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n }\r\n let _columns = [];\r\n _columns.push({\r\n label: \"سال جاری\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueYear\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"IssueYear\",\r\n order: 1,\r\n textType: \"text\",\r\n columnNumber: 1,\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n _columns.push({\r\n label: \"ماه جاری\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueMonth\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"IssueMonth\",\r\n order: 2,\r\n textType: \"text\",\r\n columnNumber: 2,\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"MonthsName\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n _columns.push({\r\n label: \"سال اجرا\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"EffectYear\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"EffectYear\",\r\n order: 3,\r\n textType: \"text\",\r\n columnNumber: 3,\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n _columns.push({\r\n label: \"ماه اجرا\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"EffectMonth\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"EffectMonth\",\r\n order: 4,\r\n textType: \"text\",\r\n columnNumber: 4,\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"MonthsName\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns = _columns;\r\n this.orignalColumns = _columns;\r\n let _dColumns = [];\r\n _dColumns.push({\r\n label: \"محاسبه\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"HasCalculate\",\r\n disabled: true,\r\n name: \"HasCalculate\",\r\n order: 0,\r\n textType: \"checkbox\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"سریال\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Id\",\r\n disabled: true,\r\n name: \"Id\",\r\n order: 1,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"کارمند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"HrmPersonnelId\",\r\n disabled: true,\r\n name: \"HrmPersonnelId\",\r\n order: 2,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"سال جاری\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"IssueYear\",\r\n disabled: true,\r\n name: \"IssueYear\",\r\n order: 3,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"ماه جاری\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"IssueMonth\",\r\n disabled: true,\r\n name: \"IssueMonth\",\r\n order: 4,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"سال اجرا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"EffectYear\",\r\n disabled: true,\r\n name: \"EffectYear\",\r\n order: 5,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"ماه اجرا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"EffectMonth\",\r\n disabled: true,\r\n name: \"EffectMonth\",\r\n order: 6,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"کد پرسنلی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"PersCode\",\r\n columnWidth: 100,\r\n disabled: true,\r\n name: \"PersCode\",\r\n order: 7,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"نام\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"FirstName\",\r\n disabled: true,\r\n columnWidth: 100,\r\n name: \"FirstName\",\r\n order: 8,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"نام خانوادگی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"LastName\",\r\n columnWidth: 100,\r\n disabled: true,\r\n name: \"LastName\",\r\n order: 9,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"نوع استخدام\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"EmploymentKindTitle\",\r\n columnWidth: 100,\r\n disabled: true,\r\n name: \"EmploymentKindTitle\",\r\n order: 10,\r\n textType: \"text\",\r\n formVisible: false,\r\n listVisible: true,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"محل خدمت\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"WorkplaceTitle\",\r\n columnWidth: 100,\r\n disabled: true,\r\n name: \"WorkplaceTitle\",\r\n order: 11,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"مرکز هزینه\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"CostCenterTitle\",\r\n columnWidth: 100,\r\n disabled: true,\r\n name: \"CostCenterTitle\",\r\n order: 12,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"سال جاری حکم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"HrnIssueYear\",\r\n disabled: true,\r\n name: \"HrnIssueYear\",\r\n order: 3,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"ماه جاری حکم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"HrnIssueMonth\",\r\n disabled: true,\r\n name: \"HrnIssueMonth\",\r\n order: 4,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"روز جاری حکم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"HrnIssueDay\",\r\n disabled: true,\r\n name: \"HrnIssueDay\",\r\n order: 4,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"سال اجرا حکم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"HrnEffectYear\",\r\n disabled: true,\r\n name: \"HrnEffectYear\",\r\n order: 5,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"ماه اجرا حکم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"HrnEffectMonth\",\r\n disabled: true,\r\n name: \"HrnEffectMonth\",\r\n order: 6,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"روز اجرا حکم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"HrnEffectDay\",\r\n disabled: true,\r\n name: \"HrnEffectDay\",\r\n order: 6,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"وضعیت حکم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"NotificationStatusKindCode\",\r\n disabled: true,\r\n name: \"NotificationStatusKindCode\",\r\n order: 6,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n\r\n let cCount = 12;\r\n this.httpCommonService\r\n .create(\"HrmPersonnelElementInitial/GetActiveElement\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x: Element[]) => {\r\n if (x) {\r\n this.activeElement = x.sort((a, b) => a.ElementGroupCode - b.ElementGroupCode);\r\n this.activeElement.forEach((e) => {\r\n cCount = cCount + 1;\r\n if (e.ElementGroupCode === ElementGroup.Work || e.ElementKindCode === ElementKind.LeaveRemain) {\r\n if (e.ElemntshowKindCode === ElemntshowKind.DDHHMM)\r\n _dColumns.push({\r\n label: e.Title,\r\n inputMask: \"00:00:00\",\r\n columnWidth: 100,\r\n controlType: FormControlTypes.textbox,\r\n modelName: `PEI_${e.Id}`,\r\n disabled: false,\r\n name: `PEI_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"00:00\",\r\n });\r\n else if (e.ElemntshowKindCode === ElemntshowKind.HHMM)\r\n _dColumns.push({\r\n label: e.Title,\r\n inputMask: \"000:00\",\r\n columnWidth: 100,\r\n controlType: FormControlTypes.textbox,\r\n modelName: `PEI_${e.Id}`,\r\n disabled: false,\r\n name: `PEI_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"00:00\",\r\n });\r\n else if (e.ElemntshowKindCode === ElemntshowKind.DD)\r\n _dColumns.push({\r\n label: e.Title,\r\n inputMask: \"00\",\r\n columnWidth: 100,\r\n controlType: FormControlTypes.textbox,\r\n modelName: `PEI_${e.Id}`,\r\n disabled: false,\r\n name: `PEI_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"00:00\",\r\n });\r\n else\r\n _dColumns.push({\r\n label: e.Title,\r\n controlType: FormControlTypes.textbox,\r\n columnWidth: 100,\r\n modelName: `PEI_${e.Id}`,\r\n disabled: false,\r\n name: `PEI_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"00:00\",\r\n });\r\n } else\r\n _dColumns.push({\r\n label: e.Title,\r\n controlType: FormControlTypes.textbox,\r\n columnWidth: 100,\r\n modelName: `PEI_${e.Id}`,\r\n disabled: false,\r\n name: `PEI_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"#,#\",\r\n });\r\n });\r\n\r\n this.dColumns = _dColumns;\r\n }\r\n });\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n onValueChangeByApiName($event) {\r\n if ($event && $event.apiName) {\r\n if ($event.KeyName === \"IssueYear\") this.setValue(\"EffectYear\", $event.data.Year);\r\n if ($event.KeyName === \"IssueMonth\") this.setValue(\"EffectMonth\", $event.data.Id);\r\n\r\n this.loadData();\r\n }\r\n }\r\n onValueChanges(entity: any) {\r\n if (entity) {\r\n if (!entity.IssueYear) entity.IssueYear = this.formGroup.get(\"IssueYear\").value;\r\n if (!entity.IssueMonth) entity.IssueMonth = this.formGroup.get(\"IssueMonth\").value;\r\n if (!entity.EffectYear) entity.EffectYear = this.formGroup.get(\"EffectYear\").value;\r\n if (!entity.EffectMonth) entity.EffectMonth = this.formGroup.get(\"EffectMonth\").value;\r\n\r\n this.httpCommonService\r\n .create(\"HrmPersonnelElementInitial/UnPivotAndSave\", entity)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n if (x) {\r\n }\r\n },\r\n (error) => this.sts.showDialog(`${Utilities.getHttpResponseMessage(error)}`, \"پیغام خطا\")\r\n );\r\n }\r\n }\r\n}\r\n","\r\n \r\n 0\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\"\r\n [isEdit]=\"true\"\r\n rowEditableKeyNotAllow=\"HasCalculate\"\r\n [columns]=\"dColumns\"\r\n [height]=\"60\"\r\n (afterSaved)=\"onValueChanges($event)\"\r\n [(dataList)]=\"HrmPersonnelElementInitials\">\r\n \r\n \r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { HrmPersonnelElementInitialComponent } from \"./hrm-personnel-element-initial.component\";\r\nconst components = [HrmPersonnelElementInitialComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class HrmPersonnelElementInitialModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HrmPersonnel } from \"../../models/hrm-personnel.model\";\r\nimport { PersonnelPhoto } from \"../../models/personnel-photo.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-personnel-form\",\r\n templateUrl: \"./hrm-personnel-form.component.html\",\r\n styleUrls: [\"./hrm-personnel-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HrmPersonnelFormComponent extends BaseFormComponent {\r\n DefaultValues: Dictionary = [];\r\n PersCodeLen: number;\r\n PersonnelPhotocolumns: form_control[];\r\n PersonnelFightercolumns: form_control[];\r\n PersonnelOtherInfos: form_control[];\r\n PersonnelServiceds: form_control[];\r\n PersonnelWorkRecordss: form_control[];\r\n PersonnelStudyRecords: form_control[];\r\n PersonnelLanguages: form_control[];\r\n PersonnelRecommenders: form_control[];\r\n PersonnelRelativess: form_control[];\r\n PersonnelAddresss: form_control[];\r\n public formGroupPhoto: UntypedFormGroup;\r\n public formGroupPersonnelFighter: UntypedFormGroup;\r\n public apiName: string = \"HrmPersonnel\";\r\n public label: string = \"معرفی کارکنان\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private missetup: MisSetupService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.defaultCoumnNumber = 6;\r\n if (!this.PersCodeLen) this.PersCodeLen = this.missetup.getnumber(\"HRM\", \"PersCodeLen\");\r\n super.ngOnInit();\r\n this.DefaultValues[\"HrmPersonnelId\"] = 0;\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.DefaultValues = undefined;\r\n this.PersonnelPhotocolumns = undefined;\r\n this.PersonnelFightercolumns = undefined;\r\n this.formGroupPhoto = undefined;\r\n this.formGroupPersonnelFighter = undefined;\r\n this.PersonnelOtherInfos = undefined;\r\n this.PersonnelServiceds = undefined;\r\n this.PersonnelWorkRecordss = undefined;\r\n this.PersonnelStudyRecords = undefined;\r\n this.PersonnelLanguages = undefined;\r\n this.PersonnelRecommenders = undefined;\r\n this.PersonnelRelativess = undefined;\r\n this.PersonnelAddresss = undefined;\r\n }\r\n setdefault() {\r\n if (!this.model.PersonnelAddresss) this.model.PersonnelAddresss = [];\r\n if (!this.model.PersonnelOtherInfos) this.model.PersonnelOtherInfos = [];\r\n if (!this.model.PersonnelRecommenders) this.model.PersonnelRecommenders = [];\r\n if (!this.model.PersonnelRelativess) this.model.PersonnelRelativess = [];\r\n if (!this.model.PersonnelServiceds) this.model.PersonnelServiceds = [];\r\n if (!this.model.PersonnelStudyRecords) this.model.PersonnelStudyRecords = [];\r\n if (!this.model.PersonnelWorkRecordss) this.model.PersonnelWorkRecordss = [];\r\n if (!this.model.PersonnelLanguages) this.model.PersonnelLanguages = [];\r\n if (!this.model.PersonnelEducations) this.model.PersonnelEducations = [];\r\n if (!this.model?.PersonnelPhoto) {\r\n this.setPersonnelPhotocolumns();\r\n }\r\n if (!this.model.PersonnelFighter) {\r\n this.setPersonnelFightercolumns;\r\n }\r\n this.cd.markForCheck();\r\n }\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n if (this.PersCodeLen) this.columns.find((x) => x.name === \"PersCode\").maxLength = this.PersCodeLen;\r\n this.PersonnelFightercolumns = this.getDetailControlModels(\"formGroupPersonnelFighter\");\r\n this.PersonnelOtherInfos = this.getDetailControlModels(\"PersonnelOtherInfos\");\r\n this.PersonnelOtherInfos = this.getDetailControlModels(\"PersonnelOtherInfos\");\r\n this.PersonnelWorkRecordss = this.getDetailControlModels(\"PersonnelWorkRecordss\");\r\n this.PersonnelStudyRecords = this.getDetailControlModels(\"PersonnelStudyRecords\");\r\n this.PersonnelLanguages = this.getDetailControlModels(\"PersonnelLanguages\");\r\n this.PersonnelRecommenders = this.getDetailControlModels(\"PersonnelRecommenders\");\r\n this.PersonnelRelativess = this.getDetailControlModels(\"PersonnelRelativess\");\r\n this.PersonnelAddresss = this.getDetailControlModels(\"PersonnelAddresss\");\r\n this.PersonnelServiceds = this.getDetailControlModels(\"PersonnelServiceds\");\r\n }\r\n setPersonnelFightercolumns() {\r\n this.formGroupPersonnelFighter = this.setFormGroup(this.model.PersonnelFighter, this.PersonnelFightercolumns);\r\n }\r\n setPersonnelPhotocolumns() {\r\n this.httpCommonService\r\n .get(\"HrmPersonnel/GetPhtoEntityInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n this.model.PersonnelPhoto = {};\r\n this.PersonnelPhotocolumns = this.getDetailControlModels(\"PersonnelPhoto\");\r\n this.formGroupPhoto = this.setFormGroup(this.model.PersonnelPhoto, this.PersonnelPhotocolumns);\r\n });\r\n }\r\n onChanged($event) {\r\n if (!this.model.PersCode && this.formGroup && !this.formGroup.get(\"PersCode\").valid) {\r\n if ($event && $event.apiName === \"PeopleInfo/GetPagining\") {\r\n this.model.PersCode = $event.data.DetailLedgerCode;\r\n this.setValue(\"PersCode\", this.model.PersCode);\r\n }\r\n }\r\n }\r\n beforupdate() {\r\n if (!this.model.PersonnelEducations || this.model.PersonnelAddresss.length <= 0) this.model.PersonnelEducations = undefined;\r\n else\r\n this.setValue(\r\n \"PersonnelEducations\",\r\n this.model.PersonnelEducations.filter((x) => x.State !== RowState.Detached)\r\n );\r\n if (!this.model.PersonnelAddresss || this.model.PersonnelAddresss.length <= 0) this.model.PersonnelAddresss = undefined;\r\n else\r\n this.setValue(\r\n \"PersonnelAddresss\",\r\n this.model.PersonnelAddresss.filter((x) => x.State !== RowState.Detached)\r\n );\r\n if (!this.model.PersonnelOtherInfos || this.model.PersonnelOtherInfos.length <= 0) this.model.PersonnelOtherInfos = undefined;\r\n else\r\n this.setValue(\r\n \"PersonnelOtherInfos\",\r\n this.model.PersonnelOtherInfos.filter((x) => x.State !== RowState.Detached)\r\n );\r\n\r\n if (!this.model.PersonnelRecommenders || this.model.PersonnelRecommenders.length <= 0) this.model.PersonnelRecommenders = undefined;\r\n else\r\n this.setValue(\r\n \"PersonnelRecommenders\",\r\n this.model.PersonnelRecommenders.filter((x) => x.State !== RowState.Detached)\r\n );\r\n\r\n if (!this.model.PersonnelRelativess || this.model.PersonnelRelativess.length <= 0) this.model.PersonnelRelativess = undefined;\r\n else\r\n this.setValue(\r\n \"PersonnelRelativess\",\r\n this.model.PersonnelRelativess.filter((x) => x.State !== RowState.Detached)\r\n );\r\n\r\n if (!this.model.PersonnelServiceds) this.model.PersonnelServiceds = undefined;\r\n else this.setValue(\"PersonnelServiceds\", this.model.PersonnelServiceds);\r\n\r\n if (!this.model.PersonnelStudyRecords || this.model.PersonnelStudyRecords.length <= 0) this.model.PersonnelStudyRecords = undefined;\r\n else\r\n this.setValue(\r\n \"PersonnelStudyRecords\",\r\n this.model.PersonnelStudyRecords.filter((x) => x.State !== RowState.Detached)\r\n );\r\n\r\n if (!this.model.PersonnelWorkRecordss || this.model.PersonnelWorkRecordss.length <= 0) this.model.PersonnelWorkRecordss = undefined;\r\n else\r\n this.setValue(\r\n \"PersonnelWorkRecordss\",\r\n this.model.PersonnelWorkRecordss.filter((x) => x.State !== RowState.Detached)\r\n );\r\n\r\n if (!this.model.PersonnelLanguages || this.model.PersonnelLanguages.length <= 0) this.model.PersonnelLanguages = undefined;\r\n else\r\n this.setValue(\r\n \"PersonnelLanguages\",\r\n this.model.PersonnelLanguages.filter((x) => x.State !== RowState.Detached)\r\n );\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n
0\">\r\n \r\n [defaultHeight]=\"25\" [_columns]=\"PersonnelPhotocolumns\" [group]=\"formGroupPhoto\" [model]=\"model.PersonnelPhoto\"\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
0\">\r\n \r\n [defaultHeight]=\"25\" [columns]=\"PersonnelFightercolumns\" [group]=\"formGroupPersonnelFighter\" [model]=\"model.PersonnelFighter\"\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { HrmPersonnelFormComponent } from \"../hrm-personnel-form/hrm-personnel-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-personnel-list\",\r\n templateUrl: \"./hrm-personnel-list.component.html\",\r\n styleUrls: [\"./hrm-personnel-list.component.scss\"],\r\n})\r\nexport class HrmPersonnelListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = HrmPersonnelFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"HrmPersonnel\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"فهرست کارکنان\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { HrmPersonnelFormComponent } from \"./hrm-personnel-form/hrm-personnel-form.component\";\r\nimport { HrmPersonnelListComponent } from \"./hrm-personnel-list/hrm-personnel-list.component\";\r\nconst components = [HrmPersonnelListComponent, HrmPersonnelFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class HrmPersonnelModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport * as moment from \"jalali-moment\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Element } from \"../../models/base-info/element.model\";\r\nimport { PayCompaniesBranch } from \"../../models/base-info/pay-companies-branch.model\";\r\nimport { PayCompanies } from \"../../models/base-info/pay-companies.model\";\r\nimport { HRNotificationDetail, HRNotificationHeader } from \"../../models/hrnotification-header.model\";\r\n@Component({\r\n selector: \"ngx-hrnotification-header-form\",\r\n templateUrl: \"./hrnotification-header-form.component.html\",\r\n styleUrls: [\"./hrnotification-header-form.component.scss\"],\r\n})\r\nexport class HRNotificationHeaderFormComponent extends BaseFormComponent {\r\n activeTabTitle: string = \"شرح حکم\";\r\n DetaileLedgerColumns: form_control[];\r\n erroremessage: string;\r\n _customDataList: PayCompaniesBranch[];\r\n HRNotificationDetails: form_control[];\r\n HrmPersonnelCompanyAssigns: form_control[];\r\n isLoading: boolean;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.onRowSelected = this.onRowSelected.bind(this);\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.DetaileLedgerColumns = undefined;\r\n this._customDataList = undefined;\r\n this.HRNotificationDetails = undefined;\r\n this.HrmPersonnelCompanyAssigns = undefined;\r\n }\r\n async ngOnInit() {\r\n this.defaultCoumnNumber = 6;\r\n this.setDetaileLedgerColumns();\r\n this.setPayCompaniesBranchs();\r\n this.apiName = \"HRNotificationHeader\";\r\n this.label = \"حکم کارگزینی\";\r\n super.ngOnInit();\r\n this.isNewRow = this.currentrow.State === RowState.New;\r\n }\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.HRNotificationDetails = this.getDetailControlModels(\"HRNotificationDetails\");\r\n this.HrmPersonnelCompanyAssigns = this.getDetailControlModels(\"HrmPersonnelCompanyAssigns\");\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"EmploymentStartDate\" && this.formGroup && this.formGroup.get(x.name)) {\r\n x.disabled = this.model.NotificationStatusKindCode > 1;\r\n if (x.disabled) this.formGroup.get(x.name).disable();\r\n else this.formGroup.get(x.name).enable();\r\n this.formGroup.get(x.name).updateValueAndValidity();\r\n }\r\n });\r\n }\r\n setdefault(): void {\r\n this.isNewRow = this.currentrow.State === RowState.New;\r\n if (this.isNewRow && !this.model.HrmPersonnelId && this.currentrow) Object.assign(this.model, this.currentrow);\r\n if (!this.model.IsGroupedIssue) {\r\n this.model.IsGroupedIssue = false;\r\n this.model.GroupedIssue = \"انفرادی\";\r\n }\r\n if (this.isNewRow) {\r\n this.model.Id = 0;\r\n if (this.model.HrmPersonnelCompanyAssigns) {\r\n this.model.HrmPersonnelCompanyAssigns.forEach((x) => {\r\n x.Id = 0;\r\n x.HRNotificationHeaderId = 0;\r\n });\r\n }\r\n if (this.model.HRNotificationDetails) {\r\n this.model.HRNotificationDetails.forEach((x) => {\r\n x.Id = 0;\r\n x.HRNotificationHeaderId = 0;\r\n });\r\n }\r\n }\r\n if (this.isNewRow === true) {\r\n this.model.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n this.setValue(\"IssueYear\", this.model.IssueYear);\r\n this.model.EffectYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n this.setValue(\"EffectYear\", this.model.EffectYear);\r\n }\r\n if (this.isNewRow === true) {\r\n this.model.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n this.setValue(\"IssueMonth\", this.model.IssueMonth);\r\n this.model.EffectMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n this.setValue(\"EffectMonth\", this.model.EffectMonth);\r\n }\r\n if (this.isNewRow === true) {\r\n this.model.IssueDay = 1;\r\n this.setValue(\"IssueDay\", this.model.IssueDay);\r\n this.model.EffectDay = 1;\r\n this.setValue(\"EffectDay\", this.model.EffectDay);\r\n }\r\n if (this.isNewRow === true) {\r\n this.model.IssueDate = new Date(\r\n moment\r\n .from(`${this.model.IssueYear}/${this.model.IssueMonth}/${this.model.IssueDay} 00:00`, \"fa\", \"YYYY/MM/DD HH:mm\")\r\n .format(\"YYYY-MM-DD HH:mm:ss\")\r\n );\r\n this.setValue(\"IssueDate\", this.model.IssueDate);\r\n }\r\n if (this.isNewRow === true) {\r\n this.model.EffectDate = new Date(\r\n moment\r\n .from(`${this.model.EffectYear}/${this.model.EffectMonth}/${this.model.EffectDay} 00:00`, \"fa\", \"YYYY/MM/DD HH:mm\")\r\n .format(\"YYYY-MM-DD HH:mm:ss\")\r\n );\r\n this.setValue(\"EffectDate\", this.model.EffectDate);\r\n }\r\n if (this.model) this.populateElement();\r\n this.httpCommonService\r\n .get(`MonthlySalaryCalculationInformation/HasSalaryCalculation/${this.model.HrmPersonnelId}/${this.model.IssueYearMonth}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((result) => {\r\n if (result === true && !this.isNewRow) {\r\n this.erroremessage = \"به علت محاسبه حقوق حکم قابل ویرایش نیست.\";\r\n }\r\n });\r\n this.setColumnAttribute();\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n valueChanges($event) {}\r\n setDetaileLedgerColumns(): void {\r\n {\r\n this.DetaileLedgerColumns = [];\r\n this.DetaileLedgerColumns.push({\r\n label: \"تفصیلی 1\",\r\n controlType: FormControlTypes.lookup,\r\n modelName: \"DetailLedger1Id\",\r\n disabled: false,\r\n name: \"DetailLedger1Id\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n columnNumber: 1,\r\n userClass: \"select-sm\",\r\n required: false,\r\n apiName: \"DetailLedger/GetPagining\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n columnsName: \"Code,Title\",\r\n });\r\n this.DetaileLedgerColumns.push({\r\n label: \"تفصیلی 2\",\r\n controlType: FormControlTypes.lookup,\r\n modelName: \"DetailLedger2Id\",\r\n disabled: false,\r\n name: \"DetailLedger2Id\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n columnNumber: 2,\r\n userClass: \"select-sm\",\r\n required: false,\r\n apiName: \"DetailLedger/GetPagining\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n columnsName: \"Code,Title\",\r\n });\r\n this.DetaileLedgerColumns.push({\r\n label: \"تفصیلی 3\",\r\n controlType: FormControlTypes.lookup,\r\n modelName: \"DetailLedger3Id\",\r\n disabled: false,\r\n name: \"DetailLedger3Id\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n columnNumber: 3,\r\n userClass: \"select-sm\",\r\n required: false,\r\n apiName: \"DetailLedger/GetPagining\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n columnsName: \"Code,Title\",\r\n });\r\n this.DetaileLedgerColumns.push({\r\n label: \"تفصیلی 4\",\r\n controlType: FormControlTypes.lookup,\r\n modelName: \"DetailLedger4Id\",\r\n disabled: false,\r\n name: \"DetailLedger4Id\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n columnNumber: 4,\r\n userClass: \"select-sm\",\r\n required: false,\r\n apiName: \"DetailLedger/GetPagining\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n columnsName: \"Code,Title\",\r\n });\r\n this.DetaileLedgerColumns.push({\r\n label: \"تفصیلی 5\",\r\n controlType: FormControlTypes.lookup,\r\n modelName: \"DetailLedger5Id\",\r\n disabled: false,\r\n name: \"DetailLedger5Id\",\r\n order: 4,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n columnNumber: 1,\r\n userClass: \"select-sm\",\r\n required: false,\r\n apiName: \"DetailLedger/GetPagining\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n columnsName: \"Code,Title\",\r\n });\r\n this.DetaileLedgerColumns.push({\r\n label: \"تفصیلی 6\",\r\n controlType: FormControlTypes.lookup,\r\n modelName: \"DetailLedger6Id\",\r\n disabled: false,\r\n name: \"DetailLedger6Id\",\r\n order: 5,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n columnNumber: 2,\r\n userClass: \"select-sm\",\r\n required: false,\r\n apiName: \"DetailLedger/GetPagining\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n columnsName: \"Code,Title\",\r\n });\r\n this.DetaileLedgerColumns.push({\r\n label: \"تفصیلی 7\",\r\n controlType: FormControlTypes.lookup,\r\n modelName: \"DetailLedger6Id\",\r\n disabled: false,\r\n name: \"DetailLedger7Id\",\r\n order: 6,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n columnNumber: 3,\r\n userClass: \"select-sm\",\r\n required: false,\r\n apiName: \"DetailLedger/GetPagining\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n columnsName: \"Code,Title\",\r\n });\r\n }\r\n }\r\n async onvalueChangeByApiName($event) {\r\n if ($event && $event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"EmploymentKind\")) {\r\n this.model.EmploymentKindId = this.formGroup.get(\"EmploymentKindId\").value;\r\n await this.populateElement();\r\n }\r\n if ($event && $event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"HRNotificationKind/GetPagining\")) {\r\n this.model.NotificationStatusKindCode = $event.data.NotificationStatusKindCode;\r\n this.setValue(\"NotificationStatusKindCode\", this.model.NotificationStatusKindCode);\r\n this.setColumnAttribute();\r\n }\r\n }\r\n async populateElement() {\r\n await this.httpCommonService\r\n .getList(\"HRNotificationHeader/GetActiveElement/\" + this.model.EmploymentKindId + \"/\" + this.model.HrmPersonnelId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: Element[]) => {\r\n if (data) {\r\n let temp: HRNotificationDetail[] = [];\r\n Object.assign(temp, this.model.HRNotificationDetails);\r\n this.model.HRNotificationDetails = [];\r\n data.forEach((element) => {\r\n if (!this.model.HRNotificationDetails.some((e) => e.ElementId === element.Id)) {\r\n this.model.HRNotificationDetails.push({\r\n Amount: temp.find((f) => f.ElementId === element.Id)?.Amount,\r\n MonthAmount: temp.find((f) => f.ElementId === element.Id)?.MonthAmount,\r\n DayAmount: temp.find((f) => f.ElementId === element.Id)?.DayAmount,\r\n ElementId: element.Id,\r\n ElementTitle: element.Title,\r\n State: RowState.New,\r\n HRNotificationHeaderId: this.model.Id,\r\n Id: 0,\r\n EffectDate: new Date(),\r\n });\r\n }\r\n });\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n\r\n await this.httpCommonService\r\n .getList(\"PayCompanies/ReadLookup\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: PayCompanies[]) => {\r\n if (data) {\r\n if (!this.model.HrmPersonnelCompanyAssigns) this.model.HrmPersonnelCompanyAssigns = [];\r\n data.forEach((element) => {\r\n if (!this.model.HrmPersonnelCompanyAssigns.some((e) => e.PayCompaniesId === element.Id)) {\r\n this.model.HrmPersonnelCompanyAssigns.push({\r\n PayCompaniesId: element.Id,\r\n PayCompaniesTitle: element.Title,\r\n State: RowState.New,\r\n HRNotificationHeaderId: this.model.Id,\r\n Id: 0,\r\n Active4Calculation: false,\r\n TaxGroupId: undefined,\r\n InsueID: undefined,\r\n PayCompaniesBranchTitle: undefined,\r\n TaxGroupTitle: undefined,\r\n });\r\n }\r\n });\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n onRowSelected($event) {\r\n return this._customDataList.filter((x) => x.Id === $event[\"PayCompaniesId\"]);\r\n }\r\n setPayCompaniesBranchs() {\r\n if (!this.isLoading) {\r\n this.isLoading = true;\r\n this.httpCommonService\r\n .getList(\"PayCompanies/GetPayCompaniesBranchs\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: PayCompaniesBranch[]) => {\r\n if (data) {\r\n this.isLoading = false;\r\n this._customDataList = data;\r\n }\r\n },\r\n (error) => {\r\n this.isLoading = false;\r\n this.getFailedHelper(error);\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n [columns]=\"HrmPersonnelCompanyAssigns\"\r\n [dataList]=\"model.HrmPersonnelCompanyAssigns\"\r\n [isAdd]=\"false\"\r\n [customDataList]=\"onRowSelected\"\r\n (valueChanges)=\"valueChanges($event)\"\r\n [isDelete]=\"false\">\r\n \r\n \r\n \r\n 0\"\r\n [columns]=\"HRNotificationDetails\"\r\n [dataList]=\"model.HRNotificationDetails\"\r\n [isAdd]=\"false\"\r\n (valueChanges)=\"valueChanges($event)\"\r\n [isDelete]=\"false\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { GridFilter, PagingDataResult, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HRNotificationHeader } from \"../../models/hrnotification-header.model\";\r\nimport { HRNotificationHeaderFormComponent } from \"../hrnotification-header-form/hrnotification-header-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-hrnotification-header-list\",\r\n templateUrl: \"./hrnotification-header-list.component.html\",\r\n styleUrls: [\"./hrnotification-header-list.component.scss\"],\r\n})\r\nexport class HRNotificationHeaderListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n HRNtificationItemColumns: form_control[] = [];\r\n _HRNtificationItems: HRNotificationHeader[];\r\n selectedRow: HRNotificationHeader;\r\n constructor() {\r\n super();\r\n this.inputEditorform = HRNotificationHeaderFormComponent;\r\n }\r\n get HRNtificationItems() {\r\n return this._HRNtificationItems;\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.inputEditorform = undefined;\r\n this.editingName = undefined;\r\n this.HRNtificationItemColumns = undefined;\r\n this._HRNtificationItems = undefined;\r\n this.selectedRow = undefined;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"HRNotificationHeader/HRNotifications\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"احکام کارگزینی\";\r\n this.setDetailColumns();\r\n }\r\n setDetailColumns() {\r\n this.httpCommonService\r\n .getControlsList(\"HRNotificationHeader\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.HRNtificationItemColumns = data as form_control[];\r\n this.HRNtificationItemColumns.forEach((x) => {\r\n if (x.name === \"PersCode\" || x.name === \"FullName\" || x.name === \"CertificateID\") {\r\n x.listVisible = false;\r\n }\r\n });\r\n this.HRNtificationItemColumns = this.HRNtificationItemColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n onEdit(event: HRNotificationHeader) {\r\n if (!event && !this.selectedRow) {\r\n this.sts.showDialog(`هیچ کارمندی انتخاب نشده است.`, \"پیغام خطا\");\r\n } else if (!event && this.selectedRow) event = this.selectedRow;\r\n event.State = RowState.Modify;\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: event,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n setTimeout(() => this.onDoubleClick(model as HRNotificationHeader), 200);\r\n });\r\n }\r\n onCreate(event: HRNotificationHeader) {\r\n if (!event && !this.selectedRow && (!this.HRNtificationItems || this.HRNtificationItems.length <= 0)) {\r\n this.sts.showDialog(`هیچ کارمندی انتخاب نشده است.`, \"پیغام خطا\");\r\n } else if (!event && !this.selectedRow && this.HRNtificationItems && this.HRNtificationItems.length > 0) {\r\n this._HRNtificationItems = this.HRNtificationItems.sort((a, b) => b.Id - a.Id);\r\n event = this.HRNtificationItems[0];\r\n } else if (!event && this.selectedRow) event = this.selectedRow;\r\n event.State = RowState.New;\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: event,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n setTimeout(() => this.onDoubleClick(model as HRNotificationHeader), 200);\r\n });\r\n }\r\n onDelete(event: HRNotificationHeader) {\r\n this.sts.showDialog(`آیا از حذف اطلاعات اطمینان دارید؟`, \"حذف اطلاعات\", DialogType.confirm, () => this.deleteFormHelper(event));\r\n }\r\n deleteFormHelper(row: any) {\r\n this.sts.showToast(\"primary\", \"\", \"در حال حذف...\");\r\n this.httpCommonService\r\n .delete(\"HRNotificationHeader\", row.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت حذف شد.\");\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف اطلاعات\");\r\n }\r\n );\r\n }\r\n onDoubleClick(hRNotificationHeader: HRNotificationHeader) {\r\n this.selectedRow = hRNotificationHeader;\r\n var filters: GridFilter[] = [];\r\n filters.push({ Filed: \"HrmPersonnelId\", Value: hRNotificationHeader.HrmPersonnelId, Operator: \"eq\", Type: \"F\", Skip: 0, Take: 0 });\r\n this.httpCommonService\r\n .GetFilterGrid>(\"HRNotificationHeader/GetFilterGrid\", filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: PagingDataResult) => {\r\n if (data) {\r\n this._HRNtificationItems = data.Data.sort((a, b) => b.Id - a.Id);\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
\r\n 0\"\r\n class=\"griddetail\"\r\n [label]=\"label\"\r\n [isAdd]=\"true\"\r\n [isEdit]=\"true\"\r\n [isDelete]=\"true\"\r\n [groupable]=\"false\"\r\n [noToolBar]=\"true\"\r\n [name]=\"HRNtificationItems\"\r\n pathPreFix=\"Hrm\"\r\n [columns]=\"HRNtificationItemColumns\"\r\n [dataList]=\"HRNtificationItems\"\r\n [editFromForm]=\"true\"\r\n (onEdit)=\"onEdit($event)\"\r\n (onCreate)=\"onCreate($event)\"\r\n (onDelete)=\"onDelete($event)\"\r\n [isMulti]=\"false\">\r\n \r\n
\r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { HRNotificationHeaderFormComponent } from \"./hrnotification-header-form/hrnotification-header-form.component\";\r\nimport { HRNotificationHeaderListComponent } from \"./hrnotification-header-list/hrnotification-header-list.component\";\r\n\r\nconst components = [HRNotificationHeaderListComponent, HRNotificationHeaderFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class HRNotificationHeaderModule {}\r\n","import { ChangeDetectorRef, Component, Input } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HrmLoanDeduct } from \"../../models/hrm-loan-deduct.model\";\r\nimport { HrmLoanToPersonnel } from \"../../models/hrm-loan-to-personnel.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-loan-deduct-form\",\r\n templateUrl: \"./hrm-loan-deduct-form.component.html\",\r\n styleUrls: [\"./hrm-loan-deduct-form.component.scss\"],\r\n})\r\nexport class HrmLoanDeductFormComponent extends BaseFormComponent {\r\n public apiName: string = \"HrmLoanToPersonnel\";\r\n public label: string = \"تسویه وام\";\r\n @Input() selectedModel: HrmLoanDeduct;\r\n isOk: boolean = false;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.label = \"تسویه وام\";\r\n this.setColumns();\r\n if (this.currentrow && this.currentrow.Id) {\r\n this.id = !this.id ? this.currentrow.Id : this.id;\r\n this.httpCommonService\r\n .getItem(this.apiName, this.id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.model = Object.assign({}, data as HrmLoanToPersonnel);\r\n this.isNewRow = this.model === undefined;\r\n this.setdefault();\r\n this.afterDefult();\r\n this.selectedModel = {};\r\n this.setFormGroup(this.selectedModel);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n setColumnAttribute() {\r\n this.orignalColumns = this.getDetailControlModels(\"HrmLoanDeducts\");\r\n this.selectedModel = {};\r\n this.setFormGroup(this.selectedModel);\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnNumber(this.columns, 3);\r\n this.isOk = true;\r\n }\r\n onCreate($event) {\r\n this.selectedModel = {};\r\n this.setFormGroup(this.selectedModel);\r\n }\r\n onEdit($event) {\r\n this.selectedModel = $event;\r\n this.setFormGroup(this.selectedModel);\r\n }\r\n public async save() {\r\n this.result = this.getDataFromFormGroup();\r\n this.closeModal();\r\n }\r\n}\r\n","\r\n \r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectorRef, Component, Input } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HrmLoanEdit } from \"../../models/hrm-loan-edit.model\";\r\nimport { HrmLoanToPersonnel } from \"../../models/hrm-loan-to-personnel.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-loan-edit-form\",\r\n templateUrl: \"./hrm-loan-edit-form.component.html\",\r\n styleUrls: [\"./hrm-loan-edit-form.component.scss\"],\r\n})\r\nexport class HrmLoanEditFormComponent extends BaseFormComponent {\r\n public apiName: string = \"HrmLoanToPersonnel\";\r\n public label: string = \"تعدیل وام\";\r\n @Input() selectedModel: HrmLoanEdit;\r\n isOk: boolean = false;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.label = \"تعدیل وام\";\r\n this.setColumns();\r\n if (this.currentrow && this.currentrow.Id) {\r\n this.id = !this.id ? this.currentrow.Id : this.id;\r\n this.httpCommonService\r\n .getItem(this.apiName, this.id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.model = Object.assign({}, data as HrmLoanToPersonnel);\r\n this.isNewRow = this.model === undefined;\r\n this.setdefault();\r\n this.afterDefult();\r\n this.selectedModel = {};\r\n this.setFormGroup(this.selectedModel);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n setColumnAttribute() {\r\n this.orignalColumns = this.getDetailControlModels(\"HrmLoanEdits\");\r\n this.selectedModel = {};\r\n this.setFormGroup(this.selectedModel);\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnNumber(this.columns, 3);\r\n this.isOk = true;\r\n }\r\n onCreate($event) {\r\n this.selectedModel = {};\r\n this.setFormGroup(this.selectedModel);\r\n }\r\n onEdit($event) {\r\n this.selectedModel = $event;\r\n this.setFormGroup(this.selectedModel);\r\n }\r\n public async save() {\r\n this.result = this.getDataFromFormGroup();\r\n this.closeModal();\r\n }\r\n}\r\n","\r\n \r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { HrmLoanKind } from \"../../../models/hrm-loan-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-loan-kind-form\",\r\n templateUrl: \"./hrm-loan-kind-form.component.html\",\r\n styleUrls: [\"./hrm-loan-kind-form.component.scss\"],\r\n})\r\nexport class HrmLoanKindFormComponent extends BaseFormComponent {\r\n public apiName: string = \"HrmLoanKind\";\r\n public label: string = \"تخصیص وام به کارکنان\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (this.isNewRow && !this.model.IsLoanType) this.model.IsLoanType = true;\r\n }\r\n onChange($event) {\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Element\") && $event.KeyName === \"ElementId\") {\r\n this.setValue(\"ElementTitle\", $event.data.Title);\r\n this.model.ElementTitle = $event.data.Title;\r\n }\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { HrmLoanKindFormComponent } from \"../hrm-loan-kind-form/hrm-loan-kind-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-loan-kind-list\",\r\n templateUrl: \"./hrm-loan-kind-list.component.html\",\r\n styleUrls: [\"./hrm-loan-kind-list.component.scss\"],\r\n})\r\nexport class HrmLoanKindListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = HrmLoanKindFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"HrmLoanKind\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"وام کارکنان\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { LoanPaymentKind } from \"../../models/enums/loan-payment-kind\";\r\nimport { HrmLoanToPersonnel } from \"../../models/hrm-loan-to-personnel.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-loan-to-personnel-form\",\r\n templateUrl: \"./hrm-loan-to-personnel-form.component.html\",\r\n styleUrls: [\"./hrm-loan-to-personnel-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class HrmLoanToPersonnelFormComponent extends BaseFormComponent {\r\n erroremessage: string;\r\n public apiName: string = \"HrmLoanToPersonnel\";\r\n public label: string = \"تخصیص وام به کارکنان\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setdefault(): void {\r\n if (this.isNewRow && !this.model.LoanPaymentKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"LoanPaymentKind\", LoanPaymentKind.LastPayment)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.LoanPaymentKindId = x.Id;\r\n this.model.LoanPaymentKindTitle = x.Title;\r\n this.setValue(\"LoanPaymentKindId\", x.Id);\r\n this.setValue(\"LoanPaymentKindTitle\", x.Title);\r\n });\r\n }\r\n if (!this.model.LoanStartYear) this.model.LoanStartYear = this.accountService.authService.currentFiscalYear.Year;\r\n if (!this.model.LoanYear) this.model.LoanYear = this.accountService.authService.currentFiscalYear.Year;\r\n }\r\n onChange($event) {\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"HrmLoanKind\") && $event.KeyName === \"HrmLoanKindId\") {\r\n this.setValue(\"LoanTop\", $event.data.LoanTop);\r\n this.model.LoanTop = $event.data.LoanTop;\r\n this.model.LoanAmount = $event.data.LoanTop;\r\n this.setValue(\"LoanAmount\", $event.data.LoanTop);\r\n this.model.LoanStartRemain = $event.data.LoanTop;\r\n this.setValue(\"LoanStartRemain\", $event.data.LoanTop);\r\n this.setValue(\"LoanTopControl\", $event.data.LoanTopControl);\r\n this.model.LoanTopControl = $event.data.LoanTopControl;\r\n }\r\n }\r\n isValid(): boolean {\r\n let flag: boolean = true;\r\n if (this.model.LoanTopControl && this.formGroup.controls[\"LoanAmount\"].value > this.model.LoanTop) {\r\n flag = false;\r\n this.erroremessage = \"سقف وام بیش از سقف مجاز است.\";\r\n }\r\n return flag;\r\n }\r\n onvalueChange($event) {\r\n if (\r\n this.formGroup.controls[\"LoanAmount\"].value &&\r\n (!this.formGroup.controls[\"LoanStartRemain\"].value ||\r\n this.formGroup.controls[\"LoanStartRemain\"].value > this.formGroup.controls[\"LoanPayment\"].value)\r\n ) {\r\n this.setValue(\"LoanStartRemain\", this.formGroup.controls[\"LoanAmount\"].value);\r\n }\r\n if (this.formGroup.controls[\"LoanStartRemain\"].value && this.formGroup.controls[\"LoanPayment\"].value) {\r\n let LoanLeftOver = this.formGroup.controls[\"LoanStartRemain\"].value % this.formGroup.controls[\"LoanPayment\"].value;\r\n let LoanPaymentCount = Math.floor(this.formGroup.controls[\"LoanStartRemain\"].value / this.formGroup.controls[\"LoanPayment\"].value);\r\n this.setValue(\"LoanPaymentCount\", LoanPaymentCount);\r\n this.setValue(\"LoanLeftOver\", LoanLeftOver);\r\n }\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HrmLoanToPersonnel } from \"../../models/hrm-loan-to-personnel.model\";\r\nimport { HrmLoanDeductFormComponent } from \"../hrm-loan-deduct-form/hrm-loan-deduct-form.component\";\r\nimport { HrmLoanEditFormComponent } from \"../hrm-loan-edit-form/hrm-loan-edit-form.component\";\r\nimport { HrmLoanToPersonnelFormComponent } from \"../hrm-loan-to-personnel-form/hrm-loan-to-personnel-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-loan-to-personnel-list\",\r\n templateUrl: \"./hrm-loan-to-personnel-list.component.html\",\r\n styleUrls: [\"./hrm-loan-to-personnel-list.component.scss\"],\r\n})\r\nexport class HrmLoanToPersonnelListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n actions: EntityListAction[];\r\n constructor(private tabsservice: TabularService) {\r\n super();\r\n this.inputEditorform = HrmLoanToPersonnelFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"HrmLoanToPersonnel\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"وام کارکنان\";\r\n this.setactions();\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: HrmLoanToPersonnel,\r\n onRowsSelected: HrmLoanToPersonnel[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n let inputEditorform2: any;\r\n if (!onRowSelected) this.sts.showDialog(\"هیچ وامی انتخاب نشده است\", \"وام کارکنان\");\r\n ///تسویه وام\r\n if (action.name === \"HrmLoanDeduct\" && onRowSelected) {\r\n inputEditorform2 = HrmLoanDeductFormComponent;\r\n this.dialogService\r\n .open(\r\n inputEditorform2,\r\n {\r\n currentrow: onRowSelected,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n });\r\n }\r\n ///تعدیل وام\r\n if (action.name === \"HrmLoanEdit\" && onRowSelected) {\r\n inputEditorform2 = HrmLoanEditFormComponent;\r\n this.dialogService\r\n .open(\r\n inputEditorform2,\r\n {\r\n currentrow: onRowSelected,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n });\r\n }\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"HrmLoanDeduct\",\r\n disabled: false,\r\n displayName: \"تسویه وام\",\r\n iconName: \"icon-payments-o\",\r\n apiName: \"HrmLoanToPersonnel/HrmLoanDeduct\",\r\n areaName: \"Payroll\",\r\n isModal: true,\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"HrmLoanEdit\",\r\n disabled: false,\r\n displayName: \"تعدیل وام\",\r\n iconName: \"icon-playlist-edit\",\r\n apiName: \"HrmLoanToPersonnel/HrmLoanEdit\",\r\n areaName: \"Payroll\",\r\n isModal: true,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { HrmLoanDeductFormComponent } from \"./hrm-loan-deduct-form/hrm-loan-deduct-form.component\";\r\nimport { HrmLoanEditFormComponent } from \"./hrm-loan-edit-form/hrm-loan-edit-form.component\";\r\nimport { HrmLoanKindFormComponent } from \"./hrm-loan-kind/hrm-loan-kind-form/hrm-loan-kind-form.component\";\r\nimport { HrmLoanKindListComponent } from \"./hrm-loan-kind/hrm-loan-kind-list/hrm-loan-kind-list.component\";\r\nimport { HrmLoanToPersonnelFormComponent } from \"./hrm-loan-to-personnel-form/hrm-loan-to-personnel-form.component\";\r\nimport { HrmLoanToPersonnelListComponent } from \"./hrm-loan-to-personnel-list/hrm-loan-to-personnel-list.component\";\r\n\r\nconst components = [\r\n HrmLoanToPersonnelListComponent,\r\n HrmLoanToPersonnelFormComponent,\r\n HrmLoanKindListComponent,\r\n HrmLoanKindFormComponent,\r\n HrmLoanDeductFormComponent,\r\n HrmLoanEditFormComponent,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class HrmLoanToPersonnelModule {}\r\n","export enum VacationBaseBuyKind {\r\n /// \r\n /// مقداز بازخرید\r\n /// \r\n VactaionBuyBack = 1,\r\n /// \r\n /// مانده مرخصی\r\n /// \r\n VactaionRemain = 2,\r\n}\r\nexport enum VacationBuyKind {\r\n /// \r\n /// انفرادی\r\n /// \r\n Single = 1,\r\n /// \r\n /// گروهی\r\n /// \r\n Group = 2,\r\n}\r\n","export enum EffectBase {\r\n /// \r\n /// بدون مبنا\r\n /// \r\n WithoutBase = 1,\r\n /// \r\n /// کارکرد استاندارد\r\n /// \r\n StandardWork = 2,\r\n /// \r\n /// کارکرد تقویمی\r\n /// \r\n CalendarWork = 3,\r\n /// \r\n /// کارکرد ثابت\r\n /// \r\n FixedWork = 4,\r\n}\r\n","export enum EffectOnEffectWrk {\r\n /// \r\n /// افزاینده\r\n /// \r\n Increment = 1,\r\n /// \r\n /// کاهنده\r\n /// \r\n Decrement = 2,\r\n /// \r\n /// خنثی\r\n /// \r\n Neutral = 3,\r\n}\r\n","export enum EffectStatuteKind {\r\n /// \r\n /// ماهانه\r\n /// \r\n Monthly = 1,\r\n /// \r\n /// روزانه\r\n /// \r\n Daily = 2,\r\n /// \r\n /// ساعتی\r\n /// \r\n Hourly = 3,\r\n}\r\n","export enum EffectWorkKind {\r\n /// \r\n /// کارکردی\r\n /// \r\n Work = 1,\r\n /// \r\n /// مرخصی\r\n /// \r\n Leave = 2,\r\n /// \r\n /// موردی\r\n /// \r\n OtherValue = 3,\r\n}\r\n","export enum ElementGroup {\r\n /// \r\n /// مزایا\r\n /// \r\n Bonus = 1,\r\n /// \r\n /// کسور\r\n /// \r\n Deduct = 2,\r\n /// \r\n /// تعهدات\r\n /// \r\n Boss = 3,\r\n /// \r\n /// کارکرد\r\n /// \r\n Work = 4,\r\n /// \r\n /// وام\r\n /// \r\n Loan = 5,\r\n /// \r\n /// سایر\r\n /// \r\n Other = 6,\r\n /// \r\n /// ذخیره عیدی و پاداش\r\n /// \r\n RwrdSave = 7,\r\n /// \r\n /// هزینه عیدی و پاداش\r\n /// \r\n RwrdPay = 8,\r\n /// \r\n /// ذخیره مرخصی\r\n /// \r\n VacationSave = 9,\r\n /// \r\n /// بازخرید مرخصی\r\n /// \r\n VacationBuy = 10,\r\n /// \r\n /// ذخيره سنوات خدمت\r\n /// \r\n EstablishmentTheReserveOfYearsOfService = 11,\r\n}\r\n","export enum ElementKind {\r\n /// \r\n /// حکمی\r\n /// \r\n EmploymentOrder = 1,\r\n /// \r\n /// محاسباتی\r\n /// \r\n Computational = 2,\r\n /// \r\n /// فرم ورودی\r\n /// \r\n InputForm = 3,\r\n /// \r\n /// مانده مرخصی\r\n /// \r\n LeaveRemain = 4,\r\n}\r\n","export enum ElemntshowKind {\r\n /// \r\n /// روز\r\n /// \r\n DD = 1,\r\n /// \r\n /// روز ساعت دقیقه\r\n /// \r\n DDHHMM = 2,\r\n /// \r\n /// ساعت دقیقه\r\n /// \r\n HHMM = 3,\r\n /// \r\n /// موردی\r\n /// \r\n OtherKind = 3,\r\n}\r\n","export enum LoanPaymentKind {\r\n /// \r\n /// با اولین قسط\r\n /// \r\n WithFirstPament = 1,\r\n /// \r\n /// با آخرین قسط\r\n /// \r\n WithLastPayment = 2,\r\n /// \r\n /// در اولین قسط\r\n /// \r\n FirstPayment = 3,\r\n /// \r\n /// در آخرین قسط\r\n /// \r\n LastPayment = 4,\r\n}\r\n","export enum RoundKind {\r\n /// \r\n /// روند به بالا\r\n /// \r\n Top = 1,\r\n /// \r\n /// روند به پایین\r\n /// \r\n Down = 2,\r\n /// \r\n /// روند نرمال\r\n /// \r\n Normal = 3,\r\n}\r\n\r\nexport enum HrmReportPrintKind {\r\n /// \r\n /// گزارش ماه جاری\r\n /// \r\n BillPayWithOuteBackPay = 1,\r\n /// \r\n /// گزارش معوقه\r\n /// \r\n BillPayOnlyBackPay = 2,\r\n /// \r\n /// گزارش سرجمع\r\n /// \r\n BillPayAll = 3,\r\n}\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n\r\nexport class FinanceNotificationHeader extends EntityBase {\r\n public HrmPersonnelId: number;\r\n public IsGroupedIssue: boolean;\r\n public StatuteNumber: string;\r\n public IssueDate: Date;\r\n public EffectDate: Date;\r\n public Description: string;\r\n public IssueYear: number;\r\n public IssueMonth: number;\r\n public IssueDay: number;\r\n public EffectYear: number;\r\n public EffectMonth: number;\r\n public EffectDay: number;\r\n public EffectYearMonth: number;\r\n public OEGrpStatuteId: number;\r\n public FinanceNotificationDetails: FinanceNotificationDetail[];\r\n}\r\nexport class FinanceNotificationDetail extends EntityBase {\r\n public FinanceNotificationHeaderId: number;\r\n public ElementGroupId: number;\r\n public ElementGroupTitle: string;\r\n public ElementGroupCode?: number;\r\n public ElementKindCode?: number;\r\n public ElementId: number;\r\n public ElementTitle: string;\r\n public EffectDate: Date;\r\n public Amount: number;\r\n public MonthAmount: number;\r\n public DayAmount: number;\r\n public HourAmount: number;\r\n}\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n\r\nexport class HrmLoanDeduct extends EntityBase {\r\n public HrmLoanToPersonnelId: number;\r\n public DeductPayMentYear: number;\r\n public DeductPayMentMonth: number;\r\n public DeductPayment: number;\r\n public DeductDescription: string;\r\n public GrpLoanToPersId?: number;\r\n}\r\n","import { EntityListAction } from \"projects/sepidz-web-framework/src/lib/models\";\r\n\r\nexport class HrmLoanEdit extends EntityListAction {\r\n public HrmLoanToPersonnelId: number;\r\n public EditPercent: number;\r\n public EditAmount: number;\r\n public EditYear: number;\r\n public EditMonth: number;\r\n public EffectYear: number;\r\n public EffectMonth: number;\r\n public PeriodMonth: number;\r\n public EditDescription: string;\r\n public GrpLoanToPersId?: number;\r\n}\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { EditableGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { EstablishmentTheReserveOfYearsOfService } from \"../../models/establishment-the-reserve-of-years-of-service.model\";\r\n\r\n@Component({\r\n selector: \"establishment-the-reserve-of-years-of-service-form\",\r\n templateUrl: \"./establishment-the-reserve-of-years-of-service-form.component.html\",\r\n styleUrls: [\"./establishment-the-reserve-of-years-of-service-form.component.scss\"],\r\n})\r\nexport class EstablishmentTheReserveOfYearsOfServiceFormComponent extends BaseFormComponent {\r\n public label: string = \"استقرار ذخیره سنوات خدمت\";\r\n public dataList: EstablishmentTheReserveOfYearsOfService[];\r\n @ViewChild(\"grid\") public grid: EditableGridComponent;\r\n gridColumns: form_control[] = [];\r\n isRefreshingData: boolean = false;\r\n DefaultValues: Dictionary = [];\r\n RemainDays: number = 0;\r\n HasCalculate: boolean = false;\r\n async ngOnInit() {\r\n this.areaName = \"Payroll\";\r\n this.apiName = \"EstablishmentTheReserveOfYearsOfService\";\r\n this.dataList = [];\r\n super.ngOnInit();\r\n }\r\n setColumnAttribute() {\r\n this.gridColumns = Object.assign([], this.orignalColumns);\r\n this.gridColumns.forEach((x) => {\r\n if (x.name !== \"EmploymentStartDate\" && x.name !== \"BuyInitialAmount\" && x.name !== \"BuyDelayWork\" && x.listVisible === true) x.disabled = true;\r\n });\r\n }\r\n async setData() {\r\n if (this.isRefreshingData === true) return;\r\n\r\n if (!this.formGroup?.get(\"IssueYear\")?.value || !this.formGroup?.get(\"IssueMonth\")?.value) {\r\n this.sts.showDialog(\"سال/ماه استقرار انتخاب نشده است.\", \"استقرار ذخیره سنوات خدمت\");\r\n return;\r\n }\r\n let gridFilter: GridFilter[] = [];\r\n gridFilter.push({\r\n Filed: \"IssueYear\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"IssueYear\")?.value,\r\n Logic: \"and\",\r\n });\r\n gridFilter.push({\r\n Filed: \"IssueMonth\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"IssueMonth\")?.value,\r\n Logic: \"and\",\r\n });\r\n\r\n this.isRefreshingData = true;\r\n await this.httpCommonService\r\n .create(`${this.apiName}/GetEstablishment`, gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n this.HasCalculate = false;\r\n this.isRefreshingData = false;\r\n if (data) {\r\n this.dataList = data as [];\r\n this.model = this.dataList[0];\r\n this.setFormGroup(this.model);\r\n this.formGroup.markAsPristine();\r\n }\r\n },\r\n (error) => {\r\n this.isRefreshingData = false;\r\n this.getFailedHelper(error);\r\n }\r\n );\r\n }\r\n\r\n async save() {\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.closeModal();\r\n }\r\n async _save(event: EstablishmentTheReserveOfYearsOfService) {\r\n try {\r\n if (!this.isSaving) {\r\n if (this.isValid()) {\r\n this.sts.showToast(\"info\", \"\", \"در حال ذخیره تغییرات...\");\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n if (event.Id === undefined || event.Id === 0 || Number.isNaN(event.Id) || event.Id === null) {\r\n await this.httpCommonService\r\n .create(this.apiName, event)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => {},\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n } else {\r\n await this.httpCommonService\r\n .update(this.apiName, event)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => {},\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } catch (e) {\r\n this.saveFailedHelper(e);\r\n }\r\n }\r\n}\r\n","\r\n \r\n 0\"\r\n [columns]=\"gridColumns\"\r\n [DefaultValues]=\"DefaultValues\"\r\n [isAdd]=\"false\"\r\n (afterSaved)=\"_save($event)\"\r\n [isDelete]=\"false\"\r\n [(dataList)]=\"dataList\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { EstablishmentTheReserveOfYearsOfServiceFormComponent } from \"./establishment-the-reserve-of-years-of-service-form/establishment-the-reserve-of-years-of-service-form.component\";\r\nimport { MonthlySalaryCalculationInformationComponent } from \"./monthly-salary-calculation-information/monthly-salary-calculation-information.component\";\r\nimport { RewardPaymentEffectWorkFormComponent } from \"./reward-payment-effect-work-form/reward-payment-effect-work-form.component\";\r\nimport { VacationBuyInformationFormComponent } from \"./vacation-buy-Information-form/vacation-buy-Information-form.component\";\r\n\r\nconst components = [\r\n MonthlySalaryCalculationInformationComponent,\r\n VacationBuyInformationFormComponent,\r\n RewardPaymentEffectWorkFormComponent,\r\n EstablishmentTheReserveOfYearsOfServiceFormComponent,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class MonthlySalaryCalculationInformationModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ChangePayCurentYearMonthComponent } from \"../../change-pay-curent-year-month/change-pay-curent-year-month.component\";\r\nimport { HrmPayCurentYearMonthComponent } from \"../../hrm-pay-curent-year-month/hrm-pay-curent-year-month.component\";\r\nimport { ElementGroup } from \"../../models/enums/element-group\";\r\nimport { HRNotificationHeader } from \"../../models/hrnotification-header.model\";\r\nimport { EstablishmentTheReserveOfYearsOfServiceFormComponent } from \"../establishment-the-reserve-of-years-of-service-form/establishment-the-reserve-of-years-of-service-form.component\";\r\nimport { RewardPaymentEffectWorkFormComponent } from \"../reward-payment-effect-work-form/reward-payment-effect-work-form.component\";\r\nimport { VacationBuyInformationFormComponent } from \"../vacation-buy-Information-form/vacation-buy-Information-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-monthly-salary-calculation-information\",\r\n templateUrl: \"./monthly-salary-calculation-information.component.html\",\r\n styleUrls: [\"./monthly-salary-calculation-information.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MonthlySalaryCalculationInformationComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n actions: EntityListAction[];\r\n filterInfo: NameValue[] = [];\r\n @ViewChild(KGridComponent)\r\n public grid: KGridComponent;\r\n constructor(\r\n private tabsservice: TabularService,\r\n private cd: ChangeDetectorRef,\r\n private _VoucherKindInfo: VoucherKindInfo,\r\n private splashFormService: SplashFormService\r\n ) {\r\n super();\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"MonthlySalaryCalculationInformation/HRNotificationsHeader\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"محاسبه\";\r\n this.setactions();\r\n if (this._VoucherKindInfo.VoucherKindId <= ElementGroup.Other) {\r\n this.actions.push({\r\n name: \"ChangePayCurentYearMonth\",\r\n disabled: false,\r\n displayName: \"تغییر ماه سیستم\",\r\n iconName: \"icon-change_history-o\",\r\n apiName: \"MonthlySalaryCalculationInformation/ChangePayCurentYearMonth\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.samePermission,\r\n });\r\n }\r\n if (this._VoucherKindInfo.VoucherKindId === ElementGroup.RwrdPay) {\r\n this.actions.push({\r\n name: \"RewardPaymentEffectWork\",\r\n disabled: false,\r\n displayName: \"اصلاح کارکرد موثر عیدی\",\r\n iconName: \"icon-Takenote\",\r\n apiName: \"RewardPaymentEffectWork\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.viewPermission,\r\n });\r\n }\r\n\r\n if (this._VoucherKindInfo.VoucherKindId === ElementGroup.VacationBuy) {\r\n this.actions.push({\r\n name: \"VacationBuyInformation\",\r\n disabled: false,\r\n displayName: \"اصلاح مقدار بازخرید مرخصی\",\r\n iconName: \"icon-Takenote\",\r\n apiName: \"VacationBuyInformation\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.viewPermission,\r\n });\r\n }\r\n if (this._VoucherKindInfo.VoucherKindId === ElementGroup.EstablishmentTheReserveOfYearsOfService) {\r\n this.actions.push({\r\n name: \"EstablishmentTheReserveOfYearsOfService\",\r\n disabled: false,\r\n displayName: \"استقرار ذخیره سنوات خدمت\",\r\n iconName: \"icon-Takenote\",\r\n apiName: \"EstablishmentTheReserveOfYearsOfService\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.viewPermission,\r\n });\r\n }\r\n this.cd.markForCheck();\r\n this.filterInfo = [];\r\n if (this._VoucherKindInfo.VoucherKindId <= ElementGroup.Other)\r\n this.filterInfo = [{ Name: \"ElementGroupCode\", Value: this._VoucherKindInfo.VoucherKindId, Operator: \"lte\" }];\r\n else this.filterInfo = [{ Name: \"ElementGroupCode\", Value: this._VoucherKindInfo.VoucherKindId, Operator: \"eq\" }];\r\n if (this.accountService.authService.getHrmPayCurentYearMonth()) {\r\n if (\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentYear &&\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth\r\n ) {\r\n this.filterInfo.push({ Name: \"IssueYear\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"IssueMonth\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth, Operator: \"eq\" });\r\n this.cd.markForCheck();\r\n setTimeout(() => this.grid.refreshData(), 200);\r\n }\r\n } else this.setHrmPayCurentYearMonth();\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: HRNotificationHeader,\r\n onRowsSelected: HRNotificationHeader[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n var filters: GridFilter[] = [];\r\n if (isAllSelected) {\r\n filters.push({ Filed: \"IsAllSelected\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: isAllSelected, Logic: \"and\" });\r\n } else if (onRowsSelected && onRowsSelected.length > 0) {\r\n let PersonnelIds: number[] = [];\r\n onRowsSelected.forEach((x) => {\r\n PersonnelIds.push(x.HrmPersonnelId);\r\n });\r\n filters.push({ Filed: \"PersonnelIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: PersonnelIds, Logic: \"and\" });\r\n } else if (onRowSelected) {\r\n let PersonnelIds: number[] = [];\r\n PersonnelIds.push(onRowSelected.HrmPersonnelId);\r\n filters.push({ Filed: \"PersonnelIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: PersonnelIds, Logic: \"and\" });\r\n }\r\n\r\n /// در اینجا باید سال و ماه محاسبه دریافت شود\r\n let IssueYearMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurrentYearMonth;\r\n if (!filters.some((x) => x.Filed === \"ElementGroupCode\")) {\r\n if (this._VoucherKindInfo.VoucherKindId <= ElementGroup.Other)\r\n filters.push({\r\n Filed: \"ElementGroupCode\",\r\n Operator: \"lte\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this._VoucherKindInfo.VoucherKindId,\r\n Logic: \"and\",\r\n });\r\n else\r\n filters.push({\r\n Filed: \"ElementGroupCode\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this._VoucherKindInfo.VoucherKindId,\r\n Logic: \"and\",\r\n });\r\n }\r\n\r\n filters.push({ Filed: \"IssueYearMonth\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueYearMonth, Logic: \"and\" });\r\n filters.push({\r\n Filed: \"IssueYear\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear,\r\n Logic: \"and\",\r\n });\r\n filters.push({\r\n Filed: \"IssueMonth\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth,\r\n Logic: \"and\",\r\n });\r\n\r\n ///محاسبه\r\n if (action.name === \"Calculations\") {\r\n if (!filters || filters.length <= 0) {\r\n this.sts.showDialog(\"هیچ کارمندی انتخاب نشده است.\", \"\");\r\n }\r\n this.splashFormService.openDialog(\"\", \"در حال محاسبه\");\r\n this.httpCommonService\r\n .create(\"MonthlySalaryCalculationInformation/Calculations\", filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"محاسبه با موفقیت انجام شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در محاسبه ${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n ///برگشت از محاسبه\r\n\r\n if (action.name === \"DeCalculations\") {\r\n if (!filters || filters.length <= 0) {\r\n this.sts.showDialog(\"هیچ کارمندی انتخاب نشده است.\", \"\");\r\n }\r\n this.splashFormService.openDialog(\"\", \"در حال حذف محاسبه\");\r\n this.httpCommonService\r\n .create(\"MonthlySalaryCalculationInformation/DeCalculations\", filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\" حذف محاسبه با موفقیت انجام شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در حذف محاسبه${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n ///تغییر ماه سیستم\r\n if (action.name === \"ChangePayCurentYearMonth\") {\r\n this.dialogService\r\n .open(\r\n ChangePayCurentYearMonthComponent,\r\n {\r\n areaName: this.areaName,\r\n apiName: this.apiName,\r\n label: \"تغییر ماه سیستم حقوق\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n setTimeout(() => {\r\n this.grid?.clearFilter();\r\n this.ngOnInit();\r\n }, 500);\r\n });\r\n }\r\n ///هزینه عیدی\r\n if (action.name === \"RewardPaymentEffectWork\") {\r\n this.dialogService\r\n .open(\r\n RewardPaymentEffectWorkFormComponent,\r\n {\r\n areaName: this.areaName,\r\n apiName: this.apiName,\r\n label: \"اصلاح کارکرد عیدی\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.ngOnInit();\r\n });\r\n }\r\n ///اصلاح مقدار بازخرید مرخصی\r\n if (action.name === \"VacationBuyInformation\") {\r\n this.dialogService\r\n .open(\r\n VacationBuyInformationFormComponent,\r\n {\r\n areaName: this.areaName,\r\n apiName: this.apiName,\r\n label: \"اصلاح مقدار بازخرید مرخصی\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.ngOnInit();\r\n });\r\n }\r\n ///استقرار ذخیره سنوات خدمت\r\n if (action.name === \"EstablishmentTheReserveOfYearsOfService\") {\r\n this.dialogService\r\n .open(\r\n EstablishmentTheReserveOfYearsOfServiceFormComponent,\r\n {\r\n areaName: this.areaName,\r\n apiName: this.apiName,\r\n label: \"استقرار ذخیره سنوات خدمت\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.ngOnInit();\r\n });\r\n }\r\n }\r\n setHrmPayCurentYearMonth() {\r\n this.dialogService\r\n .open(\r\n HrmPayCurentYearMonthComponent,\r\n {\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.ngOnInit();\r\n });\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Calculations\",\r\n disabled: false,\r\n displayName: \"محاسبه\",\r\n iconName: \"icon-calculate-F\",\r\n apiName: \"MonthlySalaryCalculationInformation/Calculations\",\r\n areaName: \"Payroll\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"DeCalculations\",\r\n disabled: false,\r\n displayName: \"برگشت از محاسبه\",\r\n iconName: \"icon-delete-sweep-outline\",\r\n apiName: \"MonthlySalaryCalculationInformation/DeCalculations\",\r\n areaName: \"Payroll\",\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n pathPreFix=\"HRM\"\r\n [isMulti]=\"true\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n defaultSortKey=\"PersCode\"\r\n defaultSortKeyKind='asc'\r\n [defaultFilterKey]=\"filterInfo\"\r\n [actionTregger]=\"onActionClick\"\r\n [actions]=\"actions\">\r\n \r\n
\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { EditableGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component\";\r\nimport { RewardPaymentEffectWork } from \"../../models/reward-payment-effect-work.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\n\r\n@Component({\r\n selector: \"reward-payment-effect-work-form\",\r\n templateUrl: \"./reward-payment-effect-work-form.component.html\",\r\n styleUrls: [\"./reward-payment-effect-work-form.component.scss\"],\r\n})\r\nexport class RewardPaymentEffectWorkFormComponent extends BaseFormComponent {\r\n public label: string = \"اصلاح کارکرد عیدی\";\r\n public dataList: RewardPaymentEffectWork[];\r\n @ViewChild(\"grid\") public grid: EditableGridComponent;\r\n gridColumns: form_control[] = [];\r\n isRefreshingData: boolean = false;\r\n DefaultValues: Dictionary = [];\r\n RemainDays: number = 0;\r\n HasCalculate: boolean = false;\r\n async ngOnInit() {\r\n this.areaName = \"Payroll\";\r\n this.apiName = \"RewardPaymentEffectWork\";\r\n this.dataList = [];\r\n super.ngOnInit();\r\n await this.setData();\r\n }\r\n setColumnAttribute() {\r\n this.gridColumns = Object.assign([], this.orignalColumns);\r\n this.gridColumns.forEach((x) => {\r\n if (x.name !== \"EffectWork\" && x.listVisible === true) x.disabled = true;\r\n });\r\n }\r\n onChanged($event) {\r\n if ($event && $event?.apiName === \"RewardPaymentEffectWork/RewardPaymentEffectWorkElement\") {\r\n this.setData();\r\n }\r\n }\r\n async setData() {\r\n if (this.isRefreshingData === true) return;\r\n if (!this.formGroup?.get(\"ElementId\")?.value) {\r\n return;\r\n }\r\n let gridFilter: GridFilter[] = [];\r\n if (this.formGroup?.get(\"ElementId\")?.value)\r\n gridFilter.push({\r\n Filed: \"ElementId\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"ElementId\")?.value,\r\n Logic: \"and\",\r\n });\r\n gridFilter.push({\r\n Filed: \"IssueYear\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.accountService?.authService?.getHrmPayCurentYearMonth()?.CurentYear,\r\n Logic: \"and\",\r\n });\r\n gridFilter.push({\r\n Filed: \"IssueMonth\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.accountService?.authService?.getHrmPayCurentYearMonth()?.CurentMonth,\r\n Logic: \"and\",\r\n });\r\n gridFilter.push({ Filed: \"RemainDays\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: this.RemainDays, Logic: \"and\" });\r\n gridFilter.push({ Filed: \"HasCalculate\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: this.HasCalculate, Logic: \"and\" });\r\n\r\n this.isRefreshingData = true;\r\n await this.httpCommonService\r\n .create(`${this.apiName}/GetEffectWork`, gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n this.HasCalculate = false;\r\n this.isRefreshingData = false;\r\n if (data) {\r\n this.dataList = data as [];\r\n this.model = this.dataList[0];\r\n this.setFormGroup(this.model);\r\n this.formGroup.markAsPristine();\r\n }\r\n },\r\n (error) => {\r\n this.isRefreshingData = false;\r\n this.getFailedHelper(error);\r\n }\r\n );\r\n }\r\n calculate() {\r\n this.sts.showDialog(\"بااجراء اين دستور اطلاعات جايگزین خواهد شد آيا ادامه مي دهيد؟\", \"اصلاح كاركرد عيدي\", DialogType.confirm, () =>\r\n this.calculateEffectWork()\r\n );\r\n }\r\n async calculateEffectWork() {\r\n this.HasCalculate = true;\r\n if (this.formGroup?.get(\"CalculateToEndOfYear\")?.value === true) await this.GetRemainDays();\r\n else await this.setData();\r\n }\r\n async GetRemainDays() {\r\n let gridFilter: GridFilter[] = [];\r\n gridFilter.push({\r\n Filed: \"ElementId\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"ElementId\")?.value,\r\n Logic: \"and\",\r\n });\r\n gridFilter.push({\r\n Filed: \"IssueYear\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.accountService?.authService?.getHrmPayCurentYearMonth()?.CurentYear,\r\n Logic: \"and\",\r\n });\r\n gridFilter.push({\r\n Filed: \"IssueMonth\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.accountService?.authService?.getHrmPayCurentYearMonth()?.CurentMonth,\r\n Logic: \"and\",\r\n });\r\n\r\n await this.httpCommonService\r\n .create(`${this.apiName}/GetRemainDays`, gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n async (data) => {\r\n this.RemainDays = data;\r\n await this.setData();\r\n },\r\n (error) => {\r\n this.isRefreshingData = false;\r\n this.getFailedHelper(error);\r\n }\r\n );\r\n }\r\n async save() {\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.closeModal();\r\n }\r\n async _save(event: RewardPaymentEffectWork) {\r\n try {\r\n if (!this.isSaving) {\r\n if (this.isValid()) {\r\n this.sts.showToast(\"info\", \"\", \"در حال ذخیره تغییرات...\");\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n if (event.Id === undefined || event.Id === 0 || Number.isNaN(event.Id) || event.Id === null) {\r\n await this.httpCommonService\r\n .create(this.apiName, event)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => {},\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n } else {\r\n await this.httpCommonService\r\n .update(this.apiName, event)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => {},\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } catch (e) {\r\n this.saveFailedHelper(e);\r\n }\r\n }\r\n}\r\n","\r\n \r\n 0\"\r\n [columns]=\"gridColumns\"\r\n [DefaultValues]=\"DefaultValues\"\r\n [isAdd]=\"false\"\r\n (afterSaved)=\"_save($event)\"\r\n [isDelete]=\"false\"\r\n [(dataList)]=\"dataList\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component, Input, ViewChild } from \"@angular/core\";\r\nimport { EditableGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { VacationBuyKind } from \"../../models/enums/VacationBaseBuyKindEnum\";\r\nimport { VacationBuyInformation } from \"../../models/vacation-buy-Information.model\";\r\n\r\n@Component({\r\n selector: \"vacation-buy-Information-form\",\r\n templateUrl: \"./vacation-buy-Information-form.component.html\",\r\n styleUrls: [\"./vacation-buy-Information-form.component.scss\"],\r\n})\r\nexport class VacationBuyInformationFormComponent extends BaseFormComponent {\r\n @Input() gridFilter: GridFilter[] = [];\r\n public apiName: string = \"VacationBuyInformation\";\r\n public label: string = \"اصلاح مانده مرخصی\";\r\n public dataList: VacationBuyInformation[];\r\n @ViewChild(\"grid\") public grid: EditableGridComponent;\r\n gridColumns: form_control[] = [];\r\n isRefreshingData: boolean = false;\r\n DefaultValues: Dictionary = [];\r\n async ngOnInit() {\r\n this.areaName = \"Payroll\";\r\n this.apiName = \"VacationBuyInformation\";\r\n this.dataList = [];\r\n super.ngOnInit();\r\n await this.setData();\r\n }\r\n setColumnAttribute() {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"BaseBuyAmount\" || x.name === \"VacationRemain\" || x.name === \"BuyAmount\") x.inputMask = \"00:00:00\";\r\n if (x.name === \"BuyAmount\") {\r\n x.disabled = this.model.VacationBuyKindCode === VacationBuyKind.Group;\r\n } else if (x.formVisible != true) x.disabled = true;\r\n });\r\n this.gridColumns = this.orignalColumns.filter((f) => (!f.areaName || f.areaName === \"default\") && f.listVisible);\r\n this.gridColumns.forEach((x) => {\r\n if (x.name === \"BaseBuyAmount\" || x.name === \"VacationRemain\" || x.name === \"BuyAmount\") {\r\n x.inputMask = \"00:00:00\";\r\n }\r\n if (x.name === \"BuyAmount\") {\r\n x.disabled = this.model.VacationBuyKindCode === VacationBuyKind.Group;\r\n } else if (x.formVisible != true) x.disabled = true;\r\n if (x.name === \"BaseBuyAmount\") {\r\n x.disabled = this.model.VacationBuyKindCode !== VacationBuyKind.Group;\r\n }\r\n });\r\n if (this.grid) {\r\n this.grid.columns = this.gridColumns;\r\n this.grid.setColumnWith();\r\n this.grid.fitColumns();\r\n }\r\n }\r\n onChanged($event) {\r\n if ($event && $event?.apiName === \"VacationBuyInformation/VacationRemainElement\") {\r\n this.setData();\r\n }\r\n if ($event && $event?.apiName === \"Lookup\" && $event?.data?.Category === \"VacationBaseBuyKind\") {\r\n this.model.VacationBaseBuyKindCode = $event.data.Code;\r\n this.model.VacationBaseBuyKindTitle = $event.data.Title;\r\n this.setValue(\"VacationBaseBuyKindCode\", this.model.VacationBaseBuyKindCode);\r\n this.setValue(\"VacationBaseBuyKindTitle\", this.model.VacationBaseBuyKindTitle);\r\n }\r\n if ($event && $event?.apiName === \"Lookup\" && $event?.data?.Category === \"VacationBuyKind\") {\r\n this.model.VacationBuyKindCode = $event.data.Code;\r\n this.model.VacationBuyKindTitle = $event.data.Title;\r\n this.setValue(\"VacationBuyKindCode\", this.model.VacationBuyKindCode);\r\n this.setValue(\"VacationBuyKindTitle\", this.model.VacationBuyKindTitle);\r\n this.setColumnAttribute();\r\n this.cd.markForCheck();\r\n }\r\n }\r\n async setData() {\r\n if (this.isRefreshingData === true) return;\r\n if (!this.formGroup?.get(\"ElementId\")?.value) {\r\n return;\r\n }\r\n if (!this.gridFilter.some((x) => x.Filed === \"ElementId\"))\r\n this.gridFilter.push({\r\n Filed: \"ElementId\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"ElementId\")?.value,\r\n Logic: \"and\",\r\n });\r\n if (!this.gridFilter.some((x) => x.Filed === \"IssueYear\"))\r\n this.gridFilter.push({\r\n Filed: \"IssueYear\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.accountService?.authService?.getHrmPayCurentYearMonth()?.CurentYear,\r\n Logic: \"and\",\r\n });\r\n if (!this.gridFilter.some((x) => x.Filed === \"IssueMonth\"))\r\n this.gridFilter.push({\r\n Filed: \"IssueMonth\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.accountService?.authService?.getHrmPayCurentYearMonth()?.CurentMonth,\r\n Logic: \"and\",\r\n });\r\n\r\n this.isRefreshingData = true;\r\n await this.httpCommonService\r\n .create(`${this.apiName}/GetVacationRemain`, this.gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n this.isRefreshingData = false;\r\n if (data) {\r\n this.dataList = data as [];\r\n this.model = this.dataList[0];\r\n this.setFormGroup(this.model);\r\n this.formGroup.markAsPristine();\r\n }\r\n },\r\n (error) => {\r\n this.isRefreshingData = false;\r\n this.getFailedHelper(error);\r\n }\r\n );\r\n }\r\n getDeMaskedAmount(amount: string, inputMask: string) {\r\n if (!amount) return 0;\r\n if (amount.toString().indexOf(\"_\") > -1) amount = amount.replace(/\\_/g, \"\");\r\n if (inputMask === \"00\") {\r\n return Number(amount) * 440;\r\n }\r\n if (inputMask === \"000:00\") {\r\n return Number(amount.replace(\":\", \"\").substr(0, 3)) * 60 + Number(amount.replace(\":\", \"\").substr(3, 2));\r\n }\r\n if (inputMask === \"00:00:00\") {\r\n return (\r\n Number(amount.replace(\":\", \"\").substr(0, 2)) * 440 +\r\n Number(amount.replace(\":\", \"\").substr(2, 2)) * 60 +\r\n Number(amount.replace(\":\", \"\").substr(5, 2))\r\n );\r\n }\r\n return Number(amount);\r\n }\r\n async groupAssignment() {\r\n if (this.isRefreshingData === true) return;\r\n if (!this.formGroup?.get(\"BaseBuyAmount\")?.value) {\r\n this.sts.showDialog(\"مقدار مبنای بازخرید وارد نشده.\", `خطا`);\r\n return;\r\n }\r\n if (!this.formGroup?.get(\"VacationBaseBuyKindCode\")?.value) {\r\n this.sts.showDialog(\"مبنای بازخرید انتخاب نشده.\", `خطا`);\r\n return;\r\n }\r\n let BaseBuyAmount = this.getDeMaskedAmount(this.formGroup?.get(\"BaseBuyAmount\")?.value, \"00:00:00\");\r\n if (!this.gridFilter.some((x) => x.Filed === \"ElementId\"))\r\n this.gridFilter.push({\r\n Filed: \"ElementId\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"ElementId\")?.value,\r\n Logic: \"and\",\r\n });\r\n if (!this.gridFilter.some((x) => x.Filed === \"IssueYear\"))\r\n this.gridFilter.push({\r\n Filed: \"IssueYear\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear,\r\n Logic: \"and\",\r\n });\r\n if (!this.gridFilter.some((x) => x.Filed === \"IssueMonth\"))\r\n this.gridFilter.push({\r\n Filed: \"IssueMonth\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth,\r\n Logic: \"and\",\r\n });\r\n if (!this.gridFilter.some((x) => x.Filed === \"VacationBaseBuyKindCode\"))\r\n this.gridFilter.push({\r\n Filed: \"VacationBaseBuyKindCode\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.model.VacationBaseBuyKindCode,\r\n Logic: \"and\",\r\n });\r\n if (!this.gridFilter.some((x) => x.Filed === \"BaseBuyAmount\"))\r\n this.gridFilter.push({ Filed: \"BaseBuyAmount\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: BaseBuyAmount, Logic: \"and\" });\r\n if (!this.gridFilter.some((x) => x.Filed === \"VacationBaseBuyKindId\"))\r\n this.gridFilter.push({\r\n Filed: \"VacationBaseBuyKindId\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"VacationBaseBuyKindId\")?.value,\r\n Logic: \"and\",\r\n });\r\n if (!this.gridFilter.some((x) => x.Filed === \"VacationBuyKindId\"))\r\n this.gridFilter.push({\r\n Filed: \"VacationBuyKindId\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"VacationBuyKindId\")?.value,\r\n Logic: \"and\",\r\n });\r\n\r\n this.isRefreshingData = true;\r\n await this.httpCommonService\r\n .create(`${this.apiName}/GroupAssignment`, this.gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n this.isRefreshingData = false;\r\n if (data) {\r\n this.dataList = data as [];\r\n this.formGroup.markAsPristine();\r\n }\r\n },\r\n (error) => {\r\n this.isRefreshingData = false;\r\n this.getFailedHelper(error);\r\n }\r\n );\r\n }\r\n async _save(event: VacationBuyInformation) {\r\n try {\r\n if (!this.isSaving) {\r\n if (this.isValid()) {\r\n this.sts.showToast(\"info\", \"\", \"در حال ذخیره تغییرات...\");\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n if (event.Id === undefined || event.Id === 0 || Number.isNaN(event.Id) || event.Id === null) {\r\n await this.httpCommonService\r\n .create(this.apiName, event)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => {},\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n } else {\r\n await this.httpCommonService\r\n .update(this.apiName, event)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => {},\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } catch (e) {\r\n this.saveFailedHelper(e);\r\n }\r\n }\r\n}\r\n","\r\n \r\n 0\"\r\n [columns]=\"gridColumns\"\r\n [DefaultValues]=\"DefaultValues\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\"\r\n (afterSaved)=\"_save($event)\"\r\n [(dataList)]=\"dataList\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { MonthlyWorkInformationComponent } from \"./monthly-work-information/monthly-work-information.component\";\r\nconst components = [MonthlyWorkInformationComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class MonthlyWorkInformationModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HrmPayCurentYearMonthComponent } from \"../../hrm-pay-curent-year-month/hrm-pay-curent-year-month.component\";\r\nimport { Element } from \"../../models/base-info/element.model\";\r\nimport { ElementGroup } from \"../../models/enums/element-group\";\r\nimport { ElemntshowKind } from \"../../models/enums/elemntshow-kind\";\r\n\r\n@Component({\r\n selector: \"ngx-monthly-work-information\",\r\n templateUrl: \"./monthly-work-information.component.html\",\r\n styleUrls: [\"./monthly-work-information.component.scss\"],\r\n})\r\nexport class MonthlyWorkInformationComponent extends BaseFormComponent {\r\n public dColumns: form_control[] = [];\r\n activeElement: Element[];\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n MonthlyWorkInformations: any[];\r\n ElementGroupCodes: number[] = [];\r\n isLoading: boolean = false;\r\n constructor(\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n private lookupservice: LookupService\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"MonthlyWorkInformation\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"اطلاعات ماهانه\";\r\n this.lookupservice\r\n .getLookupbyCategory(\"HRM\", \"ElementGroup\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n this.activeElement = data.filter((x) => x.Code <= ElementGroup.Other && x.Code !== ElementGroup.Loan).sort((a, b) => a.Code - b.Code) as [];\r\n });\r\n this.setColumns();\r\n this.setFormGroup({});\r\n this.setdefault();\r\n this.loadData();\r\n }\r\n setdefault() {\r\n super.setdefault();\r\n this.ElementGroupCodes = [];\r\n this.ElementGroupCodes.push(ElementGroup.Bonus);\r\n this.ElementGroupCodes.push(ElementGroup.Deduct);\r\n this.ElementGroupCodes.push(ElementGroup.Boss);\r\n this.ElementGroupCodes.push(ElementGroup.Work);\r\n this.ElementGroupCodes.push(ElementGroup.Other);\r\n if (this.accountService.authService.getHrmPayCurentYearMonth()) {\r\n this.setValue(\"IssueYear\", this.accountService.authService.getHrmPayCurentYearMonth().CurentYear);\r\n this.setValue(\"IssueMonth\", this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth);\r\n this.setValue(\"EffectYear\", this.accountService.authService.getHrmPayCurentYearMonth().CurentYear);\r\n this.setValue(\"EffectMonth\", this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth);\r\n }\r\n }\r\n setHrmPayCurentYearMonth() {\r\n this.dialogService\r\n .open(\r\n HrmPayCurentYearMonthComponent,\r\n {\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.ngOnInit();\r\n });\r\n }\r\n loadData() {\r\n let filter: GridFilter[] = [];\r\n if (\r\n !this.formGroup ||\r\n this.isLoading ||\r\n !this.formGroup.get(\"IssueYear\").value ||\r\n this.formGroup.get(\"IssueYear\").value === null ||\r\n !this.formGroup.get(\"IssueMonth\").value ||\r\n this.formGroup.get(\"IssueMonth\").value === null\r\n )\r\n return;\r\n if (!this.accountService.authService.getHrmPayCurentYearMonth()) this.setHrmPayCurentYearMonth();\r\n\r\n filter.push({ Type: \"F\", Filed: \"ElementGroupCodes\", Value: this.ElementGroupCodes, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"IssueYear\", Value: this.formGroup.get(\"IssueYear\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"IssueMonth\", Value: this.formGroup.get(\"IssueMonth\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"EffectYear\", Value: this.formGroup.get(\"EffectYear\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"EffectMonth\", Value: this.formGroup.get(\"EffectMonth\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"S\", Filed: \"PersCode\", Value: 0, Logic: \"and\", Operator: \"asc\", Skip: 0, Take: 0 });\r\n\r\n this.isLoading = true;\r\n this.httpCommonService\r\n .create(this.apiName + \"/MonthlyInformations\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.isLoading = false;\r\n this.MonthlyWorkInformations = x as [];\r\n },\r\n (error) => (this.isLoading = false)\r\n );\r\n }\r\n async setColumns() {\r\n let filter: GridFilter[] = [];\r\n filter.push({ Type: \"F\", Filed: \"ElementGroupCodes\", Value: this.ElementGroupCodes, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n\r\n if (this.formGroup) {\r\n filter.push({ Type: \"F\", Filed: \"IssueYear\", Value: this.formGroup.get(\"IssueYear\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"IssueMonth\", Value: this.formGroup.get(\"IssueMonth\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"EffectYear\", Value: this.formGroup.get(\"EffectYear\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EffectMonth\",\r\n Value: this.formGroup.get(\"EffectMonth\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n }\r\n let _columns = [];\r\n _columns.push({\r\n label: \"نوع عامل\",\r\n controlType: FormControlTypes.checkboxList,\r\n modelName: \"ElementGroupCodes\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"ElementGroupCodes\",\r\n order: 0,\r\n textType: \"text\",\r\n columnNumber: 5,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n _columns.push({\r\n label: \"سال جاری\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueYear\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"IssueYear\",\r\n order: 1,\r\n textType: \"text\",\r\n columnNumber: 1,\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n _columns.push({\r\n label: \"ماه جاری\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueMonth\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"IssueMonth\",\r\n order: 2,\r\n textType: \"text\",\r\n columnNumber: 2,\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"MonthsName\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n _columns.push({\r\n label: \"سال اجرا\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"EffectYear\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"EffectYear\",\r\n order: 3,\r\n textType: \"text\",\r\n columnNumber: 3,\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n _columns.push({\r\n label: \"ماه اجرا\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"EffectMonth\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"EffectMonth\",\r\n order: 4,\r\n textType: \"text\",\r\n columnNumber: 4,\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"MonthsName\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns = _columns;\r\n this.orignalColumns = _columns;\r\n let _dColumns = [];\r\n _dColumns.push({\r\n label: \"محاسبه\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"HasCalculate\",\r\n disabled: true,\r\n name: \"HasCalculate\",\r\n order: 0,\r\n textType: \"checkbox\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"سریال\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Id\",\r\n disabled: true,\r\n name: \"Id\",\r\n order: 1,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"کارمند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"HrmPersonnelId\",\r\n disabled: true,\r\n name: \"HrmPersonnelId\",\r\n order: 2,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"سال جاری\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"IssueYear\",\r\n disabled: true,\r\n name: \"IssueYear\",\r\n order: 3,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"ماه جاری\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"IssueMonth\",\r\n disabled: true,\r\n name: \"IssueMonth\",\r\n order: 4,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"سال اجرا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"EffectYear\",\r\n disabled: true,\r\n name: \"EffectYear\",\r\n order: 5,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"ماه اجرا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"EffectMonth\",\r\n disabled: true,\r\n name: \"EffectMonth\",\r\n order: 6,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"کد پرسنلی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"PersCode\",\r\n columnWidth: 100,\r\n disabled: true,\r\n name: \"PersCode\",\r\n order: 7,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"نام\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"FirstName\",\r\n disabled: true,\r\n columnWidth: 100,\r\n name: \"FirstName\",\r\n order: 8,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"نام خانوادگی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"LastName\",\r\n columnWidth: 100,\r\n disabled: true,\r\n name: \"LastName\",\r\n order: 9,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"نوع استخدام\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"EmploymentKindTitle\",\r\n columnWidth: 100,\r\n disabled: true,\r\n name: \"EmploymentKindTitle\",\r\n order: 10,\r\n textType: \"text\",\r\n formVisible: false,\r\n listVisible: true,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"محل خدمت\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"WorkplaceTitle\",\r\n columnWidth: 100,\r\n disabled: true,\r\n name: \"WorkplaceTitle\",\r\n order: 11,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"مرکز هزینه\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"CostCenterTitle\",\r\n columnWidth: 100,\r\n disabled: true,\r\n name: \"CostCenterTitle\",\r\n order: 12,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"سال جاری حکم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"HrnIssueYear\",\r\n disabled: true,\r\n name: \"HrnIssueYear\",\r\n order: 3,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"ماه جاری حکم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"HrnIssueMonth\",\r\n disabled: true,\r\n name: \"HrnIssueMonth\",\r\n order: 4,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"روز جاری حکم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"HrnIssueDay\",\r\n disabled: true,\r\n name: \"HrnIssueDay\",\r\n order: 4,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"سال اجرا حکم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"HrnEffectYear\",\r\n disabled: true,\r\n name: \"HrnEffectYear\",\r\n order: 5,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"ماه اجرا حکم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"HrnEffectMonth\",\r\n disabled: true,\r\n name: \"HrnEffectMonth\",\r\n order: 6,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"روز اجرا حکم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"HrnEffectDay\",\r\n disabled: true,\r\n name: \"HrnEffectDay\",\r\n order: 6,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n _dColumns.push({\r\n label: \"وضعیت حکم\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"NotificationStatusKindCode\",\r\n disabled: true,\r\n name: \"NotificationStatusKindCode\",\r\n order: 6,\r\n textType: \"number\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n\r\n let cCount = 12;\r\n this.httpCommonService\r\n .create(\"MonthlyWorkInformation/GetActiveElement\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x: Element[]) => {\r\n if (x) {\r\n this.activeElement = x.sort((a, b) => a.ElementGroupCode - b.ElementGroupCode);\r\n this.activeElement.forEach((e) => {\r\n cCount = cCount + 1;\r\n if (e.ElementGroupCode === ElementGroup.Work) {\r\n if (e.ElemntshowKindCode === ElemntshowKind.DDHHMM)\r\n _dColumns.push({\r\n label: e.Title,\r\n inputMask: \"00:00:00\",\r\n columnWidth: 100,\r\n controlType: FormControlTypes.textbox,\r\n modelName: `MW_${e.Id}`,\r\n disabled: false,\r\n name: `MW_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"00:00\",\r\n });\r\n else if (e.ElemntshowKindCode === ElemntshowKind.HHMM)\r\n _dColumns.push({\r\n label: e.Title,\r\n inputMask: \"000:00\",\r\n columnWidth: 100,\r\n controlType: FormControlTypes.textbox,\r\n modelName: `MW_${e.Id}`,\r\n disabled: false,\r\n name: `MW_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"00:00\",\r\n });\r\n else if (e.ElemntshowKindCode === ElemntshowKind.DD)\r\n _dColumns.push({\r\n label: e.Title,\r\n inputMask: \"00\",\r\n columnWidth: 100,\r\n controlType: FormControlTypes.textbox,\r\n modelName: `MW_${e.Id}`,\r\n disabled: false,\r\n name: `MW_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"00:00\",\r\n });\r\n else\r\n _dColumns.push({\r\n label: e.Title,\r\n controlType: FormControlTypes.textbox,\r\n columnWidth: 100,\r\n modelName: `MW_${e.Id}`,\r\n disabled: false,\r\n name: `MW_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"00:00\",\r\n });\r\n } else\r\n _dColumns.push({\r\n label: e.Title,\r\n controlType: FormControlTypes.textbox,\r\n columnWidth: 100,\r\n modelName: `MW_${e.Id}`,\r\n disabled: false,\r\n name: `MW_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"#,#\",\r\n });\r\n });\r\n\r\n this.dColumns = _dColumns;\r\n }\r\n });\r\n }\r\n addControl() {\r\n this.setValue(\"ElementGroupCodes\", this.ElementGroupCodes);\r\n this.cd.markForCheck();\r\n }\r\n change($event) {\r\n this.ElementGroupCodes = this.formGroup.get(\"ElementGroupCodes\").value;\r\n this.setColumns();\r\n this.loadData();\r\n }\r\n onValueChangeByApiName($event) {\r\n if ($event && $event.apiName) {\r\n if ($event.KeyName === \"IssueYear\") this.setValue(\"EffectYear\", $event.data.Year);\r\n if ($event.KeyName === \"IssueMonth\") this.setValue(\"EffectMonth\", $event.data.Id);\r\n\r\n this.loadData();\r\n }\r\n }\r\n onValueChanges(entity: any) {\r\n if (entity) {\r\n if (!entity.IssueYear) entity.IssueYear = this.formGroup.get(\"IssueYear\").value;\r\n if (!entity.IssueMonth) entity.IssueMonth = this.formGroup.get(\"IssueMonth\").value;\r\n if (!entity.EffectYear) entity.EffectYear = this.formGroup.get(\"EffectYear\").value;\r\n if (!entity.EffectMonth) entity.EffectMonth = this.formGroup.get(\"EffectMonth\").value;\r\n\r\n this.httpCommonService\r\n .create(\"MonthlyWorkInformation/UnPivotAndSave\", entity)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n if (x) {\r\n }\r\n },\r\n (error) => this.sts.showDialog(`${Utilities.getHttpResponseMessage(error)}`, \"پیغام خطا\")\r\n );\r\n }\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n
\r\n \r\n 0\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\"\r\n [isEdit]=\"true\"\r\n rowEditableKeyNotAllow=\"HasCalculate\"\r\n [columns]=\"dColumns\"\r\n [height]=\"60\"\r\n (afterSaved)=\"onValueChanges($event)\"\r\n [(dataList)]=\"MonthlyWorkInformations\">\r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { JobBase } from \"../../../models/payment-system/job-base.model\";\r\n\r\n@Component({\r\n selector: \"ngx-job-base-form\",\r\n templateUrl: \"./job-base-form.component.html\",\r\n styleUrls: [\"./job-base-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class JobBaseFormComponent extends BaseFormComponent {\r\n public apiName: string = \"JobBase\";\r\n public label: string = \"پایه شغلی\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { JobBaseFormComponent } from \"../job-base-form/job-base-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-job-base-list\",\r\n templateUrl: \"./job-base-list.component.html\",\r\n styleUrls: [\"./job-base-list.component.scss\"],\r\n})\r\nexport class JobBaseListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = JobBaseFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"JobBase\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"پایه شغلی\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { JobBaseFormComponent } from \"./job-base-form/job-base-form.component\";\r\nimport { JobBaseListComponent } from \"./job-base-list/job-base-list.component\";\r\n\r\nconst components = [JobBaseFormComponent, JobBaseListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class JobBaseModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { JobGroup } from \"../../../models/payment-system/job-group.model\";\r\n\r\n@Component({\r\n selector: \"ngx-job-group-form\",\r\n templateUrl: \"./job-group-form.component.html\",\r\n styleUrls: [\"./job-group-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class JobGroupFormComponent extends BaseFormComponent {\r\n public apiName: string = \"JobGroup\";\r\n public label: string = \"پایه شغلی\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { JobGroupFormComponent } from \"../job-group-form/job-group-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-job-group-list\",\r\n templateUrl: \"./job-group-list.component.html\",\r\n styleUrls: [\"./job-group-list.component.scss\"],\r\n})\r\nexport class JobGroupListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = JobGroupFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"JobGroup\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"گروه شغلی\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { JobGroupFormComponent } from \"./job-group-form/job-group-form.component\";\r\nimport { JobGroupListComponent } from \"./job-group-list/job-group-list.component\";\r\n\r\nconst components = [JobGroupFormComponent, JobGroupListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class JobGroupModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { JobRanking } from \"../../../models/payment-system/job-ranking.model\";\r\n\r\n@Component({\r\n selector: \"ngx-job-ranking-form\",\r\n templateUrl: \"./job-ranking-form.component.html\",\r\n styleUrls: [\"./job-ranking-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class JobRankingFormComponent extends BaseFormComponent {\r\n public apiName: string = \"JobRanking\";\r\n public label: string = \"رتبه بندی شغل\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { JobRankingFormComponent } from \"../job-ranking-form/job-ranking-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-job-ranking-list\",\r\n templateUrl: \"./job-ranking-list.component.html\",\r\n styleUrls: [\"./job-ranking-list.component.scss\"],\r\n})\r\nexport class JobRankingListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = JobRankingFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"JobRanking\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"رتبه بندی شغل\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { JobRankingFormComponent } from \"./job-ranking-form/job-ranking-form.component\";\r\nimport { JobRankingListComponent } from \"./job-ranking-list/job-ranking-list.component\";\r\n\r\nconst components = [JobRankingFormComponent, JobRankingListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class JobRankingModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AcademicOrientation } from \"../../../models/reference-lists/academic-orientation.model\";\r\n\r\n@Component({\r\n selector: \"ngx-academic-orientation-form\",\r\n templateUrl: \"./academic-orientation-form.component.html\",\r\n styleUrls: [\"./academic-orientation-form.component.scss\"],\r\n})\r\nexport class AcademicOrientationFormComponent extends BaseFormComponent {\r\n public apiName: string = \"AcademicOrientation\";\r\n public label: string = \"گرایش تحصیلی\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { AcademicOrientationFormComponent } from \"../academic-orientation-form/academic-orientation-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-academic-orientation-list\",\r\n templateUrl: \"./academic-orientation-list.component.html\",\r\n styleUrls: [\"./academic-orientation-list.component.scss\"],\r\n})\r\nexport class AcademicOrientationListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = AcademicOrientationFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"AcademicOrientation\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"گرایش تحصیلی\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { AcademicOrientationFormComponent } from \"./academic-orientation-form/academic-orientation-form.component\";\r\nimport { AcademicOrientationListComponent } from \"./academic-orientation-list/academic-orientation-list.component\";\r\n\r\nconst components = [AcademicOrientationFormComponent, AcademicOrientationListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class AcademicOrientationModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CitizenshipKind } from \"../../../models/reference-lists/citizenship-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-citizenship-kind-form\",\r\n templateUrl: \"./citizenship-kind-form.component.html\",\r\n styleUrls: [\"./citizenship-kind-form.component.scss\"],\r\n})\r\nexport class CitizenshipKindFormComponent extends BaseFormComponent {\r\n public apiName: string = \"CitizenshipKind\";\r\n public label: string = \"تابعیت\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { CitizenshipKindFormComponent } from \"../citizenship-kind-form/citizenship-kind-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-citizenship-kind-list\",\r\n templateUrl: \"./citizenship-kind-list.component.html\",\r\n styleUrls: [\"./citizenship-kind-list.component.scss\"],\r\n})\r\nexport class CitizenshipKindListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = CitizenshipKindFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"CitizenshipKind\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"تابعیت\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { CitizenshipKindFormComponent } from \"./citizenship-kind-form/citizenship-kind-form.component\";\r\nimport { CitizenshipKindListComponent } from \"./citizenship-kind-list/citizenship-kind-list.component\";\r\n\r\nconst components = [CitizenshipKindFormComponent, CitizenshipKindListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class CitizenshipKindModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CourseTitle } from \"../../../models/reference-lists/course-title.model\";\r\n\r\n@Component({\r\n selector: \"ngx-course-title-form\",\r\n templateUrl: \"./course-title-form.component.html\",\r\n styleUrls: [\"./course-title-form.component.scss\"],\r\n})\r\nexport class CourseTitleFormComponent extends BaseFormComponent {\r\n public apiName: string = \"CourseTitle\";\r\n public label: string = \"عنوان دوره تحصیلی\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { CourseTitleFormComponent } from \"../course-title-form/course-title-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-course-title-list\",\r\n templateUrl: \"./course-title-list.component.html\",\r\n styleUrls: [\"./course-title-list.component.scss\"],\r\n})\r\nexport class CourseTitleListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = CourseTitleFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"CourseTitle\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"عنوان دوره تحصیلی\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { CourseTitleFormComponent } from \"./course-title-form/course-title-form.component\";\r\nimport { CourseTitleListComponent } from \"./course-title-list/course-title-list.component\";\r\n\r\nconst components = [CourseTitleFormComponent, CourseTitleListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class CourseTitleModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { EducationDegree } from \"../../../models/reference-lists/education-degree.model\";\r\n\r\n@Component({\r\n selector: \"ngx-education-degree-form\",\r\n templateUrl: \"./education-degree-form.component.html\",\r\n styleUrls: [\"./education-degree-form.component.scss\"],\r\n})\r\nexport class EducationDegreeFormComponent extends BaseFormComponent {\r\n public apiName: string = \"EducationDegree\";\r\n public label: string = \"مقطع تحصیلی\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EducationDegreeFormComponent } from \"../education-degree-form/education-degree-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-education-degree-list\",\r\n templateUrl: \"./education-degree-list.component.html\",\r\n styleUrls: [\"./education-degree-list.component.scss\"],\r\n})\r\nexport class EducationDegreeListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = EducationDegreeFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"EducationDegree\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"مقطع تحصیلی\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { EducationDegreeFormComponent } from \"./education-degree-form/education-degree-form.component\";\r\nimport { EducationDegreeListComponent } from \"./education-degree-list/education-degree-list.component\";\r\n\r\nconst components = [EducationDegreeFormComponent, EducationDegreeListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class EducationDegreeModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { FaithKind } from \"../../../models/reference-lists/faith-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-faith-kind-form\",\r\n templateUrl: \"./faith-kind-form.component.html\",\r\n styleUrls: [\"./faith-kind-form.component.scss\"],\r\n})\r\nexport class FaithKindFormComponent extends BaseFormComponent {\r\n public apiName: string = \"FaithKind\";\r\n public label: string = \"مذهب\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { FaithKindFormComponent } from \"../faith-kind-form/faith-kind-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-faith-kind-list\",\r\n templateUrl: \"./faith-kind-list.component.html\",\r\n styleUrls: [\"./faith-kind-list.component.scss\"],\r\n})\r\nexport class FaithKindListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = FaithKindFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"FaithKind\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"مذهب\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { FaithKindFormComponent } from \"./faith-kind-form/faith-kind-form.component\";\r\nimport { FaithKindListComponent } from \"./faith-kind-list/faith-kind-list.component\";\r\n\r\nconst components = [FaithKindFormComponent, FaithKindListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class FaithKindModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { FieldOfStudy } from \"../../../models/reference-lists/field-of-study.model\";\r\n\r\n@Component({\r\n selector: \"ngx-field-of-study-form\",\r\n templateUrl: \"./field-of-study-form.component.html\",\r\n styleUrls: [\"./field-of-study-form.component.scss\"],\r\n})\r\nexport class FieldOfStudyFormComponent extends BaseFormComponent {\r\n public apiName: string = \"FieldOfStudy\";\r\n public label: string = \"رشته تحصیلی\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { FieldOfStudyFormComponent } from \"../field-of-study-form/field-of-study-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-field-of-study-list\",\r\n templateUrl: \"./field-of-study-list.component.html\",\r\n styleUrls: [\"./field-of-study-list.component.scss\"],\r\n})\r\nexport class FieldOfStudyListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = FieldOfStudyFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"FieldOfStudy\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"رشته تحصیلی\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { FieldOfStudyFormComponent } from \"./field-of-study-form/field-of-study-form.component\";\r\nimport { FieldOfStudyListComponent } from \"./field-of-study-list/field-of-study-list.component\";\r\n\r\nconst components = [FieldOfStudyFormComponent, FieldOfStudyListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class FieldOfStudyModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { FluencyInLanguageConversation } from \"../../../models/reference-lists/fluency-in-language-conversation.model\";\r\n\r\n@Component({\r\n selector: \"ngx-fluency-in-language-conversation-form\",\r\n templateUrl: \"./fluency-in-language-conversation-form.component.html\",\r\n styleUrls: [\"./fluency-in-language-conversation-form.component.scss\"],\r\n})\r\nexport class FluencyInLanguageConversationFormComponent extends BaseFormComponent {\r\n public apiName: string = \"FluencyInLanguageConversation\";\r\n public label: string = \"تسلت در مکالمه زبان\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { FluencyInLanguageConversationFormComponent } from \"../fluency-in-language-conversation-form/fluency-in-language-conversation-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-fluency-in-language-conversation-list\",\r\n templateUrl: \"./fluency-in-language-conversation-list.component.html\",\r\n styleUrls: [\"./fluency-in-language-conversation-list.component.scss\"],\r\n})\r\nexport class FluencyInLanguageConversationListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = FluencyInLanguageConversationFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"FluencyInLanguageConversation\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"تسلت در مکالمه زبان\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { FluencyInLanguageConversationFormComponent } from \"./fluency-in-language-conversation-form/fluency-in-language-conversation-form.component\";\r\nimport { FluencyInLanguageConversationListComponent } from \"./fluency-in-language-conversation-list/fluency-in-language-conversation-list.component\";\r\n\r\nconst components = [FluencyInLanguageConversationFormComponent, FluencyInLanguageConversationListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class FluencyInLanguageConversationModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { FluencyInReadingTheLanguage } from \"../../../models/reference-lists/fluency-in-reading-the-language.model\";\r\n\r\n@Component({\r\n selector: \"ngx-fluency-in-reading-the-language-form\",\r\n templateUrl: \"./fluency-in-reading-the-language-form.component.html\",\r\n styleUrls: [\"./fluency-in-reading-the-language-form.component.scss\"],\r\n})\r\nexport class FluencyInReadingTheLanguageFormComponent extends BaseFormComponent {\r\n public apiName: string = \"FluencyInReadingTheLanguage\";\r\n public label: string = \"تسلت در خواندن زبان\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { FluencyInLanguageConversationFormComponent } from \"../../fluency-in-language-conversation/fluency-in-language-conversation-form/fluency-in-language-conversation-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-fluency-in-reading-the-language-list\",\r\n templateUrl: \"./fluency-in-reading-the-language-list.component.html\",\r\n styleUrls: [\"./fluency-in-reading-the-language-list.component.scss\"],\r\n})\r\nexport class FluencyInReadingTheLanguageListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = FluencyInLanguageConversationFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"FluencyInReadingTheLanguage\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"تسلت در خواندن زبان\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { FluencyInReadingTheLanguageFormComponent } from \"./fluency-in-reading-the-language-form/fluency-in-reading-the-language-form.component\";\r\nimport { FluencyInReadingTheLanguageListComponent } from \"./fluency-in-reading-the-language-list/fluency-in-reading-the-language-list.component\";\r\n\r\nconst components = [FluencyInReadingTheLanguageFormComponent, FluencyInReadingTheLanguageListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class FluencyInReadingTheLanguageModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { LanguageKind } from \"../../../models/reference-lists/language-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-language-kind-form\",\r\n templateUrl: \"./language-kind-form.component.html\",\r\n styleUrls: [\"./language-kind-form.component.scss\"],\r\n})\r\nexport class LanguageKindFormComponent extends BaseFormComponent {\r\n public apiName: string = \"LanguageKind\";\r\n public label: string = \"نوع زبان\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { LanguageKindFormComponent } from \"../language-kind-form/language-kind-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-language-kind-list\",\r\n templateUrl: \"./language-kind-list.component.html\",\r\n styleUrls: [\"./language-kind-list.component.scss\"],\r\n})\r\nexport class LanguageKindListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = LanguageKindFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"LanguageKind\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"نوع زبان\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { LanguageKindFormComponent } from \"./language-kind-form/language-kind-form.component\";\r\nimport { LanguageKindListComponent } from \"./language-kind-list/language-kind-list.component\";\r\n\r\nconst components = [LanguageKindFormComponent, LanguageKindListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class LanguageKindModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { MartyrFamilayKind } from \"../../../models/reference-lists/martyr-familay-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-martyr-familay-kind-form\",\r\n templateUrl: \"./martyr-familay-kind-form.component.html\",\r\n styleUrls: [\"./martyr-familay-kind-form.component.scss\"],\r\n})\r\nexport class MartyrFamilayKindFormComponent extends BaseFormComponent {\r\n public apiName: string = \"MartyrFamilayKind\";\r\n public label: string = \"درجه نسبت خانواده شهید\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { MartyrFamilayKindFormComponent } from \"../martyr-familay-kind-form/martyr-familay-kind-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-martyr-familay-kind-list\",\r\n templateUrl: \"./martyr-familay-kind-list.component.html\",\r\n styleUrls: [\"./martyr-familay-kind-list.component.scss\"],\r\n})\r\nexport class MartyrFamilayKindListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = MartyrFamilayKindFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"MartyrFamilayKind\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"درجه نسبت خانواده شهید\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { MartyrFamilayKindFormComponent } from \"./martyr-familay-kind-form/martyr-familay-kind-form.component\";\r\nimport { MartyrFamilayKindListComponent } from \"./martyr-familay-kind-list/martyr-familay-kind-list.component\";\r\n\r\nconst components = [MartyrFamilayKindFormComponent, MartyrFamilayKindListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class MartyrFamilayKindModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { NationalityKind } from \"../../../models/reference-lists/nationality-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-nationality-kind-form\",\r\n templateUrl: \"./nationality-kind-form.component.html\",\r\n styleUrls: [\"./nationality-kind-form.component.scss\"],\r\n})\r\nexport class NationalityKindFormComponent extends BaseFormComponent {\r\n public apiName: string = \"NationalityKind\";\r\n public label: string = \"ملیت\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { NationalityKindFormComponent } from \"../nationality-kind-form/nationality-kind-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-nationality-kind-list\",\r\n templateUrl: \"./nationality-kind-list.component.html\",\r\n styleUrls: [\"./nationality-kind-list.component.scss\"],\r\n})\r\nexport class NationalityKindListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = NationalityKindFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"NationalityKind\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"ملیت\";\r\n }\r\n}\r\n","\r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { NationalityKindFormComponent } from \"./nationality-kind-form/nationality-kind-form.component\";\r\nimport { NationalityKindListComponent } from \"./nationality-kind-list/nationality-kind-list.component\";\r\n\r\nconst components = [NationalityKindFormComponent, NationalityKindListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class NationalityKindModule {}\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"ngx-proficiency-in-writing-form\",\r\n templateUrl: \"./proficiency-in-writing-form.component.html\",\r\n styleUrls: [\"./proficiency-in-writing-form.component.scss\"],\r\n})\r\nexport class ProficiencyInWritingFormComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","

proficiency-in-writing-form works!

\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"ngx-proficiency-in-writing-list\",\r\n templateUrl: \"./proficiency-in-writing-list.component.html\",\r\n styleUrls: [\"./proficiency-in-writing-list.component.scss\"],\r\n})\r\nexport class ProficiencyInWritingListComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","

proficiency-in-writing-list works!

\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { ProficiencyInWritingFormComponent } from \"./proficiency-in-writing-form/proficiency-in-writing-form.component\";\r\nimport { ProficiencyInWritingListComponent } from \"./proficiency-in-writing-list/proficiency-in-writing-list.component\";\r\n\r\n@NgModule({\r\n declarations: [ProficiencyInWritingFormComponent, ProficiencyInWritingListComponent],\r\n imports: [CommonModule],\r\n})\r\nexport class ProficiencyInWritingModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ReasonForDismissal } from \"../../../models/reference-lists/reason-for-dismissal.model\";\r\n\r\n@Component({\r\n selector: \"ngx-reason-for-dismissal-form\",\r\n templateUrl: \"./reason-for-dismissal-form.component.html\",\r\n styleUrls: [\"./reason-for-dismissal-form.component.scss\"],\r\n})\r\nexport class ReasonForDismissalFormComponent extends BaseFormComponent {\r\n public apiName: string = \"ReasonForDismissal\";\r\n public label: string = \"دلیل انفصال از خدمت\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { ReasonForDismissalFormComponent } from \"../reason-for-dismissal-form/reason-for-dismissal-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-reason-for-dismissal-list\",\r\n templateUrl: \"./reason-for-dismissal-list.component.html\",\r\n styleUrls: [\"./reason-for-dismissal-list.component.scss\"],\r\n})\r\nexport class ReasonForDismissalListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = ReasonForDismissalFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"ReasonForDismissal\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"دلیل انفصال از خدمت\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ReasonForDismissalFormComponent } from \"./reason-for-dismissal-form/reason-for-dismissal-form.component\";\r\nimport { ReasonForDismissalListComponent } from \"./reason-for-dismissal-list/reason-for-dismissal-list.component\";\r\n\r\nconst components = [ReasonForDismissalFormComponent, ReasonForDismissalListComponent];\r\n\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class ReasonForDismissalModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ReligionKind } from \"../../../models/reference-lists/religion-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-religion-kind-form\",\r\n templateUrl: \"./religion-kind-form.component.html\",\r\n styleUrls: [\"./religion-kind-form.component.scss\"],\r\n})\r\nexport class ReligionKindFormComponent extends BaseFormComponent {\r\n public apiName: string = \"ReligionKind\";\r\n public label: string = \"دین\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { ReligionKindFormComponent } from \"../religion-kind-form/religion-kind-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-religion-kind-list\",\r\n templateUrl: \"./religion-kind-list.component.html\",\r\n styleUrls: [\"./religion-kind-list.component.scss\"],\r\n})\r\nexport class ReligionKindListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = ReligionKindFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"ReligionKind\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"دین\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ReligionKindFormComponent } from \"./religion-kind-form/religion-kind-form.component\";\r\nimport { ReligionKindListComponent } from \"./religion-kind-list/religion-kind-list.component\";\r\n\r\nconst components = [ReligionKindFormComponent, ReligionKindListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class ReligionKindModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { RetirementKind } from \"../../../models/reference-lists/retirement-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-retirement-kind-form\",\r\n templateUrl: \"./retirement-kind-form.component.html\",\r\n styleUrls: [\"./retirement-kind-form.component.scss\"],\r\n})\r\nexport class RetirementKindFormComponent extends BaseFormComponent {\r\n public apiName: string = \"RetirementKind\";\r\n public label: string = \"نوع بازنشستگی\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { RetirementKindFormComponent } from \"../retirement-kind-form/retirement-kind-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-retirement-kind-list\",\r\n templateUrl: \"./retirement-kind-list.component.html\",\r\n styleUrls: [\"./retirement-kind-list.component.scss\"],\r\n})\r\nexport class RetirementKindListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = RetirementKindFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"RetirementKind\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"نوع بازنشستگی\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { RetirementKindFormComponent } from \"./retirement-kind-form/retirement-kind-form.component\";\r\nimport { RetirementKindListComponent } from \"./retirement-kind-list/retirement-kind-list.component\";\r\n\r\nconst components = [RetirementKindFormComponent, RetirementKindListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class RetirementKindModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { FluencyInLanguageConversation } from \"../../../models/reference-lists/fluency-in-language-conversation.model\";\r\nimport { TaxGroup } from \"../../../models/reference-lists/tax-group.model\";\r\n\r\n@Component({\r\n selector: \"ngx-tax-group-form\",\r\n templateUrl: \"./tax-group-form.component.html\",\r\n styleUrls: [\"./tax-group-form.component.scss\"],\r\n})\r\nexport class TaxGroupFormComponent extends BaseFormComponent {\r\n public apiName: string = \"FluencyInLanguageConversation\";\r\n public label: string = \"گروه مالیاتی\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { TaxGroupFormComponent } from \"../tax-group-form/tax-group-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-tax-group-list\",\r\n templateUrl: \"./tax-group-list.component.html\",\r\n styleUrls: [\"./tax-group-list.component.scss\"],\r\n})\r\nexport class TaxGroupListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.inputEditorform = TaxGroupFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"TaxGroup\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"گروه مالیاتی\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { TaxGroupFormComponent } from \"./tax-group-form/tax-group-form.component\";\r\nimport { TaxGroupListComponent } from \"./tax-group-list/tax-group-list.component\";\r\n\r\nconst components = [TaxGroupFormComponent, TaxGroupListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class TaxGroupModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { VeteranWorkShiftKind } from \"../../../models/reference-lists/veteran-work-shift-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-veteran-work-shift-kind-form\",\r\n templateUrl: \"./veteran-work-shift-kind-form.component.html\",\r\n styleUrls: [\"./veteran-work-shift-kind-form.component.scss\"],\r\n})\r\nexport class VeteranWorkShiftKindFormComponent extends BaseFormComponent {\r\n public apiName: string = \"VeteranWorkShiftKind\";\r\n public label: string = \"شیفت کاری جانبازان\";\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"ngx-veteran-work-shift-kind-list\",\r\n templateUrl: \"./veteran-work-shift-kind-list.component.html\",\r\n styleUrls: [\"./veteran-work-shift-kind-list.component.scss\"],\r\n})\r\nexport class VeteranWorkShiftKindListComponent implements OnInit {\r\n constructor() {}\r\n\r\n ngOnInit(): void {}\r\n}\r\n","

veteran-work-shift-kind-list works!

\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { VeteranWorkShiftKindFormComponent } from \"./veteran-work-shift-kind-form/veteran-work-shift-kind-form.component\";\r\nimport { VeteranWorkShiftKindListComponent } from \"./veteran-work-shift-kind-list/veteran-work-shift-kind-list.component\";\r\n\r\nconst components = [VeteranWorkShiftKindFormComponent, VeteranWorkShiftKindListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule, SepidzGridModule],\r\n})\r\nexport class VeteranWorkShiftKindModule {}\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { BillPayReportComponent } from \"./bill-pay-report/bill-pay-report.component\";\r\nimport { HrmInsuranceDskComponent } from \"./hrm-insurance-disk/hrm-insurance-disk.component\";\r\nimport { HrmInsuranceReportComponent } from \"./hrm-insurance-report/hrm-insurance-report.component\";\r\nimport { HrmTaxReportComponent } from \"./hrm-tax-report/hrm-tax-report.component\";\r\nimport { PayMVPersReportComponent } from \"./pay-mvpers-report/pay-mvpers-report.component\";\r\nconst components = [BillPayReportComponent, PayMVPersReportComponent, HrmInsuranceReportComponent, HrmTaxReportComponent, HrmInsuranceDskComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class BillPayReportModule {}\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { EntityListAction, form_control, Permission, SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HrmPayCurentYearMonthComponent } from \"../../hrm-pay-curent-year-month/hrm-pay-curent-year-month.component\";\r\nimport { HrmReportPrintKind } from \"../../models/enums/round-kind\";\r\nimport { HRNotificationHeader } from \"../../models/hrnotification-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-bill-pay-report\",\r\n templateUrl: \"./bill-pay-report.component.html\",\r\n styleUrls: [\"./bill-pay-report.component.scss\"],\r\n})\r\nexport class BillPayReportComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n actions: EntityListAction[];\r\n model: any;\r\n filterInfo: NameValue[] = [];\r\n @ViewChild(KGridComponent) grid: KGridComponent;\r\n constructor(private splashFormService: SplashFormService, private lookupservice: LookupService) {\r\n super();\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"MonthlySalaryCalculationInformation/HRNotificationsHeader\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"گزارش فیش حقوق\";\r\n this.setColumns();\r\n this.setactions();\r\n if (this.accountService.authService.getHrmPayCurentYearMonth()) {\r\n if (\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentYear &&\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth\r\n ) {\r\n this.filterInfo.push({ Name: \"IssueYear\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"IssueMonth\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth, Operator: \"eq\" });\r\n }\r\n } else this.setHrmPayCurentYearMonth();\r\n }\r\n setColumns() {\r\n let group: any = {};\r\n this.model = {};\r\n this.model.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n this.model.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueYear\",\r\n disabled: false,\r\n name: \"IssueYear\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 1,\r\n userClass: \"select-shr\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"ماه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueMonth\",\r\n disabled: false,\r\n name: \"IssueMonth\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 2,\r\n userClass: \"select-shr\",\r\n apiName: \"MonthsName\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"نوع گزارش\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"HrmReportPrintKind\",\r\n disabled: false,\r\n name: \"HrmReportPrintKind\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 3,\r\n userClass: \"select-sm\",\r\n apiName: \"Lookup\",\r\n systemName: \"HRM\",\r\n category: \"HrmReportPrintKind\",\r\n valueMember: \"Code\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n group[\"IssueYear\"] = new UntypedFormControl(this.model.IssueYear, Validators.required);\r\n group[\"IssueMonth\"] = new UntypedFormControl(this.model.IssueMonth, Validators.required);\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"HrmReportPrintKind\", HrmReportPrintKind.BillPayAll)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((rk) => {\r\n group[\"HrmReportPrintKind\"] = new UntypedFormControl(rk.Code, Validators.required);\r\n });\r\n this.group = new UntypedFormGroup(group);\r\n this.model = this.getDataFromFormGroup(this.model);\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: HRNotificationHeader,\r\n onRowsSelected: HRNotificationHeader[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n var filters: GridFilter[] = [];\r\n if (isAllSelected) {\r\n filters.push({ Filed: \"IsAllSelected\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: isAllSelected, Logic: \"and\" });\r\n } else if (onRowsSelected && onRowsSelected.length > 0) {\r\n let PersonnelIds: number[] = [];\r\n onRowsSelected.forEach((x) => {\r\n PersonnelIds.push(x.HrmPersonnelId);\r\n });\r\n filters.push({ Filed: \"PersonnelIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: PersonnelIds, Logic: \"and\" });\r\n } else if (onRowSelected) {\r\n let PersonnelIds: number[] = [];\r\n PersonnelIds.push(onRowSelected.HrmPersonnelId);\r\n filters.push({ Filed: \"PersonnelIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: PersonnelIds, Logic: \"and\" });\r\n }\r\n\r\n /// در اینجا باید سال و ماه محاسبه دریافت شود\r\n\r\n let IssueYear = this.group.controls[\"IssueYear\"].value;\r\n let IssueMonth = this.group.controls[\"IssueMonth\"].value;\r\n let IssueYearMonth = IssueYear * 12 + IssueMonth;\r\n filters.push({ Filed: \"IssueYearMonth\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueYearMonth, Logic: \"and\" });\r\n filters.push({ Filed: \"IssueYear\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueYear, Logic: \"and\" });\r\n filters.push({ Filed: \"IssueMonth\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueMonth, Logic: \"and\" });\r\n filters.push({\r\n Filed: \"HrmReportPrintKind\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.group.controls[\"HrmReportPrintKind\"].value,\r\n Logic: \"and\",\r\n });\r\n\r\n let FileName: string = \"\";\r\n if (this.group.controls[\"HrmReportPrintKind\"].value === HrmReportPrintKind.BillPayWithOuteBackPay) FileName = \"BillPayWithOuteBackPay\";\r\n if (this.group.controls[\"HrmReportPrintKind\"].value === HrmReportPrintKind.BillPayOnlyBackPay) FileName = \"BillPayOnlyBackPay\";\r\n if (this.group.controls[\"HrmReportPrintKind\"].value === HrmReportPrintKind.BillPayAll) FileName = \"BillPayAll\";\r\n\r\n if (!filters || filters.length <= 0) {\r\n this.sts.showDialog(\"هیچ کارمندی انتخاب نشده است.\", \"\");\r\n }\r\n this.splashFormService.openDialog(\"\", \"در حال تهیه فیش حقوقی\");\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = FileName;\r\n saveReportFile.SystemKindName = \"HRM\";\r\n saveReportFile.CategoryName = action.apiName.replace(\"/\", \"_\");\r\n this.httpCommonService\r\n .create(action.apiName, filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n if (!x || x?.length <= 0) {\r\n this.sts.showDialog(`اطلاعات یافت نشد`, \"خطا\");\r\n } else {\r\n if (action.name === \"Preview\") this.grid.preview(saveReportFile, this.apiName, x as any[]);\r\n if (action.name === \"Print\") this.grid.print(saveReportFile, this.apiName, x as any[]);\r\n if (action.name === \"Desine\") this.grid.editReport(saveReportFile, this.apiName, x as any[]);\r\n }\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در تهیه فیش حقوقی${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n setHrmPayCurentYearMonth() {\r\n this.dialogService\r\n .open(\r\n HrmPayCurentYearMonthComponent,\r\n {\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.ngOnInit();\r\n });\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-preview-f\",\r\n apiName: \"MonthlySalaryCalculationInformation/HrmBillPayRpt\",\r\n areaName: \"Payroll\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"چاپ \",\r\n iconName: \"icon-print-f\",\r\n apiName: \"MonthlySalaryCalculationInformation/HrmBillPayRpt\",\r\n areaName: \"Payroll\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"Desine\",\r\n disabled: false,\r\n displayName: \"طراحی\",\r\n iconName: \"icon-design_services-F\",\r\n apiName: \"MonthlySalaryCalculationInformation/HrmBillPayRpt\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.viewPermission,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n pathPreFix=\"HRM\"\r\n [isMulti]=\"true\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n defaultSortKey=\"PersCode\"\r\n defaultSortKeyKind=\"asc\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n [actionTregger]=\"onActionClick\"\r\n [actions]=\"actions\">\r\n \r\n
\r\n","import { ChangeDetectorRef, Component, Input } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter, LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { HrmDiskFormat } from \"../../../models/base-info/hrm-disk-format.model\";\r\nimport { HrmReportPrintKind } from \"../../../models/enums/round-kind\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-disk-format-export\",\r\n templateUrl: \"./hrm-disk-format-export.component.html\",\r\n styleUrls: [\"./hrm-disk-format-export.component.scss\"],\r\n})\r\nexport class HrmDiskFormatExportComponent extends BaseFormComponent {\r\n public apiName: string = \"HrmLoanKind\";\r\n isOk: boolean = false;\r\n @Input() IssueYear: number;\r\n @Input() IssueMonth: number;\r\n WorkplaceIds: number[] = []; //محل خدمت\r\n OrganizationalUnitIds: number[] = []; //واحد سازمانی\r\n EmploymentKindIds: number[] = []; //انواع استخدام\r\n HrmBankIds: number[] = []; //محل پرداخت\r\n InsPayCompaniesIds: number[] = [];\r\n TaxPayCompaniesIds: number[] = [];\r\n constructor(\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n private splashFormService: SplashFormService,\r\n private lookupservice: LookupService\r\n ) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.label = \"ساخت فایل خروجی\";\r\n this.noLoadData = true;\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (this.isNewRow === true && !this.model.ANSICode) this.model.ANSICode = false;\r\n if (this.isNewRow === true && !this.model.HasRowHeader) this.model.HasRowHeader = false;\r\n }\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n this.columns.forEach((x) => {\r\n // if(x.name !== 'DiskFormatTitle' && x.name !== 'FileName' && x.name !== 'HrmDiskFormatOutPutKindTitle' && x.name !== 'ANSICode')\r\n // x.formVisible = false;\r\n x.required = false;\r\n if (x.name !== \"FileName\" && x.name !== \"ANSICode\") x.disabled = true;\r\n if (x.name === \"ANSICode\") x.columnNumber = 5;\r\n });\r\n if (!this.orignalColumns.some((x) => x.name === \"HrmReportPrintKind\"))\r\n this.orignalColumns.push({\r\n label: \"نوع گزارش\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"HrmReportPrintKind\",\r\n disabled: false,\r\n name: \"HrmReportPrintKind\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 6,\r\n userClass: \"select-sm\",\r\n apiName: \"Lookup\",\r\n systemName: \"HRM\",\r\n category: \"HrmReportPrintKind\",\r\n valueMember: \"Code\",\r\n displayMember: \"Title\",\r\n });\r\n if (!this.columns.some((x) => x.name === \"HrmReportPrintKind\"))\r\n this.columns.push({\r\n label: \"نوع گزارش\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"HrmReportPrintKind\",\r\n disabled: false,\r\n name: \"HrmReportPrintKind\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 6,\r\n userClass: \"select-sm\",\r\n apiName: \"Lookup\",\r\n systemName: \"HRM\",\r\n category: \"HrmReportPrintKind\",\r\n valueMember: \"Code\",\r\n displayMember: \"Title\",\r\n });\r\n }\r\n addControl() {\r\n this.isOk = false;\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"HrmReportPrintKind\", HrmReportPrintKind.BillPayAll)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((rk) => {\r\n this.setValue(\"HrmReportPrintKind\", rk.Code, true);\r\n });\r\n this.setValue(\"HrmBankIds\", this.HrmBankIds);\r\n this.setValue(\"EmploymentKindIds\", this.EmploymentKindIds);\r\n this.setValue(\"OrganizationalUnitIds\", this.OrganizationalUnitIds);\r\n this.setValue(\"WorkplaceIds\", this.WorkplaceIds);\r\n this.setValue(\"TaxPayCompaniesIds\", this.TaxPayCompaniesIds);\r\n this.setValue(\"InsPayCompaniesIds\", this.InsPayCompaniesIds);\r\n this.isOk = true;\r\n }\r\n saveTextAsFile(data, filename) {\r\n if (!data) {\r\n console.error(\"Console.save: No data\");\r\n return;\r\n }\r\n if (!filename) filename = \"FileName.txt\";\r\n this.isSaving = false;\r\n var blob = new Blob([data], { type: \"text/plain\" }),\r\n e = document.createEvent(\"MouseEvents\"),\r\n a = document.createElement(\"a\");\r\n if (window.navigator && (window.navigator as any).msSaveOrOpenBlob) {\r\n (window.navigator as any).msSaveOrOpenBlob(blob, filename);\r\n } else {\r\n var e = document.createEvent(\"MouseEvents\"),\r\n a = document.createElement(\"a\");\r\n a.download = filename;\r\n a.href = window.URL.createObjectURL(blob);\r\n a.dataset.downloadurl = [\"text/plain\", a.download, a.href].join(\":\");\r\n e.initEvent(\"click\", true, false);\r\n a.dispatchEvent(e);\r\n }\r\n }\r\n downloadExcelFile(response: any): void {\r\n let contentDisposition = response.headers.get(\"Content-Disposition\");\r\n let filename = \"\";\r\n if (contentDisposition) {\r\n let filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\r\n let matches = filenameRegex.exec(contentDisposition);\r\n if (matches != null && matches[1]) {\r\n filename = matches[1].replace(/['\"]/g, \"\");\r\n }\r\n }\r\n\r\n if (!filename && this.reportName) {\r\n filename = this.reportName;\r\n }\r\n\r\n let dataType = response.body.type;\r\n let binaryData = [];\r\n binaryData.push(response.body);\r\n let downloadLink = document.createElement(\"a\");\r\n downloadLink.href = window.URL.createObjectURL(new Blob(binaryData, { type: dataType }));\r\n if (filename) downloadLink.setAttribute(\"download\", filename);\r\n document.body.appendChild(downloadLink);\r\n downloadLink.click();\r\n document.body.removeChild(downloadLink);\r\n }\r\n public async save() {\r\n try {\r\n if (!this.isSaving) {\r\n if (this.isValid()) {\r\n this.sts.showToast(\"info\", \"\", \"در حال ساخت فایل...\");\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n if (this.model.HrmDiskFormatOutPutKindCode === 2) {\r\n await this.httpCommonService\r\n .getExcel(\"HrmDiskFormat/ExportToExcel\", this.getFilter())\r\n .pipe(take(1))\r\n .toPromise()\r\n .then(\r\n (response: any) => {\r\n this.downloadExcelFile(response);\r\n this.splashFormService.closeLoading();\r\n },\r\n () => {\r\n this.splashFormService.closeLoading();\r\n }\r\n );\r\n } else {\r\n await this.httpCommonService\r\n .create(\"HrmDiskFormat/HrmDiskFormatExport\", this.getFilter())\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (response) => {\r\n if (response && this.model.HrmDiskFormatOutPutKindCode === 2) {\r\n this.downloadExcelFile(response);\r\n }\r\n if (response && this.model.HrmDiskFormatOutPutKindCode === 1) {\r\n this.saveTextAsFile(response.Text, this.model.FileName);\r\n }\r\n this.saveSuccessHelper();\r\n },\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } catch (e) {\r\n this.saveFailedHelper(e);\r\n }\r\n }\r\n getFilter(): GridFilter[] {\r\n let filter: GridFilter[] = [];\r\n filter.push({ Filed: \"HrmDiskFormatId\", Value: this.model.Id, Operator: \"eq\", Type: \"F\", Skip: 0, Take: 0 });\r\n filter.push({ Filed: \"IssueYear\", Value: this.IssueYear, Operator: \"eq\", Type: \"F\", Skip: 0, Take: 0 });\r\n filter.push({ Filed: \"IssueMonth\", Value: this.IssueMonth, Operator: \"eq\", Type: \"F\", Skip: 0, Take: 0 });\r\n if (this.formGroup?.get(\"InsPayCompaniesIds\")?.value && this.formGroup?.get(\"InsPayCompaniesIds\")?.value > 0) {\r\n filter.push({\r\n Filed: \"InsPayCompaniesIds\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"InsPayCompaniesIds\")?.value,\r\n Logic: \"and\",\r\n });\r\n }\r\n if (this.formGroup?.get(\"TaxPayCompaniesIds\")?.value && this.formGroup?.get(\"TaxPayCompaniesIds\")?.value > 0) {\r\n filter.push({\r\n Filed: \"TaxPayCompaniesIds\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"TaxPayCompaniesIds\")?.value,\r\n Logic: \"and\",\r\n });\r\n }\r\n if (this.formGroup?.get(\"HrmBankIds\")?.value && this.formGroup?.get(\"HrmBankIds\")?.value.length > 0) {\r\n filter.push({\r\n Filed: \"HrmBankIds\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"HrmBankIds\")?.value,\r\n Logic: \"and\",\r\n });\r\n }\r\n if (this.formGroup?.get(\"EmploymentKindIds\")?.value && this.formGroup?.get(\"EmploymentKindIds\")?.value.length > 0) {\r\n filter.push({\r\n Filed: \"EmploymentKindIds\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"EmploymentKindIds\")?.value,\r\n Logic: \"and\",\r\n });\r\n }\r\n if (this.formGroup?.get(\"OrganizationalUnitIds\")?.value && this.formGroup?.get(\"OrganizationalUnitIds\")?.value.length > 0) {\r\n filter.push({\r\n Filed: \"OrganizationalUnitIds\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"OrganizationalUnitIds\")?.value,\r\n Logic: \"and\",\r\n });\r\n }\r\n if (this.formGroup?.get(\"WorkplaceIds\")?.value && this.formGroup?.get(\"WorkplaceIds\")?.value.length > 0) {\r\n filter.push({\r\n Filed: \"WorkplaceIds\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"WorkplaceIds\")?.value,\r\n Logic: \"and\",\r\n });\r\n }\r\n if (this.formGroup?.get(\"HrmReportPrintKind\")?.value && this.formGroup?.get(\"HrmReportPrintKind\")?.value > 0) {\r\n filter.push({\r\n Filed: \"HrmReportPrintKind\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup.controls[\"HrmReportPrintKind\"].value,\r\n Logic: \"and\",\r\n });\r\n }\r\n return filter;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { HrmDiskFormat } from \"../../../models/base-info/hrm-disk-format.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-disk-format-form\",\r\n templateUrl: \"./hrm-disk-format-form.component.html\",\r\n styleUrls: [\"./hrm-disk-format-form.component.scss\"],\r\n})\r\nexport class HrmDiskFormatFormComponent extends BaseFormComponent {\r\n public apiName: string = \"HrmLoanKind\";\r\n public label: string = \"اطلاعات ساخت دیسکت\";\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (this.isNewRow === true && !this.model.ANSICode) this.model.ANSICode = false;\r\n if (this.isNewRow === true && !this.model.HasRowHeader) this.model.HasRowHeader = false;\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, Permission, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HrmDiskFormat } from \"../../../models/base-info/hrm-disk-format.model\";\r\nimport { HrmDiskFormatExportComponent } from \"../hrm-disk-format-export/hrm-disk-format-export.component\";\r\nimport { HrmDiskFormatFormComponent } from \"../hrm-disk-format-form/hrm-disk-format-form.component\";\r\nimport { HrmDiskItemFormatFormComponent } from \"../hrm-disk-item-format/hrm-disk-item-format.component\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-disk-format-list\",\r\n templateUrl: \"./hrm-disk-format-list.component.html\",\r\n styleUrls: [\"./hrm-disk-format-list.component.scss\"],\r\n})\r\nexport class HrmDiskFormatListComponent extends BaseListComponent {\r\n actions: EntityListAction[];\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n model: any;\r\n pcInsColumns: form_control[] = [];\r\n pcTaxColumns: form_control[] = [];\r\n editingName: { name: string };\r\n constructor() {\r\n super();\r\n this.onActionClick = this.onActionClick.bind(this);\r\n this.inputEditorform = HrmDiskFormatFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"HrmDiskFormat\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"فهرست قالب دیسکت\";\r\n this.setactions();\r\n this.setColumns();\r\n }\r\n setColumns() {\r\n let group: any = {};\r\n this.model = {};\r\n this.model.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n this.model.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueYear\",\r\n disabled: false,\r\n name: \"IssueYear\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 1,\r\n userClass: \"select-sm\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"ماه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueMonth\",\r\n disabled: false,\r\n name: \"IssueMonth\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 2,\r\n userClass: \"select-sm\",\r\n apiName: \"MonthsName\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n group[\"IssueYear\"] = new UntypedFormControl(this.model.IssueYear, Validators.required);\r\n group[\"IssueMonth\"] = new UntypedFormControl(this.model.IssueMonth, Validators.required);\r\n\r\n this.group = new UntypedFormGroup(group);\r\n this.model = this.getDataFromFormGroup(this.model);\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: HrmDiskFormat,\r\n onRowsSelected: HrmDiskFormat[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n if (action.name === \"HrmDiskFormatExport\") {\r\n let IssueYear = this.group.controls[\"IssueYear\"].value;\r\n let IssueMonth = this.group.controls[\"IssueMonth\"].value;\r\n if (!IssueYear || !IssueMonth) {\r\n this.sts.showDialog(\"اول سال و ماه مورد نظر را انتخاب كنيد.\", \"خطا\");\r\n return;\r\n }\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n IssueYear: IssueYear,\r\n IssueMonth: IssueMonth,\r\n currentrow: onRowSelected,\r\n apiName: action.apiName,\r\n isModal: action.isModal,\r\n areaName: action.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {});\r\n }\r\n if (action.name === \"HrmDiskItemFormat\") {\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n currentrow: onRowSelected,\r\n apiName: action.apiName,\r\n isModal: action.isModal,\r\n areaName: action.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {});\r\n }\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"HrmDiskItemFormat\",\r\n disabled: true,\r\n displayName: \"قالب فایل خروجی\",\r\n iconName: \"icon-floppy-o\",\r\n apiName: \"HrmDiskFormat/HrmDiskItemFormat\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: true,\r\n Form_Component: HrmDiskItemFormatFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"HrmDiskFormatExport\",\r\n disabled: false,\r\n displayName: \"ساخت فایل خروجی\",\r\n iconName: \"icon-floppy-o\",\r\n apiName: \"HrmDiskFormat/HrmDiskFormatExport\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: true,\r\n Form_Component: HrmDiskFormatExportComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n \r\n\r\n\r\n
\r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { TreeViewModule } from \"@progress/kendo-angular-treeview\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { HrmDiskFormatExportComponent } from \"./hrm-disk-format-export/hrm-disk-format-export.component\";\r\nimport { HrmDiskFormatFormComponent } from \"./hrm-disk-format-form/hrm-disk-format-form.component\";\r\nimport { HrmDiskFormatListComponent } from \"./hrm-disk-format-list/hrm-disk-format-list.component\";\r\nimport { HrmDiskItemFormatFormComponent } from \"./hrm-disk-item-format/hrm-disk-item-format.component\";\r\nimport { HrmDiskItemFormulaFormComponent } from \"./hrm-disk-item-format/hrm-disk-item-formula/hrm-disk-item-formula.component\";\r\n\r\nconst components = [\r\n HrmDiskFormatFormComponent,\r\n HrmDiskItemFormatFormComponent,\r\n HrmDiskFormatListComponent,\r\n HrmDiskItemFormatFormComponent,\r\n HrmDiskItemFormulaFormComponent,\r\n HrmDiskFormatExportComponent,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, TreeViewModule],\r\n})\r\nexport class HrmDiskFormatModule {}\r\n","import { ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormControl } from \"@angular/forms\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { of } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Element } from \"../../../models/base-info/element.model\";\r\nimport { FormulaInfo } from \"../../../models/base-info/formula.model\";\r\nimport { HrmDiskFormat, HrmDiskItemFormat } from \"../../../models/base-info/hrm-disk-format.model\";\r\nimport { ElementGroup } from \"../../../models/enums/element-group\";\r\nimport { ElementKind } from \"../../../models/enums/element-kind\";\r\nimport { HrmDiskItemFormulaFormComponent } from \"./hrm-disk-item-formula/hrm-disk-item-formula.component\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-disk-item-format\",\r\n templateUrl: \"./hrm-disk-item-format.component.html\",\r\n styleUrls: [\"./hrm-disk-item-format.component.scss\"],\r\n})\r\nexport class HrmDiskItemFormatFormComponent extends BaseFormComponent {\r\n public apiName: string = \"HrmDiskFormat\";\r\n gridColumns: form_control[] = [];\r\n inputEditorform: any;\r\n formulaInfo: FormulaInfo[];\r\n PropertyInfo: FormulaInfo[] = [];\r\n elements: Element[];\r\n ActiveAdjustmentElemenet: Element[];\r\n @ViewChild(\"Grid\") public grid: KGridComponent;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.inputEditorform = HrmDiskItemFormulaFormComponent;\r\n }\r\n async ngOnInit() {\r\n this.label = \"قالب فایل خروجی\";\r\n this.apiName = \"HrmDiskFormat\";\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (!this.model?.HrmDiskItemFormats || this.model?.HrmDiskItemFormats.length <= 0) this.model.HrmDiskItemFormats = [];\r\n }\r\n setColumnAttribute() {\r\n this.gridColumns = this.getDetailControlModels(\"HrmDiskItemFormats\");\r\n this.gridColumns.forEach((x) => {\r\n if (x.name !== \"EffectWork\") x.disabled = true;\r\n });\r\n }\r\n onCreate($event) {\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n _model: this.model,\r\n currentrow: null,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n let _model: HrmDiskItemFormat = {};\r\n Object.assign(_model, model);\r\n _model.TempRowNumber = this.model.HrmDiskItemFormats.length + 100;\r\n _model.State = RowState.New;\r\n _model.Id = 0;\r\n this.model.HrmDiskItemFormats.push(_model);\r\n if (this.grid) {\r\n this.grid.dataList = this.model.HrmDiskItemFormats;\r\n this.grid.refreshData();\r\n }\r\n }\r\n });\r\n }\r\n onEdit($event) {\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: $event,\r\n _model: this.model,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n (model as HrmDiskItemFormat).State = RowState.Modify;\r\n this.model.HrmDiskItemFormats.forEach((x) => {\r\n if ((x.Id && x.Id !== 0 && x.Id === $event.Id) || ($event.TempRowNumber && x.TempRowNumber === $event.TempRowNumber)) {\r\n Object.assign(x, model);\r\n this.cd.markForCheck();\r\n }\r\n });\r\n if (this.grid) {\r\n this.grid.dataList = this.model.HrmDiskItemFormats;\r\n this.grid.refreshData();\r\n }\r\n }\r\n });\r\n }\r\n onDelete($event: HrmDiskItemFormat) {\r\n this.model.HrmDiskItemFormats.forEach((x) => {\r\n if (x.Id === $event.Id || x.TempRowNumber == $event.TempRowNumber) {\r\n if (x.State === RowState.New) x.State = RowState.Detached;\r\n else x.State = RowState.Delete;\r\n if (this.grid) {\r\n this.grid.dataList = this.model.HrmDiskItemFormats;\r\n this.grid.refreshData();\r\n }\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n beforupdate() {\r\n if (!this.formGroup.controls[\"HrmDiskItemFormats\"]) this.formGroup.addControl(\"HrmDiskItemFormats\", new UntypedFormControl(this.grid?.dataList));\r\n else this.formGroup.controls[\"HrmDiskItemFormats\"].setValue(this.grid?.dataList);\r\n }\r\n\r\n setFormulaInfo() {\r\n this.formulaInfo = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.formulaInfo.push(this.getpersonelInfo());\r\n this.formulaInfo.push(this.getElement());\r\n this.formulaInfo.push(this.getTaxTable());\r\n this.formulaInfo.push(this.getCurrentMontBackpay());\r\n } else {\r\n this.httpCommonService\r\n .getList(\"Element\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.elements = data as [];\r\n this.formulaInfo.push(this.getpersonelInfo());\r\n this.formulaInfo.push(this.getElement());\r\n this.formulaInfo.push(this.getTaxTable());\r\n this.formulaInfo.push(this.getCurrentMontBackpay());\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n getElement() {\r\n const element: FormulaInfo = {};\r\n element.Title = \"عوامل\";\r\n element.key = \"element\";\r\n element.items = [];\r\n\r\n element.items.push(this.getEmploymentOrderElement());\r\n element.items.push(this.getComputationalElement());\r\n element.items.push(this.getPrevMonthComputationalElement());\r\n element.items.push(this.getPrevYearMonthComputationalElement());\r\n element.items.push(this.getMonthlyInputElement());\r\n element.items.push(this.getLoanElement());\r\n element.items.push(this.getSystemsInfo());\r\n element.items.push(this.getPersonnelElementInitial());\r\n\r\n return element;\r\n }\r\n getTaxTable() {\r\n const TaxTable: FormulaInfo = {};\r\n TaxTable.Title = \"خروجی جدول\";\r\n TaxTable.key = \"TaxTable\";\r\n TaxTable.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n TaxTable.items.push(Bonus);\r\n Bonus.Title = \"مزایا-خروجی جدول\";\r\n Bonus.key = \"TT\";\r\n Bonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Bonus, \"\");\r\n });\r\n }\r\n const Deduct: FormulaInfo = {};\r\n TaxTable.items.push(Deduct);\r\n Deduct.Title = \"کسور-خروجی جدول\";\r\n Deduct.key = \"TT\";\r\n Deduct.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Deduct, \"\");\r\n });\r\n }\r\n const Boss: FormulaInfo = {};\r\n TaxTable.items.push(Boss);\r\n Boss.Title = \"تعهدات-خروجی جدول\";\r\n Boss.key = \"TT\";\r\n Boss.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Boss, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n TaxTable.items.push(Others);\r\n Others.Title = \"سایر-خروجی جدول\";\r\n Others.key = \"TT\";\r\n Others.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Others, \"\");\r\n });\r\n }\r\n const RewardPaymentBonus: FormulaInfo = {};\r\n TaxTable.items.push(RewardPaymentBonus);\r\n RewardPaymentBonus.Title = \"هزینه عیدی-خروجی جدول\";\r\n RewardPaymentBonus.key = \"RPTT\";\r\n RewardPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdPay)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardPaymentBonus, \"\");\r\n });\r\n }\r\n const VacationPaymentBonus: FormulaInfo = {};\r\n TaxTable.items.push(VacationPaymentBonus);\r\n VacationPaymentBonus.Title = \"بازخرید مرخصی-خروجی جدول\";\r\n VacationPaymentBonus.key = \"VPTT\";\r\n VacationPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationBuy)\r\n .forEach((x) => {\r\n this.getNode(x as Element, VacationPaymentBonus, \"\");\r\n });\r\n }\r\n return TaxTable;\r\n }\r\n getCurrentMontBackpay() {\r\n const CurrentMontBackpay: FormulaInfo = {};\r\n CurrentMontBackpay.Title = \"معوقه های ماه جاری\";\r\n CurrentMontBackpay.key = \"CurrentMontBackpay\";\r\n CurrentMontBackpay.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n CurrentMontBackpay.items.push(Bonus);\r\n Bonus.Title = \"مزایا-معوقه های ماه جاری\";\r\n Bonus.key = \"BMV\";\r\n Bonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Bonus, \"\");\r\n });\r\n }\r\n const Deduct: FormulaInfo = {};\r\n CurrentMontBackpay.items.push(Deduct);\r\n Deduct.Title = \"کسور-معوقه های ماه جاری\";\r\n Deduct.key = \"BMV\";\r\n Deduct.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Deduct, \"\");\r\n });\r\n }\r\n const Boss: FormulaInfo = {};\r\n CurrentMontBackpay.items.push(Boss);\r\n Boss.Title = \"تعهدات-معوقه های ماه جاری\";\r\n Boss.key = \"BMV\";\r\n Boss.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Boss, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n CurrentMontBackpay.items.push(Others);\r\n Others.Title = \"سایر-معوقه های ماه جاری\";\r\n Others.key = \"BMV\";\r\n Others.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Others, \"\");\r\n });\r\n }\r\n return CurrentMontBackpay;\r\n }\r\n getEmploymentOrderElement() {\r\n const EmploymentOrder: FormulaInfo = {};\r\n EmploymentOrder.Title = \"حکمی\";\r\n EmploymentOrder.key = \"EmploymentOrder\";\r\n EmploymentOrder.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n EmploymentOrder.items.push(Bonus);\r\n Bonus.Title = \"مزایا\";\r\n Bonus.key = \"Bonus\";\r\n Bonus.items = [];\r\n const EMP: FormulaInfo = {};\r\n Bonus.items.push(EMP);\r\n EMP.Title = \"حکم معادل\";\r\n EMP.key = \"EMP\";\r\n EMP.items = [];\r\n const FMEMP: FormulaInfo = {};\r\n Bonus.items.push(FMEMP);\r\n FMEMP.Title = \"اولین حکم ماه\";\r\n FMEMP.key = \"FMEMP\";\r\n FMEMP.items = [];\r\n const LMEMP: FormulaInfo = {};\r\n Bonus.items.push(LMEMP);\r\n LMEMP.Title = \"آخرین حکم ماه\";\r\n LMEMP.key = \"LMEMP\";\r\n LMEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, EMP, \"\");\r\n this.getNode(x as Element, FMEMP, \"\");\r\n this.getNode(x as Element, LMEMP, \"\");\r\n });\r\n }\r\n const Deduct: FormulaInfo = {};\r\n EmploymentOrder.items.push(Deduct);\r\n Deduct.Title = \"کسور\";\r\n Deduct.key = \"Deduct\";\r\n Deduct.items = [];\r\n const DEMP: FormulaInfo = {};\r\n Deduct.items.push(DEMP);\r\n DEMP.Title = \"حکم معادل\";\r\n DEMP.key = \"EMP\";\r\n DEMP.items = [];\r\n const FMDEMP: FormulaInfo = {};\r\n Deduct.items.push(FMDEMP);\r\n FMDEMP.Title = \"اولین حکم ماه\";\r\n FMDEMP.key = \"FMEMP\";\r\n FMDEMP.items = [];\r\n const LMDEMP: FormulaInfo = {};\r\n Deduct.items.push(LMDEMP);\r\n LMDEMP.Title = \"آخرین حکم ماه\";\r\n LMDEMP.key = \"LMEMP\";\r\n LMDEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, DEMP, \"\");\r\n this.getNode(x as Element, FMDEMP, \"\");\r\n this.getNode(x as Element, LMDEMP, \"\");\r\n });\r\n }\r\n\r\n const Boss: FormulaInfo = {};\r\n EmploymentOrder.items.push(Boss);\r\n Boss.Title = \"تعهدات\";\r\n Boss.key = \"Boss\";\r\n Boss.items = [];\r\n const BEMP: FormulaInfo = {};\r\n Boss.items.push(BEMP);\r\n BEMP.Title = \"حکم معادل\";\r\n BEMP.key = \"EMP\";\r\n BEMP.items = [];\r\n const FMBEMP: FormulaInfo = {};\r\n Boss.items.push(FMBEMP);\r\n FMBEMP.Title = \"اولین حکم ماه\";\r\n FMBEMP.key = \"FMEMP\";\r\n FMBEMP.items = [];\r\n const LMBEMP: FormulaInfo = {};\r\n Boss.items.push(LMBEMP);\r\n LMBEMP.Title = \"آخرین حکم ماه\";\r\n LMBEMP.key = \"LMEMP\";\r\n LMBEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, BEMP, \"\");\r\n this.getNode(x as Element, FMBEMP, \"\");\r\n this.getNode(x as Element, LMBEMP, \"\");\r\n });\r\n }\r\n const Works: FormulaInfo = {};\r\n EmploymentOrder.items.push(Works);\r\n Works.Title = \"کارکرد\";\r\n Works.key = \"Works\";\r\n Works.items = [];\r\n const WEMP: FormulaInfo = {};\r\n Works.items.push(WEMP);\r\n WEMP.Title = \"حکم معادل\";\r\n WEMP.key = \"EMP\";\r\n WEMP.items = [];\r\n const FMWEMP: FormulaInfo = {};\r\n Works.items.push(FMWEMP);\r\n FMWEMP.Title = \"اولین حکم ماه\";\r\n FMWEMP.key = \"FMEMP\";\r\n FMWEMP.items = [];\r\n const LMWEMP: FormulaInfo = {};\r\n Works.items.push(LMWEMP);\r\n LMWEMP.Title = \"آخرین حکم ماه\";\r\n LMWEMP.key = \"LMEMP\";\r\n LMWEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Work && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, WEMP, \"\");\r\n this.getNode(x as Element, FMWEMP, \"\");\r\n this.getNode(x as Element, LMWEMP, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n EmploymentOrder.items.push(Others);\r\n Others.Title = \"سایر\";\r\n Others.key = \"Others\";\r\n Others.items = [];\r\n const OEMP: FormulaInfo = {};\r\n Others.items.push(OEMP);\r\n OEMP.Title = \"حکم معادل\";\r\n OEMP.key = \"EMP\";\r\n OEMP.items = [];\r\n const FMOEMP: FormulaInfo = {};\r\n Others.items.push(FMOEMP);\r\n FMOEMP.Title = \"اولین حکم ماه\";\r\n FMOEMP.key = \"FMEMP\";\r\n FMOEMP.items = [];\r\n const LMOEMP: FormulaInfo = {};\r\n Others.items.push(LMWEMP);\r\n LMOEMP.Title = \"آخرین حکم ماه\";\r\n LMOEMP.key = \"LMEMP\";\r\n LMOEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, OEMP, \"\");\r\n this.getNode(x as Element, FMOEMP, \"\");\r\n this.getNode(x as Element, LMOEMP, \"\");\r\n });\r\n }\r\n return EmploymentOrder;\r\n }\r\n getNode(Row: Element, Node: FormulaInfo, kind: string) {\r\n const p: FormulaInfo = {};\r\n p.Title = \"محاسباتی\";\r\n p.key = Node.key + \"_\" + Row[\"Id\"].toString();\r\n p.items = [];\r\n if (kind.includes(\"X\")) p.Formula = \"Tax_\" + Node.key + \"_\" + Row[\"Id\"].toString() + \",EYear,EMonth,TaxGroupRef)\";\r\n else p.Formula = Node.key + \"_\" + Row[\"Id\"].toString();\r\n p.Title = `${Node.Title}_${Row[\"Title\"]}`;\r\n Node.items.push(p);\r\n }\r\n getPrevYearMonthComputationalElement() {\r\n const PreYearComputational: FormulaInfo = {};\r\n PreYearComputational.Title = \"محاسباتی سال تا ماه\";\r\n PreYearComputational.key = \"PreYearComputational\";\r\n PreYearComputational.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n PreYearComputational.items.push(Bonus);\r\n Bonus.Title = \"مزایا-سال تا ماه\";\r\n Bonus.key = \"YMV\";\r\n Bonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Bonus, \"\");\r\n });\r\n }\r\n const Deduct: FormulaInfo = {};\r\n PreYearComputational.items.push(Deduct);\r\n Deduct.Title = \"کسور-سال تا ماه\";\r\n Deduct.key = \"YMV\";\r\n Deduct.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Deduct, \"\");\r\n });\r\n }\r\n const Boss: FormulaInfo = {};\r\n PreYearComputational.items.push(Boss);\r\n Boss.Title = \"تعهدات-سال تا ماه\";\r\n Boss.key = \"YMV\";\r\n Boss.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Boss, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n PreYearComputational.items.push(Others);\r\n Others.Title = \"سایر-سال تا ماه\";\r\n Others.key = \"YMV\";\r\n Others.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Others, \"\");\r\n });\r\n }\r\n\r\n const EndYearBonus: FormulaInfo = {};\r\n PreYearComputational.items.push(EndYearBonus);\r\n EndYearBonus.Title = \"عيدي و پاداش آخر سال\";\r\n EndYearBonus.key = \"EndYearBonus\";\r\n EndYearBonus.items = [];\r\n\r\n const RewardSaveBonus: FormulaInfo = {};\r\n EndYearBonus.items.push(RewardSaveBonus);\r\n RewardSaveBonus.Title = \"ذخیره عیدی\";\r\n RewardSaveBonus.key = \"RSYMV\";\r\n RewardSaveBonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdSave)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardSaveBonus, \"\");\r\n });\r\n }\r\n const RewardPaymentBonus: FormulaInfo = {};\r\n EndYearBonus.items.push(RewardPaymentBonus);\r\n RewardPaymentBonus.Title = \"هزینه عیدی\";\r\n RewardPaymentBonus.key = \"RPYMV\";\r\n RewardPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdPay)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardPaymentBonus, \"\");\r\n });\r\n }\r\n\r\n const Buy: FormulaInfo = {};\r\n PreYearComputational.items.push(Buy);\r\n Buy.Title = \"ذخيره سنوات\";\r\n Buy.key = \"YBuy\";\r\n Buy.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.EstablishmentTheReserveOfYearsOfService)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Buy, \"\");\r\n });\r\n }\r\n const Vacation: FormulaInfo = {};\r\n PreYearComputational.items.push(Vacation);\r\n Vacation.Title = \"مرخصی\";\r\n Vacation.key = \"Vacation\";\r\n Vacation.items = [];\r\n const VacationSaveBonus: FormulaInfo = {};\r\n Vacation.items.push(VacationSaveBonus);\r\n VacationSaveBonus.Title = \"ذخیره مرخصی\";\r\n VacationSaveBonus.key = \"VSYMV\";\r\n VacationSaveBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationSave)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Vacation, \"\");\r\n });\r\n }\r\n const VacationPaymentBonus: FormulaInfo = {};\r\n Vacation.items.push(VacationPaymentBonus);\r\n VacationPaymentBonus.Title = \"بازخرید مرخصی\";\r\n VacationPaymentBonus.key = \"VPYMV\";\r\n VacationPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationBuy)\r\n .forEach((x) => {\r\n this.getNode(x as Element, VacationPaymentBonus, \"\");\r\n });\r\n }\r\n\r\n return PreYearComputational;\r\n }\r\n getPrevMonthComputationalElement() {\r\n const PreComputational: FormulaInfo = {};\r\n PreComputational.Title = \"محاسباتی ماه قبل\";\r\n PreComputational.key = \"PreComputational\";\r\n PreComputational.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n PreComputational.items.push(Bonus);\r\n Bonus.Title = \"مزایا-محاسباتی ماه قبل\";\r\n Bonus.key = \"PMV\";\r\n Bonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Bonus, \"\");\r\n });\r\n }\r\n const Deduct: FormulaInfo = {};\r\n PreComputational.items.push(Deduct);\r\n Deduct.Title = \"کسور-محاسباتی ماه قبل\";\r\n Deduct.key = \"PMV\";\r\n Deduct.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Deduct, \"\");\r\n });\r\n }\r\n const Boss: FormulaInfo = {};\r\n PreComputational.items.push(Boss);\r\n Boss.Title = \"تعهدات-محاسباتی ماه قبل\";\r\n Boss.key = \"PMV\";\r\n Boss.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Boss, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n PreComputational.items.push(Others);\r\n Others.Title = \"سایر-محاسباتی ماه قبل\";\r\n Others.key = \"PMV\";\r\n Others.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Others, \"\");\r\n });\r\n }\r\n\r\n const EndYearBonus: FormulaInfo = {};\r\n PreComputational.items.push(EndYearBonus);\r\n EndYearBonus.Title = \"عيدي و پاداش آخر سال\";\r\n EndYearBonus.key = \"EndYearBonus\";\r\n EndYearBonus.items = [];\r\n\r\n const RewardSaveBonus: FormulaInfo = {};\r\n EndYearBonus.items.push(RewardSaveBonus);\r\n RewardSaveBonus.Title = \"ذخیره عیدی\";\r\n RewardSaveBonus.key = \"RSPMV\";\r\n RewardSaveBonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdSave)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardSaveBonus, \"\");\r\n });\r\n }\r\n const RewardPaymentBonus: FormulaInfo = {};\r\n EndYearBonus.items.push(RewardPaymentBonus);\r\n RewardPaymentBonus.Title = \"هزینه عیدی\";\r\n RewardPaymentBonus.key = \"RPPMV\";\r\n RewardPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdPay)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardPaymentBonus, \"\");\r\n });\r\n }\r\n\r\n const Buy: FormulaInfo = {};\r\n PreComputational.items.push(Buy);\r\n Buy.Title = \"ذخيره سنوات\";\r\n Buy.key = \"PBuy\";\r\n Buy.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.EstablishmentTheReserveOfYearsOfService)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Buy, \"\");\r\n });\r\n }\r\n const Vacation: FormulaInfo = {};\r\n PreComputational.items.push(Vacation);\r\n Vacation.Title = \"مرخصی\";\r\n Vacation.key = \"Vacation\";\r\n Vacation.items = [];\r\n const VacationSaveBonus: FormulaInfo = {};\r\n Vacation.items.push(VacationSaveBonus);\r\n VacationSaveBonus.Title = \"ذخیره مرخصی\";\r\n VacationSaveBonus.key = \"VSPMV\";\r\n VacationSaveBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationSave)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Vacation, \"\");\r\n });\r\n }\r\n const VacationPaymentBonus: FormulaInfo = {};\r\n Vacation.items.push(VacationPaymentBonus);\r\n VacationPaymentBonus.Title = \"بازخرید مرخصی\";\r\n VacationPaymentBonus.key = \"VPPMV\";\r\n VacationPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationBuy)\r\n .forEach((x) => {\r\n this.getNode(x as Element, VacationPaymentBonus, \"\");\r\n });\r\n }\r\n\r\n return PreComputational;\r\n }\r\n getComputationalElement() {\r\n const Computational: FormulaInfo = {};\r\n Computational.Title = \"محاسباتی\";\r\n Computational.key = \"Computational\";\r\n Computational.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n Computational.items.push(Bonus);\r\n Bonus.Title = \"مزایا\";\r\n Bonus.key = \"MV\";\r\n Bonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Bonus, \"\");\r\n });\r\n }\r\n\r\n const Deduct: FormulaInfo = {};\r\n Computational.items.push(Deduct);\r\n Deduct.Title = \"کسور\";\r\n Deduct.key = \"MV\";\r\n Deduct.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Deduct, \"\");\r\n });\r\n }\r\n const Boss: FormulaInfo = {};\r\n Computational.items.push(Boss);\r\n Boss.Title = \"تعهدات\";\r\n Boss.key = \"MV\";\r\n Boss.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Boss, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n Computational.items.push(Others);\r\n Others.Title = \"سایر\";\r\n Others.key = \"MV\";\r\n Others.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Others, \"\");\r\n });\r\n }\r\n\r\n const EndYearBonus: FormulaInfo = {};\r\n Computational.items.push(EndYearBonus);\r\n EndYearBonus.Title = \"عيدي و پاداش آخر سال\";\r\n EndYearBonus.key = \"EndYearBonus\";\r\n EndYearBonus.items = [];\r\n\r\n const RewardSaveBonus: FormulaInfo = {};\r\n EndYearBonus.items.push(RewardSaveBonus);\r\n RewardSaveBonus.Title = \"ذخیره عیدی\";\r\n RewardSaveBonus.key = \"RSMV\";\r\n RewardSaveBonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdSave)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardSaveBonus, \"\");\r\n });\r\n }\r\n const RewardPaymentBonus: FormulaInfo = {};\r\n EndYearBonus.items.push(RewardPaymentBonus);\r\n RewardPaymentBonus.Title = \"هزینه عیدی\";\r\n RewardPaymentBonus.key = \"RPMV\";\r\n RewardPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdPay)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardPaymentBonus, \"\");\r\n });\r\n }\r\n const Buy: FormulaInfo = {};\r\n Computational.items.push(Buy);\r\n Buy.Title = \"ذخيره سنوات\";\r\n Buy.key = \"Buy\";\r\n Buy.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.EstablishmentTheReserveOfYearsOfService)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Buy, \"\");\r\n });\r\n }\r\n const Vacation: FormulaInfo = {};\r\n Computational.items.push(Vacation);\r\n Vacation.Title = \"مرخصی\";\r\n Vacation.key = \"Vacation\";\r\n Vacation.items = [];\r\n const VacationSaveBonus: FormulaInfo = {};\r\n Vacation.items.push(VacationSaveBonus);\r\n VacationSaveBonus.Title = \"ذخیره مرخصی\";\r\n VacationSaveBonus.key = \"VSMV\";\r\n VacationSaveBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationSave)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Vacation, \"\");\r\n });\r\n }\r\n const VacationPaymentBonus: FormulaInfo = {};\r\n Vacation.items.push(VacationPaymentBonus);\r\n VacationPaymentBonus.Title = \"بازخرید مرخصی\";\r\n VacationPaymentBonus.key = \"VPMV\";\r\n VacationPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationBuy)\r\n .forEach((x) => {\r\n this.getNode(x as Element, VacationPaymentBonus, \"\");\r\n });\r\n }\r\n\r\n return Computational;\r\n }\r\n getMonthlyInputElement() {\r\n const MonthlyInput: FormulaInfo = {};\r\n MonthlyInput.Title = \"ماهانه(فرم ورودی)\";\r\n MonthlyInput.key = \"MonthlyInput\";\r\n MonthlyInput.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n MonthlyInput.items.push(Bonus);\r\n Bonus.Title = \"مزایا\";\r\n Bonus.key = \"MW\";\r\n Bonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Bonus, \"\");\r\n });\r\n }\r\n const Work: FormulaInfo = {};\r\n MonthlyInput.items.push(Work);\r\n Work.Title = \"کارکرد\";\r\n Work.key = \"MW\";\r\n Work.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Work && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Work, \"\");\r\n });\r\n }\r\n const Deduct: FormulaInfo = {};\r\n MonthlyInput.items.push(Deduct);\r\n Deduct.Title = \"کسور\";\r\n Deduct.key = \"MW\";\r\n Deduct.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Deduct, \"\");\r\n });\r\n }\r\n const Boss: FormulaInfo = {};\r\n MonthlyInput.items.push(Boss);\r\n Boss.Title = \"تعهدات\";\r\n Boss.key = \"MW\";\r\n Boss.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Boss, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n MonthlyInput.items.push(Others);\r\n Others.Title = \"سایر\";\r\n Others.key = \"MW\";\r\n Others.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Others, \"\");\r\n });\r\n }\r\n return MonthlyInput;\r\n }\r\n getLoanElement() {\r\n const Loan: FormulaInfo = {};\r\n Loan.Title = \"وام کارکنان\";\r\n Loan.key = \"Loan\";\r\n Loan.items = [];\r\n\r\n const LoanInstallments: FormulaInfo = {};\r\n Loan.items.push(LoanInstallments);\r\n LoanInstallments.Title = \"قسط وام\";\r\n LoanInstallments.key = \"L\";\r\n LoanInstallments.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Loan && x.ElementKindCode === ElementKind.Computational)\r\n .forEach((x) => {\r\n this.getNode(x as Element, LoanInstallments, \"\");\r\n });\r\n }\r\n const LoanPyed: FormulaInfo = {};\r\n Loan.items.push(LoanPyed);\r\n LoanPyed.Title = \"جمع اقساط پرداخت شده\";\r\n LoanPyed.key = \"LP\";\r\n LoanPyed.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Loan && x.ElementKindCode === ElementKind.Computational)\r\n .forEach((x) => {\r\n this.getNode(x as Element, LoanPyed, \"\");\r\n });\r\n }\r\n const LoanOrignal: FormulaInfo = {};\r\n Loan.items.push(LoanOrignal);\r\n LoanOrignal.Title = \"اصل وام\";\r\n LoanOrignal.key = \"LO\";\r\n LoanOrignal.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Loan && x.ElementKindCode === ElementKind.Computational)\r\n .forEach((x) => {\r\n this.getNode(x as Element, LoanOrignal, \"\");\r\n });\r\n }\r\n return Loan;\r\n }\r\n getEmployment() {\r\n const empKind: FormulaInfo = {};\r\n empKind.Title = \"استخدامی\";\r\n empKind.key = \"EmpKind\";\r\n empKind.items = [];\r\n\r\n const StnWorkDays: FormulaInfo = {};\r\n empKind.items.push(StnWorkDays);\r\n StnWorkDays.Title = \"کارکرد استاندارد سال\";\r\n StnWorkDays.key = \"StnWorkDays\";\r\n StnWorkDays.Formula = \"StnWorkDays\";\r\n\r\n const YearDays: FormulaInfo = {};\r\n empKind.items.push(YearDays);\r\n YearDays.Title = \"جمع روزهای سال تا بحال\";\r\n YearDays.key = \"YearDays\";\r\n YearDays.Formula = \"YearDays\";\r\n\r\n const YearMonths: FormulaInfo = {};\r\n empKind.items.push(YearMonths);\r\n YearMonths.Title = \"جمع ماه های سال تا بحال\";\r\n YearMonths.key = \"YearMonths\";\r\n YearMonths.Formula = \"YearMonths\";\r\n\r\n const GroupCode: FormulaInfo = {};\r\n empKind.items.push(GroupCode);\r\n GroupCode.Title = \"مقدار عددي گروه شغلي\";\r\n GroupCode.key = \"JobGroupCode\";\r\n GroupCode.Formula = \"JobGroupCode\";\r\n\r\n const BaseCode: FormulaInfo = {};\r\n empKind.items.push(BaseCode);\r\n BaseCode.Title = \"مقدار عددي پايه شغلي\";\r\n BaseCode.key = \"JobBaseCode\";\r\n BaseCode.Formula = \"JobBaseCode\";\r\n\r\n const JobLevel_Code: FormulaInfo = {};\r\n empKind.items.push(JobLevel_Code);\r\n JobLevel_Code.Title = \"مقدار عددي رتبه شغلي\";\r\n JobLevel_Code.key = \"JobRankingCode\";\r\n JobLevel_Code.Formula = \"JobRankingCode\";\r\n\r\n const PersonnalCount: FormulaInfo = {};\r\n empKind.items.push(PersonnalCount);\r\n PersonnalCount.Title = \"تعداد كل كاركنان\";\r\n PersonnalCount.key = \"PersonnalCount\";\r\n PersonnalCount.Formula = \"PersonnalCount\";\r\n\r\n const CCPersonnalCount: FormulaInfo = {};\r\n empKind.items.push(CCPersonnalCount);\r\n CCPersonnalCount.Title = \"تعداد كاركنان به تفكيك مركز هزينه\";\r\n CCPersonnalCount.key = \"CCPersonnalCount\";\r\n CCPersonnalCount.Formula = \"CCPersonnalCount\";\r\n\r\n const LPersonnalCount: FormulaInfo = {};\r\n empKind.items.push(LPersonnalCount);\r\n LPersonnalCount.Title = \"تعداد كاركنان به تفكيك محل خدمت\";\r\n LPersonnalCount.key = \"WrkPlacePersonnalCount\";\r\n LPersonnalCount.Formula = \"WrkPlacePersonnalCount\";\r\n\r\n const OPersonnalCount: FormulaInfo = {};\r\n empKind.items.push(OPersonnalCount);\r\n OPersonnalCount.Title = \"تعداد كاركنان به تفكيك واحد سازماني\";\r\n OPersonnalCount.key = \"OraganationPersonnalCount\";\r\n OPersonnalCount.Formula = \"OraganationPersonnalCount\";\r\n\r\n const PPersonnalCount: FormulaInfo = {};\r\n empKind.items.push(PPersonnalCount);\r\n PPersonnalCount.Title = \"تعداد كاركنان به تفكيك پست\";\r\n PPersonnalCount.key = \"PositionPersonnalCount\";\r\n PPersonnalCount.Formula = \"PositionPersonnalCount\";\r\n\r\n const EMPPersonnalCount: FormulaInfo = {};\r\n empKind.items.push(EMPPersonnalCount);\r\n EMPPersonnalCount.Title = \"تعداد كاركنان به تفكيك استخدام\";\r\n EMPPersonnalCount.key = \"EmploymentPersonnalCount\";\r\n EMPPersonnalCount.Formula = \"EmploymentPersonnalCount\";\r\n\r\n const WorkYears: FormulaInfo = {};\r\n empKind.items.push(WorkYears);\r\n WorkYears.Title = \"سابقه كار درون سازماني به سال\";\r\n WorkYears.key = \"WorkYears\";\r\n WorkYears.Formula = \"WorkYears\";\r\n\r\n const WorkMonths: FormulaInfo = {};\r\n empKind.items.push(WorkMonths);\r\n WorkMonths.Title = \"سابقه كار درون سازماني به ماه\";\r\n WorkMonths.key = \"WorkMonths\";\r\n WorkMonths.Formula = \"WorkMonths\";\r\n\r\n const AllWorkDays: FormulaInfo = {};\r\n empKind.items.push(AllWorkDays);\r\n AllWorkDays.Title = \"سابقه كار درون سازماني به روز\";\r\n AllWorkDays.key = \"AllWorkDays\";\r\n AllWorkDays.Formula = \"AllWorkDays\";\r\n\r\n const JobCode: FormulaInfo = {};\r\n empKind.items.push(JobCode);\r\n JobCode.Title = \"كد شغل شخص\";\r\n JobCode.key = \"JobCode\";\r\n JobCode.Formula = \"JobCode\";\r\n\r\n const PositionCode: FormulaInfo = {};\r\n empKind.items.push(JobCode);\r\n PositionCode.Title = \"كدپست شخص\";\r\n PositionCode.key = \"PositionCode\";\r\n PositionCode.Formula = \"PositionCode\";\r\n\r\n const OrgCode: FormulaInfo = {};\r\n empKind.items.push(OrgCode);\r\n OrgCode.Title = \"كد واحد سازماني شخص\";\r\n OrgCode.key = \"OrganizationnaCode\";\r\n OrgCode.Formula = \"OrganizationCode\";\r\n\r\n const PersEMPKind: FormulaInfo = {};\r\n empKind.items.push(PersEMPKind);\r\n PersEMPKind.Title = \"كد نوع استخدام شخص\";\r\n PersEMPKind.key = \"EmploymentKindCode\";\r\n PersEMPKind.Formula = \"EmploymentKindodeCode\";\r\n\r\n const PersWorkplace: FormulaInfo = {};\r\n empKind.items.push(PersWorkplace);\r\n PersWorkplace.Title = \"كد محل خدمت شخص\";\r\n PersWorkplace.key = \"PersWorkplaceCode\";\r\n PersWorkplace.Formula = \"PersWorkplaceCode\";\r\n\r\n const PersCostCenter: FormulaInfo = {};\r\n empKind.items.push(PersCostCenter);\r\n PersCostCenter.Title = \"كد مركز هزينه شخص\";\r\n PersCostCenter.key = \"PersCostCenter\";\r\n PersCostCenter.Formula = \"PersCostCenterCode\";\r\n\r\n const CurWorkDays: FormulaInfo = {};\r\n empKind.items.push(CurWorkDays);\r\n CurWorkDays.Title = \"كاركرد ماه جاري\";\r\n CurWorkDays.key = \"CurWorkDays\";\r\n CurWorkDays.Formula = \"CurWorkDays\";\r\n\r\n const GrpAmount: FormulaInfo = {};\r\n empKind.items.push(GrpAmount);\r\n GrpAmount.Title = \"مقدار مبلغي گروه شغلي\";\r\n GrpAmount.key = \"JobGroupAmount\";\r\n GrpAmount.Formula = \"JobGroupAmount\";\r\n\r\n const BaseAmount: FormulaInfo = {};\r\n empKind.items.push(BaseAmount);\r\n BaseAmount.Title = \"مقدار مبلغي پايه شغلي\";\r\n BaseAmount.key = \"JobBaseAmount\";\r\n BaseAmount.Formula = \"JobBaseAmount\";\r\n\r\n const JobLevelAmount: FormulaInfo = {};\r\n empKind.items.push(JobLevelAmount);\r\n JobLevelAmount.Title = \"مقدار مبلغي رتبه شغلي\";\r\n JobLevelAmount.key = \"JobRankingAmount\";\r\n JobLevelAmount.Formula = \"JobRankingAmount\";\r\n\r\n return empKind;\r\n }\r\n getPersonnelElementInitial() {\r\n const PersonnelElementInitial: FormulaInfo = {};\r\n PersonnelElementInitial.Title = \"استقرار عوامل\";\r\n PersonnelElementInitial.key = \"PEI\";\r\n PersonnelElementInitial.items = [];\r\n\r\n if (this.ActiveAdjustmentElemenet && this.ActiveAdjustmentElemenet.length > 0) {\r\n this.ActiveAdjustmentElemenet.forEach((x) => {\r\n this.getNode(x as Element, PersonnelElementInitial, \"\");\r\n });\r\n } else\r\n this.httpCommonService\r\n .getList(`Element/GetHrmActiveAdjustmentElemenet/${this.accountService.authService.getHrmPayCurentYearMonth().CurrentYearMonth}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.ActiveAdjustmentElemenet = data as [];\r\n this.ActiveAdjustmentElemenet.forEach((x) => {\r\n this.getNode(x as Element, PersonnelElementInitial, \"\");\r\n });\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n\r\n return PersonnelElementInitial;\r\n }\r\n getpersonelInfo() {\r\n const personelInfo: FormulaInfo = {};\r\n personelInfo.Title = \"مشخصات کارکنان\";\r\n personelInfo.key = \"PersonelInfo\";\r\n personelInfo.items = [];\r\n personelInfo.items.push(this.getIDCard());\r\n personelInfo.items.push(this.getEmployment());\r\n return personelInfo;\r\n }\r\n getSystemsInfo() {\r\n const systems: FormulaInfo = {};\r\n systems.Title = \"سیستمی\";\r\n systems.key = \"systems\";\r\n systems.items = [];\r\n\r\n const monthDays: FormulaInfo = {};\r\n monthDays.Title = \"تعداد روزهای ماه\";\r\n monthDays.key = \"S_MonthDays\";\r\n monthDays.Formula = \"S_MonthDays\";\r\n monthDays.items = [];\r\n systems.items.push(monthDays);\r\n\r\n const IssueYear: FormulaInfo = {};\r\n IssueYear.Title = \"سال جاری\";\r\n IssueYear.key = \"S_IssueYear\";\r\n IssueYear.Formula = \"S_IssueYear\";\r\n IssueYear.items = [];\r\n systems.items.push(IssueYear);\r\n\r\n const IssueMonth: FormulaInfo = {};\r\n IssueMonth.Title = \"ماه جاری\";\r\n IssueMonth.key = \"S_IssueMonth\";\r\n IssueMonth.Formula = \"S_IssueMonth\";\r\n IssueMonth.items = [];\r\n systems.items.push(IssueMonth);\r\n\r\n const EffectYear: FormulaInfo = {};\r\n EffectYear.Title = \"سال محاسبه\";\r\n EffectYear.key = \"S_EffectYear\";\r\n EffectYear.Formula = \"S_EffectYear\";\r\n EffectYear.items = [];\r\n systems.items.push(EffectYear);\r\n\r\n const EffectMonth: FormulaInfo = {};\r\n EffectMonth.Title = \"ماه محاسبه\";\r\n EffectMonth.key = \"S_EffectMonth\";\r\n EffectMonth.Formula = \"S_EffectMonth\";\r\n EffectMonth.items = [];\r\n systems.items.push(EffectMonth);\r\n\r\n const InsurableItems: FormulaInfo = {};\r\n InsurableItems.Title = \"جمع مزایای مشمول بیمه\";\r\n InsurableItems.key = \"S_InsurableItems\";\r\n InsurableItems.Formula = \"S_InsurableItems\";\r\n InsurableItems.items = [];\r\n systems.items.push(InsurableItems);\r\n\r\n const TaxableContinues: FormulaInfo = {};\r\n TaxableContinues.Title = \"جمع مزایای مشمول مالیات مستمر\";\r\n TaxableContinues.key = \"S_TaxableContinues\";\r\n TaxableContinues.Formula = \"S_TaxableContinues\";\r\n TaxableContinues.items = [];\r\n systems.items.push(TaxableContinues);\r\n\r\n const TaxableUnContinues: FormulaInfo = {};\r\n TaxableUnContinues.Title = \"جمع مشمول ماليات غير مستمر\";\r\n TaxableUnContinues.key = \"S_TaxableUnContinues\";\r\n TaxableUnContinues.Formula = \"S_TaxableUnContinues\";\r\n TaxableUnContinues.items = [];\r\n systems.items.push(TaxableUnContinues);\r\n\r\n const BonusSum: FormulaInfo = {};\r\n BonusSum.Title = \"جمع مزایا\";\r\n BonusSum.key = \"S_BonusSum\";\r\n BonusSum.Formula = \"S_BonusSum\";\r\n BonusSum.items = [];\r\n systems.items.push(BonusSum);\r\n\r\n const DeductSum: FormulaInfo = {};\r\n DeductSum.Title = \"جمع کسور\";\r\n DeductSum.key = \"S_DeductSum\";\r\n DeductSum.Formula = \"S_DeductSum\";\r\n DeductSum.items = [];\r\n systems.items.push(DeductSum);\r\n\r\n const BossSum: FormulaInfo = {};\r\n BossSum.Title = \"جمع تعهدات\";\r\n BossSum.key = \"S_BossSum\";\r\n BossSum.Formula = \"S_BossSum\";\r\n BossSum.items = [];\r\n systems.items.push(BossSum);\r\n\r\n const LoanPaymentSum: FormulaInfo = {};\r\n LoanPaymentSum.Title = \"جمع اقساط وام\";\r\n LoanPaymentSum.key = \"S_LoanPaymentSum\";\r\n LoanPaymentSum.Formula = \"S_LoanPaymentSum\";\r\n LoanPaymentSum.items = [];\r\n systems.items.push(LoanPaymentSum);\r\n\r\n const MonthlyStandardWorks: FormulaInfo = {};\r\n MonthlyStandardWorks.Title = \"کارکرد استاندارد ماه\";\r\n MonthlyStandardWorks.key = \"S_MonthlyStandardWorks\";\r\n MonthlyStandardWorks.Formula = \"S_MonthlyStandardWorks\";\r\n MonthlyStandardWorks.items = [];\r\n systems.items.push(MonthlyStandardWorks);\r\n\r\n const MonthlycalendardWorks: FormulaInfo = {};\r\n MonthlycalendardWorks.Title = \"کارکرد تقویمی ماه\";\r\n MonthlycalendardWorks.key = \"S_MonthlycalendardWorks\";\r\n MonthlycalendardWorks.Formula = \"S_MonthlycalendardWorks\";\r\n MonthlycalendardWorks.items = [];\r\n systems.items.push(MonthlycalendardWorks);\r\n\r\n const MonthEffectWork: FormulaInfo = {};\r\n MonthEffectWork.Title = \"کارکرد موثر ماه\";\r\n MonthEffectWork.key = \"S_MonthEffectWork\";\r\n MonthEffectWork.Formula = \"S_MonthEffectWork\";\r\n MonthEffectWork.items = [];\r\n systems.items.push(MonthEffectWork);\r\n\r\n const YearDaysCount: FormulaInfo = {};\r\n YearDaysCount.Title = \"تعداد روزهای سال\";\r\n YearDaysCount.key = \"S_YearDaysCount\";\r\n YearDaysCount.Formula = \"S_YearDaysCount\";\r\n YearDaysCount.items = [];\r\n systems.items.push(YearDaysCount);\r\n\r\n const RewardEffectWork: FormulaInfo = {};\r\n RewardEffectWork.Title = \"کارکرد موثر عیدی پس از اصلاح\";\r\n RewardEffectWork.key = \"S_RewardEffectWork\";\r\n RewardEffectWork.Formula = \"S_RewardEffectWork\";\r\n RewardEffectWork.items = [];\r\n systems.items.push(RewardEffectWork);\r\n\r\n const VacationBuyAmount: FormulaInfo = {};\r\n VacationBuyAmount.Title = \"مقدار باز خرید مرخصی\";\r\n VacationBuyAmount.key = \"S_VacationBuyAmount\";\r\n VacationBuyAmount.Formula = \"S_VacationBuyAmount\";\r\n VacationBuyAmount.items = [];\r\n systems.items.push(VacationBuyAmount);\r\n\r\n const PersonnelCount: FormulaInfo = {};\r\n PersonnelCount.Title = \"تعداد نفر\";\r\n PersonnelCount.key = \"S_PersonnelCount\";\r\n PersonnelCount.Formula = \"S_PersonnelCount\";\r\n PersonnelCount.items = [];\r\n systems.items.push(PersonnelCount);\r\n\r\n const BuyToutalDays: FormulaInfo = {};\r\n BuyToutalDays.Title = \"ایام ذخیره سنوات خدمت\";\r\n BuyToutalDays.key = \"S_BuyToutalDays\";\r\n BuyToutalDays.Formula = \"S_BuyToutalDays\";\r\n BuyToutalDays.items = [];\r\n systems.items.push(BuyToutalDays);\r\n\r\n const IssueSickLeave: FormulaInfo = {};\r\n IssueSickLeave.Title = \"مرخصی استعلاجی حکمی\";\r\n IssueSickLeave.key = \"S_IssueSickLeave\";\r\n IssueSickLeave.Formula = \"S_IssueSickLeave\";\r\n IssueSickLeave.items = [];\r\n systems.items.push(IssueSickLeave);\r\n\r\n const IssueUnpaidVacationDays: FormulaInfo = {};\r\n IssueUnpaidVacationDays.Title = \"مرخصی بدون حقوق حکمی\";\r\n IssueUnpaidVacationDays.key = \"S_IssueUnpaidVacationDays\";\r\n IssueUnpaidVacationDays.Formula = \"S_IssueUnpaidVacationDays\";\r\n IssueUnpaidVacationDays.items = [];\r\n systems.items.push(IssueUnpaidVacationDays);\r\n\r\n return systems;\r\n }\r\n public hasChildren = (item: any) => item.items && item.items.length > 0;\r\n public fetchChildren = (item: any) => of(item.items);\r\n getIDCard() {\r\n const IDCard: FormulaInfo = {};\r\n IDCard.Title = \"شناسنامه ای\";\r\n IDCard.key = \"IDCard\";\r\n IDCard.items = [];\r\n const Marage: FormulaInfo = {};\r\n IDCard.items.push(Marage);\r\n Marage.Title = \"وضعیت تاهل\";\r\n Marage.key = \"MrgStateKindCode\";\r\n Marage.Formula = \"MrgStateKindCode\";\r\n\r\n const PersDateDIFFYear: FormulaInfo = {};\r\n IDCard.items.push(PersDateDIFFYear);\r\n PersDateDIFFYear.Title = \"سن شخص به سال\";\r\n PersDateDIFFYear.key = \"EmployeesAgeYear\";\r\n PersDateDIFFYear.Formula = \"EmployeesAgeYear\";\r\n\r\n const PersDateDIFFMonth: FormulaInfo = {};\r\n IDCard.items.push(PersDateDIFFMonth);\r\n PersDateDIFFMonth.Title = \"سن شخص به ماه\";\r\n PersDateDIFFMonth.key = \"EmployeesAgeMonth\";\r\n PersDateDIFFMonth.Formula = \"EmployeesAgeMonth\";\r\n\r\n const PersDateDIFFDay: FormulaInfo = {};\r\n IDCard.items.push(PersDateDIFFDay);\r\n PersDateDIFFDay.Title = \"سن شخص به روز\";\r\n PersDateDIFFDay.key = \"EmployeesAgeDay\";\r\n PersDateDIFFDay.Formula = \"EmployeesAgeDay\";\r\n\r\n const SexualityCode: FormulaInfo = {};\r\n IDCard.items.push(SexualityCode);\r\n SexualityCode.Title = \"جنسیت شخص\";\r\n SexualityCode.key = \"SexualityCode\";\r\n SexualityCode.Formula = \"SexualityCode\";\r\n\r\n const PersCode: FormulaInfo = {};\r\n IDCard.items.push(PersCode);\r\n PersCode.Title = \"کد پرسنلی\";\r\n PersCode.key = \"PersCode\";\r\n PersCode.Formula = \"PersCode\";\r\n return IDCard;\r\n }\r\n}\r\n","\r\n 0\">\r\n \r\n \r\n \r\n\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { Validators } from \"@angular/forms\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { CorrectYeKeService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { of } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Element } from \"src/app/backoffice/hrm/models/base-info/element.model\";\r\nimport { FormulaInfo } from \"src/app/backoffice/hrm/models/base-info/formula.model\";\r\nimport { HrmDiskFormat } from \"src/app/backoffice/hrm/models/base-info/hrm-disk-format.model\";\r\nimport { ElementGroup } from \"src/app/backoffice/hrm/models/enums/element-group\";\r\nimport { ElementKind } from \"src/app/backoffice/hrm/models/enums/element-kind\";\r\n@Component({\r\n selector: \"ngx-hrm-disk-item-formula\",\r\n templateUrl: \"./hrm-disk-item-formula.component.html\",\r\n styleUrls: [\"./hrm-disk-item-formula.component.scss\"],\r\n})\r\nexport class HrmDiskItemFormulaFormComponent extends BaseFormComponent {\r\n public apiName: string = \"HrmDiskFormat\";\r\n gridColumns: form_control[] = [];\r\n formulaInfo: FormulaInfo[];\r\n PropertyInfo: FormulaInfo[] = [];\r\n elements: Element[];\r\n _model: HrmDiskFormat;\r\n ActiveAdjustmentElemenet: Element[];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.label = \"قالب فایل خروجی\";\r\n this.noLoadData = true;\r\n this.detailName = \"HrmDiskItemFormats\";\r\n\r\n super.ngOnInit();\r\n this.setFormulaInfo();\r\n }\r\n setdefault() {\r\n if (this.currentrow) {\r\n this.model[this.detailName] = Object.assign({}, this.currentrow);\r\n }\r\n if (!this.model?.HrmDiskItemFormats) this.model.HrmDiskItemFormats = [];\r\n if (this.model[this.detailName].IsConst === undefined) this.model[this.detailName].IsConst = false;\r\n if (this.model[this.detailName].SortID == undefined) this.model[this.detailName].SortID = (this._model?.HrmDiskItemFormats?.length ?? 0) + 1;\r\n if (this.model[this.detailName].IsParam === undefined) this.model[this.detailName].IsParam = false;\r\n if (this.model[this.detailName].IsCodepage === undefined) this.model[this.detailName].IsCodepage = false;\r\n\r\n if (this.model[this.detailName].PropertyInfo) {\r\n this.PropertyInfo = JSON.parse(this.model[this.detailName].PropertyInfo);\r\n this.model[this.detailName].FarsiName = this.replaceItemNames(this.model[this.detailName].FieldName);\r\n }\r\n }\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n let flag: boolean = !this.model[this.detailName];\r\n if (this.model[this.detailName])\r\n flag = (this.model[this.detailName].HrmDiskFormatDateKindCode ?? 0) < 5 || (this.model[this.detailName].HrmDiskFormatDateKindCode ?? 0) > 6;\r\n this.columns.forEach((x) => {\r\n if (x.name === \"ConstFarsiField\") x.disabled = this.formGroup?.get(\"IsConst\")?.value !== true;\r\n if (x.name === \"FarsiName\") x.disabled = this.formGroup?.get(\"IsConst\")?.value === true;\r\n\r\n if (x.name === \"HrmDiskFormatDateKindId\") x.disabled = flag;\r\n });\r\n if (this.formGroup) this.model = this.getDataFromFormGroup();\r\n this.setFormGroup(this.model[this.detailName]);\r\n }\r\n setFormulaInfo() {\r\n this.formulaInfo = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.formulaInfo.push(this.getpersonelInfo());\r\n this.formulaInfo.push(this.getElement());\r\n } else {\r\n this.httpCommonService\r\n .getList(\"Element\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.elements = data as [];\r\n this.formulaInfo.push(this.getpersonelInfo());\r\n this.formulaInfo.push(this.getElement());\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n getElement() {\r\n const element: FormulaInfo = {};\r\n element.Title = \"عوامل\";\r\n element.key = \"element\";\r\n element.items = [];\r\n\r\n element.items.push(this.getEmploymentOrderElement());\r\n element.items.push(this.getComputationalElement());\r\n element.items.push(this.getMonthlyInputElement());\r\n element.items.push(this.getLoanElement());\r\n return element;\r\n }\r\n\r\n getEmploymentOrderElement() {\r\n const EmploymentOrder: FormulaInfo = {};\r\n EmploymentOrder.Title = \"حکمی\";\r\n EmploymentOrder.key = \"EmploymentOrder\";\r\n EmploymentOrder.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n EmploymentOrder.items.push(Bonus);\r\n Bonus.Title = \"مزایا\";\r\n Bonus.key = \"Bonus\";\r\n Bonus.items = [];\r\n const EMP: FormulaInfo = {};\r\n Bonus.items.push(EMP);\r\n EMP.Title = \"حکم معادل\";\r\n EMP.key = \"EMP\";\r\n EMP.items = [];\r\n const FMEMP: FormulaInfo = {};\r\n Bonus.items.push(FMEMP);\r\n FMEMP.Title = \"اولین حکم ماه\";\r\n FMEMP.key = \"FMEMP\";\r\n FMEMP.items = [];\r\n const LMEMP: FormulaInfo = {};\r\n Bonus.items.push(LMEMP);\r\n LMEMP.Title = \"آخرین حکم ماه\";\r\n LMEMP.key = \"LMEMP\";\r\n LMEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, EMP, \"\");\r\n this.getNode(x as Element, FMEMP, \"\");\r\n this.getNode(x as Element, LMEMP, \"\");\r\n });\r\n }\r\n const Deduct: FormulaInfo = {};\r\n EmploymentOrder.items.push(Deduct);\r\n Deduct.Title = \"کسور\";\r\n Deduct.key = \"Deduct\";\r\n Deduct.items = [];\r\n const DEMP: FormulaInfo = {};\r\n Deduct.items.push(DEMP);\r\n DEMP.Title = \"حکم معادل\";\r\n DEMP.key = \"EMP\";\r\n DEMP.items = [];\r\n const FMDEMP: FormulaInfo = {};\r\n Deduct.items.push(FMDEMP);\r\n FMDEMP.Title = \"اولین حکم ماه\";\r\n FMDEMP.key = \"FMEMP\";\r\n FMDEMP.items = [];\r\n const LMDEMP: FormulaInfo = {};\r\n Deduct.items.push(LMDEMP);\r\n LMDEMP.Title = \"آخرین حکم ماه\";\r\n LMDEMP.key = \"LMEMP\";\r\n LMDEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, DEMP, \"\");\r\n this.getNode(x as Element, FMDEMP, \"\");\r\n this.getNode(x as Element, LMDEMP, \"\");\r\n });\r\n }\r\n\r\n const Boss: FormulaInfo = {};\r\n EmploymentOrder.items.push(Boss);\r\n Boss.Title = \"تعهدات\";\r\n Boss.key = \"Boss\";\r\n Boss.items = [];\r\n const BEMP: FormulaInfo = {};\r\n Boss.items.push(BEMP);\r\n BEMP.Title = \"حکم معادل\";\r\n BEMP.key = \"EMP\";\r\n BEMP.items = [];\r\n const FMBEMP: FormulaInfo = {};\r\n Boss.items.push(FMBEMP);\r\n FMBEMP.Title = \"اولین حکم ماه\";\r\n FMBEMP.key = \"FMEMP\";\r\n FMBEMP.items = [];\r\n const LMBEMP: FormulaInfo = {};\r\n Boss.items.push(LMBEMP);\r\n LMBEMP.Title = \"آخرین حکم ماه\";\r\n LMBEMP.key = \"LMEMP\";\r\n LMBEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, BEMP, \"\");\r\n this.getNode(x as Element, FMBEMP, \"\");\r\n this.getNode(x as Element, LMBEMP, \"\");\r\n });\r\n }\r\n const Works: FormulaInfo = {};\r\n EmploymentOrder.items.push(Works);\r\n Works.Title = \"کارکرد\";\r\n Works.key = \"Works\";\r\n Works.items = [];\r\n const WEMP: FormulaInfo = {};\r\n Works.items.push(WEMP);\r\n WEMP.Title = \"حکم معادل\";\r\n WEMP.key = \"EMP\";\r\n WEMP.items = [];\r\n const FMWEMP: FormulaInfo = {};\r\n Works.items.push(FMWEMP);\r\n FMWEMP.Title = \"اولین حکم ماه\";\r\n FMWEMP.key = \"FMEMP\";\r\n FMWEMP.items = [];\r\n const LMWEMP: FormulaInfo = {};\r\n Works.items.push(LMWEMP);\r\n LMWEMP.Title = \"آخرین حکم ماه\";\r\n LMWEMP.key = \"LMEMP\";\r\n LMWEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Work && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, WEMP, \"\");\r\n this.getNode(x as Element, FMWEMP, \"\");\r\n this.getNode(x as Element, LMWEMP, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n EmploymentOrder.items.push(Others);\r\n Others.Title = \"سایر\";\r\n Others.key = \"Others\";\r\n Others.items = [];\r\n const OEMP: FormulaInfo = {};\r\n Others.items.push(OEMP);\r\n OEMP.Title = \"حکم معادل\";\r\n OEMP.key = \"EMP\";\r\n OEMP.items = [];\r\n const FMOEMP: FormulaInfo = {};\r\n Others.items.push(FMOEMP);\r\n FMOEMP.Title = \"اولین حکم ماه\";\r\n FMOEMP.key = \"FMEMP\";\r\n FMOEMP.items = [];\r\n const LMOEMP: FormulaInfo = {};\r\n Others.items.push(LMWEMP);\r\n LMOEMP.Title = \"آخرین حکم ماه\";\r\n LMOEMP.key = \"LMEMP\";\r\n LMOEMP.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other && x.ElementKindCode === ElementKind.EmploymentOrder)\r\n .forEach((x) => {\r\n this.getNode(x as Element, OEMP, \"\");\r\n this.getNode(x as Element, FMOEMP, \"\");\r\n this.getNode(x as Element, LMOEMP, \"\");\r\n });\r\n }\r\n return EmploymentOrder;\r\n }\r\n getNode(Row: Element, Node: FormulaInfo, kind: string) {\r\n const p: FormulaInfo = {};\r\n p.Title = \"محاسباتی\";\r\n p.key = Node.key + \"_\" + Row[\"Id\"].toString();\r\n p.items = [];\r\n if (kind.includes(\"X\")) p.Formula = \"Tax_\" + Node.key + \"_\" + Row[\"Id\"].toString() + \",EYear,EMonth,TaxGroupRef)\";\r\n else p.Formula = Node.key + \"_\" + Row[\"Id\"].toString();\r\n p.Title = `${Node.Title}_${Row[\"Title\"]}`;\r\n Node.items.push(p);\r\n }\r\n\r\n getComputationalElement() {\r\n const Computational: FormulaInfo = {};\r\n Computational.Title = \"محاسباتی\";\r\n Computational.key = \"Computational\";\r\n Computational.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n Computational.items.push(Bonus);\r\n Bonus.Title = \"مزایا\";\r\n Bonus.key = \"MV\";\r\n Bonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Bonus, \"\");\r\n });\r\n }\r\n\r\n const Deduct: FormulaInfo = {};\r\n Computational.items.push(Deduct);\r\n Deduct.Title = \"کسور\";\r\n Deduct.key = \"MV\";\r\n Deduct.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Deduct, \"\");\r\n });\r\n }\r\n const Boss: FormulaInfo = {};\r\n Computational.items.push(Boss);\r\n Boss.Title = \"تعهدات\";\r\n Boss.key = \"MV\";\r\n Boss.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Boss, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n Computational.items.push(Others);\r\n Others.Title = \"سایر\";\r\n Others.key = \"MV\";\r\n Others.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Others, \"\");\r\n });\r\n }\r\n\r\n const EndYearBonus: FormulaInfo = {};\r\n Computational.items.push(EndYearBonus);\r\n EndYearBonus.Title = \"عيدي و پاداش آخر سال\";\r\n EndYearBonus.key = \"EndYearBonus\";\r\n EndYearBonus.items = [];\r\n\r\n const RewardSaveBonus: FormulaInfo = {};\r\n EndYearBonus.items.push(RewardSaveBonus);\r\n RewardSaveBonus.Title = \"ذخیره عیدی\";\r\n RewardSaveBonus.key = \"RSMV\";\r\n RewardSaveBonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdSave)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardSaveBonus, \"\");\r\n });\r\n }\r\n const RewardPaymentBonus: FormulaInfo = {};\r\n EndYearBonus.items.push(RewardPaymentBonus);\r\n RewardPaymentBonus.Title = \"هزینه عیدی\";\r\n RewardPaymentBonus.key = \"RPMV\";\r\n RewardPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.RwrdPay)\r\n .forEach((x) => {\r\n this.getNode(x as Element, RewardPaymentBonus, \"\");\r\n });\r\n }\r\n const Buy: FormulaInfo = {};\r\n Computational.items.push(Buy);\r\n Buy.Title = \"ذخيره سنوات\";\r\n Buy.key = \"Buy\";\r\n Buy.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.EstablishmentTheReserveOfYearsOfService)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Buy, \"\");\r\n });\r\n }\r\n const Vacation: FormulaInfo = {};\r\n Computational.items.push(Vacation);\r\n Vacation.Title = \"مرخصی\";\r\n Vacation.key = \"Vacation\";\r\n Vacation.items = [];\r\n const VacationSaveBonus: FormulaInfo = {};\r\n Vacation.items.push(VacationSaveBonus);\r\n VacationSaveBonus.Title = \"ذخیره مرخصی\";\r\n VacationSaveBonus.key = \"VSMV\";\r\n VacationSaveBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationSave)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Vacation, \"\");\r\n });\r\n }\r\n const VacationPaymentBonus: FormulaInfo = {};\r\n Vacation.items.push(VacationPaymentBonus);\r\n VacationPaymentBonus.Title = \"بازخرید مرخصی\";\r\n VacationPaymentBonus.key = \"VPMV\";\r\n VacationPaymentBonus.items = [];\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.VacationBuy)\r\n .forEach((x) => {\r\n this.getNode(x as Element, VacationPaymentBonus, \"\");\r\n });\r\n }\r\n\r\n return Computational;\r\n }\r\n getMonthlyInputElement() {\r\n const MonthlyInput: FormulaInfo = {};\r\n MonthlyInput.Title = \"ماهانه(فرم ورودی)\";\r\n MonthlyInput.key = \"MonthlyInput\";\r\n MonthlyInput.items = [];\r\n\r\n const Bonus: FormulaInfo = {};\r\n MonthlyInput.items.push(Bonus);\r\n Bonus.Title = \"مزایا\";\r\n Bonus.key = \"MW\";\r\n Bonus.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Bonus && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Bonus, \"\");\r\n });\r\n }\r\n const Work: FormulaInfo = {};\r\n MonthlyInput.items.push(Work);\r\n Work.Title = \"کارکرد\";\r\n Work.key = \"MW\";\r\n Work.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Work && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Work, \"\");\r\n });\r\n }\r\n const Deduct: FormulaInfo = {};\r\n MonthlyInput.items.push(Deduct);\r\n Deduct.Title = \"کسور\";\r\n Deduct.key = \"MW\";\r\n Deduct.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Deduct && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Deduct, \"\");\r\n });\r\n }\r\n const Boss: FormulaInfo = {};\r\n MonthlyInput.items.push(Boss);\r\n Boss.Title = \"تعهدات\";\r\n Boss.key = \"MW\";\r\n Boss.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Boss && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Boss, \"\");\r\n });\r\n }\r\n const Others: FormulaInfo = {};\r\n MonthlyInput.items.push(Others);\r\n Others.Title = \"سایر\";\r\n Others.key = \"MW\";\r\n Others.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Other && x.ElementKindCode === ElementKind.InputForm)\r\n .forEach((x) => {\r\n this.getNode(x as Element, Others, \"\");\r\n });\r\n }\r\n return MonthlyInput;\r\n }\r\n getLoanElement() {\r\n const Loan: FormulaInfo = {};\r\n Loan.Title = \"وام کارکنان\";\r\n Loan.key = \"Loan\";\r\n Loan.items = [];\r\n\r\n const LoanInstallments: FormulaInfo = {};\r\n Loan.items.push(LoanInstallments);\r\n LoanInstallments.Title = \"قسط وام\";\r\n LoanInstallments.key = \"L\";\r\n LoanInstallments.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Loan && x.ElementKindCode === ElementKind.Computational)\r\n .forEach((x) => {\r\n this.getNode(x as Element, LoanInstallments, \"\");\r\n });\r\n }\r\n const LoanPyed: FormulaInfo = {};\r\n Loan.items.push(LoanPyed);\r\n LoanPyed.Title = \"جمع اقساط پرداخت شده\";\r\n LoanPyed.key = \"LP\";\r\n LoanPyed.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Loan && x.ElementKindCode === ElementKind.Computational)\r\n .forEach((x) => {\r\n this.getNode(x as Element, LoanPyed, \"\");\r\n });\r\n }\r\n const LoanOrignal: FormulaInfo = {};\r\n Loan.items.push(LoanOrignal);\r\n LoanOrignal.Title = \"اصل وام\";\r\n LoanOrignal.key = \"LO\";\r\n LoanOrignal.items = [];\r\n\r\n if (this.elements && this.elements.length > 0) {\r\n this.elements\r\n .filter((x) => x.ElementGroupCode === ElementGroup.Loan && x.ElementKindCode === ElementKind.Computational)\r\n .forEach((x) => {\r\n this.getNode(x as Element, LoanOrignal, \"\");\r\n });\r\n }\r\n return Loan;\r\n }\r\n getBankAccountInfo() {\r\n const empKind: FormulaInfo = {};\r\n empKind.Title = \"حساب بانكي\";\r\n empKind.key = \"BankAccount\";\r\n empKind.items = [];\r\n\r\n const BankTitle: FormulaInfo = {};\r\n empKind.items.push(BankTitle);\r\n BankTitle.Title = \"محل پرداخت\";\r\n BankTitle.key = \"BankTitle\";\r\n BankTitle.Formula = \"BankTitle\";\r\n\r\n const AccountType: FormulaInfo = {};\r\n empKind.items.push(AccountType);\r\n AccountType.Title = \"نوع حساب\";\r\n AccountType.key = \"AccountType\";\r\n AccountType.Formula = \"AccountType\";\r\n\r\n const BankAccount: FormulaInfo = {};\r\n empKind.items.push(BankAccount);\r\n BankAccount.Title = \"شماره حساب\";\r\n BankAccount.key = \"BankAccount\";\r\n BankAccount.Formula = \"BankAccount\";\r\n\r\n const BankAccount2: FormulaInfo = {};\r\n empKind.items.push(BankAccount2);\r\n BankAccount2.Title = \"شماره حساب 2\";\r\n BankAccount2.key = \"BankAccount2\";\r\n BankAccount2.Formula = \"BankAccount2\";\r\n\r\n const BankAccount3: FormulaInfo = {};\r\n empKind.items.push(BankAccount3);\r\n BankAccount3.Title = \"شماره حساب 3\";\r\n BankAccount3.key = \"BankAccount3\";\r\n BankAccount3.Formula = \"BankAccount3\";\r\n\r\n const BankAccount4: FormulaInfo = {};\r\n empKind.items.push(BankAccount4);\r\n BankAccount4.Title = \"شماره حساب 4\";\r\n BankAccount4.key = \"BankAccount4\";\r\n BankAccount4.Formula = \"BankAccount4\";\r\n\r\n const BankAccount5: FormulaInfo = {};\r\n empKind.items.push(BankAccount5);\r\n BankAccount5.Title = \"شماره حساب 5\";\r\n BankAccount5.key = \"BankAccount5\";\r\n BankAccount5.Formula = \"BankAccount5\";\r\n\r\n return empKind;\r\n }\r\n getTaxInfo() {\r\n const empKind: FormulaInfo = {};\r\n empKind.Title = \"اطلاعات ماليات\";\r\n empKind.key = \"TaxBranch\";\r\n empKind.items = [];\r\n\r\n const PostCode: FormulaInfo = {};\r\n empKind.items.push(PostCode);\r\n PostCode.Title = \"كد پستي\";\r\n PostCode.key = \"PostCode\";\r\n PostCode.Formula = \"PostCode\";\r\n\r\n const EducationCode: FormulaInfo = {};\r\n empKind.items.push(EducationCode);\r\n EducationCode.Title = \"كد مدرك تحصيلي\";\r\n EducationCode.key = \"EducationCode\";\r\n EducationCode.Formula = \"EducationCode\";\r\n\r\n const SerialCode: FormulaInfo = {};\r\n empKind.items.push(SerialCode);\r\n SerialCode.Title = \"كد رسته\";\r\n SerialCode.key = \"RastehCode\";\r\n SerialCode.Formula = \"RastehCode\";\r\n\r\n const TaxFreeCode: FormulaInfo = {};\r\n empKind.items.push(TaxFreeCode);\r\n TaxFreeCode.Title = \"كد معافيت مالياتي\";\r\n TaxFreeCode.key = \"TaxFreeCode\";\r\n TaxFreeCode.Formula = \"TaxFreeCode\";\r\n\r\n const MeliatCode: FormulaInfo = {};\r\n empKind.items.push(MeliatCode);\r\n MeliatCode.Title = \"كد مليت\";\r\n MeliatCode.key = \"MeliatCode\";\r\n MeliatCode.Formula = \"MeliatCode\";\r\n\r\n const TaxBranchTitle: FormulaInfo = {};\r\n empKind.items.push(TaxBranchTitle);\r\n TaxBranchTitle.Title = \"حوزه مالیاتی\";\r\n TaxBranchTitle.key = \"TaxBranchTitle\";\r\n TaxBranchTitle.Formula = \"TaxBranchTitle\";\r\n\r\n const TB_BranchID: FormulaInfo = {};\r\n empKind.items.push(TB_BranchID);\r\n TB_BranchID.Title = \"كد حوزه ماليات\";\r\n TB_BranchID.key = \"BranchID\";\r\n TB_BranchID.Formula = \"BranchID\";\r\n\r\n const TB_CompName: FormulaInfo = {};\r\n empKind.items.push(TB_CompName);\r\n TB_CompName.Title = \"نام شركت\";\r\n TB_CompName.key = \"CompName\";\r\n TB_CompName.Formula = \"CompName\";\r\n\r\n const TB_farm: FormulaInfo = {};\r\n empKind.items.push(TB_farm);\r\n TB_farm.Title = \"نام كارفرما\";\r\n TB_farm.key = \"EmployerName\";\r\n TB_farm.Formula = \"EmployerName\";\r\n\r\n const TB_adrs: FormulaInfo = {};\r\n empKind.items.push(TB_adrs);\r\n TB_adrs.Title = \"آدرس شركت\";\r\n TB_adrs.key = \"EmployerAddress\";\r\n TB_adrs.Formula = \"EmployerAddress\";\r\n\r\n const EconomicNumber: FormulaInfo = {};\r\n empKind.items.push(EconomicNumber);\r\n EconomicNumber.Title = \"شماره اقتصادي كارفرما\";\r\n EconomicNumber.key = \"EconomicNumber\";\r\n EconomicNumber.Formula = \"EconomicNumber\";\r\n\r\n const TB_ZipCode: FormulaInfo = {};\r\n empKind.items.push(TB_ZipCode);\r\n TB_ZipCode.Title = \"كد پستي كارفرما\";\r\n TB_ZipCode.key = \"ZipCode\";\r\n TB_ZipCode.Formula = \"ZipCode\";\r\n\r\n const TB_PhoneNumber: FormulaInfo = {};\r\n empKind.items.push(TB_PhoneNumber);\r\n TB_PhoneNumber.Title = \"شماره تلفن\";\r\n TB_PhoneNumber.key = \"PhoneNumber\";\r\n TB_PhoneNumber.Formula = \"PhoneNumber\";\r\n\r\n const TB_OwnerNationalNumber: FormulaInfo = {};\r\n empKind.items.push(TB_OwnerNationalNumber);\r\n TB_OwnerNationalNumber.Title = \"كد ملي صاحب امضاء اول\";\r\n TB_OwnerNationalNumber.key = \"OwnerNationalNumber\";\r\n TB_OwnerNationalNumber.Formula = \"OwnerNationalNumber\";\r\n\r\n const TB_OwnerFirstName: FormulaInfo = {};\r\n empKind.items.push(TB_OwnerFirstName);\r\n TB_OwnerFirstName.Title = \"نام صاحب امضاء اول\";\r\n TB_OwnerFirstName.key = \"OwnerFirstName\";\r\n TB_OwnerFirstName.Formula = \"OwnerFirstName\";\r\n\r\n const TB_OwnerLastName: FormulaInfo = {};\r\n empKind.items.push(TB_OwnerLastName);\r\n TB_OwnerLastName.Title = \"نام خانوادگی صاحب امضاء اول\";\r\n TB_OwnerLastName.key = \"OwnerLastName\";\r\n TB_OwnerLastName.Formula = \"OwnerLastName\";\r\n\r\n const TB_OwnerPost: FormulaInfo = {};\r\n empKind.items.push(TB_OwnerPost);\r\n TB_OwnerPost.Title = \"سمت صاحب امضاء اول\";\r\n TB_OwnerPost.key = \"OwnerPost\";\r\n TB_OwnerPost.Formula = \"OwnerPost\";\r\n\r\n return empKind;\r\n }\r\n getEmployment() {\r\n const empKind: FormulaInfo = {};\r\n empKind.Title = \"استخدامی\";\r\n empKind.key = \"EmpKind\";\r\n empKind.items = [];\r\n\r\n const OrganizationUnitTitle: FormulaInfo = {};\r\n empKind.items.push(OrganizationUnitTitle);\r\n OrganizationUnitTitle.Title = \"واحد سازماني شخص\";\r\n OrganizationUnitTitle.key = \"OrganizationUnitTitle\";\r\n OrganizationUnitTitle.Formula = \"OrganizationUnitTitle\";\r\n\r\n const JobTitle: FormulaInfo = {};\r\n empKind.items.push(JobTitle);\r\n JobTitle.Title = \"شغل شخص\";\r\n JobTitle.key = \"JobTitle\";\r\n JobTitle.Formula = \"JobTitle\";\r\n\r\n const PositionTitle: FormulaInfo = {};\r\n empKind.items.push(PositionTitle);\r\n PositionTitle.Title = \"پست شخص\";\r\n PositionTitle.key = \"PositionTitle\";\r\n PositionTitle.Formula = \"PositionTitle\";\r\n\r\n const EmploymentKindTitle: FormulaInfo = {};\r\n empKind.items.push(EmploymentKindTitle);\r\n EmploymentKindTitle.Title = \"نوع استخدام شخص\";\r\n EmploymentKindTitle.key = \"EmploymentKindTitle\";\r\n EmploymentKindTitle.Formula = \"EmploymentKindTitle\";\r\n\r\n const PersWorkplaceTitle: FormulaInfo = {};\r\n empKind.items.push(PersWorkplaceTitle);\r\n PersWorkplaceTitle.Title = \"محل خدمت شخص\";\r\n PersWorkplaceTitle.key = \"PersWorkplaceTitle\";\r\n PersWorkplaceTitle.Formula = \"PersWorkplaceTitle\";\r\n\r\n const PersCostCenterTitle: FormulaInfo = {};\r\n empKind.items.push(PersCostCenterTitle);\r\n PersCostCenterTitle.Title = \"مركز هزينه شخص\";\r\n PersCostCenterTitle.key = \"PersCostCenterTitle\";\r\n PersCostCenterTitle.Formula = \"PersCostCenterTitle\";\r\n\r\n const InsBranchTitle: FormulaInfo = {};\r\n empKind.items.push(InsBranchTitle);\r\n InsBranchTitle.Title = \"شعبه بيمه\";\r\n InsBranchTitle.key = \"InsBranchTitle\";\r\n InsBranchTitle.Formula = \"InsBranchTitle\";\r\n\r\n const InsueID: FormulaInfo = {};\r\n empKind.items.push(InsueID);\r\n InsueID.Title = \"شماره بيمه\";\r\n InsueID.key = \"InsueID\";\r\n InsueID.Formula = \"InsueID\";\r\n\r\n const IB_BranchID: FormulaInfo = {};\r\n empKind.items.push(IB_BranchID);\r\n IB_BranchID.Title = \"كد كارگاه\";\r\n IB_BranchID.key = \"IB_BranchID\";\r\n IB_BranchID.Formula = \"IB_BranchID\";\r\n\r\n const EMPStartDate: FormulaInfo = {};\r\n empKind.items.push(EMPStartDate);\r\n EMPStartDate.Title = \"تاریخ استخدام\";\r\n EMPStartDate.key = \"EMPStartDate\";\r\n EMPStartDate.Formula = \"EMPStartDate\";\r\n\r\n const EmpEndDate: FormulaInfo = {};\r\n empKind.items.push(EmpEndDate);\r\n EmpEndDate.Title = \"تاریخ پایان خدمت\";\r\n EmpEndDate.key = \"EmpEndDate\";\r\n EmpEndDate.Formula = \"EmpEndDate\";\r\n\r\n return empKind;\r\n }\r\n getpersonelInfo() {\r\n const personelInfo: FormulaInfo = {};\r\n personelInfo.Title = \"مشخصات کارکنان\";\r\n personelInfo.key = \"PersonelInfo\";\r\n personelInfo.items = [];\r\n personelInfo.items.push(this.getIDCard());\r\n personelInfo.items.push(this.getEmployment());\r\n personelInfo.items.push(this.getBankAccountInfo());\r\n personelInfo.items.push(this.getTaxInfo());\r\n\r\n const CurrentDate: FormulaInfo = {};\r\n personelInfo.items.push(CurrentDate);\r\n CurrentDate.Title = \"تاريخ\";\r\n CurrentDate.key = \"CurrentDate\";\r\n CurrentDate.Formula = \"CurrentDate\";\r\n\r\n const CurrentYear: FormulaInfo = {};\r\n personelInfo.items.push(CurrentYear);\r\n CurrentYear.Title = \"سال\";\r\n CurrentYear.key = \"CurrentYear\";\r\n CurrentYear.Formula = \"CurrentYear\";\r\n\r\n const CurrentMonth: FormulaInfo = {};\r\n personelInfo.items.push(CurrentMonth);\r\n CurrentMonth.Title = \"ماه\";\r\n CurrentMonth.key = \"CurrentMonth\";\r\n CurrentMonth.Formula = \"CurrentMonth\";\r\n\r\n const SanavatYear: FormulaInfo = {};\r\n personelInfo.items.push(SanavatYear);\r\n SanavatYear.Title = \"سنوات خدمت(سابقه درون سازماني به سال)\";\r\n SanavatYear.key = \"SanavatYear\";\r\n SanavatYear.Formula = \"SanavatYear\";\r\n\r\n const SanavatMonth: FormulaInfo = {};\r\n personelInfo.items.push(SanavatMonth);\r\n SanavatMonth.Title = \"سنوات خدمت(سابقه درون سازماني به ماه)\";\r\n SanavatMonth.key = \"SanavatMonth\";\r\n SanavatMonth.Formula = \"SanavatMonth\";\r\n\r\n const SanavatDays: FormulaInfo = {};\r\n personelInfo.items.push(SanavatDays);\r\n SanavatDays.Title = \"سنوا خدمت (سابقه درون سازماني به روز)\";\r\n SanavatDays.key = \"SanavatDays\";\r\n SanavatDays.Formula = \"SanavatDays\";\r\n return personelInfo;\r\n }\r\n\r\n public hasChildren = (item: any) => item.items && item.items.length > 0;\r\n public fetchChildren = (item: any) => of(item.items);\r\n getIDCard() {\r\n const IDCard: FormulaInfo = {};\r\n IDCard.Title = \"شناسنامه ای\";\r\n IDCard.key = \"IDCard\";\r\n IDCard.items = [];\r\n\r\n const PersCode: FormulaInfo = {};\r\n IDCard.items.push(PersCode);\r\n PersCode.Title = \"کد پرسنلی\";\r\n PersCode.key = \"PersCode\";\r\n PersCode.Formula = \"PersCode\";\r\n\r\n const FirstName: FormulaInfo = {};\r\n IDCard.items.push(FirstName);\r\n FirstName.Title = \"نام\";\r\n FirstName.key = \"FirstName\";\r\n FirstName.Formula = \"FirstName\";\r\n\r\n const LastName: FormulaInfo = {};\r\n IDCard.items.push(LastName);\r\n LastName.Title = \"نام خانوادگی\";\r\n LastName.key = \"LastName\";\r\n LastName.Formula = \"LastName\";\r\n\r\n const FatherName: FormulaInfo = {};\r\n IDCard.items.push(FatherName);\r\n FatherName.Title = \"نام پدر\";\r\n FatherName.key = \"FatherName\";\r\n FatherName.Formula = \"FatherName\";\r\n\r\n const CertificateID: FormulaInfo = {};\r\n IDCard.items.push(CertificateID);\r\n CertificateID.Title = \"شماره شناسنامه\";\r\n CertificateID.key = \"CertificateID\";\r\n CertificateID.Formula = \"CertificateID\";\r\n\r\n const SexualityCode: FormulaInfo = {};\r\n IDCard.items.push(SexualityCode);\r\n SexualityCode.Title = \"جنسیت شخص\";\r\n SexualityCode.key = \"SexualityCode\";\r\n SexualityCode.Formula = \"SexualityCode\";\r\n\r\n const BirthDate: FormulaInfo = {};\r\n IDCard.items.push(BirthDate);\r\n BirthDate.Title = \"تاريخ تولد شخص\";\r\n BirthDate.key = \"BirthDate\";\r\n BirthDate.Formula = \"BirthDate\";\r\n\r\n const NationalID: FormulaInfo = {};\r\n IDCard.items.push(NationalID);\r\n NationalID.Title = \"كد ملي\";\r\n NationalID.key = \"NationalID\";\r\n NationalID.Formula = \"NationalID\";\r\n\r\n return IDCard;\r\n }\r\n valueChangeWithName($event) {\r\n if ($event && $event?.name === \"IsConst\") {\r\n this.setColumnAttribute();\r\n if (this.formGroup?.get(\"IsConst\")?.value === true) {\r\n this.formGroup?.get(\"ConstFarsiField\")?.enable();\r\n this.formGroup?.get(\"ConstFarsiField\")?.setValidators(Validators.required);\r\n this.columns.find((x) => x.name === \"ConstFarsiField\").disabled = false;\r\n this.formGroup?.get(\"FarsiName\")?.disable();\r\n this.formGroup?.get(\"FarsiName\").clearValidators();\r\n this.columns.find((x) => x.name === \"FarsiName\").disabled = true;\r\n } else {\r\n this.formGroup?.get(\"ConstFarsiField\")?.disable();\r\n this.formGroup?.get(\"ConstFarsiField\")?.clearValidators();\r\n this.columns.find((x) => x.name === \"ConstFarsiField\").disabled = true;\r\n this.formGroup?.get(\"FarsiName\")?.enable();\r\n this.formGroup?.get(\"FarsiName\")?.setValidators(Validators.required);\r\n this.columns.find((x) => x.name === \"FarsiName\").disabled = false;\r\n }\r\n this.cd.markForCheck();\r\n }\r\n }\r\n onValueChangeByApiName($event) {\r\n if (\r\n $event &&\r\n $event.apiName &&\r\n $event.data &&\r\n $event.data.Id &&\r\n $event.apiName.includes(\"Lookup\") &&\r\n $event.data.Category === \"HrmDiskFormatValueKind\"\r\n ) {\r\n this.setValue(\"HrmDiskFormatDateKindCode\", $event.data.Code);\r\n this.setValue(\"HrmDiskFormatDateKindTitle\", $event.data.Title);\r\n this.model[this.detailName].HrmDiskFormatDateKindCode = $event.data.Code;\r\n this.model[this.detailName].HrmDiskFormatDateKindTitle = $event.data.Title;\r\n this.setColumnAttribute();\r\n }\r\n }\r\n addItem(selected: any) {\r\n if (this.formGroup?.get(\"IsConst\")?.value === true || !selected?.dataItem) return;\r\n if (selected && selected.dataItem) {\r\n if (selected.dataItem.items && selected.dataItem.items.lengh > 0) return;\r\n selected.dataItem.Title = CorrectYeKeService.getCorrectYeKe(selected.dataItem.Title);\r\n if (!this.PropertyInfo) this.PropertyInfo = [];\r\n const text = this.wrap(selected.dataItem.Title);\r\n\r\n if (!this.PropertyInfo.some((x) => x.key === selected.dataItem.key)) this.PropertyInfo.push(selected.dataItem);\r\n else this.PropertyInfo.find((x) => x.key === selected.dataItem.key).Title = selected.dataItem.Title;\r\n let value = this.formGroup.controls[\"FarsiName\"].value;\r\n if (\r\n value &&\r\n (value[value.length - 1] === \"+\" || value[value.length - 1] === \"-\" || value[value.length - 1] === \"*\" || value[value.length - 1] === \"/\")\r\n )\r\n value = `${value}${text}`;\r\n else value = text;\r\n this.formGroup.controls[\"FarsiName\"].setValue(value);\r\n if (!this.formGroup?.controls[\"ColumnPersianTitle\"]?.value) this.formGroup.controls[\"ColumnPersianTitle\"].setValue(selected.dataItem.Title);\r\n this.formGroup.updateValueAndValidity();\r\n setTimeout(() => this.cd.markForCheck(), 100);\r\n }\r\n }\r\n\r\n wrap(text) {\r\n return `[${text}]`;\r\n }\r\n public async save() {\r\n if (!this.formGroup.valid) return;\r\n this.model = this.getDataFromFormGroup();\r\n\r\n this.result = this.model[this.detailName];\r\n if (this.result.IsConst === true) this.result.FieldName = this.result.ConstFarsiField;\r\n else this.result.FieldName = this.replaceItemValues(this.result.FarsiName);\r\n if (this.PropertyInfo && this.PropertyInfo.length > 0) this.result.PropertyInfo = JSON.stringify(this.PropertyInfo);\r\n else this.result.PropertyInfo = undefined;\r\n this.close();\r\n }\r\n private replaceItemValues(value: string): string {\r\n this.PropertyInfo.forEach((t) => {\r\n value.replace(this.wrap(t.Title), t.Formula);\r\n });\r\n return value;\r\n }\r\n\r\n private replaceItemNames(value: string): string {\r\n if (!value) {\r\n return;\r\n }\r\n this.PropertyInfo.forEach((t) => {\r\n value = value.replace(t.Formula, this.wrap(t.Title));\r\n });\r\n return value;\r\n }\r\n}\r\n","\r\n 0\">\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { HttpClient, HttpEvent, HttpRequest } from \"@angular/common/http\";\r\nimport { Component, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { EntityListAction, form_control, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { ConfigurationService, GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HrmPayCurentYearMonthComponent } from \"../../hrm-pay-curent-year-month/hrm-pay-curent-year-month.component\";\r\nimport { HrmReportPrintKind } from \"../../models/enums/round-kind\";\r\nimport { HRNotificationHeader } from \"../../models/hrnotification-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-insurance-disk\",\r\n templateUrl: \"./hrm-insurance-disk.component.html\",\r\n styleUrls: [\"./hrm-insurance-disk.component.scss\"],\r\n})\r\nexport class HrmInsuranceDskComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n actions: EntityListAction[];\r\n PayCompaniesIds: number[] = [];\r\n model: any;\r\n filterInfo: NameValue[] = [];\r\n pcColumns: form_control[] = [];\r\n @ViewChild(KGridComponent) grid: KGridComponent;\r\n constructor(\r\n private splashFormService: SplashFormService,\r\n private httpClient: HttpClient,\r\n private configurations: ConfigurationService,\r\n private lookupservice: LookupService\r\n ) {\r\n super();\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"MonthlySalaryCalculationInformation/HRNotificationsHeader\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"ساخت دیسکت بیمه\";\r\n this.setColumns();\r\n this.setactions();\r\n if (this.accountService.authService.getHrmPayCurentYearMonth()) {\r\n if (\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentYear &&\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth\r\n ) {\r\n this.filterInfo.push({ Name: \"IssueYear\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"IssueMonth\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth, Operator: \"eq\" });\r\n }\r\n } else this.setHrmPayCurentYearMonth();\r\n }\r\n setColumns() {\r\n let group: any = {};\r\n this.model = {};\r\n this.model.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n this.model.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n this.pcColumns = [];\r\n this.pcColumns.push({\r\n label: \"کد شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"PartyCode\",\r\n disabled: false,\r\n name: \"PartyCode\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 1,\r\n userClass: \"select-shr\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.pcColumns.push({\r\n label: \"عنوان شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"DisplayName\",\r\n disabled: false,\r\n name: \"DisplayName\",\r\n order: 1,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 2,\r\n userClass: \"select-shr\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.pcColumns.push({\r\n label: \"کد کارگاه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"WorkshopCode\",\r\n disabled: false,\r\n name: \"WorkshopCode\",\r\n order: 1,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 3,\r\n userClass: \"select-shr\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.pcColumns.push({\r\n label: \"نام کارگاه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"CompanyName\",\r\n disabled: false,\r\n name: \"CompanyName\",\r\n order: 1,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 3,\r\n userClass: \"select-shr\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueYear\",\r\n disabled: false,\r\n name: \"IssueYear\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 1,\r\n userClass: \"select-sm\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"ماه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueMonth\",\r\n disabled: false,\r\n name: \"IssueMonth\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 2,\r\n userClass: \"select-sm\",\r\n apiName: \"MonthsName\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n group[\"IssueYear\"] = new UntypedFormControl(this.model.IssueYear, Validators.required);\r\n group[\"IssueMonth\"] = new UntypedFormControl(this.model.IssueMonth, Validators.required);\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"HrmReportPrintKind\", HrmReportPrintKind.BillPayAll)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((rk) => {\r\n group[\"HrmReportPrintKind\"] = new UntypedFormControl(rk.Code, Validators.required);\r\n });\r\n group[\"PayCompaniesIds\"] = new UntypedFormControl(undefined);\r\n this.group = new UntypedFormGroup(group);\r\n this.model = this.getDataFromFormGroup(this.model);\r\n }\r\n saveText(text, filename) {\r\n var a = document.createElement(\"a\");\r\n a.setAttribute(\"href\", \"data:text/plain;charset=utf-u,\" + encodeURIComponent(text));\r\n a.setAttribute(\"download\", filename);\r\n a.click();\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: HRNotificationHeader,\r\n onRowsSelected: HRNotificationHeader[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n var filters: GridFilter[] = [];\r\n if (isAllSelected) {\r\n filters.push({ Filed: \"IsAllSelected\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: isAllSelected, Logic: \"and\" });\r\n } else if (onRowsSelected && onRowsSelected.length > 0) {\r\n let PersonnelIds: number[] = [];\r\n onRowsSelected.forEach((x) => {\r\n PersonnelIds.push(x.HrmPersonnelId);\r\n });\r\n filters.push({ Filed: \"PersonnelIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: PersonnelIds, Logic: \"and\" });\r\n } else if (onRowSelected) {\r\n let PersonnelIds: number[] = [];\r\n PersonnelIds.push(onRowSelected.HrmPersonnelId);\r\n filters.push({ Filed: \"PersonnelIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: PersonnelIds, Logic: \"and\" });\r\n }\r\n\r\n /// در اینجا باید سال و ماه محاسبه دریافت شود\r\n\r\n let IssueYear = this.group.controls[\"IssueYear\"].value;\r\n let IssueMonth = this.group.controls[\"IssueMonth\"].value;\r\n let IssueYearMonth = IssueYear * 12 + IssueMonth;\r\n filters.push({ Filed: \"IssueYearMonth\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueYearMonth, Logic: \"and\" });\r\n filters.push({ Filed: \"IssueYear\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueYear, Logic: \"and\" });\r\n filters.push({ Filed: \"IssueMonth\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueMonth, Logic: \"and\" });\r\n filters.push({\r\n Filed: \"HrmReportPrintKind\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: HrmReportPrintKind.BillPayWithOuteBackPay,\r\n Logic: \"and\",\r\n });\r\n if ((this.PayCompaniesIds && this.PayCompaniesIds.length > 0) || this.group?.get(\"PayCompaniesIds\")?.value) {\r\n if (!this.PayCompaniesIds || this.PayCompaniesIds.length <= 0) {\r\n this.PayCompaniesIds = [];\r\n this.PayCompaniesIds.push(this.group?.get(\"PayCompaniesIds\")?.value);\r\n }\r\n filters.push({ Filed: \"PayCompaniesIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: this.PayCompaniesIds, Logic: \"and\" });\r\n } else {\r\n this.sts.showDialog(\"اول شعبه بيمه مورد نظر را انتخاب كنيد.\", \"خطا\");\r\n return;\r\n }\r\n\r\n let FileName: string = \"\";\r\n\r\n if (!filters || filters.length <= 0) {\r\n this.sts.showDialog(\"هیچ کارمندی انتخاب نشده است.\", \"\");\r\n }\r\n this.splashFormService.openDialog(\"\", \"در حال ساخت دیسکت بیمه\");\r\n this.httpCommonService\r\n .create(action.apiName, filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this.saveText(JSON.stringify(x.DSKKARProps), \"DSKKARProps.json\");\r\n this.saveText(JSON.stringify(x.DSKWORProps), \"DSKWORProps.json\");\r\n this.sts.showDialog(\"دیسکت با موفقیت تهیه شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(` خطا در ساخت دیسکت بیمه${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n setHrmPayCurentYearMonth() {\r\n this.dialogService\r\n .open(\r\n HrmPayCurentYearMonthComponent,\r\n {\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.ngOnInit();\r\n });\r\n }\r\n onRowsSelected($event) {\r\n if ($event) {\r\n $event.forEach((x) => {\r\n this.PayCompaniesIds.push(x.PayCompaniesId);\r\n });\r\n }\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Preview\",\r\n disabled: false,\r\n displayName: \"ساخت دیسکت\",\r\n iconName: \"icon-floppy-o\",\r\n apiName: \"MonthlySalaryCalculationInformation/MakeInsDisk\",\r\n areaName: \"Payroll\",\r\n permission: Permission.viewPermission,\r\n },\r\n ];\r\n }\r\n downloadFile(file: string): Observable> {\r\n let apiDownloadUrl = `${this.configurations.baseUrl}/api/MonthlySalaryCalculationInformation/Download`;\r\n return this.httpClient.request(\r\n new HttpRequest(\"GET\", `${apiDownloadUrl}?file=${file}`, null, {\r\n reportProgress: true,\r\n responseType: \"blob\",\r\n })\r\n );\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n pathPreFix=\"HRM\"\r\n [isMulti]=\"true\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n defaultSortKey=\"PersCode\"\r\n defaultSortKeyKind=\"asc\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n [actionTregger]=\"onActionClick\"\r\n [actions]=\"actions\">\r\n\r\n
\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { EntityListAction, form_control, Permission, SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HrmPayCurentYearMonthComponent } from \"../../hrm-pay-curent-year-month/hrm-pay-curent-year-month.component\";\r\nimport { HrmReportPrintKind } from \"../../models/enums/round-kind\";\r\nimport { HRNotificationHeader } from \"../../models/hrnotification-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-insurance-report\",\r\n templateUrl: \"./hrm-insurance-report.component.html\",\r\n styleUrls: [\"./hrm-insurance-report.component.scss\"],\r\n})\r\nexport class HrmInsuranceReportComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n actions: EntityListAction[];\r\n PayCompaniesIds: number[] = [];\r\n model: any;\r\n filterInfo: NameValue[] = [];\r\n pcColumns: form_control[] = [];\r\n @ViewChild(KGridComponent) grid: KGridComponent;\r\n constructor(private splashFormService: SplashFormService, private lookupservice: LookupService) {\r\n super();\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"MonthlySalaryCalculationInformation/HRNotificationsHeader\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"گزارش لیست بیمه\";\r\n this.setColumns();\r\n this.setactions();\r\n if (this.accountService.authService.getHrmPayCurentYearMonth()) {\r\n if (\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentYear &&\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth\r\n ) {\r\n this.filterInfo.push({ Name: \"IssueYear\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"IssueMonth\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth, Operator: \"eq\" });\r\n }\r\n } else this.setHrmPayCurentYearMonth();\r\n }\r\n setColumns() {\r\n let group: any = {};\r\n this.model = {};\r\n this.model.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n this.model.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n this.pcColumns = [];\r\n this.pcColumns.push({\r\n label: \"کد شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"PartyCode\",\r\n disabled: false,\r\n name: \"PartyCode\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 1,\r\n userClass: \"select-shr\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.pcColumns.push({\r\n label: \"عنوان شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"DisplayName\",\r\n disabled: false,\r\n name: \"DisplayName\",\r\n order: 1,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 2,\r\n userClass: \"select-shr\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.pcColumns.push({\r\n label: \"کد کارگاه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"WorkshopCode\",\r\n disabled: false,\r\n name: \"WorkshopCode\",\r\n order: 1,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 3,\r\n userClass: \"select-shr\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.pcColumns.push({\r\n label: \"نام کارگاه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"CompanyName\",\r\n disabled: false,\r\n name: \"CompanyName\",\r\n order: 1,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 3,\r\n userClass: \"select-shr\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueYear\",\r\n disabled: false,\r\n name: \"IssueYear\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 1,\r\n userClass: \"select-sm\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"ماه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueMonth\",\r\n disabled: false,\r\n name: \"IssueMonth\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 2,\r\n userClass: \"select-sm\",\r\n apiName: \"MonthsName\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"نوع گزارش\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"HrmReportPrintKind\",\r\n disabled: false,\r\n name: \"HrmReportPrintKind\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 3,\r\n userClass: \"select-sm\",\r\n apiName: \"Lookup\",\r\n systemName: \"HRM\",\r\n category: \"HrmReportPrintKind\",\r\n valueMember: \"Code\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n group[\"IssueYear\"] = new UntypedFormControl(this.model.IssueYear, Validators.required);\r\n group[\"IssueMonth\"] = new UntypedFormControl(this.model.IssueMonth, Validators.required);\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"HrmReportPrintKind\", HrmReportPrintKind.BillPayAll)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((rk) => {\r\n group[\"HrmReportPrintKind\"] = new UntypedFormControl(rk.Code, Validators.required);\r\n });\r\n group[\"PayCompaniesIds\"] = new UntypedFormControl(undefined);\r\n this.group = new UntypedFormGroup(group);\r\n this.model = this.getDataFromFormGroup(this.model);\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: HRNotificationHeader,\r\n onRowsSelected: HRNotificationHeader[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n var filters: GridFilter[] = [];\r\n if (isAllSelected) {\r\n filters.push({ Filed: \"IsAllSelected\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: isAllSelected, Logic: \"and\" });\r\n } else if (onRowsSelected && onRowsSelected.length > 0) {\r\n let PersonnelIds: number[] = [];\r\n onRowsSelected.forEach((x) => {\r\n PersonnelIds.push(x.HrmPersonnelId);\r\n });\r\n filters.push({ Filed: \"PersonnelIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: PersonnelIds, Logic: \"and\" });\r\n } else if (onRowSelected) {\r\n let PersonnelIds: number[] = [];\r\n PersonnelIds.push(onRowSelected.HrmPersonnelId);\r\n filters.push({ Filed: \"PersonnelIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: PersonnelIds, Logic: \"and\" });\r\n }\r\n\r\n /// در اینجا باید سال و ماه محاسبه دریافت شود\r\n\r\n let IssueYear = this.group.controls[\"IssueYear\"].value;\r\n let IssueMonth = this.group.controls[\"IssueMonth\"].value;\r\n let IssueYearMonth = IssueYear * 12 + IssueMonth;\r\n filters.push({ Filed: \"IssueYearMonth\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueYearMonth, Logic: \"and\" });\r\n filters.push({ Filed: \"IssueYear\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueYear, Logic: \"and\" });\r\n filters.push({ Filed: \"IssueMonth\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueMonth, Logic: \"and\" });\r\n filters.push({\r\n Filed: \"HrmReportPrintKind\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.group.controls[\"HrmReportPrintKind\"].value,\r\n Logic: \"and\",\r\n });\r\n if ((this.PayCompaniesIds && this.PayCompaniesIds.length > 0) || this.group?.get(\"PayCompaniesIds\")?.value) {\r\n if (!this.PayCompaniesIds || this.PayCompaniesIds.length <= 0) {\r\n this.PayCompaniesIds = [];\r\n this.PayCompaniesIds.push(this.group?.get(\"PayCompaniesIds\")?.value);\r\n }\r\n filters.push({ Filed: \"PayCompaniesIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: this.PayCompaniesIds, Logic: \"and\" });\r\n } else {\r\n this.sts.showDialog(\"اول شعبه بيمه مورد نظر را انتخاب كنيد.\", \"خطا\");\r\n return;\r\n }\r\n let FileName: string = \"\";\r\n if (this.group.controls[\"HrmReportPrintKind\"].value === HrmReportPrintKind.BillPayWithOuteBackPay) FileName = \"InsListWithOuteBackPay\";\r\n if (this.group.controls[\"HrmReportPrintKind\"].value === HrmReportPrintKind.BillPayOnlyBackPay) FileName = \"InsListOnlyBackPay\";\r\n if (this.group.controls[\"HrmReportPrintKind\"].value === HrmReportPrintKind.BillPayAll) FileName = \"InsListAll\";\r\n\r\n if (!filters || filters.length <= 0) {\r\n this.sts.showDialog(\"هیچ کارمندی انتخاب نشده است.\", \"\");\r\n }\r\n this.splashFormService.openDialog(\"\", \"در حال تهیه لیست بیمه\");\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = FileName;\r\n saveReportFile.SystemKindName = \"HRM\";\r\n saveReportFile.DataSourceName = \"HrmInsReport\";\r\n saveReportFile.CategoryName = action.apiName.replace(\"/\", \"_\");\r\n this.httpCommonService\r\n .create(action.apiName, filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n if (!x || x?.length <= 0) {\r\n this.sts.showDialog(`اطلاعات یافت نشد`, \"خطا\");\r\n } else {\r\n if (action.name === \"Preview\") this.grid.preview(saveReportFile, this.apiName, x as any[]);\r\n if (action.name === \"Print\") this.grid.print(saveReportFile, this.apiName, x as any[]);\r\n if (action.name === \"Desine\") this.grid.editReport(saveReportFile, this.apiName, x as any[]);\r\n }\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در تهیه لیست بیمه${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n setHrmPayCurentYearMonth() {\r\n this.dialogService\r\n .open(\r\n HrmPayCurentYearMonthComponent,\r\n {\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.ngOnInit();\r\n });\r\n }\r\n onRowsSelected($event) {\r\n if ($event) {\r\n $event.forEach((x) => {\r\n this.PayCompaniesIds.push(x.PayCompaniesId);\r\n });\r\n }\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-preview-f\",\r\n apiName: \"MonthlySalaryCalculationInformation/HrmInsuranceReport\",\r\n areaName: \"Payroll\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"چاپ \",\r\n iconName: \"icon-print-f\",\r\n apiName: \"MonthlySalaryCalculationInformation/HrmInsuranceReport\",\r\n areaName: \"Payroll\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"Desine\",\r\n disabled: false,\r\n displayName: \"طراحی\",\r\n iconName: \"icon-design_services-F\",\r\n apiName: \"MonthlySalaryCalculationInformation/HrmInsuranceReport\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.viewPermission,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n pathPreFix=\"HRM\"\r\n [isMulti]=\"true\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n defaultSortKey=\"PersCode\"\r\n defaultSortKeyKind=\"asc\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n [actionTregger]=\"onActionClick\"\r\n [actions]=\"actions\">\r\n\r\n
\r\n\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup } from \"@angular/forms\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { EntityListAction, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { AccountService, GridFilter, HttpCommonService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ReviewService } from \"src/app/review/review.service\";\r\nimport { ReviewFilterItem } from \"../../../../review/models/review-filter-item\";\r\nimport { Element } from \"../../models/base-info/element.model\";\r\nimport { ElementGroup } from \"../../models/enums/element-group\";\r\nimport { ElemntshowKind } from \"../../models/enums/elemntshow-kind\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-review\",\r\n templateUrl: \"./hrm-review.component.html\",\r\n styleUrls: [\"./hrm-review.component.scss\"],\r\n providers: [ReviewService],\r\n})\r\nexport class HrmReviewComponent implements OnInit, OnDestroy {\r\n actions: EntityListAction[];\r\n unSortableFilterable: string[] = [];\r\n formGroup: UntypedFormGroup;\r\n protected ngUnsubscribe = new Subject();\r\n HrmReviewColumns: form_control[];\r\n selected: string = \"\";\r\n HrmPersonnelIds: number[] = [];\r\n BackPayHrmPersonnelIds: number[] = [];\r\n TotallHrmPersonnelIds: number[] = [];\r\n EmploymentKindIds: number[] = [];\r\n WorkplaceIds: number[] = [];\r\n CostCenterIds: number[] = [];\r\n ElementGroupIds: number[] = [];\r\n isloaded: boolean = false;\r\n permisionList: NameValue[] = [];\r\n public activeTabTitle: string;\r\n constructor(\r\n private service: ReviewService,\r\n private fb: UntypedFormBuilder,\r\n private accountService: AccountService,\r\n private httpCommonService: HttpCommonService,\r\n protected translateText: TranslateService\r\n ) {}\r\n\r\n translate = function _translate(str: string): string {\r\n return this.translateText.instant(str);\r\n };\r\n ngOnInit(): void {\r\n this.formGroup = this.fb.group({\r\n EmploymentKindIds: this.EmploymentKindIds,\r\n WorkplaceIds: this.WorkplaceIds,\r\n CostCenterIds: this.CostCenterIds,\r\n ElementGroupIds: this.ElementGroupIds,\r\n StartYear: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear,\r\n EndYear: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear,\r\n StartMonth: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth,\r\n EndMonth: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth,\r\n });\r\n\r\n this.populateGridColumns(false);\r\n }\r\n\r\n populateGridColumns(ShowBeforeRemain: boolean): any {\r\n var _HrmReviewColumns: form_control[] = [\r\n {\r\n name: \"HrmPersonnelId\",\r\n modelName: \"HrmPersonnelId\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"EmploymentKindTitle\",\r\n modelName: \"EmploymentKindTitle\",\r\n listVisible: true,\r\n label: \"نوع استخدام\",\r\n order: 1,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"WorkplaceTitle\",\r\n modelName: \"WorkplaceTitle\",\r\n listVisible: true,\r\n label: \"محل خدمت\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"CostCenterTitle\",\r\n modelName: \"CostCenterTitle\",\r\n listVisible: true,\r\n label: \"مرکز هزرینه\",\r\n order: 3,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"PersCode\",\r\n modelName: \"PersCode\",\r\n listVisible: true,\r\n label: \"کد پرسنلی\",\r\n order: 4,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"FirstName\",\r\n modelName: \"FirstName\",\r\n listVisible: true,\r\n label: \"نام\",\r\n order: 5,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"LastName\",\r\n modelName: \"LastName\",\r\n listVisible: true,\r\n label: \"نام خانوادگی\",\r\n order: 6,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"IssueYear\",\r\n modelName: \"IssueYear\",\r\n listVisible: true,\r\n label: \"سال اجراء\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"IssueMonth\",\r\n modelName: \"IssueMonth\",\r\n listVisible: true,\r\n label: \"ماه اجراء\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"EffectYear\",\r\n modelName: \"EffectYear\",\r\n listVisible: true,\r\n label: \"سال تاثیر\",\r\n order: 9,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"EffectMonth\",\r\n modelName: \"EffectMonth\",\r\n listVisible: true,\r\n label: \"ماه تاثیر\",\r\n order: 10,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n\r\n let filter: GridFilter[] = [];\r\n this.ElementGroupIds = this.formGroup.get(\"ElementGroupIds\").value;\r\n this.EmploymentKindIds = this.formGroup.get(\"EmploymentKindIds\").value;\r\n if (this.ElementGroupIds && this.ElementGroupIds.length > 0)\r\n filter.push({ Type: \"F\", Filed: \"ElementGroupIds\", Value: this.ElementGroupIds, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n if (this.EmploymentKindIds && this.EmploymentKindIds.length > 0)\r\n filter.push({ Type: \"F\", Filed: \"EmploymentKindIds\", Value: this.EmploymentKindIds, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"IssueYear\",\r\n Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"IssueMonth\",\r\n Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n\r\n let cCount = 10;\r\n this.httpCommonService\r\n .create(\"MonthlySalaryCalculationInformation/GetActiveElement\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x: Element[]) => {\r\n if (x) {\r\n var activeElement = x;\r\n activeElement.forEach((e) => {\r\n cCount = cCount + 1;\r\n if (e.ElementGroupCode === ElementGroup.Work) {\r\n if (e.ElemntshowKindCode === ElemntshowKind.DDHHMM)\r\n _HrmReviewColumns.push({\r\n label: e.Title,\r\n inputMask: \"00:00:00\",\r\n columnWidth: 100,\r\n controlType: FormControlTypes.textbox,\r\n modelName: `MV_${e.Id}`,\r\n disabled: false,\r\n name: `MV_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"00:00\",\r\n });\r\n else if (e.ElemntshowKindCode === ElemntshowKind.HHMM)\r\n _HrmReviewColumns.push({\r\n label: e.Title,\r\n inputMask: \"000:00\",\r\n columnWidth: 100,\r\n controlType: FormControlTypes.textbox,\r\n modelName: `MV_${e.Id}`,\r\n disabled: false,\r\n name: `MV_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"00:00\",\r\n });\r\n else if (e.ElemntshowKindCode === ElemntshowKind.DD)\r\n _HrmReviewColumns.push({\r\n label: e.Title,\r\n inputMask: \"00\",\r\n columnWidth: 100,\r\n controlType: FormControlTypes.textbox,\r\n modelName: `MV_${e.Id}`,\r\n disabled: false,\r\n name: `MV_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"00:00\",\r\n });\r\n else\r\n _HrmReviewColumns.push({\r\n label: e.Title,\r\n controlType: FormControlTypes.textbox,\r\n columnWidth: 100,\r\n modelName: `MV_${e.Id}`,\r\n disabled: false,\r\n name: `MV_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"00:00\",\r\n });\r\n } else\r\n _HrmReviewColumns.push({\r\n label: e.Title,\r\n controlType: FormControlTypes.textbox,\r\n columnWidth: 100,\r\n modelName: `MV_${e.Id}`,\r\n disabled: false,\r\n name: `MV_${e.Id}`,\r\n order: cCount,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n format: \"#,#\",\r\n });\r\n });\r\n this.HrmReviewColumns = _HrmReviewColumns.sort((a, b) => a.order - b.order);\r\n }\r\n });\r\n this.service.addFilter(\"StartYear\", [\r\n {\r\n key: \"StartYear\",\r\n value: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear,\r\n title: \"از سال\",\r\n persianKey: \"از سال\",\r\n valueType: \"number\",\r\n checked: false,\r\n },\r\n {\r\n key: \"EndYear\",\r\n value: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear,\r\n title: \"تا سال\",\r\n persianKey: \"تا سال\",\r\n valueType: \"number\",\r\n checked: false,\r\n },\r\n {\r\n key: \"StartMonth\",\r\n value: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth,\r\n title: \"از ماه\",\r\n persianKey: \"از ماه\",\r\n valueType: \"number\",\r\n checked: false,\r\n },\r\n {\r\n key: \"EndMonth\",\r\n value: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth,\r\n title: \"تا ماه\",\r\n persianKey: \"تا ماه\",\r\n valueType: \"number\",\r\n checked: false,\r\n },\r\n ]);\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.actions = undefined;\r\n this.unSortableFilterable = undefined;\r\n this.formGroup = undefined;\r\n this.HrmReviewColumns = undefined;\r\n this.HrmPersonnelIds = undefined;\r\n this.BackPayHrmPersonnelIds = undefined;\r\n this.TotallHrmPersonnelIds = undefined;\r\n this.EmploymentKindIds = undefined;\r\n this.WorkplaceIds = undefined;\r\n this.CostCenterIds = undefined;\r\n this.ElementGroupIds = undefined;\r\n this.permisionList = undefined;\r\n }\r\n\r\n setSelectedFilter(filter: string) {\r\n if (this.selected === filter) this.selected = \"\";\r\n else this.selected = filter;\r\n }\r\n onChange(event) {\r\n this.populateGridColumns(false);\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n فیلتر کارکنان\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n نوع استخدام\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n محل خدمت\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n مرکز هزینه\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n طبقه عامل\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ReportReviewModule } from \"src/app/review/review.module\";\r\nimport { HrmReviewComponent } from \"./hrm-review.component\";\r\n\r\nconst components = [HrmReviewComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, ReportReviewModule],\r\n})\r\nexport class HrmReviewModule {}\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { EntityListAction, form_control, Permission, SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HrmPayCurentYearMonthComponent } from \"../../hrm-pay-curent-year-month/hrm-pay-curent-year-month.component\";\r\nimport { HrmReportPrintKind } from \"../../models/enums/round-kind\";\r\nimport { HRNotificationHeader } from \"../../models/hrnotification-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-hrm-tax-report\",\r\n templateUrl: \"./hrm-tax-report.component.html\",\r\n styleUrls: [\"./hrm-tax-report.component.scss\"],\r\n})\r\nexport class HrmTaxReportComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n actions: EntityListAction[];\r\n PayCompaniesIds: number[] = [];\r\n model: any;\r\n pcColumns: form_control[] = [];\r\n filterInfo: NameValue[] = [];\r\n @ViewChild(KGridComponent) grid: KGridComponent;\r\n constructor(private splashFormService: SplashFormService, private lookupservice: LookupService) {\r\n super();\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"MonthlySalaryCalculationInformation/HRNotificationsHeader\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"گزارش لیست مالیات\";\r\n this.setColumns();\r\n this.setactions();\r\n if (this.accountService.authService.getHrmPayCurentYearMonth()) {\r\n if (\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentYear &&\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth\r\n ) {\r\n this.filterInfo.push({ Name: \"IssueYear\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"IssueMonth\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth, Operator: \"eq\" });\r\n }\r\n } else this.setHrmPayCurentYearMonth();\r\n }\r\n setColumns() {\r\n let group: any = {};\r\n this.model = {};\r\n this.model.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n this.model.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n this.pcColumns = [];\r\n this.pcColumns.push({\r\n label: \"کد حوزه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"PartyCode\",\r\n disabled: false,\r\n name: \"PartyCode\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 1,\r\n userClass: \"select-shr\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.pcColumns.push({\r\n label: \"عنوان حوزه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"DisplayName\",\r\n disabled: false,\r\n name: \"DisplayName\",\r\n order: 1,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 2,\r\n userClass: \"select-shr\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueYear\",\r\n disabled: false,\r\n name: \"IssueYear\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 1,\r\n userClass: \"select-sm\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"ماه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueMonth\",\r\n disabled: false,\r\n name: \"IssueMonth\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 2,\r\n userClass: \"select-sm\",\r\n apiName: \"MonthsName\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"نوع گزارش\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"HrmReportPrintKind\",\r\n disabled: false,\r\n name: \"HrmReportPrintKind\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 3,\r\n userClass: \"select-sm\",\r\n apiName: \"Lookup\",\r\n systemName: \"HRM\",\r\n category: \"HrmReportPrintKind\",\r\n valueMember: \"Code\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n group[\"IssueYear\"] = new UntypedFormControl(this.model.IssueYear, Validators.required);\r\n group[\"IssueMonth\"] = new UntypedFormControl(this.model.IssueMonth, Validators.required);\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"HrmReportPrintKind\", HrmReportPrintKind.BillPayAll)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((rk) => {\r\n group[\"HrmReportPrintKind\"] = new UntypedFormControl(rk.Code, Validators.required);\r\n });\r\n group[\"PayCompaniesIds\"] = new UntypedFormControl(undefined);\r\n this.group = new UntypedFormGroup(group);\r\n this.model = this.getDataFromFormGroup(this.model);\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: HRNotificationHeader,\r\n onRowsSelected: HRNotificationHeader[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n var filters: GridFilter[] = [];\r\n if (isAllSelected) {\r\n filters.push({ Filed: \"IsAllSelected\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: isAllSelected, Logic: \"and\" });\r\n } else if (onRowsSelected && onRowsSelected.length > 0) {\r\n let PersonnelIds: number[] = [];\r\n onRowsSelected.forEach((x) => {\r\n PersonnelIds.push(x.HrmPersonnelId);\r\n });\r\n filters.push({ Filed: \"PersonnelIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: PersonnelIds, Logic: \"and\" });\r\n } else if (onRowSelected) {\r\n let PersonnelIds: number[] = [];\r\n PersonnelIds.push(onRowSelected.HrmPersonnelId);\r\n filters.push({ Filed: \"PersonnelIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: PersonnelIds, Logic: \"and\" });\r\n }\r\n\r\n /// در اینجا باید سال و ماه محاسبه دریافت شود\r\n\r\n let IssueYear = this.group.controls[\"IssueYear\"].value;\r\n let IssueMonth = this.group.controls[\"IssueMonth\"].value;\r\n let IssueYearMonth = IssueYear * 12 + IssueMonth;\r\n filters.push({ Filed: \"IssueYearMonth\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueYearMonth, Logic: \"and\" });\r\n filters.push({ Filed: \"IssueYear\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueYear, Logic: \"and\" });\r\n filters.push({ Filed: \"IssueMonth\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueMonth, Logic: \"and\" });\r\n filters.push({\r\n Filed: \"HrmReportPrintKind\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.group.controls[\"HrmReportPrintKind\"].value,\r\n Logic: \"and\",\r\n });\r\n if ((this.PayCompaniesIds && this.PayCompaniesIds.length > 0) || this.group?.get(\"PayCompaniesIds\")?.value) {\r\n if (!this.PayCompaniesIds || this.PayCompaniesIds.length <= 0) {\r\n this.PayCompaniesIds = [];\r\n this.PayCompaniesIds.push(this.group?.get(\"PayCompaniesIds\")?.value);\r\n }\r\n filters.push({ Filed: \"PayCompaniesIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: this.PayCompaniesIds, Logic: \"and\" });\r\n } else {\r\n this.sts.showDialog(\"اول حوزه مالیاتی مورد نظر را انتخاب كنيد.\", \"خطا\");\r\n return;\r\n }\r\n\r\n let FileName: string = \"\";\r\n if (this.group.controls[\"HrmReportPrintKind\"].value === HrmReportPrintKind.BillPayWithOuteBackPay) FileName = \"TaxReportWithOuteBackPay\";\r\n if (this.group.controls[\"HrmReportPrintKind\"].value === HrmReportPrintKind.BillPayOnlyBackPay) FileName = \"TaxReportOnlyBackPay\";\r\n if (this.group.controls[\"HrmReportPrintKind\"].value === HrmReportPrintKind.BillPayAll) FileName = \"TaxReportAll\";\r\n\r\n if (!filters || filters.length <= 0) {\r\n this.sts.showDialog(\"هیچ کارمندی انتخاب نشده است.\", \"\");\r\n }\r\n this.splashFormService.openDialog(\"\", \"در حال تهیه لیست مالیاتی\");\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = FileName;\r\n saveReportFile.SystemKindName = \"HRM\";\r\n saveReportFile.DataSourceName = \"HrmTaxReport\";\r\n saveReportFile.CategoryName = action.apiName.replace(\"/\", \"_\");\r\n this.httpCommonService\r\n .create(action.apiName, filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n if (!x || x?.length <= 0) {\r\n this.sts.showDialog(`اطلاعات یافت نشد`, \"خطا\");\r\n } else {\r\n if (action.name === \"Preview\") this.grid.preview(saveReportFile, this.apiName, x as any[]);\r\n if (action.name === \"Print\") this.grid.print(saveReportFile, this.apiName, x as any[]);\r\n if (action.name === \"Desine\") this.grid.editReport(saveReportFile, this.apiName, x as any[]);\r\n }\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در تهیه لیست مالیاتی${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n setHrmPayCurentYearMonth() {\r\n this.dialogService\r\n .open(\r\n HrmPayCurentYearMonthComponent,\r\n {\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.ngOnInit();\r\n });\r\n }\r\n onRowsSelected($event) {\r\n if ($event) {\r\n $event.forEach((x) => {\r\n this.PayCompaniesIds.push(x.PayCompaniesId);\r\n });\r\n }\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-preview-f\",\r\n apiName: \"MonthlySalaryCalculationInformation/HrmTaxReport\",\r\n areaName: \"Payroll\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"چاپ \",\r\n iconName: \"icon-print-f\",\r\n apiName: \"MonthlySalaryCalculationInformation/HrmTaxReport\",\r\n areaName: \"Payroll\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"Desine\",\r\n disabled: false,\r\n displayName: \"طراحی\",\r\n iconName: \"icon-design_services-F\",\r\n apiName: \"MonthlySalaryCalculationInformation/HrmTaxReport\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.viewPermission,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n pathPreFix=\"HRM\"\r\n [isMulti]=\"true\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n defaultSortKey=\"PersCode\"\r\n defaultSortKeyKind=\"asc\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n [actionTregger]=\"onActionClick\"\r\n [actions]=\"actions\">\r\n\r\n
\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { EntityListAction, form_control, Permission, SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { HrmPayCurentYearMonthComponent } from \"../../hrm-pay-curent-year-month/hrm-pay-curent-year-month.component\";\r\nimport { HrmReportPrintKind } from \"../../models/enums/round-kind\";\r\nimport { HRNotificationHeader } from \"../../models/hrnotification-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-pay-mvpers-report\",\r\n templateUrl: \"./pay-mvpers-report.component.html\",\r\n styleUrls: [\"./pay-mvpers-report.component.scss\"],\r\n})\r\nexport class PayMVPersReportComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: { name: string };\r\n actions: EntityListAction[];\r\n model: any;\r\n filterInfo: NameValue[] = [];\r\n @ViewChild(KGridComponent) grid: KGridComponent;\r\n constructor(private splashFormService: SplashFormService, private lookupservice: LookupService) {\r\n super();\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"MonthlySalaryCalculationInformation/HRNotificationsHeader\";\r\n this.areaName = \"Payroll\";\r\n this.label = \"گزارش لست حقوق جامع\";\r\n this.setColumns();\r\n this.setactions();\r\n if (this.accountService.authService.getHrmPayCurentYearMonth()) {\r\n if (\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentYear &&\r\n this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth\r\n ) {\r\n this.filterInfo.push({ Name: \"IssueYear\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentYear, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"IssueMonth\", Value: this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth, Operator: \"eq\" });\r\n }\r\n } else this.setHrmPayCurentYearMonth();\r\n }\r\n setColumns() {\r\n let group: any = {};\r\n this.model = {};\r\n this.model.IssueYear = this.accountService.authService.getHrmPayCurentYearMonth().CurentYear;\r\n this.model.IssueMonth = this.accountService.authService.getHrmPayCurentYearMonth().CurentMonth;\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueYear\",\r\n disabled: false,\r\n name: \"IssueYear\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 1,\r\n userClass: \"select-shr\",\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Year\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"ماه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"IssueMonth\",\r\n disabled: false,\r\n name: \"IssueMonth\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 2,\r\n userClass: \"select-shr\",\r\n apiName: \"MonthsName\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"نوع گزارش\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"HrmReportPrintKind\",\r\n disabled: false,\r\n name: \"HrmReportPrintKind\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n columnNumber: 3,\r\n userClass: \"select-sm\",\r\n apiName: \"Lookup\",\r\n systemName: \"HRM\",\r\n category: \"HrmReportPrintKind\",\r\n valueMember: \"Code\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n group[\"IssueYear\"] = new UntypedFormControl(this.model.IssueYear, Validators.required);\r\n group[\"IssueMonth\"] = new UntypedFormControl(this.model.IssueMonth, Validators.required);\r\n this.lookupservice\r\n .getLookupbyCode(\"HRM\", \"HrmReportPrintKind\", HrmReportPrintKind.BillPayAll)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((rk) => {\r\n group[\"HrmReportPrintKind\"] = new UntypedFormControl(rk.Code, Validators.required);\r\n });\r\n this.group = new UntypedFormGroup(group);\r\n this.model = this.getDataFromFormGroup(this.model);\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: HRNotificationHeader,\r\n onRowsSelected: HRNotificationHeader[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n var filters: GridFilter[] = [];\r\n if (isAllSelected) {\r\n filters.push({ Filed: \"IsAllSelected\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: isAllSelected, Logic: \"and\" });\r\n } else if (onRowsSelected && onRowsSelected.length > 0) {\r\n let PersonnelIds: number[] = [];\r\n onRowsSelected.forEach((x) => {\r\n PersonnelIds.push(x.HrmPersonnelId);\r\n });\r\n filters.push({ Filed: \"PersonnelIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: PersonnelIds, Logic: \"and\" });\r\n } else if (onRowSelected) {\r\n let PersonnelIds: number[] = [];\r\n PersonnelIds.push(onRowSelected.HrmPersonnelId);\r\n filters.push({ Filed: \"PersonnelIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: PersonnelIds, Logic: \"and\" });\r\n }\r\n\r\n /// در اینجا باید سال و ماه محاسبه دریافت شود\r\n\r\n let IssueYear = this.group.controls[\"IssueYear\"].value;\r\n let IssueMonth = this.group.controls[\"IssueMonth\"].value;\r\n let IssueYearMonth = IssueYear * 12 + IssueMonth;\r\n filters.push({ Filed: \"IssueYearMonth\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueYearMonth, Logic: \"and\" });\r\n filters.push({ Filed: \"IssueYear\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueYear, Logic: \"and\" });\r\n filters.push({ Filed: \"IssueMonth\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: IssueMonth, Logic: \"and\" });\r\n filters.push({\r\n Filed: \"HrmReportPrintKind\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.group.controls[\"HrmReportPrintKind\"].value,\r\n Logic: \"and\",\r\n });\r\n\r\n let FileName: string = \"\";\r\n if (this.group.controls[\"HrmReportPrintKind\"].value === HrmReportPrintKind.BillPayWithOuteBackPay) FileName = \"PayRollListNoBackPay\";\r\n if (this.group.controls[\"HrmReportPrintKind\"].value === HrmReportPrintKind.BillPayOnlyBackPay) FileName = \"PayRollListBackPay\";\r\n if (this.group.controls[\"HrmReportPrintKind\"].value === HrmReportPrintKind.BillPayAll) FileName = \"PayRollList\";\r\n\r\n if (!filters || filters.length <= 0) {\r\n this.sts.showDialog(\"هیچ کارمندی انتخاب نشده است.\", \"\");\r\n }\r\n this.splashFormService.openDialog(\"\", \"در حال تهیه لیست حقوق جامع\");\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = FileName;\r\n saveReportFile.SystemKindName = \"HRM\";\r\n saveReportFile.CategoryName = action.apiName.replace(\"/\", \"_\");\r\n this.httpCommonService\r\n .create(action.apiName, filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n if (action.name === \"Preview\") this.grid.preview(saveReportFile, this.apiName, x as any[]);\r\n if (action.name === \"Print\") this.grid.print(saveReportFile, this.apiName, x as any[]);\r\n if (action.name === \"Desine\") this.grid.editReport(saveReportFile, this.apiName, x as any[]);\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در تهیه لیست حقوق جامع${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n setHrmPayCurentYearMonth() {\r\n this.dialogService\r\n .open(\r\n HrmPayCurentYearMonthComponent,\r\n {\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this.ngOnInit();\r\n });\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-preview-f\",\r\n apiName: \"MonthlySalaryCalculationInformation/HrmPayMVPersReport\",\r\n areaName: \"Payroll\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"چاپ \",\r\n iconName: \"icon-print-f\",\r\n apiName: \"MonthlySalaryCalculationInformation/HrmPayMVPersReport\",\r\n areaName: \"Payroll\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"Desine\",\r\n disabled: false,\r\n displayName: \"طراحی\",\r\n iconName: \"icon-design_services-F\",\r\n apiName: \"MonthlySalaryCalculationInformation/HrmPayMVPersReport\",\r\n areaName: \"Payroll\",\r\n requireSelectedrows: false,\r\n permission: Permission.viewPermission,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n pathPreFix=\"HRM\"\r\n [isMulti]=\"true\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n defaultSortKey=\"PersCode\"\r\n defaultSortKeyKind=\"asc\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n [actionTregger]=\"onActionClick\"\r\n [actions]=\"actions\">\r\n \r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { GoodsGroup } from \"../../models/goods-group.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\n\r\n@Component({\r\n selector: \"ngx-goods-group-form\",\r\n templateUrl: \"./goods-group-form.component.html\",\r\n styleUrls: [\"./goods-group-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GoodsGroupFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private missetup: MisSetupService) {\r\n super(selectorService, cd);\r\n this.missetup.getall();\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"GoodsGroup\";\r\n this.label = this.translate(\"ClientApp.BackOffice.INV.GoodsGroup.GoodsGroup\");\r\n this.selectorService.setHasDefaultValue(\"DetailLedgerId\", false);\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (this.parentrow && !this.model.ParentId) {\r\n this.model.ParentId = this.parentrow.Id;\r\n this.setValue(\"ParentId\", this.model.ParentId);\r\n }\r\n if (!this.model.SystemKindId) {\r\n this.model.SystemKindId = 0;\r\n this.setValue(\"SystemKindId\", this.model.SystemKindId);\r\n }\r\n if (!this.isNewRow && this.model.ParentId) {\r\n this.httpCommonService\r\n .getItem(this.apiName, this.model.ParentId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.parentrow = Object.assign({}, data as GoodsGroup);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n beforupdate() {\r\n if (this.parentrow && this.parentrow.TreeCode) {\r\n this.model.TreeCode =\r\n (!this.parentrow.TreeCode ? \"\" : this.parentrow.TreeCode) +\r\n (!this.formGroup.controls[\"Code\"].value ? \"\" : this.formGroup.controls[\"Code\"].value);\r\n this.model.TreePath =\r\n (!this.parentrow.TreePath ? \"\" : this.parentrow.TreePath) +\r\n \"_\" +\r\n (!this.formGroup.controls[\"Title\"].value ? \"\" : this.formGroup.controls[\"Title\"].value);\r\n } else {\r\n this.model.TreeCode = this.formGroup.controls[\"Code\"].value;\r\n this.model.TreePath = this.formGroup.controls[\"Title\"].value;\r\n }\r\n this.setValue(\"TreeCode\", this.model.TreeCode);\r\n this.setValue(\"TreePath\", this.model.TreePath);\r\n }\r\n ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this.selectorService.setHasDefaultValue(\"DetailLedgerId\", undefined);\r\n }\r\n}\r\n","\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GoodsGroup } from \"../../models/goods-group.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"goods-group-import-export-form\",\r\n templateUrl: \"./goods-group-import-export-form.component.html\",\r\n styleUrls: [\"./goods-group-import-export-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GoodsGroupImportExportFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n GoodsGroupList: GoodsGroup[];\r\n public hColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"GoodsGroup\";\r\n this.label = \"استخراج و دریافت\";\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns = this.hColumns;\r\n }\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n alert(\"انتخاب بیش از یک فایل مجاز نیست.\");\r\n return;\r\n } else {\r\n var file = target.files[0] as File;\r\n let fileReader: FileReader = new FileReader();\r\n fileReader.onloadend = () => {\r\n var fileContent = fileReader.result.toString();\r\n this.GoodsGroupList = JSON.parse(fileContent);\r\n this.saveData().then();\r\n };\r\n fileReader.readAsText(file);\r\n }\r\n }\r\n async saveData() {\r\n await this.httpCommonService\r\n .createlist(\"GoodsGroup/ImportExport\", this.GoodsGroupList)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت ذخیره شد.\");\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n saveText(text, filename) {\r\n var a = document.createElement(\"a\");\r\n a.setAttribute(\"href\", \"data:text/plain;charset=utf-u,\" + encodeURIComponent(text));\r\n a.setAttribute(\"download\", filename);\r\n a.click();\r\n }\r\n async exportData() {\r\n await this.httpCommonService\r\n .getList(\"GoodsGroup\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.GoodsGroupList = data as GoodsGroup[];\r\n this.saveText(JSON.stringify(this.GoodsGroupList), \"GoodsGroup.json\");\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n public cancel() {\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { GoodsGroupFormComponent } from \"../goods-group-form/goods-group-form.component\";\r\nimport { GoodsGroupImportExportFormComponent } from \"../goods-group-import-export/goods-group-import-export-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-goods-group-list\",\r\n templateUrl: \"./goods-group-list.component.html\",\r\n styleUrls: [\"./goods-group-list.component.scss\"],\r\n})\r\nexport class GoodsGroupListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = GoodsGroupFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"GoodsGroup\";\r\n this.areaName = \"Inventory\";\r\n this.label = this.translate(\"ClientApp.BackOffice.INV.GoodsGroup.GoodsGroup\");\r\n this.setactions();\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"ImportExport\",\r\n disabled: false,\r\n displayName: \"استخراج و دریافت\",\r\n iconName: \"icon-import_export-o\",\r\n apiName: \"GoodsGroup/ImportExport\",\r\n areaName: \"Inventory\",\r\n Form_Component: GoodsGroupImportExportFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n onActionClick(action: EntityListAction) {\r\n if (action.name === \"ImportExport\") {\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n label: action.displayName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {});\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { GoodsGroupFormComponent } from \"./goods-group-form/goods-group-form.component\";\r\nimport { GoodsGroupImportExportFormComponent } from \"./goods-group-import-export/goods-group-import-export-form.component\";\r\nimport { GoodsGroupListComponent } from \"./goods-group-list/goods-group-list.component\";\r\n\r\nconst components = [GoodsGroupListComponent, GoodsGroupFormComponent, GoodsGroupImportExportFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class GoodsGroupModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { EditableGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Goods, GoodsUnit } from \"../../models/goods.model\";\r\n\r\n@Component({\r\n selector: \"ngx-goods-form\",\r\n templateUrl: \"./goods-form.component.html\",\r\n styleUrls: [\"./goods-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GoodsFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n activeTabTitle: string = \"واحد سنجش فرعی\";\r\n @ViewChild(\"defaultUnit\") public defaultUnit: EditableGridComponent;\r\n @ViewChild(\"goodsBarCodes\") public goodsBarCodes: EditableGridComponent;\r\n GoodsUnits: form_control[];\r\n GoodsBarCodes: form_control[];\r\n hasCheckBoxLookUpTree: boolean = false;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Goods\";\r\n this.label = this.translate(\"ClientApp.BackOffice.INV.Goods.Good\");\r\n this.selectorService.setHasDefaultValue(\"CostSubLedgerId\", false);\r\n this.selectorService.setHasDefaultValue(\"DetailLedgerId\", false);\r\n super.ngOnInit();\r\n }\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.GoodsUnits = this.getDetailControlModels(\"GoodsUnits\");\r\n this.GoodsBarCodes = this.getDetailControlModels(\"GoodsBarCodes\");\r\n }\r\n setMaxCode() {\r\n if (!this.isloading) {\r\n this.isloading = true;\r\n if (!this.model.Code) this.model.Code = \"\";\r\n if (!this.model.GoodsGroupId && this.formGroup && this.formGroup.controls[\"GoodsGroupId\"])\r\n this.model.GoodsGroupId = this.formGroup.controls[\"GoodsGroupId\"].value;\r\n this.httpCommonService\r\n .get(this.apiName + \"/\" + this.model.GoodsGroupId + \"/\" + this.model.Code)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.isloading = false;\r\n if (!this.model) this.model = new Goods();\r\n if (data) {\r\n this.model[\"Code\"] = data[\"MaxCode\"] as string;\r\n }\r\n this.setdefault();\r\n this.setValue(\"Code\", this.model[\"Code\"]);\r\n },\r\n (error) => {\r\n this.isloading = false;\r\n this.getFailedHelper(error);\r\n }\r\n );\r\n }\r\n }\r\n onRowSelected($event) {}\r\n onChange($event) {\r\n if (this.isNewRow) {\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"GoodsGroup\")) {\r\n this.formGroup.controls[\"Code\"].setValue($event.data.TreeCode);\r\n this.model.Title = $event.data.TreePath;\r\n this.model.Code = $event.data.TreeCode;\r\n this.model.GoodsGroupId = $event.data.Id;\r\n this.setMaxCode();\r\n } else if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Unit\")) {\r\n this.formGroup.controls[\"DefaultUnitId\"].setValue($event.data.Id);\r\n this.model.DefaultUnitId = $event.data.Id;\r\n this.model.DefaultUnitCode = $event.data.Code;\r\n this.model.DefaultUnitTitle = $event.data.Title;\r\n }\r\n }\r\n }\r\n setdefault() {\r\n if (!this.model.GoodsUnits) this.model.GoodsUnits = [];\r\n if (!this.model.GoodsBarCodes) this.model.GoodsBarCodes = [];\r\n if (this.model.Active === undefined) this.model.Active = true;\r\n if (this.model.IsGoods === undefined) this.model.IsGoods = true;\r\n if (this.model.IsMarketable === undefined) this.model.IsMarketable = false;\r\n if (this.model.HasTracing === undefined) this.model.HasTracing = false;\r\n if (this.model.HasTaxDuty === undefined) this.model.HasTaxDuty = true;\r\n if (this.model.HasExpiryDate === undefined) this.model.HasExpiryDate = false;\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n beforupdate() {\r\n if (this.goodsBarCodes) this.goodsBarCodes.saveCurrent();\r\n if (this.defaultUnit) this.defaultUnit.saveCurrent();\r\n if (this.isValid()) {\r\n if (\r\n this.model.GoodsUnits &&\r\n this.model.GoodsUnits.length > 0 &&\r\n this.model.GoodsUnits.some((x) => x.State !== RowState.Delete && x.State !== RowState.Detached && x.IsDefault)\r\n ) {\r\n let defaultunit: GoodsUnit = this.model.GoodsUnits.find((x) => x.IsDefault) as GoodsUnit;\r\n this.formGroup.controls[\"DefaultUnitId\"].setValue(defaultunit.UnitId);\r\n this.model.DefaultUnitId = defaultunit.UnitId;\r\n this.model.DefaultUnitCode = defaultunit.UnitCode;\r\n this.model.DefaultUnitTitle = defaultunit.UnitTitle;\r\n } else {\r\n this.formGroup.controls[\"DefaultUnitId\"].setValue(this.formGroup.controls[\"UnitId\"].value);\r\n this.formGroup.controls[\"DefaultUnitCode\"].setValue(this.formGroup.controls[\"UnitCode\"].value);\r\n this.formGroup.controls[\"DefaultUnitTitle\"].setValue(this.formGroup.controls[\"UnitTitle\"].value);\r\n this.model.DefaultUnitId = this.formGroup.controls[\"UnitId\"].value;\r\n this.model.DefaultUnitCode = this.formGroup.controls[\"UnitCode\"].value;\r\n this.model.DefaultUnitTitle = this.formGroup.controls[\"UnitTitle\"].value;\r\n }\r\n }\r\n this.model.GoodsUnits.forEach((x) => {\r\n if (!x.GoodsId) x.GoodsId = 0;\r\n });\r\n }\r\n valueChanges($event) {\r\n if (this.defaultUnit && this.defaultUnit.LookupData[\"Unit/ReadLookUp\"]) {\r\n let UnitId = this.formGroup.controls[\"UnitId\"].value;\r\n this.defaultUnit.LookupData[\"Unit/ReadLookUp\"] = this.defaultUnit.LookupData[\"Unit/ReadLookUp\"].filter((x) => x[\"Id\"] !== UnitId);\r\n }\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this.selectorService.setHasDefaultValue(\"CostSubLedgerId\", undefined);\r\n this.selectorService.setHasDefaultValue(\"DetailLedgerId\", undefined);\r\n this.GoodsUnits = undefined;\r\n this.GoodsBarCodes = undefined;\r\n }\r\n}\r\n","\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\n\r\n@Component({\r\n selector: \"ngx-goods-formula-form\",\r\n templateUrl: \"./goods-formula-form.component.html\",\r\n styleUrls: [\"./goods-formula-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GoodsFormulaFormComponent extends BaseFormComponent {\r\n @Input() _columns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.noLoadData = true;\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n this.orignalColumns = this._columns as form_control[];\r\n this.columns = (this._columns as form_control[]).filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnAttribute();\r\n this.setColumnNumber(this.columns);\r\n this.setFormGroup(this.model);\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n async save() {\r\n if (this.formGroup?.valid) {\r\n this.result = this.getDataFromFormGroup();\r\n this.closeModal();\r\n }\r\n }\r\n cancel() {\r\n this.closeModal();\r\n }\r\n onChange($event) {\r\n if ($event && $event.data && $event.data.Title && $event.apiName !== \"Branch/ReadLookUp\") {\r\n this.model.GoodsCode = $event.data.Code;\r\n this.model.GoodsTitle = $event.data.Title;\r\n this.model.GoodsKindCode = $event.data.GoodsKindCode;\r\n this.model.GoodsKindTitle = $event.data.GoodsKindTitle;\r\n this.setValue(\"GoodsCode\", $event.data.Code);\r\n this.setValue(\"GoodsTitle\", $event.data.Title);\r\n this.setValue(\"GoodsKindCode\", $event.data.GoodsKindCode);\r\n this.setValue(\"GoodsKindTitle\", $event.data.GoodsKindTitle);\r\n if ($event.data.UnitTitle) {\r\n this.model.UnitTitle = $event.data.UnitTitle;\r\n this.setValue(\"UnitTitle\", $event.data.UnitTitle);\r\n }\r\n }\r\n if($event.apiName === \"Goods/GetPagining\" && $event?.data?.Id && ($event?.data?.Id === this.currentrow?.Id || $event?.data?.Id === this.currentrow?.HeaderGoodsId)){\r\n this.sts.showDialog('کالای انتخاب شده برای استفاده در انالیز غیرمجاز میباشد','توجه');\r\n this.setValue('GoodsId' , null);\r\n }\r\n } \r\n}\r\n","\r\n\r\n)\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, Type, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { EntityListAction, Permission, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { InvGoodsKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { GoodsFormulaDetail } from \"../../../models/goods-formula-detail.model\";\r\nimport { Goods } from \"../../../models/goods.model\";\r\nimport { GoodsFormulaFormComponent } from \"../goods-formula-form/goods-formula-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-goods-formula-view-form\",\r\n templateUrl: \"./goods-formula-view-form.component.html\",\r\n styleUrls: [\"./goods-formula-view-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GoodsFormulaViewFormComponent extends BaseFormComponent {\r\n public GoodsFormulaDetailsColumns: any;\r\n datList: GoodsFormulaDetail[] = [];\r\n inputEditorform: Type;\r\n actions: EntityListAction[];\r\n @ViewChild(\"goodsFormulaView\") public goodsFormulaView: KGridComponent;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.inputEditorform = GoodsFormulaFormComponent;\r\n }\r\n async ngOnInit() {\r\n this.noLoadData = true;\r\n this.model = Object.assign({}, this.currentrow);\r\n super.ngOnInit();\r\n this.setFormGroup(this.model);\r\n this.setactions();\r\n this.setData();\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n async save() {\r\n if (this.formGroup?.valid) {\r\n this.closeModal();\r\n }\r\n }\r\n async setData() {\r\n await this.httpCommonService\r\n .getList(`Goods/GetGoodsFormulaDetailByGoodsId/${this.currentrow.GoodsId}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then((data: GoodsFormulaDetail[]) => {\r\n this.datList = data;\r\n if (this.goodsFormulaView) this.goodsFormulaView.dataList = data;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n cancel() {\r\n this.closeModal();\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"GetGoodsFormula\",\r\n disabled: false,\r\n displayName: \"اجزاء تشکیل دهنده کالا\",\r\n iconName: \"icon-gears1\",\r\n apiName: \"Goods/GetGoodsFormula\",\r\n areaName: \"Inventory\",\r\n requireSelectedrows: true,\r\n Form_Component: GoodsFormulaViewFormComponent,\r\n permission: Permission.viewPermission,\r\n },\r\n ];\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: Goods, onRowsSelected: Goods[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n ///کالای تولید / نیم ساخته\r\n if (\r\n action.name === \"GetGoodsFormula\" &&\r\n onRowSelected &&\r\n onRowSelected.GoodsKindCode !== InvGoodsKind.Product &&\r\n onRowSelected.GoodsKindCode !== InvGoodsKind.HalfMade\r\n ) {\r\n this.sts.showDialog(\"فقط کالا از نوع محصول /نیم ساخته قابل انتخاب است.\", \"\");\r\n }\r\n ///اجزاء تشکیل دهنده کالا\r\n else if (action.name === \"GetGoodsFormula\") {\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n currentrow: onRowSelected,\r\n apiName: action.apiName,\r\n areaName: action.areaName,\r\n GoodsFormulaDetailsColumns: this.columns,\r\n label: \"اجزاء تشکیل دهنده کالا\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n }\r\n }\r\n}\r\n","\r\n \r\n
0\">\r\n \r\n \r\n
\r\n
\r\n\r\n","import { ChangeDetectorRef, Component, HostListener, Type, ViewChild } from \"@angular/core\";\r\nimport { isNullOrEmptyString } from \"@progress/kendo-angular-grid/dist/es2015/utils\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, Permission, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { InvGoodsKind, RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { GoodsFormulaDetail, GoodsFormulaHeader, GoodsSimilar } from \"../../models/goods-formula-detail.model\";\r\nimport { Goods } from \"../../models/goods.model\";\r\nimport { GoodsFormulaFormComponent } from \"./goods-formula-form/goods-formula-form.component\";\r\nimport { GoodsFormulaViewFormComponent } from \"./goods-formula-view-form/goods-formula-view-form.component\";\r\nimport { GoodsSimilarFormComponent } from \"./goods-similar/goods-similar-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-goods-formula\",\r\n templateUrl: \"./goods-formula.component.html\",\r\n styleUrls: [\"./goods-formula.component.scss\"],\r\n})\r\nexport class GoodsFormulaComponent extends BaseFormComponent {\r\n refresh() {\r\n this.ngOnInit();\r\n }\r\n isloading: boolean = false;\r\n actions: EntityListAction[];\r\n analysisActions: EntityListAction[];\r\n inputEditorform: Type;\r\n GoodsFormulaDetailsColumns: form_control[];\r\n GoodsFormulaHeadersColumns: form_control[];\r\n GoodsSimilarColumns: form_control[];\r\n @ViewChild(\"goodsFormulaHeaders\") public goodsFormulaHeaders: KGridComponent;\r\n @ViewChild(\"goodsFormulaDetail\") public goodsFormulaDetail: KGridComponent;\r\n\r\n GoodsFormulaDetails: GoodsFormulaDetail[] = [];\r\n GoodsSimilars: GoodsSimilar[] = [];\r\n erroremessage: string;\r\n DefaultValues: Dictionary = [];\r\n DetailDefaultValues: Dictionary = [];\r\n CurrentGoodsFormulaHeader: GoodsFormulaHeader;\r\n CurrentGoodsFormulaDetail: GoodsFormulaDetail;\r\n isOkforEdit: boolean = false;\r\n public headerColumns: form_control[] = [];\r\n constructor(\r\n protected selectorService: SelectorService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected cd: ChangeDetectorRef,\r\n private datatransfer: Datatransfer,\r\n _VoucherKindInfo: VoucherKindInfo\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.currentrow = this.datatransfer?.currentrow;\r\n if (this.datatransfer?.apiName) this.apiName = this.datatransfer?.apiName.split(\"/\")[0];\r\n if (this.datatransfer?.areaName) this.areaName = this.datatransfer?.areaName;\r\n this.VoucherKind = _VoucherKindInfo;\r\n this.tabsservice = _tabsservice;\r\n this.inputEditorform = GoodsFormulaFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n this.onanalysisActionClick = this.onanalysisActionClick.bind(this);\r\n }\r\n\r\n async ngOnInit() {\r\n this.DefaultValues[\"Active\"] = true;\r\n this.DefaultValues[\"GoodsId\"] = this.currentrow.Id;\r\n this.DefaultValues[\"GoodsFormulaDetails\"] = [];\r\n this.DefaultValues[\"Title\"] = this.currentrow.Title;\r\n this.DefaultValues[\"GoodsUnitTitle\"] = this.currentrow.UnitTitle;\r\n this.DetailDefaultValues[\"PriceRatio\"] = 1;\r\n this.DetailDefaultValues[\"GoodsFormulaDetailId\"] = 0;\r\n this.DetailDefaultValues[\"Priority\"] = 1;\r\n\r\n this.apiName = \"Goods\";\r\n this.label = this.currentrow[\"Title\"] ? `اجزاء تشکیل دهنده کالا(${this.currentrow[\"Title\"]})` : \"اجزاء تشکیل دهنده کالا\";\r\n if (this.currentrow && this.currentrow[\"GoodsKindCode\"] !== InvGoodsKind.HalfMade && this.currentrow[\"GoodsKindCode\"] !== InvGoodsKind.Product)\r\n this.erroremessage = \"اجزاء تشکیل دهنده فقط برای کالای از نوع محصول یا نیم ساخته امکان پیذیر است \";\r\n this.setactions();\r\n await super.ngOnInit();\r\n this.setHeaderColumns();\r\n this.setDetailColumns();\r\n this.setGoodsSimilarColumns();\r\n }\r\n @HostListener(\"window:keydown\", [\"$event\"])\r\n keyboardBinded(e: KeyboardEvent) {\r\n if (e.ctrlKey && !e.altKey) {\r\n if (e.code == \"KeyD\") {\r\n e.preventDefault();\r\n\r\n this.goodsFormulaHeaders.copy();\r\n }\r\n if (e.code == \"KeyR\") {\r\n e.preventDefault();\r\n this.ngOnInit();\r\n // this.model.GoodsFormulaHeaders = null;\r\n // this.goodsFormulaHeaders.loadReports().finally(async () => {\r\n // await this.goodsFormulaHeaders.refreshData();\r\n // });\r\n\r\n // this.goodsFormulaDetail.loadReports().finally(async () => {\r\n // this.goodsFormulaDetail.refreshData();\r\n // });\r\n }\r\n }\r\n }\r\n onChange($event) {}\r\n isValid() {\r\n let flag: boolean = true;\r\n if (!this.model.GoodsFormulaHeaders || this.model.GoodsFormulaHeaders.length <= 0) {\r\n this.erroremessage = \"هیچ آنالیزی تعریف نشده است.\";\r\n this.sts.showDialog(this.erroremessage, this.translate(\"MessageHeader.Error\"));\r\n flag = false;\r\n }\r\n if (\r\n flag &&\r\n this.model.GoodsFormulaHeaders.some(\r\n (x) => x.State != RowState.Delete && x.State != RowState.Detached && (!x.GoodsFormulaDetails || x.GoodsFormulaDetails.length <= 0)\r\n )\r\n ) {\r\n this.erroremessage = \"هیچ کالای برای آنالیزی انتخاب نشده است.\";\r\n this.sts.showDialog(this.erroremessage, this.translate(\"MessageHeader.Error\"));\r\n flag = false;\r\n }\r\n return flag;\r\n }\r\n setdefault() {\r\n if (!this.model.GoodsFormulaHeaders) this.model.GoodsFormulaHeaders = [];\r\n else this.HeaderRowSelected(this.model.GoodsFormulaHeaders[0]);\r\n if (this.isNewRow && isNullOrEmptyString(this.model.Title) && this.currentrow) this.model.Title = this.currentrow.Title;\r\n this.cd.markForCheck();\r\n }\r\n onCreateGoodsFormulaHeader($event: GoodsFormulaHeader) {\r\n $event = {};\r\n $event.Active = true;\r\n $event.EffectDate = new Date();\r\n $event.GoodsId = this.model.Id;\r\n $event.GoodsTitle = this.model.Title;\r\n $event.GoodsCode = this.model.Code;\r\n $event.Title = this.model.Title;\r\n $event.GoodsUnitTitle = this.model.UnitTitle;\r\n $event.TempRowNumber = this.model.GoodsFormulaHeaders.length + 100;\r\n $event.State = RowState.New;\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: $event,\r\n _columns: this.GoodsFormulaHeadersColumns,\r\n areaName: this.areaName,\r\n label: \"آنالیز کالا\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n this.model.GoodsFormulaHeaders.push(model as GoodsFormulaHeader);\r\n this.goodsFormulaHeaders.refreshData();\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n onDeleteGoodsFormulaHeader($event: GoodsFormulaHeader) {\r\n if (\r\n $event?.GoodsFormulaDetails &&\r\n $event.GoodsFormulaDetails.some((x) => x.State !== RowState.Delete && x.State !== RowState.Detached) &&\r\n $event.GoodsFormulaDetails.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).length > 0\r\n ) {\r\n this.sts.showDialog(\"به علت وجود قلم آنالیز امکان حذف نیست.\", \"حذف آنالیز\");\r\n return;\r\n } else {\r\n let temp = this.model.GoodsFormulaHeaders.find(\r\n (x) => (x.Id && x.Id !== 0 && x.Id === $event.Id) || ($event.TempRowNumber && x.TempRowNumber === $event.TempRowNumber)\r\n );\r\n if (temp && temp.State === RowState.New) temp.State = RowState.Detached;\r\n else temp.State = RowState.Delete;\r\n this.goodsFormulaHeaders.isRefreshing = true;\r\n this.goodsFormulaHeaders.refreshData();\r\n this.cd.markForCheck();\r\n }\r\n }\r\n onEditGoodsFormulaHeader($event) {\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: $event,\r\n _columns: this.GoodsFormulaHeadersColumns,\r\n areaName: this.areaName,\r\n label: \"آنالیز کالا\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n (model as GoodsFormulaHeader).State = RowState.Modify;\r\n this.model.GoodsFormulaHeaders.forEach((x) => {\r\n if ((x.Id && x.Id !== 0 && x.Id === $event.Id) || ($event.TempRowNumber && x.TempRowNumber === $event.TempRowNumber)) {\r\n Object.assign(x, model);\r\n this.goodsFormulaHeaders.isRefreshing = true;\r\n this.goodsFormulaHeaders.refreshData();\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n onCreateGoodsFormulaDetail($event: GoodsFormulaDetail) {\r\n if (!this.CurrentGoodsFormulaHeader && this.model.GoodsFormulaHeaders.length === 1)\r\n this.CurrentGoodsFormulaHeader = this.model.GoodsFormulaHeaders[0];\r\n\r\n if (!this.CurrentGoodsFormulaHeader) this.sts.showDialog(\"آنالیز انتخاب نشده است.\", \"\");\r\n if (!this.CurrentGoodsFormulaHeader.GoodsFormulaDetails) this.CurrentGoodsFormulaHeader.GoodsFormulaDetails = [];\r\n if (!this.GoodsFormulaDetails) this.GoodsFormulaDetails = [];\r\n $event = {};\r\n $event.GoodsFormulaHeaderId = this.CurrentGoodsFormulaHeader.Id ?? 0;\r\n $event.PriceRatio = 1;\r\n $event.LossPercent = 0;\r\n $event.LossAmount = 0;\r\n $event.Id = this.model.Id;\r\n $event.TempRowNumber = this.GoodsFormulaDetails.length + 100;\r\n $event.State = RowState.New;\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: $event,\r\n _columns: this.GoodsFormulaDetailsColumns,\r\n areaName: this.areaName,\r\n label: \"اجزاء تشکیل دهنده کالا\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n if (this.model.GoodsFormulaHeaders.some((s) => s.GoodsId === model[\"GoodsId\"])) {\r\n this.sts.showDialog(`محصول اصلی (${model[\"GoodsTitle\"]}) نمی تواند به عنوان مواد انتخاب شود.`, \"خطای انتخاب کالا\");\r\n return;\r\n }\r\n this.model.GoodsFormulaHeaders.forEach((x) => {\r\n if (\r\n (x.TempRowNumber && x.TempRowNumber === this.CurrentGoodsFormulaHeader.TempRowNumber) ||\r\n (x.Id && x.Id !== 0 && x.Id === this.CurrentGoodsFormulaHeader.Id)\r\n ) {\r\n if (!x.GoodsFormulaDetails) x.GoodsFormulaDetails = [];\r\n x.GoodsFormulaDetails.push(model as GoodsFormulaDetail);\r\n this.GoodsFormulaDetails = x.GoodsFormulaDetails;\r\n this.goodsFormulaDetail.isRefreshing = true;\r\n this.goodsFormulaDetail.refreshData();\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n });\r\n }\r\n onDeleteGoodsFormulaDetail($event: GoodsFormulaDetail) {\r\n if (\r\n $event?.GoodsSimilars &&\r\n $event.GoodsSimilars.some((x) => x.State !== RowState.Delete && x.State !== RowState.Detached) &&\r\n $event.GoodsSimilars.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).length > 0\r\n ) {\r\n this.sts.showDialog(\"به علت وجود کالا مشابه امکان حذف نیست.\", \"حذف قلم آنالیز\");\r\n } else {\r\n this.model.GoodsFormulaHeaders.forEach((gfh) => {\r\n gfh.GoodsFormulaDetails.forEach((gfd) => {\r\n if (($event.TempRowNumber && gfd.TempRowNumber === $event.TempRowNumber) || (gfd.Id && gfd.Id !== 0 && gfd.Id === $event.Id)) {\r\n if (gfd.State === RowState.New) gfd.State = RowState.Detached;\r\n else gfd.State = RowState.Delete;\r\n this.goodsFormulaDetail.isRefreshing = true;\r\n this.goodsFormulaDetail.refreshData();\r\n this.cd.markForCheck();\r\n }\r\n });\r\n });\r\n }\r\n }\r\n onEditGoodsFormulaDetail($event) {\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: $event,\r\n _columns: this.GoodsFormulaDetailsColumns,\r\n areaName: this.areaName,\r\n label: \"اجزاء تشکیل دهنده کالا\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n if (this.model.GoodsFormulaHeaders.some((s) => s.GoodsId === model[\"GoodsId\"])) {\r\n this.sts.showDialog(`محصول اصلی (${model[\"GoodsTitle\"]}) نمی تواند به عنوان مواد انتخاب شود.`, \"خطای انتخاب کالا\");\r\n return;\r\n }\r\n (model as GoodsFormulaDetail).State = RowState.Modify;\r\n (model as GoodsFormulaDetail).LossAmount = ((model as GoodsFormulaDetail).StandardAmount * (model as GoodsFormulaDetail).LossPercent) / 100;\r\n this.model.GoodsFormulaHeaders.forEach((x) =>\r\n x.GoodsFormulaDetails.forEach((gfd) => {\r\n if ((gfd.TempRowNumber && gfd.TempRowNumber === $event.TempRowNumber) || (gfd.Id && gfd.Id !== 0 && gfd.Id === $event.Id)) {\r\n Object.assign(gfd, model);\r\n this.goodsFormulaDetail.isRefreshing = true;\r\n this.goodsFormulaDetail.refreshData();\r\n this.cd.markForCheck();\r\n }\r\n })\r\n );\r\n }\r\n });\r\n }\r\n\r\n beforupdate() {\r\n if (this.CurrentGoodsFormulaHeader != undefined) {\r\n this.HeaderRowSelected(this.CurrentGoodsFormulaHeader);\r\n } else if (this.CurrentGoodsFormulaDetail !== undefined) {\r\n this.DetailRowSelected(this.CurrentGoodsFormulaDetail);\r\n }\r\n if (this.model.GoodsFormulaHeaders && this.model.GoodsFormulaHeaders.length > 0) {\r\n this.model.GoodsFormulaHeaders.forEach((h) => {\r\n if (h.GoodsFormulaDetails && this.model.GoodsFormulaHeaders.length <= 0) h.GoodsFormulaDetails = undefined;\r\n else if (h.GoodsFormulaDetails)\r\n h.GoodsFormulaDetails.forEach((d) => {\r\n if (d.GoodsSimilars && d.GoodsSimilars.length <= 0) d.GoodsSimilars = undefined;\r\n });\r\n });\r\n }\r\n }\r\n HeaderRowSelected(event: GoodsFormulaHeader) {\r\n if (event) {\r\n this.CurrentGoodsFormulaHeader = event;\r\n this.GoodsFormulaDetails = event.GoodsFormulaDetails;\r\n this.setRowIndex();\r\n this.isOkforEdit = this.GoodsFormulaDetails && this.GoodsFormulaDetails.length > 0;\r\n if (this.goodsFormulaDetail) {\r\n this.goodsFormulaDetail.isRefreshing = true;\r\n this.goodsFormulaDetail.refreshData();\r\n this.goodsFormulaDetail.isRefreshing = false;\r\n }\r\n }\r\n }\r\n DetailRowSelected(event: GoodsFormulaDetail) {\r\n if (event) {\r\n this.CurrentGoodsFormulaDetail = event;\r\n this.GoodsSimilars = event.GoodsSimilars;\r\n this.isOkforEdit = this.GoodsSimilars && this.GoodsSimilars.length > 0;\r\n }\r\n }\r\n setHeaderColumns() {\r\n this.GoodsFormulaHeadersColumns = [];\r\n this.GoodsFormulaHeadersColumns.push({\r\n label: \"کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsId\",\r\n textType: \"number\",\r\n disabled: false,\r\n name: \"GoodsId\",\r\n order: 0,\r\n formVisible: false,\r\n listVisible: false,\r\n required: true,\r\n });\r\n this.GoodsFormulaHeadersColumns.push({\r\n label: \"کد کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsCode\",\r\n disabled: true,\r\n name: \"GoodsCode\",\r\n textType: \"text\",\r\n order: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaHeadersColumns.push({\r\n label: \"عنوان کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsTitle\",\r\n disabled: true,\r\n name: \"GoodsTitle\",\r\n textType: \"text\",\r\n order: 2,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaHeadersColumns.push({\r\n label: \"عنوان\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Title\",\r\n textType: \"text\",\r\n disabled: false,\r\n name: \"Title\",\r\n order: 3,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.GoodsFormulaHeadersColumns.push({\r\n label: \"واحد سنجش\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsUnitTitle\",\r\n textType: \"text\",\r\n disabled: true,\r\n name: \"GoodsUnitTitle\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaHeadersColumns.push({\r\n label: \"مقدار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Amount\",\r\n textType: \"number\",\r\n disabled: false,\r\n name: \"Amount\",\r\n order: 5,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.GoodsFormulaHeadersColumns.push({\r\n label: \"تاریخ موثر\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EffectDate\",\r\n disabled: false,\r\n name: \"EffectDate\",\r\n textType: \"date\",\r\n order: 6,\r\n formVisible: true,\r\n listVisible: false,\r\n required: false,\r\n });\r\n this.GoodsFormulaHeadersColumns.push({\r\n label: \"تاریخ موثر\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ShamsiEffectDate\",\r\n disabled: false,\r\n name: \"ShamsiEffectDate\",\r\n textType: \"date\",\r\n order: 6,\r\n formVisible: false,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaHeadersColumns.push({\r\n label: \"توضیحات\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Comment\",\r\n disabled: false,\r\n name: \"Comment\",\r\n textType: \"text\",\r\n order: 7,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaHeadersColumns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 8,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.GoodsFormulaHeadersColumns.push({\r\n label: \"فعال\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"Active\",\r\n disabled: false,\r\n name: \"Active\",\r\n textType: \"checkbox\",\r\n order: 9,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaHeadersColumns.push({\r\n label: \"انبار رستورانی\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"IsResuarantWareHouse\",\r\n disabled: false,\r\n name: \"IsResuarantWareHouse\",\r\n textType: \"checkbox\",\r\n order: 10,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaHeadersColumns.push({\r\n label: \"قیمت تمام شده\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"CostPrice\",\r\n disabled: false,\r\n name: \"CostPrice\",\r\n textType: \"currency\",\r\n order: 11,\r\n formVisible: false,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaHeadersColumns.push({\r\n label: \"اقلام آنالیز\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"GoodsFormulaDetails\",\r\n disabled: false,\r\n name: \"GoodsFormulaDetails\",\r\n textType: \"text\",\r\n order: 11,\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n }\r\n setDetailColumns() {\r\n this.GoodsFormulaDetailsColumns = [];\r\n this.GoodsFormulaDetailsColumns.push({\r\n label: \"فرمول\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsFormulaHeaderId\",\r\n textType: \"number\",\r\n disabled: false,\r\n name: \"GoodsFormulaHeaderId\",\r\n order: 0,\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n this.GoodsFormulaDetailsColumns.push({\r\n label: \"کالا\",\r\n controlType: FormControlTypes.lookup,\r\n modelName: \"GoodsId\",\r\n textType: \"text\",\r\n disabled: false,\r\n name: \"GoodsId\",\r\n order: 1,\r\n formVisible: true,\r\n listVisible: false,\r\n required: true,\r\n apiName: \"Goods/GetPagining\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n columnsName: \"GoodsKindCode,GoodsKindTitle,GoodsGroupTreePath,Code,Title,UnitTitle\",\r\n });\r\n this.GoodsFormulaDetailsColumns.push({\r\n label: \"ردیف\",\r\n modelName: \"RowNumber\",\r\n disabled: false,\r\n name: \"RowNumber\",\r\n textType: \"text\",\r\n order: 2,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaDetailsColumns.push({\r\n label: \"کد کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsCode\",\r\n disabled: false,\r\n name: \"GoodsCode\",\r\n textType: \"text\",\r\n order: 2,\r\n formVisible: false,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaDetailsColumns.push({\r\n label: \"عنوان کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsTitle\",\r\n disabled: false,\r\n name: \"GoodsTitle\",\r\n textType: \"text\",\r\n order: 3,\r\n formVisible: false,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaDetailsColumns.push({\r\n label: \"کد نوع کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsKindCode\",\r\n disabled: false,\r\n name: \"GoodsKindCode\",\r\n textType: \"text\",\r\n order: 3,\r\n formVisible: false,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaDetailsColumns.push({\r\n label: \"عنوان نوع کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsKindTitle\",\r\n disabled: false,\r\n name: \"GoodsKindTitle\",\r\n textType: \"text\",\r\n order: 3,\r\n formVisible: false,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaDetailsColumns.push({\r\n label: \"واحد سنجش\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"UnitTitle\",\r\n textType: \"text\",\r\n disabled: true,\r\n name: \"UnitTitle\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaDetailsColumns.push({\r\n label: \"مقدار استاندارد\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"StandardAmount\",\r\n textType: \"number\",\r\n disabled: false,\r\n name: \"StandardAmount\",\r\n order: 5,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.GoodsFormulaDetailsColumns.push({\r\n label: \"درصد ضایعات\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"LossPercent\",\r\n disabled: false,\r\n name: \"LossPercent\",\r\n textType: \"number\",\r\n order: 6,\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n max: 100,\r\n min: 0,\r\n });\r\n this.GoodsFormulaDetailsColumns.push({\r\n label: \"مقدار ضایعات\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"LossAmount\",\r\n disabled: false,\r\n name: \"LossAmount\",\r\n textType: \"number\",\r\n order: 7,\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n this.GoodsFormulaDetailsColumns.push({\r\n label: \"ضریب قیمت\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"PriceRatio\",\r\n disabled: false,\r\n name: \"PriceRatio\",\r\n textType: \"number\",\r\n order: 8,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsFormulaDetailsColumns.push({\r\n label: \"توضیحات\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Comment\",\r\n disabled: false,\r\n name: \"Comment\",\r\n textType: \"text\",\r\n order: 9,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n maxLength: 255,\r\n });\r\n }\r\n setGoodsSimilarColumns() {\r\n this.GoodsSimilarColumns = [];\r\n this.GoodsSimilarColumns.push({\r\n label: \"فرمولاجزاء تشکلیل دهنده کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsFormulaDetailId\",\r\n textType: \"number\",\r\n disabled: false,\r\n name: \"GoodsFormulaDetailId\",\r\n order: 0,\r\n formVisible: false,\r\n listVisible: false,\r\n required: true,\r\n });\r\n this.GoodsSimilarColumns.push({\r\n label: \"کالا\",\r\n controlType: FormControlTypes.lookup,\r\n modelName: \"GoodsId\",\r\n textType: \"text\",\r\n disabled: false,\r\n name: \"GoodsId\",\r\n order: 1,\r\n formVisible: true,\r\n listVisible: false,\r\n required: true,\r\n apiName: \"Goods/GetPagining\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n columnsName: \"GoodsGroupTreePath,Code,Title,UnitTitle\",\r\n });\r\n this.GoodsSimilarColumns.push({\r\n label: \"کد کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsCode\",\r\n disabled: false,\r\n name: \"GoodsCode\",\r\n textType: \"text\",\r\n order: 2,\r\n formVisible: false,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsSimilarColumns.push({\r\n label: \"عنوان کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsTitle\",\r\n disabled: false,\r\n name: \"GoodsTitle\",\r\n textType: \"text\",\r\n order: 3,\r\n formVisible: false,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsSimilarColumns.push({\r\n label: \"کد نوع کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsKindCode\",\r\n disabled: false,\r\n name: \"GoodsKindCode\",\r\n textType: \"text\",\r\n order: 3,\r\n formVisible: false,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsSimilarColumns.push({\r\n label: \"عنوان نوع کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsKindTitle\",\r\n disabled: false,\r\n name: \"GoodsKindTitle\",\r\n textType: \"text\",\r\n order: 3,\r\n formVisible: false,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsSimilarColumns.push({\r\n label: \"واحد سنجش\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"UnitTitle\",\r\n textType: \"text\",\r\n disabled: true,\r\n name: \"UnitTitle\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsSimilarColumns.push({\r\n label: \"مقدار استاندارد\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"StandardAmount\",\r\n textType: \"number\",\r\n disabled: false,\r\n name: \"StandardAmount\",\r\n order: 5,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.GoodsSimilarColumns.push({\r\n label: \"درصد ضایعات\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"LossPercent\",\r\n disabled: false,\r\n name: \"LossPercent\",\r\n textType: \"number\",\r\n order: 5,\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n max: 100,\r\n min: 0,\r\n });\r\n this.GoodsSimilarColumns.push({\r\n label: \"مقدار ضایعات\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"LossAmount\",\r\n disabled: false,\r\n name: \"LossAmount\",\r\n textType: \"number\",\r\n order: 6,\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n this.GoodsSimilarColumns.push({\r\n label: \"ضریب قیمت\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"PriceRatio\",\r\n disabled: false,\r\n name: \"PriceRatio\",\r\n textType: \"number\",\r\n order: 7,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsSimilarColumns.push({\r\n label: \"الویت\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Priority\",\r\n disabled: false,\r\n name: \"Priority\",\r\n textType: \"number\",\r\n order: 8,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.GoodsSimilarColumns.push({\r\n label: \"توضیحات\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Comment\",\r\n disabled: false,\r\n name: \"Comment\",\r\n textType: \"text\",\r\n order: 9,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n maxLength: 255,\r\n });\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"GoodsSimilar\",\r\n disabled: false,\r\n displayName: \"کالای مشابه\",\r\n iconName: \"icon-content-copy\",\r\n apiName: \"Goods/GetGoodsFormula\",\r\n areaName: \"Inventory\",\r\n requireSelectedrows: true,\r\n Form_Component: GoodsSimilarFormComponent,\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"GetGoodsFormula\",\r\n disabled: false,\r\n displayName: \"اجزاء تشکیل دهنده کالا\",\r\n iconName: \"icon-pie_chart-o\",\r\n apiName: \"Goods/GetGoodsFormula\",\r\n areaName: \"Inventory\",\r\n requireSelectedrows: true,\r\n Form_Component: GoodsFormulaViewFormComponent,\r\n permission: Permission.viewPermission,\r\n },\r\n ];\r\n this.analysisActions = [\r\n {\r\n name: \"GetCostPrice\",\r\n disabled: false,\r\n displayName: \"گرفتن قیمت تمام شده\",\r\n iconName: \"icon-request_quote-F\",\r\n apiName: \"Goods/GetCostPrice\",\r\n areaName: \"Inventory\",\r\n permission: Permission.viewPermission,\r\n },\r\n ];\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: Goods, onRowsSelected: Goods[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n ///کالای تولید / نیم ساخته\r\n if (\r\n action.name === \"GetGoodsFormula\" &&\r\n onRowSelected &&\r\n onRowSelected.GoodsKindCode !== InvGoodsKind.Product &&\r\n onRowSelected.GoodsKindCode !== InvGoodsKind.HalfMade\r\n ) {\r\n this.sts.showDialog(\"فقط کالا از نوع محصول /نیم ساخته قابل انتخاب است.\", \"\");\r\n }\r\n ///اجزاء تشکیل دهنده کالا\r\n else if (action.name === \"GetGoodsFormula\") {\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n currentrow: onRowSelected,\r\n apiName: action.apiName,\r\n areaName: action.areaName,\r\n GoodsFormulaDetailsColumns: this.GoodsFormulaDetailsColumns,\r\n label: \"اجزاء تشکیل دهنده کالا\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n }\r\n ///کالای مشابه\r\n if (action.name === \"GoodsSimilar\") {\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n currentrow: this.model,\r\n apiName: action.apiName,\r\n areaName: action.areaName,\r\n GoodsSimilarColumns: this.GoodsSimilarColumns,\r\n CurrentGoodsFormulaDetail: this.CurrentGoodsFormulaDetail,\r\n CurrentGoodsFormulaHeader: this.CurrentGoodsFormulaHeader,\r\n GoodsSimilars: this.GoodsSimilars,\r\n label: `کالای مشابه (${this.CurrentGoodsFormulaDetail?.GoodsTitle})`,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n }\r\n }\r\n\r\n ShowList() {\r\n // this.dialogService\r\n // .open(InvDailyListDialogComponent as any, { closeOnClickOutside: true })\r\n // .pipe(takeUntil(this.ngUnsubscribe))\r\n // .subscribe((details: InvDailyDetail[]) => {\r\n // if (details?.length) {\r\n // this.model.InvDailyDetails = details;\r\n // this.cd.markForCheck();\r\n // }\r\n // });\r\n }\r\n onanalysisActionClick(action: EntityListAction, onRowSelected: any, onRowsSelected: any[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n if (action.name === \"GetCostPrice\") {\r\n this.httpCommonService.getList(`Goods/GetCostPrice/${this.model.Id}`).subscribe((res: any[]) => {\r\n if (res?.length > 0) {\r\n this.model.GoodsFormulaHeaders.forEach((header: any) => {\r\n const findItem = res.find((f) => f.GoodsFormulaHeaderId === header.Id);\r\n header.CostPrice = findItem?.UnitPrice;\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n setRowIndex() {\r\n this.GoodsFormulaDetails.forEach((it, index) => {\r\n it.RowNumber = index + 1;\r\n });\r\n }\r\n\r\n copy(event: GoodsFormulaHeader) {\r\n event.Id = (this.goodsFormulaHeaders.gridView.data.pop() as GoodsFormulaHeader).Id + 1;\r\n event.GoodsFormulaDetails.map((it) => (it.GoodsFormulaHeaderId = event.Id));\r\n }\r\n}\r\n","\r\n 0\">\r\n
\r\n
\r\n
\r\n \r\n آنالیز کالا\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n اجزاء تشکیل دهنده کالای {{ CurrentGoodsFormulaHeader?.Title }}\r\n
\r\n 0\"\r\n #goodsFormulaDetail\r\n id=\"GoodsFormulaDetails\"\r\n class=\"goods-formula-details\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [noToolBar]=\"true\"\r\n [groupable]=\"false\"\r\n name=\"GoodsFormulaDetails\"\r\n [paging]=\"false\"\r\n [pagingSize]=\"1000\"\r\n [hasReport]=\"false\"\r\n [actions]=\"actions\"\r\n [actionTregger]=\"onActionClick\"\r\n [columns]=\"GoodsFormulaDetailsColumns\"\r\n [dataList]=\"GoodsFormulaDetails\"\r\n aggregatesColumnName=\"StandardAmount\"\r\n (onRefreshData)=\"refresh()\"\r\n (onRowSelected)=\"DetailRowSelected($event)\"\r\n (onCreate)=\"onCreateGoodsFormulaDetail($event)\"\r\n (onDelete)=\"onDeleteGoodsFormulaDetail($event)\"\r\n (onEdit)=\"onEditGoodsFormulaDetail($event)\"\r\n reportName=\"GoodsFormulaDetails\">\r\n \r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, Type, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { GoodsFormulaDetail, GoodsFormulaHeader, GoodsSimilar } from \"../../../models/goods-formula-detail.model\";\r\nimport { Goods } from \"../../../models/goods.model\";\r\nimport { GoodsFormulaFormComponent } from \"../goods-formula-form/goods-formula-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-goods-similar-form\",\r\n templateUrl: \"./goods-similar-form.component.html\",\r\n styleUrls: [\"./goods-similar-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GoodsSimilarFormComponent extends BaseFormComponent {\r\n @Input() GoodsSimilarColumns: form_control[] = [];\r\n @Input() CurrentGoodsFormulaDetail: GoodsFormulaDetail;\r\n @Input() CurrentGoodsFormulaHeader: GoodsFormulaHeader;\r\n @Input() GoodsSimilars: GoodsSimilar[] = [];\r\n @ViewChild(\"goodsSimilar\") public goodsSimilar: KGridComponent;\r\n inputEditorform: Type;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.inputEditorform = GoodsFormulaFormComponent;\r\n }\r\n async ngOnInit() {\r\n this.noLoadData = true;\r\n this.model = Object.assign({}, this.currentrow);\r\n super.ngOnInit();\r\n this.setFormGroup(this.model);\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n onCreateGoodsSimilar($event: GoodsSimilar) {\r\n if (!this.CurrentGoodsFormulaDetail && this.CurrentGoodsFormulaHeader.GoodsFormulaDetails.length === 1)\r\n this.CurrentGoodsFormulaDetail = this.CurrentGoodsFormulaHeader.GoodsFormulaDetails[0];\r\n\r\n if (!this.CurrentGoodsFormulaDetail) this.sts.showDialog(\"اجزاء تشکیل دهنده کالا انتخاب نشده است.\", \"\");\r\n\r\n if (!this.CurrentGoodsFormulaDetail.GoodsSimilars) this.CurrentGoodsFormulaDetail.GoodsSimilars = [];\r\n if (!this.GoodsSimilars) this.GoodsSimilars = [];\r\n $event = {};\r\n $event.GoodsFormulaDetailId = this.CurrentGoodsFormulaDetail.Id ?? 0;\r\n $event.PriceRatio = 1;\r\n $event.LossPercent = 0;\r\n $event.StandardAmount = this.CurrentGoodsFormulaDetail.StandardAmount ?? 0;\r\n $event.LossAmount = 0;\r\n $event.Priority = this.GoodsSimilars.length + 1;\r\n $event.State = RowState.New;\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: $event,\r\n _columns: this.GoodsSimilarColumns,\r\n areaName: this.areaName,\r\n label: `کالای مشابه (${this.CurrentGoodsFormulaDetail?.GoodsTitle})`,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n this.model.GoodsFormulaHeaders.forEach((x) => {\r\n if (x.GoodsFormulaDetails.some((s) => s.GoodsId === model[\"GoodsId\"])) {\r\n this.sts.showDialog(`مواد اولیه (${model[\"GoodsTitle\"]}) نمی تواند به عنوان کالای مشابه انتخاب شود.`, \"خطای انتخاب کالا\");\r\n return;\r\n }\r\n x.GoodsFormulaDetails.forEach((gfd) => {\r\n if (\r\n (gfd.Id && gfd.Id !== 0 && gfd.Id === this.CurrentGoodsFormulaDetail.Id) ||\r\n (this.CurrentGoodsFormulaDetail.TempRowNumber && gfd.TempRowNumber == this.CurrentGoodsFormulaDetail.TempRowNumber)\r\n ) {\r\n if (!gfd.GoodsSimilars) gfd.GoodsSimilars = [];\r\n gfd.GoodsSimilars.push(model as GoodsSimilar);\r\n this.GoodsSimilars = gfd.GoodsSimilars;\r\n this.goodsSimilar.isRefreshing = true;\r\n this.goodsSimilar.refreshData();\r\n this.cd.markForCheck();\r\n }\r\n });\r\n });\r\n }\r\n });\r\n }\r\n onDeleteGoodsSimilar($event) {\r\n this.sts.showDialog(\r\n `آیا از حذف کالا اطمینان دارید؟`,\r\n this.translate(\"ClientApp.FrontOffice.Financial.AccountingDocument.DeleteInformation\"),\r\n DialogType.confirm,\r\n async () => {\r\n this.model.GoodsFormulaHeaders.forEach((gfh) => {\r\n gfh.GoodsFormulaDetails.forEach((gfd) => {\r\n gfd.GoodsSimilars.forEach((gs) => {\r\n if (\r\n (gs.GoodsId && gs.GoodsId !== 0 && gs.GoodsId === $event.GoodsId) ||\r\n ($event.TempRowNumber && gs.TempRowNumber == $event.TempRowNumber)\r\n ) {\r\n if (gs.State === RowState.New) gs.State = RowState.Detached;\r\n else gs.State = RowState.Delete;\r\n this.goodsSimilar.isRefreshing = true;\r\n this.goodsSimilar.refreshData();\r\n this.cd.markForCheck();\r\n }\r\n });\r\n });\r\n });\r\n }\r\n );\r\n }\r\n onEditGoodsSimilar($event: GoodsSimilar) {\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: $event,\r\n _columns: this.GoodsSimilarColumns,\r\n areaName: this.areaName,\r\n label: `کالای مشابه (${this.CurrentGoodsFormulaDetail?.GoodsTitle})`,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n (model as GoodsSimilar).State = RowState.Modify;\r\n (model as GoodsSimilar).LossAmount = ((model as GoodsSimilar).StandardAmount * (model as GoodsSimilar).LossPercent) / 100;\r\n this.model.GoodsFormulaHeaders.forEach((x) => {\r\n if (x.GoodsFormulaDetails.some((s) => s.GoodsId === model[\"GoodsId\"])) {\r\n this.sts.showDialog(`مواد اولیه (${model[\"GoodsTitle\"]}) نمی تواند به عنوان کالای مشابه انتخاب شود.`, \"خطای انتخاب کالا\");\r\n return;\r\n }\r\n x.GoodsFormulaDetails.forEach((gfd) =>\r\n gfd.GoodsSimilars.forEach((gs) => {\r\n if ((gs.TempRowNumber && gs.TempRowNumber === $event.TempRowNumber) || (gs.Id && gs.Id !== 0 && gs.Id === $event.Id)) {\r\n Object.assign(gs, model);\r\n this.goodsSimilar.isRefreshing = true;\r\n this.goodsSimilar.refreshData();\r\n this.cd.markForCheck();\r\n }\r\n })\r\n );\r\n });\r\n }\r\n });\r\n }\r\n async save() {\r\n if (this.formGroup?.valid) {\r\n this.result = this.getDataFromFormGroup();\r\n this.closeModal();\r\n }\r\n }\r\n cancel() {\r\n this.closeModal();\r\n }\r\n}\r\n","\r\n \r\n
0\" style=\"height: 50vh\">\r\n \r\n \r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control, Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { find, take, takeUntil } from \"rxjs/operators\";\r\nimport { GoodsGroup } from \"../../models/goods-group.model\";\r\nimport { Goods } from \"../../models/goods.model\";\r\nimport { Unit } from \"../../models/unit.model\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\n\r\n@Component({\r\n selector: \"goods-import-excel-form\",\r\n templateUrl: \"./goods-import-excel-form.component.html\",\r\n styleUrls: [\"./goods-import-excel-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GoodsImportExcelFormComponent extends BaseFormComponent {\r\n gridInfo: GridColumnInfoDetail[];\r\n goodsList: Goods[] = [];\r\n goodsGroupList: GoodsGroup[];\r\n goodsUnitList: Unit[];\r\n hColumns: form_control[] = [];\r\n goodsKindList: Lookup[];\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.apiName = \"Goods\";\r\n this.label = \"دریافت فایل اکسل\";\r\n super.ngOnInit();\r\n await this.setData();\r\n }\r\n\r\n async setColumns(): Promise {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns.push({\r\n label: \"ردیف اول عنون ستونهاست.\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"isFirstRowColumnsName\",\r\n disabled: false,\r\n name: \"isFirstRowColumnsName\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n this.sts.showDialog(\"انتخاب بیش از یک فایل مجاز نیست.\", \"\");\r\n return;\r\n } else {\r\n const result = await this.parseExcelDoc(target.files[0]).catch((err) => console.error(err));\r\n this.SetGoodsInfo(result);\r\n }\r\n }\r\n\r\n async setData() {\r\n await this.httpCommonService\r\n .getList(\"Unit\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) this.goodsUnitList = data as Unit[];\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n\r\n await this.httpCommonService\r\n .getList(\"GoodsGroup\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) this.goodsGroupList = data as GoodsGroup[];\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n\r\n await this.lookupservice\r\n .getLookupbyCategory(\"INV\", \"GoodsKind\")\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data) => {\r\n if (data) this.goodsKindList = data;\r\n });\r\n }\r\n\r\n SetGoodsInfo(excelData: any[]) {\r\n let ColumnsName = [];\r\n let errorMessage: string = \"\";\r\n let isFirst = this.formGroup.get(\"isFirstRowColumnsName\")?.value;\r\n\r\n if (isFirst) ColumnsName = excelData[0] as any[];\r\n else ColumnsName = this.gridInfo.filter((c) => c.name != null && c.title != \"عملیات\" && !c.hidden) as any[];\r\n\r\n for (let index = 0; index < excelData.filter((x) => x.length).length; index++) {\r\n let excelRow = excelData[index];\r\n if (index !== 0) {\r\n let entity: Goods = {};\r\n entity.IsGoods = true;\r\n let index: number = 0;\r\n ColumnsName.forEach((c) => {\r\n let key: string;\r\n if (c.name) key = c.name;\r\n else {\r\n const colName = this.orignalColumns.find((g) => g.label === c || g.name == c);\r\n if (colName) key = colName.name;\r\n }\r\n entity[key] = excelRow[index];\r\n\r\n switch (key) {\r\n case \"Code\":\r\n if (typeof entity.Code !== \"string\") entity.Code = `${entity.Code}`;\r\n break;\r\n\r\n case \"GoodsKindCode\":\r\n case \"GoodsKindTitle\":\r\n const goodsKind = this.goodsKindList.find((x) => x.Code == entity.GoodsKindCode || x.Title == entity.GoodsKindTitle);\r\n entity.GoodsKindId = goodsKind?.Id;\r\n if (!entity.GoodsKindId) {\r\n (errorMessage += `برای کالای ${entity.Title} نوع کالای' ${entity.GoodsKindCode} پیدا نشد.`), \"دریافت کالا\" + \",\";\r\n }\r\n break;\r\n\r\n case \"GoodsGroupTreeCode\":\r\n const goodsGroup = this.goodsGroupList.find((gg) => gg.TreeCode === entity.GoodsGroupTreeCode || gg.Code === entity.GoodsGroupTreeCode);\r\n entity.GoodsGroupId = goodsGroup?.Id;\r\n if (!entity.GoodsGroupId)\r\n (errorMessage += `برای کالای ${entity.Title} گروه کالای' ${entity.GoodsGroupTreeCode} پیدا نشد.`), \"دریافت کالا\" + \",\";\r\n break;\r\n\r\n case \"UnitCode\":\r\n case \"UnitId\":\r\n const goodsUnit = this.goodsUnitList.find((u) => u.Code === Number(entity.UnitCode) || u.Title === String(entity.UnitId));\r\n entity.UnitId = goodsUnit?.Id;\r\n if (!entity.UnitId) (errorMessage += `برای کالای ${entity.Title} واحد سنجش ${entity.UnitCode} پیدا نشد.`), \"دریافت کالا\" + \",\";\r\n break;\r\n case \"DefaultUnitCode\":\r\n case \"DefaultUnitTitle\":\r\n const defaultUnit = this.goodsUnitList.find(\r\n (u) => u.Code === Number(entity.DefaultUnitCode) || u.Title === String(entity.DefaultUnitTitle)\r\n );\r\n entity.DefaultUnitId = defaultUnit?.Id;\r\n if (!entity.DefaultUnitId)\r\n (errorMessage += `برای کالای ${entity.Title} واحد سنجش پیشفرض ${entity.UnitCode} پیدا نشد.`), \"دریافت کالا\" + \",\";\r\n\r\n break;\r\n }\r\n\r\n index++;\r\n });\r\n\r\n if (entity.DefaultUnitRatio > 1) {\r\n entity.GoodsUnits = [];\r\n entity.GoodsUnits.push({\r\n UnitId: entity.DefaultUnitId,\r\n State: RowState.New,\r\n IsDefault: true,\r\n Ratio: entity.DefaultUnitRatio,\r\n UnitTitle: entity.DefaultUnitTitle,\r\n GoodsId: 0,\r\n CreatedDate: new Date(),\r\n Id: 0,\r\n });\r\n } else entity.DefaultUnitId = entity.UnitId;\r\n\r\n const notExistBefore = !this.goodsList.some((g) => g.Code?.trim() === entity.Code?.trim() || g.Title?.trim() === entity.Title?.trim());\r\n if (notExistBefore && entity.UnitId > 0 && entity.GoodsKindId > 0) this.goodsList.push(entity);\r\n else console.log(entity);\r\n }\r\n if (errorMessage) break;\r\n }\r\n if (!errorMessage) {\r\n this.httpCommonService\r\n .bulkInsert(this.apiName, this.goodsList)\r\n .pipe(take(1))\r\n .subscribe(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت ذخیره شد.\");\r\n this.close();\r\n },\r\n (error) => {\r\n this.close();\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در ذخیره اطلاعات\");\r\n }\r\n );\r\n } else this.sts.showDialog(errorMessage, \"خطا در دریافت کالا\");\r\n }\r\n\r\n public cancel() {\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Goods } from \"../../models/goods.model\";\r\n\r\n@Component({\r\n selector: \"goods-import-export-form\",\r\n templateUrl: \"./goods-import-export-form.component.html\",\r\n styleUrls: [\"./goods-import-export-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GoodsImportExportFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n gridInfo: GridColumnInfoDetail[];\r\n GoodsList: Goods[] = [];\r\n public hColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Goods\";\r\n this.label = \"استخراج و دریافت\";\r\n super.ngOnInit();\r\n //await this.setData();\r\n }\r\n async setColumns() {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns = this.hColumns;\r\n }\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n alert(\"انتخاب بیش از یک فایل مجاز نیست.\");\r\n return;\r\n } else {\r\n var file = target.files[0] as File;\r\n let fileReader: FileReader = new FileReader();\r\n fileReader.onloadend = () => {\r\n var fileContent = fileReader.result.toString();\r\n this.GoodsList = JSON.parse(fileContent);\r\n this.saveData().then();\r\n };\r\n fileReader.readAsText(file);\r\n }\r\n }\r\n async saveData() {\r\n await this.httpCommonService\r\n .createlist(\"Goods/ImportExport\", this.GoodsList)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت ذخیره شد.\");\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n saveText(text, filename) {\r\n var a = document.createElement(\"a\");\r\n a.setAttribute(\"href\", \"data:text/plain;charset=utf-u,\" + encodeURIComponent(text));\r\n a.setAttribute(\"download\", filename);\r\n a.click();\r\n }\r\n async exportData() {\r\n await this.httpCommonService\r\n .getList(\"Goods\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.GoodsList = data as Goods[];\r\n this.saveText(JSON.stringify(this.GoodsList), \"Goods.json\");\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n public cancel() {\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { ColumnBase } from \"@progress/kendo-angular-grid\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { EntityBase, GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { InvGoodsKind, RowAccessKind, RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { RowAccessComponent } from \"src/app/gnr/row-access/row-access.component\";\r\nimport { GoodsFormulaDetail, GoodsFormulaHeader, GoodsSimilar } from \"../../models/goods-formula-detail.model\";\r\nimport { Goods } from \"../../models/goods.model\";\r\nimport { GoodsFormComponent } from \"../goods-form/goods-form.component\";\r\nimport { GoodsFormulaComponent } from \"../goods-formula/goods-formula.component\";\r\nimport { GoodsImportExportFormComponent } from \"../goods-import-export/goods-import-export-form.component\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { GoodsImportExcelFormComponent } from \"../goods-import-excel/goods-import-excel-form.component\";\r\n@Component({\r\n selector: \"ngx-goods-list\",\r\n templateUrl: \"./goods-list.component.html\",\r\n styleUrls: [\"./goods-list.component.scss\"],\r\n})\r\nexport class GoodsListComponent extends BaseListComponent {\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n\r\n actions: EntityListAction[];\r\n clipBoard: Goods;\r\n HasRowAccess: boolean;\r\n\r\n constructor(\r\n private lookupservice: LookupService,\r\n private splashFormService: SplashFormService,\r\n private missetup: MisSetupService,\r\n private tabsService: TabularService\r\n ) {\r\n super();\r\n this.inputEditorform = GoodsFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.HasRowAccess === undefined) this.HasRowAccess = this.missetup.getboolean(\"GNR\", \"HasRowAccess\");\r\n\r\n this.apiName = \"Goods\";\r\n this.areaName = \"Inventory\";\r\n this.label = this.translate(\"ClientApp.BackOffice.INV.Goods.GoodList\");\r\n this.setactions();\r\n }\r\n\r\n setactions(): void {\r\n this.actions = [];\r\n const info = this.accountService.authService.currentInformation();\r\n if (\r\n info.InventoryKind === SoftWareLicenseKind.InventoryWeb ||\r\n info.InventoryKind === SoftWareLicenseKind.InventoryAdvancedWeb ||\r\n info.InventoryKind === SoftWareLicenseKind.InventoryToAdvancedWeb ||\r\n info.SaleInventory\r\n ) {\r\n const actions = [\r\n {\r\n name: \"GetGoodsFormula\",\r\n disabled: false,\r\n displayName: \"اجزاء تشکیل دهنده کالا\",\r\n iconName: \"icon-pie_chart-o\",\r\n apiName: \"Goods/GetGoodsFormula\",\r\n areaName: \"Inventory\",\r\n isModal: false,\r\n requireSelectedrows: true,\r\n Form_Component: GoodsFormulaComponent,\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"CopyGoodsFormula\",\r\n disabled: false,\r\n displayName: \"کپی اجزاء تشکیل دهنده کالا\",\r\n iconName: \"icon-copy2\",\r\n apiName: \"Goods/GetGoodsFormula\",\r\n areaName: \"Inventory\",\r\n requireSelectedrows: true,\r\n Form_Component: GoodsFormulaComponent,\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"PasteGoodsFormula\",\r\n disabled: false,\r\n displayName: \"چسباندن(Paste)\",\r\n iconName: \"icon-paste2\",\r\n apiName: \"Goods/GetGoodsFormula\",\r\n areaName: \"Inventory\",\r\n requireSelectedrows: true,\r\n Form_Component: GoodsFormulaComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n this.actions.push(...actions);\r\n }\r\n\r\n if (this.HasRowAccess === true) {\r\n this.actions.push({\r\n name: \"RowAccess\",\r\n disabled: false,\r\n displayName: \"دسترسی در ردیف\",\r\n iconName: \"icon-users\",\r\n apiName: \"Goods/RowAccess\",\r\n areaName: \"Inventory\",\r\n requireSelectedrows: true,\r\n Form_Component: RowAccessComponent,\r\n permission: Permission.samePermission,\r\n });\r\n }\r\n\r\n const actions = [\r\n {\r\n name: \"ImportExport\",\r\n disabled: false,\r\n displayName: \"استخراج و دریافت\",\r\n iconName: \"icon-import_export-o\",\r\n apiName: \"Goods/ImportExport\",\r\n areaName: \"Inventory\",\r\n Form_Component: GoodsImportExportFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"SendAllGoosToRakkaran\",\r\n disabled: false,\r\n displayName: \"ارسال کالا به راهکاران\",\r\n iconName: \"icon-send-F\",\r\n apiName: \"Goods/SendAllGoosToRakkaran\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"ImportFromExcel\",\r\n disabled: false,\r\n displayName: \"ورودی اکسل\",\r\n iconName: \"icon-exel\",\r\n apiName: \"Goods/ImportExcel\",\r\n areaName: \"Inventory\",\r\n Form_Component: GoodsImportExcelFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n this.actions.push(...actions);\r\n }\r\n\r\n saveGoodsFormula(data: Goods): void {\r\n this.httpCommonService\r\n .update(\"Goods\", data)\r\n .pipe(take(1))\r\n .subscribe(\r\n (response) => console.log(\"\"),\r\n (error) => console.log(error)\r\n );\r\n }\r\n\r\n onActionClick(action: EntityListAction, onRowSelected: Goods, onRowsSelected: Goods[], isAllSelected: boolean, gridFilter: GridFilter[]): void {\r\n switch (action.name) {\r\n case \"GetGoodsFormula\":\r\n if (onRowSelected && onRowSelected.GoodsKindCode !== InvGoodsKind.Product && onRowSelected.GoodsKindCode !== InvGoodsKind.HalfMade) {\r\n this.sts.showDialog(\"فقط کالا از نوع محصول /نیم ساخته قابل انتخاب است.\", \"\");\r\n return;\r\n }\r\n this.onGetGoodsFormulaActionClick(action, onRowSelected);\r\n break;\r\n\r\n case \"RowAccess\":\r\n this.onRowAccessActionClick(onRowsSelected, onRowSelected, action);\r\n break;\r\n\r\n case \"ImportFromExcel\":\r\n case \"ImportExport\":\r\n this.onImportExportActionClick(action);\r\n break;\r\n\r\n case \"CopyGoodsFormula\":\r\n this.onCopyGoodsFormulaActionClick(onRowSelected);\r\n break;\r\n\r\n case \"PasteGoodsFormula\":\r\n if (onRowSelected && this.clipBoard) {\r\n if (onRowSelected.GoodsKindCode !== InvGoodsKind.HalfMade && onRowSelected.GoodsKindCode !== InvGoodsKind.Product) {\r\n this.sts.showDialog(\"کپی آنالیز فقط روی نیم ساخته و محصول امکان پذیر است.\", \"خطا\");\r\n return;\r\n }\r\n this.onPasteGoodsFormulaActionClick(onRowSelected);\r\n }\r\n break;\r\n\r\n case \"SendAllGoosToRakkaran\":\r\n this.onSendAllGoodsToRahkaranActionClick(action);\r\n break;\r\n }\r\n }\r\n\r\n private onSendAllGoodsToRahkaranActionClick(action: EntityListAction): void {\r\n this.splashFormService.openDialog(\"\", \"در حال ارسال به راهکاران\");\r\n this.httpCommonService\r\n .get(action.apiName)\r\n .pipe(take(1))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\"ارسال به راهکاران با موفقیت صادر شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در ارسال به راهکاران${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n\r\n private onPasteGoodsFormulaActionClick(onRowSelected: Goods): void {\r\n this.httpCommonService\r\n .getItem(\"Goods/GetGoodsFormula\", this.clipBoard.Id)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n let model = Object.assign({}, onRowSelected);\r\n model.State = RowState.Modify;\r\n data.GoodsFormulaHeaders.forEach((x) => {\r\n let gfh = Object.assign({}, x);\r\n gfh.GoodsId = onRowSelected.Id;\r\n gfh.Id = 0;\r\n gfh.Title = onRowSelected.Title;\r\n gfh.GoodsFormulaDetails = [];\r\n gfh.State = RowState.New;\r\n model.GoodsFormulaHeaders.push(gfh);\r\n x.GoodsFormulaDetails.forEach((gfd) => {\r\n let _gfd = Object.assign({}, gfd);\r\n _gfd.Id = 0;\r\n _gfd.State = RowState.New;\r\n _gfd.GoodsSimilars = [];\r\n _gfd.GoodsFormulaHeaderId = 0;\r\n gfh.GoodsFormulaDetails.push(_gfd);\r\n gfd.GoodsSimilars.forEach((s) => {\r\n let gs = Object.assign({}, s);\r\n gs.Id = 0;\r\n gs.State = RowState.New;\r\n gs.GoodsFormulaDetailId = 0;\r\n _gfd.GoodsSimilars.push(gs);\r\n });\r\n });\r\n });\r\n this.saveGoodsFormula(model);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n\r\n private onCopyGoodsFormulaActionClick(onRowSelected: Goods): void {\r\n if (onRowSelected) {\r\n if (onRowSelected.GoodsKindCode !== InvGoodsKind.HalfMade && onRowSelected.GoodsKindCode !== InvGoodsKind.Product) {\r\n this.sts.showDialog(\"کپی آنالیز فقط از نیم ساخته و محصول امکان پذیر است.\", \"خطا\");\r\n } else this.clipBoard = onRowSelected;\r\n }\r\n }\r\n\r\n private onImportExportActionClick(action: EntityListAction): void {\r\n var gridInfo = this.getGridInfo(this.grid.grid.columns.toArray());\r\n this.dialogService\r\n .open(action.Form_Component, { gridInfo: gridInfo, label: action.displayName }, { autoFocus: true, closeOnClickOutside: false })\r\n .pipe(take(1))\r\n .subscribe((model: GridFilter[]) => {\r\n this.grid?.refreshData();\r\n });\r\n }\r\n\r\n private onRowAccessActionClick(onRowsSelected: Goods[], onRowSelected: Goods, action: EntityListAction): void {\r\n let ids: number[] = [];\r\n if (onRowsSelected != null && onRowsSelected.length > 0) onRowsSelected.forEach((x) => ids.push(x.Id));\r\n else ids.push(onRowSelected.Id);\r\n this.lookupservice\r\n .getLookupbyCode(\"Security\", \"RowAccess\", RowAccessKind.Goods)\r\n .pipe(take(1))\r\n .subscribe(\r\n (x) => {\r\n this.dialogService\r\n .open(action.Form_Component, { SelectedRows: ids, RowKindId: x.Id }, { autoFocus: true, closeOnClickOutside: false })\r\n .pipe(take(1))\r\n .subscribe((model: GridFilter[]) => {});\r\n },\r\n (error) => {}\r\n );\r\n }\r\n\r\n private onGetGoodsFormulaActionClick(action: EntityListAction, onRowSelected: Goods): void {\r\n var dataTransfer: Datatransfer = {};\r\n dataTransfer.apiName = action.apiName;\r\n dataTransfer.label = this.label;\r\n dataTransfer.areaName = action.areaName;\r\n dataTransfer.currentrow = onRowSelected;\r\n const menu = {\r\n title: `${this.label}-(ویرایش)`,\r\n isCloseable: true,\r\n icon: this.grid.icon,\r\n active: true,\r\n responsive: true,\r\n componentType: action.Form_Component,\r\n data: [\r\n { provide: EntityBase, useValue: onRowSelected },\r\n { provide: Datatransfer, useValue: dataTransfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: undefined } },\r\n ],\r\n };\r\n this.tabsService.open(menu);\r\n }\r\n\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.getGridInfo(this.grid.grid.columns.toArray()));\r\n });\r\n }\r\n\r\n getReportFilter(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.getGridInfo(this.grid.grid.columns.toArray()));\r\n });\r\n }\r\n\r\n getGridInfo(columns: ColumnBase[]): GridColumnInfoDetail[] {\r\n return columns\r\n .filter((x) => !x.hidden)\r\n .map((x) => {\r\n const info = new GridColumnInfoDetail();\r\n info.name = x[\"field\"];\r\n info.hidden = x.hidden;\r\n info.orderindex = x.orderIndex;\r\n info.title = x.title;\r\n return info;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { RowAccessComponent } from \"src/app/gnr/row-access/row-access.component\";\r\nimport { GoodsFormComponent } from \"./goods-form/goods-form.component\";\r\nimport { GoodsFormulaFormComponent } from \"./goods-formula/goods-formula-form/goods-formula-form.component\";\r\nimport { GoodsFormulaViewFormComponent } from \"./goods-formula/goods-formula-view-form/goods-formula-view-form.component\";\r\nimport { GoodsFormulaComponent } from \"./goods-formula/goods-formula.component\";\r\nimport { GoodsSimilarFormComponent } from \"./goods-formula/goods-similar/goods-similar-form.component\";\r\nimport { GoodsImportExcelFormComponent } from \"./goods-import-excel/goods-import-excel-form.component\";\r\nimport { GoodsImportExportFormComponent } from \"./goods-import-export/goods-import-export-form.component\";\r\nimport { GoodsListComponent } from \"./goods-list/goods-list.component\";\r\n\r\nconst components = [\r\n GoodsListComponent,\r\n GoodsFormComponent,\r\n GoodsFormulaComponent,\r\n GoodsFormulaFormComponent,\r\n RowAccessComponent,\r\n GoodsImportExcelFormComponent,\r\n GoodsImportExportFormComponent,\r\n GoodsSimilarFormComponent,\r\n GoodsFormulaViewFormComponent,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class GoodsModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvBalance } from \"../../models/inv-balance.model\";\r\nimport { Warehouse } from \"../../models/warehouse.model\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-balance-form\",\r\n templateUrl: \"./inv-balance-form.component.html\",\r\n styleUrls: [\"./inv-balance-form.component.scss\"],\r\n})\r\nexport class InvBalanceFormComponent extends BaseFormComponent {\r\n hcolumns: form_control[];\r\n currentWarehouse: Warehouse;\r\n dataList: InvBalance[];\r\n constructor(\r\n sts: ShowToastrService,\r\n __id: FormContainerModel,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n _tabsservice: TabularService\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"InvBalance\";\r\n this.areaName = \"Inventory\";\r\n this.label = this.translate(\"ClientApp.BackOffice.INV.InvBalance.BalanceControl\");\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.orignalColumns = (data as form_control[]).filter((f) => f.name === \"WarehouseId\");\r\n this.hcolumns = this.orignalColumns;\r\n this.columns = data as form_control[];\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnAttribute();\r\n this.setFormGroup(this.model);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n onChange($event: Warehouse) {\r\n if ($event) {\r\n this.currentWarehouse = $event;\r\n this.model.WarehouseId = $event.Id;\r\n this.loadData($event);\r\n }\r\n }\r\n loadData(event: Warehouse) {\r\n this.httpCommonService\r\n .getList(this.apiName + \"/GetByWarehouseId/\" + event.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => (this.dataList = row as []),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n beforupdate() {\r\n this.dataList.forEach((x) => {\r\n x.WarehouseId = this.currentWarehouse.Id;\r\n x.WarehouseTitle = this.currentWarehouse.Title;\r\n x.WarehouseCode = this.currentWarehouse.Code;\r\n });\r\n }\r\n public async save() {\r\n if (!this.isSaving) {\r\n this.beforupdate();\r\n if (this.isValid()) {\r\n this.sts.showToast(\"info\", \"\", this.translate(\"ClientApp.BackOffice.INV.InvBalance.InProgress\"));\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n if (this.dataList && this.dataList.length > 0) {\r\n this.httpCommonService\r\n .createlist(this.apiName + \"/BulkIsertUpdateDelete\", this.dataList)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => this.saveSuccessHelper(row),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n }\r\n }\r\n }\r\n}\r\n","\r\n 0\">\r\n \r\n \r\n\r\n","import { ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridFilter, PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvBalance } from \"../../models/inv-balance.model\";\r\nimport { Warehouse } from \"../../models/warehouse.model\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-balance-list\",\r\n templateUrl: \"./inv-balance-list.component.html\",\r\n styleUrls: [\"./inv-balance-list.component.scss\"],\r\n})\r\nexport class InvBalanceListComponent extends BaseFormComponent {\r\n currentData: PagingDataResult = new PagingDataResult();\r\n hcolumns: form_control[];\r\n currentWarehouse: Warehouse;\r\n @ViewChild(KGridComponent) grid: KGridComponent;\r\n constructor(__id: FormContainerModel, protected selectorService: SelectorService, protected cd: ChangeDetectorRef, _tabsservice: TabularService) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n }\r\n\r\n async setColumns() {\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.orignalColumns = (data as form_control[]).filter((f) => f.name === \"WarehouseId\");\r\n this.hcolumns = this.orignalColumns;\r\n this.columns = data as form_control[];\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnAttribute();\r\n this.setFormGroup(this.model);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (data) {\r\n this.orignalColumns = (data as form_control[]).filter((f) => f.name === \"WarehouseId\");\r\n this.hcolumns = this.orignalColumns;\r\n\r\n this.columns = data as form_control[];\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.columns.forEach((x) => {\r\n if (x.name === \"GoodsId\") x.listVisible = false;\r\n if (x.name === \"WarehouseTitle\") x.listVisible = false;\r\n if (x.name === \"GoodsCode\") x.listVisible = true;\r\n if (x.name === \"GoodsTitle\") x.listVisible = true;\r\n if (x.name === \"GoodsKindTitle\") x.listVisible = true;\r\n if (x.name === \"DefaultUnitTitle\") x.listVisible = true;\r\n if (x.name === \"MinAmount\") x.listVisible = true;\r\n if (x.name === \"ReOrderAmounte\") x.listVisible = true;\r\n if (x.name === \"MaxAmount\") x.listVisible = true;\r\n if (x.name === \"ROOfferAmount\") x.listVisible = true;\r\n if (x.name === \"LeadTime\") x.listVisible = true;\r\n if (x.name === \"RemainAmount\") x.listVisible = true;\r\n });\r\n this.setColumnAttribute();\r\n this.setFormGroup(this.model);\r\n }\r\n });\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"InvBalance/GetInventoryBalancing\";\r\n this.areaName = \"Inventory\";\r\n this.setColumns();\r\n this.loadData(undefined);\r\n }\r\n onChange($event: Warehouse) {\r\n if ($event) {\r\n this.currentWarehouse = $event;\r\n this.setValue(\"WarehouseId\", $event.Id);\r\n this.model.WarehouseId = $event.Id;\r\n this.loadData(undefined);\r\n }\r\n }\r\n onDataStateChanged(event: GridFilter[]) {\r\n this.loadData(event);\r\n }\r\n getFilter(filter: GridFilter[]) {\r\n if (!filter) filter = [];\r\n let WarehouseId = this.formGroup?.controls[\"WarehouseId\"]?.value ?? this.currentWarehouse?.Id;\r\n if (WarehouseId !== undefined && !filter.some((x) => x.Filed === \"WarehouseId\"))\r\n filter.push({\r\n Filed: \"WarehouseId\",\r\n Type: \"F\",\r\n Value: WarehouseId,\r\n Operator: \"eq\",\r\n Logic: \"and\",\r\n Skip: filter[0]?.Skip ?? 0,\r\n Take: filter[0]?.Take ?? 10,\r\n });\r\n if (!filter.some((x) => x.Filed === \"FiscalYearId\"))\r\n filter.push({\r\n Filed: \"FiscalYearId\",\r\n Type: \"F\",\r\n Value: this.accountService.authService.currentFiscalYear.Id,\r\n Operator: \"eq\",\r\n Logic: \"and\",\r\n Skip: filter[0]?.Skip ?? 0,\r\n Take: filter[0]?.Take ?? 10,\r\n });\r\n if (!filter.some((x) => x.Filed === \"BranchId\"))\r\n filter.push({\r\n Filed: \"BranchId\",\r\n Type: \"F\",\r\n Value: this.accountService.authService.currentBranchId,\r\n Operator: \"eq\",\r\n Logic: \"and\",\r\n Skip: filter[0]?.Skip ?? 0,\r\n Take: filter[0]?.Take ?? 10,\r\n });\r\n return filter;\r\n }\r\n loadData(event: GridFilter[]) {\r\n if (!this.accountService.authService.currentFiscalYear) setTimeout(() => this.loadData(event), 300);\r\n let filter: GridFilter[] = this.getFilter(event);\r\n if (filter !== undefined && filter.length > 0) {\r\n if (this.grid && this.grid.isRefreshing) return;\r\n if (this.grid) this.grid.isRefreshing = true;\r\n this.httpCommonService\r\n .GetFilterGrid(this.apiName, filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x: PagingDataResult) => {\r\n this.currentData = x;\r\n },\r\n (error) => {\r\n 1 === 1;\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","\r\n 0\">\r\n \r\n \r\n \r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { InvBalanceFormComponent } from \"./inv-balance-form/inv-balance-form.component\";\r\nimport { InvBalanceListComponent } from \"./inv-balance-list/inv-balance-list.component\";\r\n\r\nconst components = [InvBalanceFormComponent, InvBalanceListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class InvBalanceModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { IncrementalKind, SystemKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { LookupService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvVoucherKind } from \"../../models/inv-voucher-kind.model\";\r\n@Component({\r\n selector: \"ngx-inv-voucher-kind-form\",\r\n templateUrl: \"./inv-voucher-kind-form.component.html\",\r\n styleUrls: [\"./inv-voucher-kind-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvVoucherKindFormComponent extends BaseFormComponent {\r\n activeTabTitle: string;\r\n DefaultValues: Dictionary = [];\r\n sellColumns: form_control[];\r\n sgColumns: form_control[];\r\n ReferenceVoucherKinds: form_control[];\r\n VoucherKindDetailLedgerKinds: form_control[];\r\n VoucherKindGoodss: form_control[];\r\n invDetailColumns: form_control[];\r\n public FormControlTypes = FormControlTypes;\r\n @Input() systemKind: SystemKind;\r\n\r\n constructor(\r\n sts: ShowToastrService,\r\n private datatransfer: Datatransfer,\r\n private lookupservice: LookupService,\r\n __id: FormContainerModel,\r\n private missetup: MisSetupService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n _tabsservice: TabularService\r\n ) {\r\n super(selectorService, cd);\r\n this.currentrow = this.datatransfer?.currentrow;\r\n this.apiName = this.datatransfer?.apiName;\r\n this.label = this.datatransfer?.label;\r\n this.areaName = this.datatransfer?.areaName;\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"InvVoucherKind\";\r\n this.label = this.translate(\"ClientApp.BackOffice.INV.InvVoucherKind.InvVoucherKind\");\r\n super.ngOnInit();\r\n if (this.currentrow && (this.currentrow as InvVoucherKind).Title) {\r\n this.label = (this.currentrow as InvVoucherKind).Title;\r\n this.tabsservice.setTabTitle(this._id.metadata.id, this.getFormTitle());\r\n } else {\r\n this.tabsservice.setTabTitle(this._id.metadata.id, this.getFormTitle());\r\n }\r\n }\r\n ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this.selectorService.setHasDefaultValue(\"DefaultSubLedgerId\", undefined);\r\n this.selectorService.setHasDefaultValue(\"WarehouseSubledgerId\", undefined);\r\n this.selectorService.setHasDefaultValue(\"GoodsDetailLedgerInLevelId\", undefined);\r\n this.selectorService.setHasDefaultValue(\"DetailLedgerInLevelId\", undefined);\r\n this.DefaultValues = undefined;\r\n this.sellColumns = undefined;\r\n this.sgColumns = undefined;\r\n this.invDetailColumns = undefined;\r\n this.FormControlTypes = undefined;\r\n this.ReferenceVoucherKinds = undefined;\r\n this.VoucherKindDetailLedgerKinds = undefined;\r\n this.VoucherKindGoodss = undefined;\r\n }\r\n setdefault() {\r\n this.DefaultValues[\"InvVoucherKindId\"] = 0;\r\n if (this.model.Active === undefined) this.model.Active = true;\r\n\r\n this.selectorService.setHasDefaultValue(\"DefaultSubLedgerId\", false);\r\n this.selectorService.setHasDefaultValue(\"WarehouseSubledgerId\", false);\r\n this.selectorService.setHasDefaultValue(\"GoodsDetailLedgerInLevelId\", false);\r\n this.selectorService.setHasDefaultValue(\"DetailLedgerInLevelId\", false);\r\n if (this.model.IsWarehouse === undefined) {\r\n if (this.selectorService.getHasDefaultValue(\"IsWarehouse\") === undefined) this.model.IsWarehouse = true;\r\n else this.model.IsWarehouse = false;\r\n }\r\n if (!this.model.SystemKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"GNR\", \"SystemKind\", this.systemKind ? this.systemKind : SystemKind.INV)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.SystemKindId = x.Id;\r\n this.model.SystemKindCode = x.Code;\r\n this.model.SystemKindTitle = x.Title;\r\n this.setValue(\"SystemKindId\", x.Id);\r\n }\r\n });\r\n }\r\n if (!this.model.OrderByNumber) this.model.OrderByNumber = this.model.Code;\r\n if (!this.model.ReferenceVoucherKinds) this.model.ReferenceVoucherKinds = [];\r\n if (!this.model.VoucherKindDetailLedgerKinds) this.model.VoucherKindDetailLedgerKinds = [];\r\n if (!this.model.VoucherKindGoodss) this.model.VoucherKindGoodss = [];\r\n this.setDefaultValues();\r\n }\r\n addControl() {\r\n this.setValue(\"SystemKindId\", this.model.SystemKindId);\r\n }\r\n\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n this.model.OrderByNumber = data as number;\r\n }\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n setDefaultValues() {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.controlType === FormControlTypes.checkbox && this.model[x.name] === undefined) this.model[x.name] = false;\r\n });\r\n }\r\n\r\n setColumnAttribute() {\r\n this.columns.forEach((x) => (x.isFloat = null));\r\n this.cd.markForCheck();\r\n }\r\n\r\n async setColumns() {\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (data) {\r\n this.orignalColumns = data as form_control[];\r\n this.columns = (data as form_control[]).filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnNumber(this.columns);\r\n this.sellColumns = (data as form_control[]).filter(\r\n (f) => (f.areaName === \"sell\" && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.sellColumns = this.sellColumns.sort((a, b) => a.order - b.order);\r\n this.setColumnNumber(this.sellColumns, 5);\r\n\r\n this.sgColumns = (data as form_control[]).filter(\r\n (f) => (f.areaName === \"SG\" && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.sgColumns = this.sgColumns.sort((a, b) => a.order - b.order);\r\n this.setColumnNumber(this.sgColumns, 5);\r\n\r\n this.invDetailColumns = (data as form_control[]).filter(\r\n (f) => (f.areaName === \"Detail\" && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.invDetailColumns = this.invDetailColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.ReferenceVoucherKinds = this.getDetailControlModels(\"ReferenceVoucherKinds\");\r\n this.VoucherKindDetailLedgerKinds = this.getDetailControlModels(\"VoucherKindDetailLedgerKinds\");\r\n this.VoucherKindGoodss = this.getDetailControlModels(\"VoucherKindGoodss\");\r\n\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n }\r\n });\r\n }\r\n onValueChangeByApiName($event) {\r\n if ($event && $event.apiName && $event.apiName.includes(\"Lookup\") && $event.data && $event?.data?.Category?.includes(\"IncrementalKind\")) {\r\n if (\r\n ($event.data[\"Code\"] === IncrementalKind.Increment || $event.data[\"Code\"] === IncrementalKind.Debtor) &&\r\n this.formGroup.get(\"HasWarehouseTransfer\") &&\r\n this.formGroup.get(\"HasWarehouseTransfer\").value !== true\r\n ) {\r\n this.setValue(\"HasJournalVoucher\", true, true);\r\n this.setValue(\"HasJournalVoucherAuto\", true, true);\r\n this.formGroup.controls[\"HasJournalVoucher\"].enable();\r\n this.formGroup.controls[\"HasJournalVoucherAuto\"].enable();\r\n }\r\n if ($event.data[\"Code\"] === IncrementalKind.Neutral) {\r\n this.setValue(\"HasJournalVoucher\", false, false);\r\n this.setValue(\"HasJournalVoucherAuto\", false, false);\r\n this.formGroup.controls[\"HasJournalVoucher\"].disable();\r\n this.formGroup.controls[\"HasJournalVoucherAuto\"].disable();\r\n }\r\n if ($event.data[\"Code\"] === IncrementalKind.Decrement) {\r\n this.setValue(\"HasJournalVoucher\", true, true);\r\n this.formGroup.controls[\"HasJournalVoucher\"].enable();\r\n if (this.model.IsWarehouse === true) {\r\n this.setValue(\"HasJournalVoucherAuto\", false, false);\r\n this.formGroup.controls[\"HasJournalVoucherAuto\"].disable();\r\n } else {\r\n this.setValue(\"HasJournalVoucherAuto\", true, true);\r\n this.formGroup.controls[\"HasJournalVoucherAuto\"].enable();\r\n }\r\n }\r\n }\r\n }\r\n beforupdate() {\r\n if (this.model.ReferenceVoucherKinds && this.model.ReferenceVoucherKinds.length <= 0) this.model.ReferenceVoucherKinds = null;\r\n else this.setValue(\"ReferenceVoucherKinds\", this.model.ReferenceVoucherKinds);\r\n\r\n if (this.model.VoucherKindDetailLedgerKinds && this.model.VoucherKindDetailLedgerKinds.length <= 0)\r\n this.model.VoucherKindDetailLedgerKinds = null;\r\n else this.setValue(\"VoucherKindDetailLedgerKinds\", this.model.VoucherKindDetailLedgerKinds);\r\n if (this.model.VoucherKindGoodss && this.model.VoucherKindGoodss.length <= 0) this.model.VoucherKindGoodss = null;\r\n else this.setValue(\"VoucherKindGoodss\", this.model.VoucherKindGoodss);\r\n }\r\n\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n getDetailControlModels(keyName: string) {\r\n let columns = this.orignalColumns.find((x) => x.name === keyName).DetailControlModels[keyName];\r\n for (var i = 0; i < columns.length; i++) {\r\n if (columns[i][\"apiName\"]) columns[i][\"isMulti\"] = true;\r\n }\r\n return columns;\r\n }\r\n close() {\r\n this.accountService.authService.getMvcController();\r\n super.close();\r\n }\r\n\r\n onvalueChangeWithName($event) {\r\n if ($event && $event?.name === \"HasOpositeParty\" && $event.value) {\r\n this.model.HasWarehouseTransfer = !$event.value;\r\n this.setValue(\"HasWarehouseTransfer\", this.model.HasWarehouseTransfer);\r\n }\r\n if ($event && $event?.name === \"HasWarehouseTransfer\" && $event.value) {\r\n this.model.HasOpositeParty = !$event.value;\r\n this.setValue(\"HasOpositeParty\", this.model.HasOpositeParty);\r\n\r\n this.setValue(\"HasJournalVoucher\", false, false);\r\n this.setValue(\"HasJournalVoucherAuto\", false, false);\r\n this.formGroup.controls[\"HasJournalVoucher\"].disable();\r\n this.formGroup.controls[\"HasJournalVoucherAuto\"].disable();\r\n }\r\n\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvVoucherKind } from \"../../models/inv-voucher-kind.model\";\r\n\r\n@Component({\r\n selector: \"inv-voucher-kind-import-export-form\",\r\n templateUrl: \"./inv-voucher-kind-import-export-form.component.html\",\r\n styleUrls: [\"./inv-voucher-kind-import-export-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvVoucherKindImportExportFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n gridInfo: GridColumnInfoDetail[];\r\n InvVoucherKindList: InvVoucherKind[] = [];\r\n public hColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"InvVoucherKind\";\r\n this.label = \"استخراج و دریافت\";\r\n super.ngOnInit();\r\n //await this.setData();\r\n }\r\n async setColumns() {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns = this.hColumns;\r\n }\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n alert(\"انتخاب بیش از یک فایل مجاز نیست.\");\r\n return;\r\n } else {\r\n var file = target.files[0] as File;\r\n let fileReader: FileReader = new FileReader();\r\n fileReader.onloadend = () => {\r\n var fileContent = fileReader.result.toString();\r\n this.InvVoucherKindList = JSON.parse(fileContent);\r\n this.saveData().then();\r\n };\r\n fileReader.readAsText(file);\r\n }\r\n }\r\n async saveData() {\r\n await this.httpCommonService\r\n .createlist(\"InvVoucherKind/ImportExport\", this.InvVoucherKindList)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت ذخیره شد.\");\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n saveText(text, filename) {\r\n var a = document.createElement(\"a\");\r\n a.setAttribute(\"href\", \"data:text/plain;charset=utf-u,\" + encodeURIComponent(text));\r\n a.setAttribute(\"download\", filename);\r\n a.click();\r\n }\r\n async exportData() {\r\n await this.httpCommonService\r\n .getList(\"InvVoucherKind\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.InvVoucherKindList = data as InvVoucherKind[];\r\n this.saveText(JSON.stringify(this.InvVoucherKindList), \"InvVoucherKind.json\");\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n public cancel() {\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n","import { Component, Type, ViewChild } from \"@angular/core\";\r\n\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherDetailCommentComponent } from \"src/app/backoffice/acc/acc-voucher-detail-comment/acc-voucher-detail-comment.component\";\r\nimport { InvVoucherKind } from \"../../models/inv-voucher-kind.model\";\r\nimport { InvVoucherKindFormComponent } from \"../inv-voucher-kind-form/inv-voucher-kind-form.component\";\r\nimport { InvVoucherKindImportExportFormComponent } from \"../inv-voucher-kind-import-export/inv-voucher-kind-import-export-form.component\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { ColumnBase } from \"@progress/kendo-angular-grid\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-voucher-kind-list\",\r\n templateUrl: \"./inv-voucher-kind-list.component.html\",\r\n styleUrls: [\"./inv-voucher-kind-list.component.scss\"],\r\n})\r\nexport class InvVoucherKindListComponent extends BaseListComponent {\r\n isAdd: boolean = true;\r\n filterInfo: NameValue[] = [];\r\n actions: EntityListAction[];\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n constructor() {\r\n super();\r\n this.inputEditorform = InvVoucherKindFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.label = this.translate(\"ClientApp.BackOffice.INV.InvVoucherKind.InvVoucherKindList\");\r\n this.apiName = \"InvVoucherKind\";\r\n this.areaName = \"Inventory\";\r\n this.filterInfo = [{ Name: \"IsWarehouse\", Value: true, Operator: \"eq\" }];\r\n this.FillData();\r\n this.setactions();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.filterInfo = undefined;\r\n this.actions = undefined;\r\n }\r\n async FillData() {\r\n const information = this.accountService.authService.currentInformation();\r\n if (information.SaleInventory && ( \r\n information.InventoryKind !== SoftWareLicenseKind.InventoryWeb &&\r\n information.InventoryKind !== SoftWareLicenseKind.InventoryAdvancedWeb &&\r\n information.InventoryKind !== SoftWareLicenseKind.InventoryToAdvancedWeb)) {\r\n this.isAdd = false;\r\n }\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: InvVoucherKind,\r\n onRowsSelected: InvVoucherKind[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n if (action.name === \"AccVoucherDetailComment\") {\r\n if (!onRowSelected || !onRowSelected.HasJournalVoucher) {\r\n this.sts.showDialog(\"هیچ نوع سندی انتخاب نشده یا با سیستم حسابداری مرتبط نیست\", \"خطا\");\r\n return;\r\n }\r\n let accVoucherDetailComment: Type = AccVoucherDetailCommentComponent;\r\n this.dialogService\r\n .open(\r\n accVoucherDetailComment,\r\n {\r\n VoucherKindTitle: onRowSelected.Title,\r\n InvVoucherKindId: onRowSelected.Id,\r\n },\r\n {\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {});\r\n }\r\n if (action.name === \"ImportFromExcel\" || action.name === \"ImportExport\") {\r\n var gridInfo = this.getGridInfo(this.grid.grid.columns.toArray());\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n gridInfo: gridInfo,\r\n label: action.displayName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n }\r\n return;\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"AccVoucherDetailComment\",\r\n disabled: false,\r\n displayName: \"قالب شرح سند حسابداری\",\r\n iconName: \"icon-format_list_numbered_rtl-o\",\r\n apiName: \"AccVoucherDetailComment\",\r\n areaName: \"Accounting\",\r\n permission: Permission.managePermission,\r\n },\r\n {\r\n name: \"ImportExport\",\r\n disabled: false,\r\n displayName: \"استخراج و دریافت\",\r\n iconName: \"icon-import_export-o\",\r\n apiName: \"InvVoucherKind/ImportExport\",\r\n areaName: \"Inventory\",\r\n Form_Component: InvVoucherKindImportExportFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n getGridInfo(columns: ColumnBase[]): GridColumnInfoDetail[] {\r\n return columns\r\n .filter((x) => !x.hidden)\r\n .map((x) => {\r\n const info = new GridColumnInfoDetail();\r\n info.name = x[\"field\"];\r\n info.hidden = x.hidden;\r\n info.orderindex = x.orderIndex;\r\n info.title = x.title;\r\n return info;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { InvVoucherKindFormComponent } from \"./inv-voucher-kind-form/inv-voucher-kind-form.component\";\r\nimport { InvVoucherKindImportExportFormComponent } from \"./inv-voucher-kind-import-export/inv-voucher-kind-import-export-form.component\";\r\nimport { InvVoucherKindListComponent } from \"./inv-voucher-kind-list/inv-voucher-kind-list.component\";\r\n\r\nconst components = [InvVoucherKindListComponent, InvVoucherKindFormComponent, InvVoucherKindImportExportFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class InvVoucherKindModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvVoucherPricing } from \"../../models/inv-voucher-pricing.model\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-voucher-pricing-form\",\r\n templateUrl: \"./inv-voucher-pricing-form.component.html\",\r\n styleUrls: [\"./inv-voucher-pricing-form.component.scss\"],\r\n})\r\nexport class InvVoucherPricingFormComponent extends BaseFormComponent {\r\n BranchIds: number[] = [];\r\n WarehouseIds: number[] = [];\r\n voucherColumns: form_control[] = [];\r\n dataList: any[] = [];\r\n erroremessage: string;\r\n isLoadingLastDate: boolean = false;\r\n constructor(\r\n private _tabsservice: TabularService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n private missetup: MisSetupService\r\n ) {\r\n super(selectorService, cd);\r\n this.missetup.getall();\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"InvVoucherPricing\";\r\n this.label = \"قیمت گذاری اسناد\";\r\n super.ngOnInit();\r\n this.set_Columns();\r\n this.setDate();\r\n }\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"WarehouseId\" || x.name === \"BranchId\") x.required = false;\r\n });\r\n\r\n this.columns.forEach((x) => ((x.isFloat = null), (x.userClass = null)));\r\n this.cd.markForCheck();\r\n }\r\n onChanged($event) {\r\n if (\r\n (this.formGroup.controls[\"BranchIds\"] && this.formGroup.controls[\"BranchIds\"].value.length > 0) ||\r\n (this.formGroup.controls[\"WarehouseIds\"] && this.formGroup.controls[\"WarehouseIds\"].value.length > 0)\r\n ) {\r\n if ($event && $event?.name !== \"PrevUpdateDate\") this.setDate();\r\n this.isValid();\r\n }\r\n }\r\n getFilter(): GridFilter[] {\r\n let filter: GridFilter[] = [];\r\n if (!this.model.FiscalYearId) this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n filter.push({ Type: \"F\", Filed: \"FiscalYearId\", Value: this.model.FiscalYearId, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"BranchIds\", Value: this.formGroup.controls[\"BranchIds\"].value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"WarehouseIds\",\r\n Value: this.formGroup.controls[\"WarehouseIds\"].value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"PrevUpdateDate\",\r\n Value: new Date(this.formGroup.controls[\"PrevUpdateDate\"].value),\r\n Logic: \"and\",\r\n Operator: \"gte\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"LastUpdateDate\",\r\n Value: new Date(this.formGroup.controls[\"LastUpdateDate\"].value),\r\n Logic: \"and\",\r\n Operator: \"lte\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n return filter;\r\n }\r\n setDate() {\r\n if (this.isLoadingLastDate) return;\r\n this.isLoadingLastDate = true;\r\n let filter: GridFilter[] = [];\r\n if (!this.model.FiscalYearId) this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n filter.push({ Type: \"F\", Filed: \"FiscalYearId\", Value: this.model.FiscalYearId, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n if (this.formGroup?.controls[\"BranchIds\"]?.value)\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"BranchIds\",\r\n Value: this.formGroup.controls[\"BranchIds\"].value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n if (this.formGroup?.controls[\"WarehouseIds\"]?.value)\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"WarehouseIds\",\r\n Value: this.formGroup.controls[\"WarehouseIds\"].value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n\r\n this.httpCommonService\r\n .create(this.apiName + \"/GetLastDate/\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: Date) => {\r\n this.isLoadingLastDate = false;\r\n this.model.PrevUpdateDate = data;\r\n this.setValue(\"PrevUpdateDate\", this.model.PrevUpdateDate);\r\n this.fillData();\r\n },\r\n (error) => {\r\n this.isLoadingLastDate = false;\r\n this.getFailedHelper(error);\r\n }\r\n );\r\n }\r\n fillData() {\r\n this.httpCommonService\r\n .create(this.apiName + \"/GetInvVoucherList\", this.getFilter())\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.dataList = (data as []).sort((a, b) => new Date(a[\"VoucherDate\"]).getTime() - new Date(b[\"VoucherDate\"]).getTime());\r\n if (new Date(this.dataList[0].VoucherDate).getTime() < new Date(this.formGroup.get(\"PrevUpdateDate\").value).getTime())\r\n this.setValue(\"PrevUpdateDate\", this.dataList[0].VoucherDate);\r\n this.isValid();\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n setdefault() {\r\n this.model.BranchId = this.accountService.authService.currentBranchId;\r\n this.model.LastUpdateDate = new Date();\r\n if (this.accountService.authService.currentFiscalYear) this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n }\r\n });\r\n }\r\n isValid() {\r\n this.erroremessage = undefined;\r\n let flag: boolean = true;\r\n if (!this.formGroup.controls[\"BranchIds\"] || this.formGroup.controls[\"BranchIds\"].value.length <= 0) {\r\n this.erroremessage = \"شعبه انتخاب نشده است.\";\r\n flag = false;\r\n }\r\n if (flag && (!this.formGroup.controls[\"WarehouseIds\"] || this.formGroup.controls[\"WarehouseIds\"].value.length <= 0)) {\r\n this.erroremessage = \"انبار انتخاب نشده است.\";\r\n flag = false;\r\n }\r\n if (flag && (!this.dataList || this.dataList.length <= 0)) {\r\n this.erroremessage = \"هیچ حواله ای جهت قیمت گذاری وجود ندارد.\";\r\n flag = false;\r\n }\r\n if (\r\n flag &&\r\n new Date(this.formGroup.controls[\"LastUpdateDate\"].value).setHours(0, 0, 0, 0) <\r\n new Date(this.formGroup.controls[\"PrevUpdateDate\"].value).setHours(0, 0, 0, 0)\r\n ) {\r\n this.erroremessage = \"تا تاریخ نمی تواند کوچکتر از شروع تاریخ قیمت گذاری باشد.\";\r\n flag = false;\r\n }\r\n return flag;\r\n }\r\n\r\n addControl() {\r\n if (this.formGroup) {\r\n this.setValue(\"BranchIds\", this.BranchIds);\r\n this.setValue(\"WarehouseIds\", this.WarehouseIds);\r\n }\r\n }\r\n set_Columns() {\r\n this.voucherColumns = [];\r\n this.voucherColumns.push({\r\n label: \"نوع سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"WarehouseTitle\",\r\n disabled: false,\r\n name: \"WarehouseTitle\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n columnWidth: 40,\r\n });\r\n this.voucherColumns.push({\r\n label: \"شماره سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"VoucherNo\",\r\n disabled: false,\r\n name: \"VoucherNo\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n columnWidth: 10,\r\n });\r\n this.voucherColumns.push({\r\n label: \"شماره پیگیر\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SlaveNo\",\r\n disabled: false,\r\n name: \"SlaveNo\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n columnWidth: 10,\r\n });\r\n this.voucherColumns.push({\r\n label: \"تاریخ سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ShamsiVoucherDate\",\r\n disabled: false,\r\n name: \"ShamsiVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n columnWidth: 20,\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n public async save() {\r\n if (!this.isSaving) {\r\n if (this.isValid()) {\r\n this.beforupdate();\r\n this.sts.showToast(\"info\", \"\", \"در حال قیمت گذاری...\");\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n this.httpCommonService\r\n .create(this.apiName + \"/VoucherPricing\", this.getFilter())\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => {\r\n this.saveSuccessHelper(row);\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n },\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { SplashScreenService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/SplashScreenService\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvVoucherPricing } from \"../../models/inv-voucher-pricing.model\";\r\nimport { InvVoucherPricingFormComponent } from \"../inv-voucher-pricing-form/inv-voucher-pricing-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-voucher-pricing-list\",\r\n templateUrl: \"./inv-voucher-pricing-list.component.html\",\r\n styleUrls: [\"./inv-voucher-pricing-list.component.scss\"],\r\n})\r\nexport class InvVoucherPricingListComponent extends BaseListComponent {\r\n filterInfo: NameValue[] = [];\r\n actions: EntityListAction[];\r\n constructor(private _tabsservice: TabularService, private splashScreenService: SplashScreenService, private splashFormService: SplashFormService) {\r\n super();\r\n this.inputEditorform = InvVoucherPricingFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"InvVoucherPricing\";\r\n this.areaName = \"Inventory\";\r\n this.label = \"قیمت گذاری اسناد\";\r\n this.setactions();\r\n if (this.accountService.authService.currentFiscalYear)\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: this.accountService.authService.currentFiscalYear.Id, Operator: \"eq\" });\r\n else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: x.Id, Operator: \"eq\" });\r\n }\r\n });\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: InvVoucherPricing,\r\n onRowsSelected: InvVoucherPricing[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n if (onRowSelected && (!onRowsSelected || onRowsSelected.length <= 0)) onRowsSelected = [onRowSelected];\r\n ///قیمت گذاری\r\n if (action.name === \"VoucherPricing\") {\r\n this.dialogService\r\n .open(this.inputEditorform, {\r\n context: {\r\n currentrow: onRowSelected,\r\n apiName: action.apiName,\r\n areaName: action.areaName,\r\n label: this.label,\r\n },\r\n hasScroll: true,\r\n autoFocus: true,\r\n closeOnBackdropClick: false,\r\n closeOnEsc: false,\r\n })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n });\r\n }\r\n ///برگشت از قیمت گذاری\r\n if (action.name === \"ReturnVoucherPricing\") {\r\n this.splashFormService.openDialog(\"\", \"در حال برگشت از قیمت گذاری\");\r\n if (isAllSelected) {\r\n this.httpCommonService\r\n .create(\"InvVoucherPricing/ReturnVoucherPricing\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.splashFormService.closeLoading();\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"برگشت قیمت گذاری با موفقیت انجام شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در ${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n } else {\r\n let InvVoucherPricingIds: number[] = [];\r\n onRowsSelected.forEach((x) => InvVoucherPricingIds.push(x.Id));\r\n gridFilter.push({ Type: \"F\", Filed: \"InvVoucherPricingIds\", Value: InvVoucherPricingIds, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n this.httpCommonService\r\n .create(\"InvVoucherPricing/ReturnVoucherPricing\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.splashFormService.closeLoading();\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"برگشت قیمت گذاری با موفقیت انجام شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در ${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n }\r\n return;\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"VoucherPricing\",\r\n disabled: false,\r\n displayName: \"قیمت گذاری\",\r\n iconName: \"icon-create_new_folder-o\",\r\n apiName: \"InvVoucherPricing/VoucherPricing\",\r\n areaName: \"Inventory\",\r\n requireSelectedrows: false,\r\n Form_Component: InvVoucherPricingFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"ReturnVoucherPricing\",\r\n disabled: false,\r\n displayName: \"برگشت از قیمت گذاری\",\r\n iconName: \"icon-delete-sweep-outline\",\r\n apiName: \"InvVoucherPricing/ReturnVoucherPricing\",\r\n areaName: \"Inventory\",\r\n requireSelectedrows: true,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n pathPreFix=\"INV\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n [isMulti]=\"true\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [isMulti]=\"true\"\r\n [actions]=\"actions\"\r\n [actionTregger]=\"onActionClick\">\r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { InvVoucherPricingFormComponent } from \"./inv-voucher-pricing-form/inv-voucher-pricing-form.component\";\r\nimport { InvVoucherPricingListComponent } from \"./inv-voucher-pricing-list/inv-voucher-pricing-list.component\";\r\n\r\nconst components = [InvVoucherPricingListComponent, InvVoucherPricingFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class InvVoucherPricingModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { EditableGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { InvStatusKind, SystemKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvVoucherHeader } from \"../../models/inv-voucher-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-inventory-closing-form\",\r\n templateUrl: \"./inventory-closing-form.component.html\",\r\n styleUrls: [\"./inventory-closing-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InventoryClosingFormComponent extends BaseFormComponent {\r\n erroremessage: string;\r\n maxCodeLoading: boolean = false;\r\n currentVoucherKind: any;\r\n iscCreatingVoucher: boolean = false;\r\n InvVoucherDetailList: form_control[];\r\n @ViewChild(EditableGridComponent) grid: EditableGridComponent;\r\n constructor(\r\n private lookupservice: LookupService,\r\n private missetup: MisSetupService,\r\n protected cd: ChangeDetectorRef,\r\n protected selectorService: SelectorService\r\n ) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.iscCreatingVoucher = false;\r\n this.apiName = \"InventoryClosing\";\r\n this.label = \"انتقال ابتدای دوره\";\r\n super.ngOnInit();\r\n }\r\n\r\n setMaxCode() {\r\n this.model.VoucherKindId = this.formGroup?.get(\"VoucherKindId\")?.value;\r\n this.model.WarehouseId = this.formGroup?.get(\"WarehouseId\")?.value;\r\n if (!this.isNewRow || this.maxCodeLoading || !this.model.VoucherKindId) return;\r\n\r\n this.maxCodeLoading = true;\r\n if (this.accountService.authService.currentFiscalYear) {\r\n var fiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.httpCommonService\r\n .getMaxCodeWithParameter(this.apiName, this.model.VoucherKindId, fiscalYearId, this.model.WarehouseId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (!this.model) this.model = {};\r\n if (data && data[\"VoucherNumber\"]) {\r\n this.model[\"VoucherNo\"] = data[\"VoucherNumber\"] as number;\r\n if (!this.formGroup) {\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n } else {\r\n this.setValue(\"VoucherNo\", data[\"VoucherNumber\"] as number);\r\n }\r\n }\r\n this.maxCodeLoading = false;\r\n },\r\n (error) => (this.maxCodeLoading = false)\r\n );\r\n } else {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n var fiscalYearId = x.Id;\r\n this.httpCommonService\r\n .getMaxCodeWithParameter(this.apiName, this.VoucherKind.VoucherKindId, fiscalYearId, this.model.WarehouseId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data && data[\"VoucherNumber\"]) {\r\n this.model[\"VoucherNo\"] = data[\"VoucherNumber\"] as number;\r\n if (!this.formGroup) {\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n } else {\r\n this.setValue(\"VoucherNo\", data[\"VoucherNumber\"] as number);\r\n }\r\n }\r\n this.maxCodeLoading = false;\r\n },\r\n (error) => (this.maxCodeLoading = false)\r\n );\r\n }\r\n });\r\n }\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.currentVoucherKind = undefined;\r\n this.InvVoucherDetailList = undefined;\r\n }\r\n onChange($event) {\r\n this.setMaxCode();\r\n this.isValid();\r\n }\r\n setdefault() {\r\n if (!this.model) {\r\n this.model = this.model = {};\r\n this.model.VoucherDate = this.accountService.authService.currentFiscalYear.StartDate;\r\n }\r\n if (!this.model.BranchId) this.model.BranchId = this.accountService.authService.currentBranchId;\r\n if (!this.model.FiscalYearId) this.model.FiscalYearId = this.accountService?.authService?.currentFiscalYear?.Id;\r\n if (!this.model.InvVoucherDetailList) this.model.InvVoucherDetailList = [];\r\n else this.model.InvVoucherDetailList = this.model.InvVoucherDetailList.sort((a, b) => a.RowNumber - b.RowNumber);\r\n\r\n if (!this.model.SystemKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"GNR\", \"SystemKind\", SystemKind.INV)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.SystemKindId = x.Id;\r\n this.setValue(\"SystemKindId\", x.Id);\r\n });\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"INV\", \"StatusKind\", InvStatusKind.Registered)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", this.model.StatusKindId);\r\n this.setValue(\"StatusKindCode\", this.model.StatusKindCode);\r\n this.setValue(\"StatusKindTitle\", this.model.StatusKindTitle);\r\n }\r\n });\r\n super.setdefault();\r\n }\r\n setColumnAttribute() {\r\n this.orignalColumns.forEach((col) => {\r\n if (col.name === \"VoucherNo\") {\r\n col.disabled = true;\r\n col.userClass = \"select-sm\";\r\n } else if (col.name === \"WarehouseId\" || col.name === \"VoucherKindId\" || col.name === \"VoucherDate\") {\r\n col.required = true;\r\n col.disabled = !this.isNewRow;\r\n col.formVisible = true;\r\n col.userClass = \"select-sm\";\r\n } else col.formVisible = false;\r\n });\r\n\r\n this.columns = this.orignalColumns.filter((f) => f.formVisible);\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnNumber(this.columns);\r\n this.InvVoucherDetailList = this.getDetailControlModels(\"InvVoucherDetailList\");\r\n\r\n this.columns.forEach((x) => (x.isFloat = null));\r\n }\r\n isValid() {\r\n this.erroremessage = undefined;\r\n if (!this.model.FiscalYearId) this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n if (this.model.InvVoucherDetailList.length > 0) this.model.TotalPrice = this.model.InvVoucherDetailList?.getSumWithKey(\"TotalPrice\");\r\n if (!this.formGroup?.get(\"VoucherDate\")?.value) {\r\n this.erroremessage = \"انتخاب تاریخ الزامی است\";\r\n return false;\r\n }\r\n if (\r\n new Date(this.formGroup.controls[\"VoucherDate\"].value).setHours(0, 0, 0, 0) <\r\n new Date(this.accountService.authService.currentFiscalYear.StartDate).setHours(0, 0, 0, 0) ||\r\n new Date(this.formGroup.controls[\"VoucherDate\"].value).setHours(0, 0, 0, 0) >\r\n new Date(this.accountService.authService.currentFiscalYear.EndDate).setHours(0, 0, 0, 0)\r\n ) {\r\n this.erroremessage = \"تاریخ سند باید در محدوده سال مالی باشد.\";\r\n return false;\r\n }\r\n if (this.iscCreatingVoucher !== true && this.model.InvVoucherDetailList.length <= 0) {\r\n this.erroremessage = \"برای سند هیچ قلمی وارد نشده است.\";\r\n return false;\r\n }\r\n return true;\r\n }\r\n CreateVoucher() {\r\n if (this.iscCreatingVoucher === true) return;\r\n this.iscCreatingVoucher = true;\r\n if (!this.isValid()) return;\r\n if (!this.formGroup.get(\"WarehouseId\") || !this.formGroup.get(\"WarehouseId\").value) {\r\n this.erroremessage = \"انبار انتخاب نشده است\";\r\n return;\r\n }\r\n if (!this.formGroup.get(\"VoucherDate\") || !this.formGroup.get(\"VoucherDate\").value) {\r\n this.erroremessage = \"تاریخ وارد نشده است\";\r\n return;\r\n }\r\n this.model.WarehouseId = this.formGroup.get(\"WarehouseId\").value;\r\n this.model.VoucherDate = this.formGroup.get(\"VoucherDate\").value;\r\n this.model.FiscalYearId = this.formGroup.get(\"FiscalYearId\").value;\r\n this.model.BranchId = this.formGroup.get(\"BranchId\").value;\r\n this.model.InvVoucherDetailList = [];\r\n let filter: GridFilter[] = [];\r\n filter.push({ Filed: \"FiscalYearId\", Value: this.model.FiscalYearId, Operator: \"eq\", Type: \"F\", Skip: 0, Take: 0 });\r\n filter.push({ Filed: \"BranchId\", Value: this.model.BranchId, Operator: \"eq\", Type: \"F\", Skip: 0, Take: 0 });\r\n filter.push({ Filed: \"WarehouseId\", Value: this.model.WarehouseId, Operator: \"eq\", Type: \"F\", Skip: 0, Take: 0 });\r\n filter.push({ Filed: \"VoucherDate\", Value: this.model.VoucherDate, Operator: \"eq\", Type: \"F\", Skip: 0, Take: 0 });\r\n this.httpCommonService\r\n .create(\"InventoryClosing/CreateInventoryClosingVoucher\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (results) => {\r\n this.model.InvVoucherDetailList = results;\r\n if (this.grid) {\r\n this.grid.refreshform();\r\n this.grid.setColumnInfo();\r\n }\r\n this.isValid();\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف اطلاعات\");\r\n }\r\n );\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n this.formGroup.valueChanges.subscribe((x) => {\r\n this.isValid;\r\n });\r\n }\r\n IsDetailValid(Deleting: boolean): boolean {\r\n let flag = true;\r\n if (!this.missetup.getboolean(\"INV\", \"NegativeBalance\") && this.formGroup.get(\"WarehouseId\") && this.formGroup.get(\"WarehouseId\").value) {\r\n this.model.WarehouseId = this.formGroup.get(\"WarehouseId\").value;\r\n this.model.VoucherDate = this.formGroup.get(\"VoucherDate\").value;\r\n\r\n return flag;\r\n }\r\n }\r\n deleteClosingVoucher() {\r\n this.httpCommonService\r\n .delete(this.apiName, this.model.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت حذف شد.\");\r\n this.currentrow = undefined;\r\n this.model = undefined;\r\n this.ngOnInit();\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف اطلاعات\");\r\n }\r\n );\r\n }\r\n deleteVoucher() {\r\n if (this.model.IsCalculated) {\r\n this.erroremessage = \"این سند به علت قیمت گذاری قابل حذف نمی باشد\";\r\n return;\r\n }\r\n\r\n this.sts.showDialog(`آیا از حذف ُند اطمینان دارید؟`, \"حذف اطلاعات\", DialogType.confirm, () => this.deleteClosingVoucher());\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { InventoryClosingFormComponent } from \"../inventory-closing-form/inventory-closing-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-inventory-closing-list\",\r\n templateUrl: \"./inventory-closing-list.component.html\",\r\n styleUrls: [\"./inventory-closing-list.component.scss\"],\r\n})\r\nexport class InventoryClosingListComponent extends BaseListComponent {\r\n columns: form_control[] = [];\r\n constructor() {\r\n super();\r\n this.inputEditorform = InventoryClosingFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"InventoryClosing\";\r\n this.areaName = \"Inventory\";\r\n this.label = \"انتقال موجودی اول دوره\";\r\n this.setColumns();\r\n }\r\n setColumns() {\r\n this.columns = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"WarehouseTitle\",\r\n modelName: \"WarehouseTitle\",\r\n listVisible: true,\r\n label: \"انبار\",\r\n order: 11,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"VoucherKindTitle\",\r\n modelName: \"VoucherKindTitle\",\r\n listVisible: true,\r\n label: \"نوع سند\",\r\n order: 12,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"VoucherNo\",\r\n modelName: \"VoucherNo\",\r\n listVisible: true,\r\n label: \"شماره سند\",\r\n order: 13,\r\n textType: \"number\",\r\n withComma: false,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"ShamsiVoucherDate\",\r\n modelName: \"ShamsiVoucherDate\",\r\n listVisible: true,\r\n label: \"تاریخ سند\",\r\n order: 14,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"VoucherDate\",\r\n modelName: \"VoucherDate\",\r\n listVisible: false,\r\n label: \"تاریخ سند\",\r\n order: 15,\r\n textType: \"date\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"StatusKindTitle\",\r\n modelName: \"StatusKindTitle\",\r\n listVisible: true,\r\n label: \"وضعیت سند\",\r\n order: 16,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"TotalPrice\",\r\n modelName: \"TotalPrice\",\r\n listVisible: true,\r\n label: \"جمع خالص\",\r\n order: 17,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"AccVoucherHeaderId\",\r\n modelName: \"AccVoucherHeaderId\",\r\n listVisible: false,\r\n label: \"ارجاع به سند حسابداری\",\r\n order: 18,\r\n textType: \"number\",\r\n withComma: false,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"AccVoucherNo\",\r\n modelName: \"AccVoucherNo\",\r\n listVisible: true,\r\n label: \"ُسند حسابدازی\",\r\n order: 19,\r\n textType: \"number\",\r\n withComma: false,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { InventoryClosingFormComponent } from \"./inventory-closing-form/inventory-closing-form.component\";\r\nimport { InventoryClosingListComponent } from \"./inventory-closing-list/inventory-closing-list.component\";\r\nconst components = [InventoryClosingFormComponent, InventoryClosingListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class InventoryClosingModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormOperationKind } from \"../../models/form-operation-kind.enums\";\r\nimport { InvVoucherKind } from \"../../models/inv-voucher-kind.model\";\r\n@Component({\r\n selector: \"ngx-inv-subledger-detailLedger-form\",\r\n templateUrl: \"./inv-subledger-detailLedger-form.component.html\",\r\n styleUrls: [\"./inv-subledger-detailLedger-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvSubledgerDetailLedgerFormComponent extends BaseFormComponent {\r\n @Input() Columns: form_control[] = [];\r\n @Input() CurrentVoucherKind: InvVoucherKind;\r\n @Input() detailLedgerLevel: number;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.label = \"معین و تفصیلی\";\r\n this.model = Object.assign({}, this.currentrow);\r\n this.prepareColumns();\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n prepareColumns() {\r\n Object.assign(this.orignalColumns, this.Columns);\r\n this.orignalColumns.forEach((x) => (x.required = false));\r\n this.orignalColumns\r\n .filter((x) => x.name.startsWith(\"DetailLedger\"))\r\n .forEach((x) => {\r\n if (x.name.includes(\"DetailLedgerId\")) x.formVisible = this.detailLedgerLevel >= 1;\r\n if (x.name.includes(\"DetailLedger2Id\")) x.formVisible = this.detailLedgerLevel >= 2;\r\n if (x.name.includes(\"DetailLedger3Id\")) x.formVisible = this.detailLedgerLevel >= 3;\r\n if (x.name.includes(\"DetailLedger4Id\")) x.formVisible = this.detailLedgerLevel >= 4;\r\n if (x.name.includes(\"DetailLedger5Id\")) x.formVisible = this.detailLedgerLevel >= 5;\r\n if (x.name.includes(\"DetailLedger6d\")) x.formVisible = this.detailLedgerLevel >= 6;\r\n });\r\n this.orignalColumns\r\n .filter((x) => x.name.startsWith(\"CostSubLedger\") || x.name.startsWith(\"GoodsDetailLedger\"))\r\n .forEach((x) => {\r\n if (x.name === \"CostSubLedgerId\")\r\n x.formVisible =\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher;\r\n if (x.name.includes(\"GoodsDetailLedgerId\"))\r\n x.formVisible =\r\n (this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher) &&\r\n this.detailLedgerLevel >= 1;\r\n if (x.name.includes(\"GoodsDetailLedger2Id\"))\r\n x.formVisible =\r\n (this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher) &&\r\n this.detailLedgerLevel >= 2;\r\n if (x.name.includes(\"GoodsDetailLedger3Id\"))\r\n x.formVisible =\r\n (this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher) &&\r\n this.detailLedgerLevel >= 3;\r\n if (x.name.includes(\"GoodsDetailLedger4Id\"))\r\n x.formVisible =\r\n (this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher) &&\r\n this.detailLedgerLevel >= 4;\r\n if (x.name.includes(\"GoodsDetailLedger5Id\"))\r\n x.formVisible =\r\n (this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher) &&\r\n this.detailLedgerLevel >= 5;\r\n if (x.name.includes(\"GoodsDetailLedger6d\"))\r\n x.formVisible =\r\n (this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher) &&\r\n this.detailLedgerLevel >= 6;\r\n });\r\n\r\n this.columns = this.orignalColumns.filter(\r\n (x) => (x.name.includes(\"CostSubLedger\") || x.name.includes(\"DetailLedger\")) && !x.name.includes(\"Goods\")\r\n );\r\n\r\n this.setColumnNumber(this.columns, 6);\r\n this.setFormGroup(this.model);\r\n this.cd.detectChanges();\r\n }\r\n public async save() {\r\n this.result = this.getDataFromFormGroup();\r\n this.close();\r\n }\r\n onvalueChangeByApiName($event) {\r\n if ($event) {\r\n this.model[$event.KeyName.replace(\"Id\", \"Code\")] = $event.data.Code;\r\n this.model[$event.KeyName.replace(\"Id\", \"Title\")] = $event.data.Title;\r\n this.setValue($event.KeyName.replace(\"Id\", \"Code\"), $event.data.Code);\r\n this.setValue($event.KeyName.replace(\"Id\", \"Title\"), $event.data.Title);\r\n this.setColumnAttribute();\r\n }\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { InvVoucherHeader } from \"../../models/inv-voucher-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-voucher-detail-filter\",\r\n templateUrl: \"./inv-voucher-detail-filter.component.html\",\r\n styleUrls: [\"./inv-voucher-detail-filter.component.scss\"],\r\n})\r\nexport class InvVoucherDetailFilterComponent extends BaseFormComponent {\r\n filterList: GridFilter[];\r\n formGroupIsOk: boolean = false;\r\n StatusKindIds: number[] = [];\r\n WarehouseIds: number[] = [];\r\n DetailLedgerIds: number[] = [];\r\n ReferenceVoucherKindIds: number[] = [];\r\n VoucherKindIds: number[] = [];\r\n ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this.filterList = undefined;\r\n this.StatusKindIds = undefined;\r\n this.WarehouseIds = undefined;\r\n this.DetailLedgerIds = undefined;\r\n this.ReferenceVoucherKindIds = undefined;\r\n this.VoucherKindIds = undefined;\r\n }\r\n async ngOnInit() {\r\n this.label = \"فیلتر اقلام\";\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"از شماره\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"StartVoucherNo\",\r\n disabled: false,\r\n name: \"StartVoucherNo\",\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا شماره\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"EndVoucherNo\",\r\n disabled: false,\r\n name: \"EndVoucherNo\",\r\n order: 1,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.orignalColumns = this.columns;\r\n this.setFormGroup(this.model);\r\n }\r\n async save() {\r\n let entity = this.formGroup.value;\r\n let filters: GridFilter[] = [];\r\n Object.keys(this.formGroup.controls).forEach((key) => {\r\n this.model[key] = this.formGroup.controls[key].value;\r\n if (this.formGroup.controls[key].value && (!key.includes(\"Ids\") || this.formGroup.controls[key].value.length > 0))\r\n filters.push({ Filed: key, Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: this.formGroup.controls[key].value, Logic: \"and\" });\r\n });\r\n this.result = filters;\r\n this.closeModal();\r\n }\r\n addControl(): void {\r\n this.formGroupIsOk = false;\r\n this.setValue(\"StatusKindIds\", this.StatusKindIds);\r\n this.setValue(\"WarehouseIds\", this.WarehouseIds);\r\n this.setValue(\"DetailLedgerIds\", this.DetailLedgerIds);\r\n this.setValue(\"ReferenceVoucherKindIds\", this.ReferenceVoucherKindIds);\r\n this.setValue(\"VoucherKindIds\", this.VoucherKindIds);\r\n this.formGroupIsOk = true;\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport * as moment from \"jalali-moment\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { InvStatusKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvVoucherKind } from \"src/app/backoffice/inv/models/inv-voucher-kind.model\";\r\nimport { InvVoucherDetail } from \"../../models/inv-voucher-detail.model\";\r\nimport { InvVoucherHeader } from \"../../models/inv-voucher-header.model\";\r\nimport { Warehouse } from \"../../models/warehouse.model\";\r\n@Component({\r\n selector: \"inv-voucher-header-import-excel-form\",\r\n templateUrl: \"./inv-voucher-header-import-excel-form.component.html\",\r\n styleUrls: [\"./inv-voucher-header-import-excel-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvVoucherHeaderImportExcelFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n gridInfo: GridColumnInfoDetail[];\r\n VoucherState: string;\r\n WarehouseList: Warehouse[];\r\n InvVoucherKindList: InvVoucherKind[];\r\n public hColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n let BranchId = this.accountService.authService.currentBranchId;\r\n this.apiName = \"InvVoucherHeader\";\r\n this.label = \"دریافت فایل اکسل\";\r\n super.ngOnInit();\r\n await this.setInvVoucherKind();\r\n await this.setWarehouse();\r\n await this.setData();\r\n }\r\n async setColumns() {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns.push({\r\n label: \"ردیف اول عنون ستونهاست.\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"isFirstRowColumnsName\",\r\n disabled: false,\r\n name: \"isFirstRowColumnsName\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.hColumns = this.hColumns;\r\n }\r\n async setData() {\r\n if (!this.model.FiscalYearId && this.accountService.authService.currentFiscalYear) {\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.model.Year = this.accountService.authService.currentFiscalYear.Year;\r\n } else if (!this.model.FiscalYearId) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n this.model.FiscalYearId = x.Id;\r\n this.model.Year = x.Year;\r\n });\r\n }\r\n if (!this.model.StatusKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"INV\", \"StatusKind\", InvStatusKind.Registered)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n });\r\n }\r\n }\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n alert(\"انتخاب بیش از یک فایل مجاز نیست.\");\r\n return;\r\n } else {\r\n const result = await this.parseExcelDoc(target.files[0]).catch((err) => console.error(err));\r\n this.SetInvVoucherHeaderInfo(result);\r\n }\r\n }\r\n getDate(newValue: any) {\r\n var _dateValue = moment.from(newValue, \"fa\", \"YYYY/MM/DD HH:mm:ss\").format(\"YYYY/MM/DD HH:mm:ss\") as any;\r\n return new Date(_dateValue);\r\n }\r\n SetInvVoucherHeaderInfo(excelData: any[]) {\r\n let ColumnsName = [];\r\n let VoucherNo = 0;\r\n let VoucherKindCode = 0;\r\n let VoucherHeader: InvVoucherHeader = {};\r\n VoucherHeader.InvVoucherDetailList = [];\r\n let VoucherDetail: InvVoucherDetail = {};\r\n let ErroeMessage: string = \"\";\r\n if (this.formGroup.get(\"isFirstRowColumnsName\")?.value === true) {\r\n ColumnsName = excelData[0] as any[];\r\n } else ColumnsName = this.gridInfo.filter((c) => c.name != null && c.title != \"عملیات\" && !c.hidden) as any[];\r\n let isFirtsRow: boolean = true;\r\n for (var i = 0; i < excelData.length; i++) {\r\n var x = excelData[i];\r\n let index: number = 0;\r\n if (this.formGroup.get(\"isFirstRowColumnsName\").value === true && isFirtsRow === true) {\r\n } else {\r\n VoucherDetail = {};\r\n ColumnsName.forEach(async (c) => {\r\n let key: string;\r\n if (c.name) key = c.name;\r\n else {\r\n if (this.gridInfo.some((g) => g.title === c || g.name == c)) {\r\n key = this.gridInfo.find((g) => g.title === c || g.name == c).name;\r\n }\r\n }\r\n if (key.trim() === \"VoucherNo\" && VoucherNo !== Number(x[index])) {\r\n if (!ErroeMessage && VoucherHeader.InvVoucherDetailList.length > 0) {\r\n this.saveVoucher(VoucherHeader);\r\n }\r\n VoucherHeader = {};\r\n VoucherHeader.InvVoucherDetailList = [];\r\n VoucherHeader.BranchId = this.accountService.authService.currentBranchId;\r\n VoucherHeader.VoucherKindId = this.model.VoucherKindId;\r\n VoucherHeader.WarehouseId = this.model.WarehouseId;\r\n VoucherHeader.StatusKindId = this.model.StatusKindId;\r\n VoucherHeader.FiscalYearId = this.model.FiscalYearId;\r\n VoucherHeader.VoucherNo = 0;\r\n VoucherHeader.TotalPrice = 0;\r\n VoucherHeader.DetailLedgerCode;\r\n }\r\n\r\n if (key.trim() === \"VoucherKindCode\") {\r\n VoucherHeader[key.trim()] = x[index];\r\n VoucherHeader.VoucherKindId = this.InvVoucherKindList.find((gg) => gg.Code === VoucherHeader.VoucherKindCode)?.Id;\r\n VoucherKindCode = VoucherHeader.VoucherKindCode;\r\n if (!VoucherHeader.VoucherKindId) {\r\n (ErroeMessage += `برای سند ${VoucherHeader.VoucherNo} نوع سند ' ${VoucherHeader.SubLedgerCode} پیدا نشد.`), \"دریافت سند \" + \",\";\r\n }\r\n }\r\n if (key.trim() === \"WarehouseCode\") {\r\n VoucherHeader[key.trim()] = x[index];\r\n VoucherHeader.WarehouseId = this.WarehouseList.find((gg) => gg.Code === VoucherHeader.WarehouseCode)?.Id;\r\n if (!VoucherHeader.WarehouseId) {\r\n (ErroeMessage += `برای سند ${VoucherHeader.VoucherNo} انبار ' ${VoucherHeader.WarehouseCode} پیدا نشد.`), \"دریافت سند \" + \",\";\r\n }\r\n }\r\n if (\r\n key.trim() === \"VoucherNo\" ||\r\n key.trim() === \"ShamsiVoucherDate\" ||\r\n key.trim() === \"BranchCode\" ||\r\n key.trim() === \"HeaderComment\" ||\r\n key.trim() === \"DetailLedgerCode\"\r\n ) {\r\n VoucherHeader[key.trim()] = x[index];\r\n if (key.trim() === \"ShamsiVoucherDate\") VoucherHeader.VoucherDate = this.getDate(VoucherHeader.ShamsiVoucherDate);\r\n VoucherNo = VoucherHeader.VoucherNo;\r\n } else {\r\n VoucherDetail[key.trim()] = x[index];\r\n VoucherDetail.InvVoucherHeaderId = 0;\r\n }\r\n\r\n index++;\r\n });\r\n this.VoucherState = `در حال ذخیره سند شماره ${VoucherHeader.VoucherNo} تاریخ ${VoucherHeader.ShamsiVoucherDate}`;\r\n this.cd.markForCheck();\r\n if (!VoucherHeader.InvVoucherDetailList.some((g) => g.RowNumber === VoucherDetail.RowNumber)) {\r\n VoucherHeader.InvVoucherDetailList.push(VoucherDetail);\r\n } else {\r\n console.log(VoucherHeader);\r\n }\r\n }\r\n if (isFirtsRow === true) isFirtsRow = false;\r\n if (ErroeMessage) break;\r\n }\r\n if (!ErroeMessage && VoucherHeader.InvVoucherDetailList.length > 0) {\r\n this.saveVoucher(VoucherHeader);\r\n } else this.sts.showDialog(ErroeMessage, \"خطا در دریافت کالا\");\r\n }\r\n public cancel() {\r\n this.close();\r\n }\r\n saveVoucher(entity) {\r\n this.VoucherState = `در حال ذخیره سند شماره ${entity.VoucherNo} تاریخ ${entity.ShamsiVoucherDate}`;\r\n this.cd.markForCheck();\r\n entity.VoucherNo = 0;\r\n entity.FixNo = 0;\r\n entity.DailyNo = 0;\r\n this.httpCommonService\r\n .create(this.apiName, entity)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => {\r\n this.cd.markForCheck();\r\n },\r\n (error) => this.sts.showDialog(`خطای ذخیره تغییرات: ${Utilities.getHttpResponseMessage(error)}`, \"پیغام خطا\")\r\n );\r\n }\r\n async setInvVoucherKind() {\r\n await this.httpCommonService\r\n .get(\"InvVoucherKind/GetActiveVoucherKind\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data: InvVoucherKind[]) => {\r\n if (data) {\r\n this.InvVoucherKindList = data as InvVoucherKind[];\r\n }\r\n },\r\n (error) => {}\r\n );\r\n }\r\n async setWarehouse() {\r\n await this.httpCommonService\r\n .get(\"Warehouse\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data: Warehouse[]) => {\r\n if (data) {\r\n this.WarehouseList = data as Warehouse[];\r\n }\r\n },\r\n (error) => {}\r\n );\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { FormCanDeactivate } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/form-can-deactivate\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { AuthService, LookupService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvVoucherHeader } from \"../../models/inv-voucher-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-voucher-modal-list\",\r\n templateUrl: \"./inv-voucher-modal-list.component.html\",\r\n styleUrls: [\"./inv-voucher-modal-list.component.scss\"],\r\n})\r\nexport class InvVoucherModalListComponent extends FormCanDeactivate implements OnInit, OnDestroy {\r\n filterInfo: NameValue[] = [];\r\n ngUnsubscribe = new Subject();\r\n apiName: string;\r\n areaName: string;\r\n label: string;\r\n currentVoucher: InvVoucherHeader;\r\n @Input() currentVoucherKindId: number;\r\n @Input() dataList: InvVoucherHeader[];\r\n constructor(\r\n private authService: AuthService,\r\n protected translateText: TranslateService,\r\n private sts: ShowToastrService,\r\n private lookupservice: LookupService\r\n ) {\r\n super();\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.filterInfo = undefined;\r\n this.currentVoucher = undefined;\r\n }\r\n get currentFiscalYear() {\r\n return this.authService.currentFiscalYear;\r\n }\r\n ngOnInit() {\r\n this.lookupservice.getall();\r\n this.apiName = \"InvVoucherHeader\";\r\n this.areaName = \"Inventory\";\r\n this.label = \"فهرست اسناد\";\r\n if (this.currentVoucherKindId) this.filterInfo.push({ Name: \"VoucherKindId\", Value: this.currentVoucherKindId, Operator: \"eq\" });\r\n if (this.currentFiscalYear) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: this.currentFiscalYear?.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.authService.currentBranchId, Operator: \"eq\" });\r\n } else\r\n this.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: x.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.authService.currentBranchId, Operator: \"eq\" });\r\n }\r\n });\r\n }\r\n\r\n onDoubleClick(voucher?: InvVoucherHeader) {\r\n this.result = voucher;\r\n this.closeModal();\r\n }\r\n cancel() {\r\n this.result = undefined;\r\n this.closeModal();\r\n }\r\n onRowSelected($event) {\r\n if ($event) {\r\n this.currentVoucher = $event;\r\n }\r\n }\r\n submit() {\r\n if (!this.currentVoucher) this.sts.showDialog(\"هیچ سندی انتخاب نشده است.\", \"انتخاب سند\");\r\n else this.onDoubleClick(this.currentVoucher);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n {{ label }}\r\n
\r\n
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [dataList]=\"dataList\"\r\n [isMulti]=\"false\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [isModal]=\"false\"\r\n reportName=\"InventoryList\"\r\n pathPreFix=\"INV\"\r\n [disableOnDoubleClick]=\"true\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n (onRowSelected)=\"onRowSelected($event)\"\r\n (onDoubleClick)=\"onDoubleClick($event)\">\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n NgZone,\r\n HostListener,\r\n ElementRef,\r\n} from \"@angular/core\";\r\nimport { ColumnComponent, GridComponent, RowArgs, ScrollRequest } from \"@progress/kendo-angular-grid\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { UntypedFormControl, UntypedFormGroup, Validators, ValidatorFn } from \"@angular/forms\";\r\nimport { Subject, pipe, BehaviorSubject, Observable } from \"rxjs\";\r\nimport { InvStatusKind, RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport {\r\n LookupService,\r\n ShowToastrService,\r\n HttpCommonService,\r\n GridFilter,\r\n PagingDataResult,\r\n AccountService,\r\n} from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { Goods, GoodsUnit } from \"../../models/goods.model\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { InvVoucherKind } from \"../../models/inv-voucher-kind.model\";\r\nimport { InvVoucherDetail } from \"../../models/inv-voucher-detail.model\";\r\nimport { ReferenceVoucherByVoucherKindFilterInfo } from \"../../models/reference-voucher-byvoucher-kind-filter-info.model\";\r\nimport { CompositeFilterDescriptor, orderBy, process, SortDescriptor, State } from \"@progress/kendo-data-query\";\r\nimport { Moment } from \"jalali-moment\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport * as moment from \"jalali-moment\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { SplashFormService, isNumber } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { isNullOrEmptyString } from \"@progress/kendo-angular-grid/dist/es2015/utils\";\r\nimport { InvSubledgerDetailLedgerFormComponent } from \"../inv-subledger-detailLedger/inv-subledger-detailLedger-form.component\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { FormOperationKind } from \"../../models/form-operation-kind.enums\";\r\nimport { GridColumnInfo, GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { UnitKindEnum } from \"src/app/frontoffice/order/model/ItemOrder.model\";\r\nexport function isNullOrUndefined(value: any) {\r\n return value === null || value === undefined;\r\n}\r\n\r\n@Component({\r\n selector: \"invvoucher-detail\",\r\n templateUrl: \"./invvoucher-detail.component.html\",\r\n styleUrls: [\"./invvoucher-detail.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvVoucherDetailComponent implements OnInit {\r\n LookupData: Dictionary = [];\r\n _GridColumnInfo: GridColumnInfo;\r\n isFirstLoad: boolean;\r\n ngUnsubscribe = new Subject();\r\n DefaultValues: Dictionary = [];\r\n isLoadingData: Dictionary = [];\r\n @ViewChild(\"grid\") public grid: GridComponent;\r\n currentLookup: any;\r\n public isNew: boolean;\r\n rowseleted: boolean = false;\r\n isDisabled: boolean = false;\r\n public mySelection: number[] = [];\r\n isLoading: boolean = false;\r\n invReferenceVoucherLoded: boolean = false;\r\n isLoadingLastUnitPrice: boolean = false;\r\n @Input() gridHeight = 35;\r\n @Input() StatusKindCode;\r\n @Output() valueChanges = new EventEmitter();\r\n @Output() rowChanges = new EventEmitter();\r\n @Output() forGoodsGroupBy = new EventEmitter();\r\n @Input() RowNumberName: string;\r\n _columns: form_control[] = [];\r\n @Input() aggregatesColumnName: any;\r\n @Input() set columns(value: form_control[]) {\r\n this._columns = value;\r\n if (this._columns && this._columns.length > 0) this.setColumns();\r\n }\r\n get columns(): form_control[] {\r\n return this._columns;\r\n }\r\n valueIsChanging: boolean = false;\r\n @Input() AccountRegistered: boolean;\r\n @Input() HasJournalVoucher: boolean;\r\n @Input() isAdd: boolean = true;\r\n @Input() isEdit: boolean = false;\r\n @Input() isDelete: boolean = true;\r\n @Input() isPriceable: boolean = false;\r\n @Input() hasDiscount: boolean = false;\r\n @Input() ReferenceVoucherChange: (entyity: any) => void;\r\n @Input() hasReference: boolean = false;\r\n @Input() hasReferenceRequired: boolean = false;\r\n @Input() IsPurchaseInvoice: boolean = false;\r\n @Input() detailLedgerLevel: number = 0;\r\n @Input() IsReturnPurchaseInvoice: boolean = false;\r\n _filterEntity: ReferenceVoucherByVoucherKindFilterInfo;\r\n @Input() get filterEntity(): ReferenceVoucherByVoucherKindFilterInfo {\r\n return this._filterEntity;\r\n }\r\n @Input() headerTitleToDetailTitle: string;\r\n set filterEntity(value: ReferenceVoucherByVoucherKindFilterInfo) {\r\n if (\r\n !this._filterEntity ||\r\n this._filterEntity.BranchId !== value.BranchId ||\r\n this._filterEntity.FiscalYearId !== value.FiscalYearId ||\r\n this._filterEntity.DetailLedgerId !== value.DetailLedgerId ||\r\n this._filterEntity.ReferencedVoucherKindId !== value.ReferencedVoucherKindId ||\r\n this._filterEntity.VoucherKindId !== value.VoucherKindId ||\r\n new Date(this._filterEntity.VoucherDate).setHours(0, 0, 0, 0) !== new Date(value.VoucherDate).setHours(0, 0, 0, 0) ||\r\n this._filterEntity.WarehouseId !== value.WarehouseId ||\r\n this._filterEntity.WarehouseTransferId !== value.WarehouseTransferId\r\n ) {\r\n this.invReferenceVoucherLoded = false;\r\n this._filterEntity = value;\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n if (this.CurrentReferenceVoucherKind) {\r\n if (this.CurrentReferenceVoucherKind?.IsWarehouse === true)\r\n this.setelementByVoucherKindList(\"InvVoucherHeader/GetReferenceVoucherByVoucherKind\");\r\n else this.setelementByVoucherKindList(\"SellVoucherHeader/GetReferenceVoucherByVoucherKind\");\r\n }\r\n }\r\n this._filterEntity = value;\r\n }\r\n public isRowSelected = (e: RowArgs) => this.mySelection.indexOf(e.dataItem.RowNumber) >= 0;\r\n\r\n _ReferenceVoucherKindId: number;\r\n @Input() get ReferenceVoucherKindId(): number {\r\n return this._ReferenceVoucherKindId;\r\n }\r\n set ReferenceVoucherKindId(value: number) {\r\n this._ReferenceVoucherKindId = value;\r\n this.cancelHandler();\r\n this.setColumns();\r\n if (value && value > 0) {\r\n this.invReferenceVoucherLoded = false;\r\n this.isLoading = false;\r\n this.fillCollectionsKind(this._ReferenceVoucherKindId);\r\n }\r\n setTimeout(() => {\r\n if (this.dataList.length <= 0) this.addHandler();\r\n }, 300);\r\n }\r\n _CurrentVoucherKind: InvVoucherKind;\r\n @Input() set CurrentVoucherKind(value: InvVoucherKind) {\r\n this._CurrentVoucherKind = value;\r\n this.cancelHandler();\r\n if (this._CurrentVoucherKind) this.setColumns();\r\n setTimeout(() => {\r\n if (this.dataList?.length <= 0) this.addHandler();\r\n }, 300);\r\n }\r\n get CurrentVoucherKind(): InvVoucherKind {\r\n return this._CurrentVoucherKind;\r\n }\r\n _CurrentWarehouseId: number;\r\n @Input() set CurrentWarehouseId(value: number) {\r\n this._CurrentWarehouseId = value;\r\n }\r\n get CurrentWarehouseId(): number {\r\n return this._CurrentWarehouseId;\r\n }\r\n formGroup: UntypedFormGroup;\r\n loadingData: boolean = false;\r\n _dataList: InvVoucherDetail[];\r\n @Input() set dataList(value: InvVoucherDetail[]) {\r\n if (value) this._dataList = value;\r\n else this._dataList = [];\r\n let filterddata = this._dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n }\r\n get dataList(): InvVoucherDetail[] {\r\n return this._dataList;\r\n }\r\n gridData: InvVoucherDetail[];\r\n rowIsEditing: boolean = false;\r\n CurrentReferenceVoucherKind: InvVoucherKind;\r\n editedRow: any;\r\n editedRowIndex: number = 0;\r\n groupsName = \"VoucherNo\";\r\n isLoadingReferenceVoucherKind: boolean = false;\r\n public state: State = {\r\n skip: 0,\r\n take: 5,\r\n filter: {\r\n logic: \"and\",\r\n filters: [],\r\n },\r\n group: [],\r\n };\r\n get getHasTaxDuty(): boolean {\r\n return this.missetup.getboolean(\"GNR\", \"HasTaxDuty\");\r\n }\r\n get getTaxRate(): number {\r\n return this.missetup.getnumber(\"GNR\", \"TaxRate\") / 100;\r\n }\r\n\r\n get hasTaxDuty(): boolean {\r\n return this.CurrentVoucherKind && this.CurrentVoucherKind.HasTaxDuty;\r\n }\r\n\r\n getGridCell(index) {\r\n return this.grid?.columns?.toArray()[index];\r\n }\r\n getColumnIndex(colIndex: number) {\r\n if (!this.grid) return;\r\n let index: number = -1;\r\n let ColumnName: string;\r\n if (!this.grid.columns) return;\r\n this.grid.columns\r\n .toArray()\r\n .filter((x) => x.isVisible)\r\n .forEach((x) => {\r\n index = index + 1;\r\n if (index == colIndex) ColumnName = x[\"field\"];\r\n });\r\n return ColumnName;\r\n }\r\n DetailControlModels: Dictionary;\r\n @HostListener(\"window:keydown\", [\"$event\"])\r\n cArrowDown(e: KeyboardEvent) {\r\n if (document.hidden) return;\r\n\r\n if (e.altKey && e.shiftKey && (e.key === \"n\" || e.key === \"N\" || e.key === \"أ\")) {\r\n e.preventDefault();\r\n this.addHandler();\r\n }\r\n if (e.ctrlKey && e.altKey && (e.key === \"s\" || e.key === \"S\" || e.key === \"س\")) {\r\n e.preventDefault();\r\n this.saveCurrent();\r\n }\r\n if (e.ctrlKey && (e.key === \"c\" || e.key === \"C\" || e.key === \"ز\")) {\r\n e.preventDefault();\r\n this.copyHandler();\r\n }\r\n if (e.ctrlKey && (e.key === \"v\" || e.key === \"V\" || e.key === \"ر\")) {\r\n e.preventDefault();\r\n this.pasetHandler();\r\n }\r\n if (e.key === \"Tab\" && !e.shiftKey) {\r\n if (this.formGroup) {\r\n if (this.formGroup?.valid && this.getColumnIndex(this.grid?.activeCell?.colIndex) === \"Comment\") {\r\n this.saveCurrent();\r\n e.preventDefault();\r\n if (this.grid?.activeCell?.rowIndex <= this.dataList.length) {\r\n setTimeout(() => {\r\n this.editedRowIndex = this.grid?.activeCell?.rowIndex;\r\n this.cd.markForCheck();\r\n this.setFormGroup(this.dataList[this.grid?.activeCell?.rowIndex - 1]);\r\n if (this.grid) {\r\n this.grid.editRow(this.grid?.activeCell?.rowIndex - 1, this.formGroup);\r\n this.grid.closeRow(this.grid?.activeCell?.rowIndex - 2);\r\n }\r\n }, 200);\r\n } else\r\n setTimeout(() => {\r\n this.grid.closeRow(this.grid?.activeCell?.rowIndex - 2);\r\n this.addHandler();\r\n }, 200);\r\n }\r\n }\r\n }\r\n if (e.key.toUpperCase() === \"F4\") {\r\n e.preventDefault();\r\n if (this.dataList.length > 1 && this.formGroup?.controls[\"RowNumber\"].value > 1) {\r\n let ColumnName = this.getColumnIndex(this.grid.activeCell.colIndex);\r\n if (ColumnName.includes(\"SubLedger\") || ColumnName.includes(\"DetailLedger\") || ColumnName.includes(\"Concern\")) {\r\n let PrevValue = this.dataList[this.formGroup?.controls[\"RowNumber\"].value - 2][ColumnName];\r\n this.formGroup?.controls[ColumnName].setValue(PrevValue);\r\n PrevValue = this.dataList[this.formGroup?.controls[\"RowNumber\"].value - 2][ColumnName.replace(\"Id\", \"Code\")];\r\n this.formGroup?.controls[ColumnName.replace(\"Id\", \"Code\")].setValue(PrevValue);\r\n PrevValue = this.dataList[this.formGroup?.controls[\"RowNumber\"].value - 2][ColumnName.replace(\"Id\", \"Title\")];\r\n this.formGroup?.controls[ColumnName.replace(\"Id\", \"Title\")].setValue(PrevValue);\r\n } else {\r\n let PrevValue = this.dataList[this.formGroup?.controls[\"RowNumber\"].value - 2][ColumnName];\r\n this.formGroup?.controls[ColumnName].setValue(PrevValue);\r\n if (this.grid.activeRow.dataItem) this.grid.activeRow.dataItem[ColumnName] = PrevValue;\r\n }\r\n this.selectorService.onSubmited.next(true);\r\n this.cd.markForCheck();\r\n }\r\n }\r\n if (e.key.toUpperCase() === \"F5\") {\r\n e.preventDefault();\r\n if (!this.formGroup || !this.gridData || this.gridData.length < 2) return;\r\n Object.keys(this.dataList[0])\r\n .filter((x) => x !== \"RowNumber\" && x !== \"Id\" && x !== \"State\")\r\n .forEach((key) => {\r\n if (key && this.formGroup?.controls[key]) {\r\n let PrevValue = this.gridData[this.formGroup?.controls[\"RowNumber\"].value - 2][key];\r\n this.formGroup?.controls[key].setValue(PrevValue);\r\n if (this.grid.activeRow.dataItem) this.grid.activeRow.dataItem[key] = PrevValue;\r\n }\r\n });\r\n this.cd.markForCheck();\r\n }\r\n if (this.formGroup && e.ctrlKey && e.key.toUpperCase() === \"DELETE\") {\r\n e.preventDefault();\r\n this.removeHandler({ sender: this.grid, dataItem: this.formGroup?.value });\r\n }\r\n }\r\n constructor(\r\n private lookupservice: LookupService,\r\n private sts: ShowToastrService,\r\n public cd: ChangeDetectorRef,\r\n private dialogService: SimpleModalService,\r\n private missetup: MisSetupService,\r\n private selectorService: SelectorService,\r\n private splashFormService: SplashFormService,\r\n private accountService: AccountService,\r\n private _httpCommonService: HttpCommonService\r\n ) {\r\n this.onDataStateChange = this.onDataStateChange.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.DefaultValues[\"GoodsUnitRatio\"] = 1;\r\n this.DefaultValues[\"UnitPrice\"] = 0;\r\n this.DefaultValues[\"MainAmount\"] = 0;\r\n this.DefaultValues[\"Price\"] = 0;\r\n this.DefaultValues[\"DiscountRate\"] = 0;\r\n this.DefaultValues[\"DiscountAmount\"] = 0;\r\n this.DefaultValues[\"TotalPrice\"] = 0;\r\n this.DefaultValues[\"FirstOutAmount\"] = 0;\r\n this.DefaultValues[\"TransportPrice\"] = 0;\r\n this.DefaultValues[\"TransportTax\"] = 0;\r\n this.DefaultValues[\"RemainMainAmount\"] = 0;\r\n this.DefaultValues[\"StandardValue\"] = 0;\r\n this.DefaultValues[\"StockAmount\"] = 0;\r\n this.DefaultValues[\"SumSaleAmount\"] = 0;\r\n this.DefaultValues[\"SumInventoryAmount\"] = 0;\r\n this.DefaultValues[\"SumReserveAmount\"] = 0;\r\n this.DefaultValues[\"SaleAvailable\"] = 0;\r\n this.DefaultValues[\"DefaultStockAmount\"] = 0;\r\n this.DefaultValues[\"DefaultSumSaleAmount\"] = 0;\r\n this.DefaultValues[\"DefaultSumInventoryAmount\"] = 0;\r\n this.DefaultValues[\"DefaultSumReserveAmount\"] = 0;\r\n this.DefaultValues[\"DefaultSaleAvailable\"] = 0;\r\n this.DefaultValues[\"OrignalAmount\"] = 0;\r\n this.DefaultValues[\"OrignalMainAmount\"] = 0;\r\n this.DefaultValues[\"HasReferencedVoucherTo\"] = false;\r\n\r\n if (!this.dataList) this.dataList = [];\r\n this.setColumns();\r\n this.setColumnWith();\r\n\r\n this.columns.forEach((x) => {\r\n if (x.listVisible && x.apiName) this.setDropdownlist(x.apiName, x.systemName, x.category);\r\n });\r\n\r\n if (\r\n !this.ReferenceVoucherKindId &&\r\n this.CurrentVoucherKind &&\r\n this.CurrentVoucherKind?.ReferenceVoucherKinds &&\r\n this.CurrentVoucherKind?.ReferenceVoucherKinds?.length > 0\r\n ) {\r\n let vk = this.CurrentVoucherKind?.ReferenceVoucherKinds.find((vk) => vk.IsDefault);\r\n if (vk) this.ReferenceVoucherKindId = vk.ReferenceVoucherKindId;\r\n }\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n\r\n setTimeout(() => {\r\n if (this.dataList?.length <= 0) this.addHandler();\r\n }, 300);\r\n }\r\n setColumns() {\r\n this.columns.forEach((x) => {\r\n if (x.name === \"Amount\" && !x.disabled)\r\n x.disabled = this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId) && this.CurrentVoucherKind.CanChangeRefereAmount === false;\r\n if (x.name === \"MainAmount\" && !x.disabled)\r\n x.disabled = this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId) && this.CurrentVoucherKind.CanChangeRefereAmount === false;\r\n if (x.name === \"UnitPrice\") x.listVisible = this.isPriceable || this.CurrentVoucherKind?.Priceable;\r\n if (x.name === \"Price\") x.listVisible = this.isPriceable || this.CurrentVoucherKind?.Priceable;\r\n if (x.name === \"Surplusage\") x.listVisible = this.isPriceable || this.CurrentVoucherKind?.Priceable;\r\n if (x.name === \"Deduction\") x.listVisible = this.isPriceable || this.CurrentVoucherKind?.Priceable;\r\n if (x.name === \"DiscountRate\") x.listVisible = this.hasDiscount || this.CurrentVoucherKind?.HasDiscount;\r\n if (x.name === \"DiscountAmount\") x.listVisible = this.hasDiscount || this.CurrentVoucherKind?.HasDiscount;\r\n if (x.name === \"Tax\") x.listVisible = this.isPriceable && this.hasTaxDuty;\r\n if (x.name === \"TotalPrice\") x.listVisible = this.isPriceable || this.CurrentVoucherKind?.Priceable;\r\n if (x.name === \"GoodsId\" && !x.disabled) x.disabled = this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId);\r\n if (x.name === \"TransportPrice\") x.listVisible = this.CurrentVoucherKind?.Priceable && this.CurrentVoucherKind.HasTransportInterface;\r\n if (x.name === \"TransportTax\") x.listVisible = this.CurrentVoucherKind?.Priceable && this.CurrentVoucherKind.HasTransportInterface;\r\n\r\n if (x.name === \"TraceElement\") x.listVisible = this.CurrentVoucherKind?.HasTraceElement;\r\n\r\n if (x.name === \"ReferenceId\") {\r\n x.listVisible = this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId);\r\n x.required = this.hasReference && this.hasReferenceRequired && !isNullOrUndefined(this.ReferenceVoucherKindId);\r\n }\r\n if (x.name === \"CostSubLedgerId\")\r\n x.listVisible =\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher;\r\n if (x.name === \"CostDetailLedgerId\")\r\n x.listVisible =\r\n (this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher) &&\r\n this.detailLedgerLevel >= 1;\r\n if (x.name === \"CostDetailLedger2Id\")\r\n x.listVisible =\r\n (this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher) &&\r\n this.detailLedgerLevel >= 2;\r\n if (x.name === \"CostDetailLedger3Id\")\r\n x.listVisible =\r\n (this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher) &&\r\n this.detailLedgerLevel >= 3;\r\n if (x.name === \"CostDetailLedger4Id\")\r\n x.listVisible =\r\n (this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher) &&\r\n this.detailLedgerLevel >= 4;\r\n if (x.name === \"CostDetailLedger5Id\")\r\n x.listVisible =\r\n (this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher) &&\r\n this.detailLedgerLevel >= 5;\r\n if (x.name === \"CostDetailLedger6d\")\r\n x.listVisible =\r\n (this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind?.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher) &&\r\n this.detailLedgerLevel >= 6;\r\n });\r\n }\r\n setFormGroup(entity: any = null) {\r\n let group: any = {};\r\n this.columns.forEach((question) => {\r\n switch (question.textType) {\r\n case \"text\":\r\n {\r\n let validator: ValidatorFn[] = [];\r\n if (question.required) validator.push(Validators.required);\r\n if (question.minLength && question.minLength > 0) validator.push(Validators.minLength(question.minLength));\r\n if (question.maxLength && question.maxLength > 0) validator.push(Validators.maxLength(question.maxLength));\r\n if (question.max && question.max > 0) validator.push(Validators.max(question.max));\r\n if (question.min && question.min > 0) validator.push(Validators.min(question.min));\r\n\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? null : entity[question.name] || null, validator)\r\n : new UntypedFormControl(!entity ? null : entity[question.name] || null);\r\n }\r\n break;\r\n case \"checkbox\":\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? false : entity[question.name] || false, Validators.required)\r\n : new UntypedFormControl(!entity ? false : entity[question.name] || false);\r\n break;\r\n case \"number\":\r\n {\r\n let validator: ValidatorFn[] = [];\r\n if (question.required) validator.push(Validators.required);\r\n if (question.max && question.max > 0) validator.push(Validators.max(question.max));\r\n if (question.min && question.min > 0) validator.push(Validators.min(question.min));\r\n\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? null : entity[question.name] || this.DefaultValues[question.name], validator)\r\n : new UntypedFormControl(!entity ? this.DefaultValues[question.name] : entity[question.name] ?? this.DefaultValues[question.name]);\r\n }\r\n break;\r\n case \"date\":\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? new Date() : entity[question.name] || new Date(), Validators.required)\r\n : new UntypedFormControl(!entity ? new Date() : entity[question.name] || new Date());\r\n break;\r\n default:\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? null : entity[question.name] || null, Validators.required)\r\n : new UntypedFormControl(!entity ? null : entity[question.name] || null);\r\n break;\r\n }\r\n });\r\n\r\n group[\"InvVoucherHeaderId\"] = new UntypedFormControl(!entity ? 0 : entity[\"InvVoucherHeaderId\"] || 0);\r\n group[\"State\"] = new UntypedFormControl(!entity ? RowState.New : entity[\"State\"] || RowState.NoChange);\r\n group[\"Id\"] = new UntypedFormControl(!entity ? 0 : entity[\"Id\"] || 0);\r\n group[\"RowVersion\"] = new UntypedFormControl(!entity ? \"\" : entity[\"RowVersion\"] || \"\");\r\n\r\n if (this.RowNumberName) group[this.RowNumberName] = new UntypedFormControl(!entity ? this.gridData.length + 1 : entity[this.RowNumberName] || 0);\r\n this.formGroup = new UntypedFormGroup(group);\r\n this.setChanges();\r\n }\r\n setColumnWith() {\r\n this.columns.forEach((x) => {\r\n if (\r\n x.textType === \"number\" &&\r\n x.withComma &&\r\n !x.name.toUpperCase().includes(\"NUMBER\") &&\r\n !x.name.toUpperCase().includes(\"CODE\") &&\r\n !x.name.toUpperCase().includes(\".ID\")\r\n )\r\n x.format = \"#,#.#####\";\r\n else x.format = \"\";\r\n if (!x.columnWidth || x.columnWidth < 50) {\r\n if (x.textType === \"text\") x.columnWidth = 200;\r\n else x.columnWidth = 50;\r\n }\r\n if (x.name === \"BranchTitle\") x.disabled = true;\r\n });\r\n }\r\n public addHandler() {\r\n this.closeEditor();\r\n this.isNew = true;\r\n if (!this.dataList) this.dataList = [];\r\n if (this.CurrentReferenceVoucherKind) {\r\n if (this.CurrentReferenceVoucherKind?.IsWarehouse === true)\r\n this.setelementByVoucherKindList(\"InvVoucherHeader/GetReferenceVoucherByVoucherKind\");\r\n else this.setelementByVoucherKindList(\"SellVoucherHeader/GetReferenceVoucherByVoucherKind\");\r\n }\r\n this.rowIsEditing = true;\r\n let _comment: string = \"\";\r\n if (this.headerTitleToDetailTitle) _comment = this.headerTitleToDetailTitle;\r\n const temp = {\r\n Id: -1,\r\n RowNumber:\r\n this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).length > 0\r\n ? this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).length + 1\r\n : 1,\r\n State: RowState.New,\r\n Comment: _comment,\r\n };\r\n this.dataList.push(temp);\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.editedRowIndex = this.gridData.length - 1;\r\n this.cd.markForCheck();\r\n this.setFormGroup(temp);\r\n if (this.grid) {\r\n this.grid.editRow(this.editedRowIndex, this.formGroup);\r\n }\r\n // const keyboardEvent = new KeyboardEvent('keydown', {\r\n // code: 'Tab',\r\n // key: 'Tab',\r\n // keyCode: 9,\r\n // view: window,\r\n // bubbles: true\r\n // });\r\n }\r\n setLastUnitPrice() {\r\n if (!this.isLoadingLastUnitPrice && this.CurrentVoucherKind.ShowLastUnitPrice == true && this.filterEntity.DetailLedgerId && this.formGroup) {\r\n let GoodsId = this.formGroup?.get(\"GoodsId\").value;\r\n let GoodsUnitRatio = this.formGroup?.get(\"GoodsUnitRatio\").value ?? 1;\r\n if (!GoodsId || this.formGroup?.get(\"UnitPrice\")?.value) return;\r\n this.isLoadingLastUnitPrice = true;\r\n this._httpCommonService\r\n .get(\r\n `InvVoucherHeader/GetPriceUnitChangeSetByGoodsId/${this.filterEntity.FiscalYearId}/${GoodsId}/${GoodsUnitRatio}/${this.filterEntity.DetailLedgerId}`\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.isLoadingLastUnitPrice = false;\r\n if (data) {\r\n this.formGroup?.get(\"UnitPrice\").setValue(data[\"LastUnitPrice\"]);\r\n }\r\n },\r\n (errore) => {\r\n this.isLoadingReferenceVoucherKind = false;\r\n this.isLoadingLastUnitPrice = false;\r\n }\r\n );\r\n }\r\n }\r\n isvalid(entity: InvVoucherDetail) {\r\n if (entity.Tax && entity.Tax < 0) {\r\n this.sts.showDialog(`مالیات نمی تواند منفی باشد.`, \"خطا\", DialogType.alert);\r\n return false;\r\n }\r\n if (entity.UnitPrice && entity.UnitPrice < 0) {\r\n this.sts.showDialog(`فی نمی تواند منفی باشد.`, \"خطا\", DialogType.alert);\r\n return false;\r\n }\r\n\r\n if (entity.Surplusage && entity.Surplusage < 0) {\r\n this.sts.showDialog(`اضافات نمی تواند منفی باشد.`, \"خطا\", DialogType.alert);\r\n return false;\r\n }\r\n if (entity.Deduction && entity.Deduction < 0) {\r\n this.sts.showDialog(`کسور نمی تواند منفی باشد.`, \"خطا\", DialogType.alert);\r\n return false;\r\n }\r\n return true;\r\n }\r\n hasdatForPaset() {\r\n return this.selectorService.getDataList(\"InvVoucherDetail\") !== undefined && (this.isAdd || this.isEdit);\r\n }\r\n copyHandler() {\r\n if (this.mySelection && this.mySelection.length > 0)\r\n this.selectorService.setDataList(\r\n \"InvVoucherDetail\",\r\n this.dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached && this.mySelection.some((s) => s === x.RowNumber))\r\n );\r\n else\r\n this.selectorService.setDataList(\r\n \"InvVoucherDetail\",\r\n this.dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached && x.RowNumber === this.editedRow.RowNumber)\r\n );\r\n }\r\n copyAll() {\r\n this.selectorService.setDataList(\r\n \"InvVoucherDetail\",\r\n this.dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached)\r\n );\r\n }\r\n pasetHandler() {\r\n this.cancelHandler();\r\n if (this.selectorService.getDataList(\"InvVoucherDetail\") !== undefined) {\r\n this.selectorService.getDataList(\"InvVoucherDetail\").forEach((element) => {\r\n const entity = Object.assign({}, element as InvVoucherDetail);\r\n entity.RowNumber = this.dataList.length + 1;\r\n entity.Id = 0;\r\n entity.ReferenceId = undefined;\r\n entity.BaseGoodsId = undefined;\r\n entity.SellReferenceId = undefined;\r\n entity.State = RowState.New;\r\n this.dataList.push(entity);\r\n });\r\n this.setRowNumber();\r\n this.selectorService.setDataList(\"InvVoucherDetail\", undefined);\r\n }\r\n }\r\n public cancelHandler() {\r\n this.closeEditor();\r\n }\r\n _setChanges(x: InvVoucherDetail) {\r\n if (x && this.valueIsChanging != true) {\r\n this.valueIsChanging = true;\r\n let Price: number = 0;\r\n let UnitPrice: number = 0;\r\n let DiscountAmount: number = 0;\r\n let Tax: number = 0;\r\n if (!x[\"MainAmount\"] || x[\"MainAmount\"] !== x[\"Amount\"] * (!x[\"GoodsUnitRatio\"] ? 1 : x[\"GoodsUnitRatio\"]))\r\n x[\"MainAmount\"] = x[\"Amount\"] * (!x[\"GoodsUnitRatio\"] ? 1 : x[\"GoodsUnitRatio\"]);\r\n if (this.isPriceable) {\r\n if (this.grid && this.grid.activeCell && this.getColumnIndex(this.grid.activeCell.colIndex) === \"Price\") {\r\n UnitPrice = x[\"Price\"] / x[\"Amount\"];\r\n if (x[\"UnitPrice\"] !== UnitPrice) {\r\n x[\"UnitPrice\"] = UnitPrice;\r\n this.formGroup?.controls[\"UnitPrice\"].setValue(UnitPrice);\r\n }\r\n }\r\n if (this.grid && this.grid.activeCell && this.getColumnIndex(this.grid.activeCell.colIndex) !== \"Price\") {\r\n Price = x[\"UnitPrice\"] * x[\"Amount\"];\r\n if (x[\"Price\"] !== Price) {\r\n x[\"Price\"] = Price;\r\n this.formGroup?.controls[\"Price\"].setValue(Price);\r\n }\r\n }\r\n }\r\n if (this.hasDiscount) {\r\n if (x[\"DiscountRate\"]) {\r\n DiscountAmount = (Price * x[\"DiscountRate\"]) / 100;\r\n if (x[\"DiscountAmount\"] !== DiscountAmount) {\r\n x[\"DiscountAmount\"] = DiscountAmount;\r\n this.formGroup?.controls[\"DiscountAmount\"].setValue(DiscountAmount);\r\n }\r\n }\r\n if (x[\"DiscountAmount\"]) {\r\n DiscountAmount = x[\"DiscountAmount\"];\r\n }\r\n if (DiscountAmount > 0 && this.grid?.activeRow?.dataItem) this.grid.activeRow.dataItem[\"DiscountAmount\"] = DiscountAmount;\r\n }\r\n if (this.hasTaxDuty && this.getHasTaxDuty && x[\"HasTaxDuty\"] && (x[\"TaxRate\"] !== undefined || this.getTaxRate > 0)) {\r\n let TotalPrice = Price - DiscountAmount + (x[\"Surplusage\"] ?? 0) - (x[\"Deduction\"] ?? 0);\r\n Tax = TotalPrice * (x[\"TaxRate\"] !== undefined && x[\"TaxRate\"] !== null ? x[\"TaxRate\"] / 100 : this.getTaxRate);\r\n if (x[\"Tax\"] !== Tax) {\r\n x[\"Tax\"] = Tax;\r\n this.formGroup?.controls[\"Tax\"].setValue(Tax);\r\n if (this.grid?.activeRow?.dataItem) this.grid.activeRow.dataItem[\"Tax\"] = Tax;\r\n }\r\n } else {\r\n x[\"Tax\"] = 0;\r\n this.formGroup?.controls[\"Tax\"].setValue(0);\r\n if (this.grid?.activeRow?.dataItem) this.grid.activeRow.dataItem[\"Tax\"] = 0;\r\n }\r\n\r\n if (this.isPriceable) {\r\n let TotalPrice = Price + Tax - DiscountAmount + (x[\"Surplusage\"] ?? 0) - (x[\"Deduction\"] ?? 0);\r\n this.formGroup?.controls[\"TotalPrice\"].setValue(TotalPrice);\r\n if (x[\"TotalPrice\"] !== TotalPrice) {\r\n x[\"TotalPrice\"] = TotalPrice;\r\n this.formGroup?.controls[\"TotalPrice\"].setValue(TotalPrice);\r\n if (this.grid?.activeRow?.dataItem) this.grid.activeRow.dataItem[\"TotalPrice\"] = TotalPrice;\r\n if (this.grid?.activeRow?.dataItem) this.grid.activeRow.dataItem[\"Price\"] = Price;\r\n }\r\n }\r\n if (x[\"Surplusage\"] > 0 && this.grid?.activeRow?.dataItem) {\r\n this.grid.activeRow.dataItem[\"Surplusage\"] = x[\"Surplusage\"];\r\n }\r\n if (x[\"Deduction\"] > 0 && this.grid?.activeRow?.dataItem) {\r\n this.grid.activeRow.dataItem[\"Deduction\"] = x[\"Deduction\"];\r\n }\r\n //this.formGroup?.updateValueAndValidity();\r\n //this.cd.markForCheck();\r\n this.valueIsChanging = false;\r\n this.valueChanges.emit(x);\r\n }\r\n }\r\n setChanges() {\r\n this.formGroup?.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n setTimeout(() => (this.valueIsChanging = false), 100);\r\n this._setChanges(x);\r\n });\r\n this.fitColumns();\r\n }\r\n public saveHandler(rowIndex): void {\r\n if (this.formGroup && this.formGroup?.valid && this.isvalid(this.formGroup?.value)) {\r\n var entity = this.formGroup?.value;\r\n this._setChanges(entity);\r\n if (entity.State === undefined || (entity.State === RowState.New && rowIndex === -1)) {\r\n entity.State = RowState.New;\r\n if (!this.gridData.some((x) => x.RowNumber === entity.RowNumber)) this.dataList.push(entity);\r\n } else if (rowIndex >= 0) {\r\n if (!entity.State) entity.State = this.dataList[rowIndex].State;\r\n\r\n if (entity.State != RowState.New) (entity as InvVoucherDetail).State = RowState.Modify;\r\n // if (entity.State === RowState.Modify && entity.Id === 0)\r\n // console.log(entity);\r\n\r\n if (entity.Id > 0 && this.dataList.some((x) => x.Id === entity.Id)) {\r\n this.dataList.forEach((m) => {\r\n if (m.Id === entity.Id) {\r\n Object.assign(m, entity);\r\n }\r\n });\r\n } else {\r\n this.dataList.forEach((m) => {\r\n if (m.RowNumber === entity.RowNumber && m.Id === entity.Id && m.State === entity.State) {\r\n if (entity.Id == -1) entity.Id = 0;\r\n Object.assign(m, entity);\r\n }\r\n });\r\n }\r\n }\r\n this.rowIsEditing = false;\r\n this.valueChanges.emit(entity);\r\n this.closeEditor();\r\n let filterddata = this.dataList?.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.cd.markForCheck();\r\n } else this.sts.showDialog(`اطلاعات وارده صحیح نیست.`, \"خطا\", DialogType.alert);\r\n this.cd.markForCheck();\r\n }\r\n deleteFormHelper(dataItem: any) {\r\n this.dataList.forEach((x) => {\r\n if ((dataItem.Id > 0 && x.Id === dataItem.Id) || x === dataItem) {\r\n if (x.State === RowState.New) x.State = RowState.Detached;\r\n else x.State = RowState.Delete;\r\n this.valueChanges.emit(x);\r\n }\r\n });\r\n this.setRowNumber();\r\n }\r\n setRowNumber() {\r\n let index: number = 0;\r\n this.gridData\r\n .filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached && x.Id != -1)\r\n .sort((a, b) => a.RowNumber - b.RowNumber)\r\n .forEach((x) => {\r\n index += 1;\r\n x.RowNumber = index;\r\n });\r\n this.valueChanges.emit(this.gridData[this.gridData.length - 1]);\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached && x.Id != -1);\r\n const data = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.gridData = [];\r\n this.gridData = data;\r\n }\r\n public removeHandler({ sender, dataItem }): void {\r\n this.sts.showDialog(`آیا از حذف اطلاعات اطمینان دارید؟`, \"حذف اطلاعات\", DialogType.confirm, () => this.deleteFormHelper(dataItem));\r\n sender.cancelCell();\r\n }\r\n\r\n private closeEditor() {\r\n this.editedRow = undefined;\r\n if (this.grid) this.grid.closeRow(this.editedRowIndex);\r\n this.rowIsEditing = false;\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n this.dataList = this.dataList ? this.dataList.filter((x) => x.Id >= 0) : this.dataList;\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached && x.Id >= 0);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.cd.markForCheck();\r\n }\r\n\r\n public saveCurrent(): void {\r\n if (this.formGroup) {\r\n this.saveHandler(this.editedRowIndex);\r\n }\r\n }\r\n\r\n hasMultiColumns(ColumnsName: string) {\r\n if (!ColumnsName) return false;\r\n var columns = ColumnsName.split(\",\");\r\n return columns.length > 1;\r\n }\r\n fillCollectionsKind(ReferenceVoucherKindId: number) {\r\n if (!this.isLoadingReferenceVoucherKind) {\r\n this.filterEntity.ReferencedVoucherKindId = ReferenceVoucherKindId;\r\n this.isLoadingReferenceVoucherKind = true;\r\n this._httpCommonService\r\n .getItem(\"InvVoucherKind\", ReferenceVoucherKindId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.isLoadingReferenceVoucherKind = false;\r\n this.CurrentReferenceVoucherKind = Object.assign({}, data as InvVoucherKind);\r\n if (this.CurrentReferenceVoucherKind)\r\n if (this.CurrentReferenceVoucherKind?.IsWarehouse === true)\r\n this.setelementByVoucherKindList(\"InvVoucherHeader/GetReferenceVoucherByVoucherKind\");\r\n else this.setelementByVoucherKindList(\"SellVoucherHeader/GetReferenceVoucherByVoucherKind\");\r\n if (\r\n this.CurrentReferenceVoucherKind?.IsWarehouse !== true &&\r\n this.columns?.find((x) => x.apiName === \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\")?.apiName\r\n )\r\n this.columns.find((x) => x.apiName === \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\").apiName =\r\n \"SellVoucherHeader/GetReferenceVoucherByVoucherKind\";\r\n }\r\n },\r\n (errore) => (this.isLoadingReferenceVoucherKind = false)\r\n );\r\n }\r\n }\r\n SetBOMAnalystic($event) {\r\n let filter: any = {\r\n SingleOrIngredients: this.CurrentVoucherKind.SingleOrIngredients,\r\n IncrementalKindCode: this.CurrentVoucherKind.IncrementalKindCode,\r\n ReferenceVoucherList: $event,\r\n VoucherDate: new Date(this.filterEntity.VoucherDate),\r\n };\r\n if (!this.isLoading) {\r\n this.isLoading = true;\r\n this.splashFormService.openDialog(\"\", \"در حال تبدیل آنالیز کالا\");\r\n this._httpCommonService\r\n .create(\"InvVoucherHeader/GetBOMAnalystic\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x: InvVoucherDetail[]) => {\r\n x.forEach((d) => {\r\n d.State = RowState.New;\r\n if (!this.dataList.some((s) => s.BaseGoodsId === d.BaseGoodsId && s.GoodsId == d.GoodsId)) this.dataList.push(Object.assign({}, d));\r\n });\r\n this.splashFormService.closeLoading();\r\n this.isLoading = false;\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.cd.markForCheck();\r\n this.forGoodsGroupBy.emit();\r\n this.cancelHandler();\r\n this.fitColumns();\r\n },\r\n (error) => (this.isLoading = false)\r\n );\r\n }\r\n }\r\n onRowsSelected($event, apiName: string, key: string) {\r\n let hasNewRecord: Boolean = false;\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n if (\r\n $event &&\r\n apiName !== \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\" &&\r\n apiName !== \"SellVoucherHeader/GetReferenceVoucherByVoucherKind\"\r\n ) {\r\n if ($event.length > 1) {\r\n $event.forEach((x) => {\r\n let entity = {};\r\n entity.RowNumber =\r\n this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached && x.Id >= 0).length > 0\r\n ? this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached && x.Id >= 0).length + 1\r\n : 1;\r\n entity[key] = x[\"Id\"];\r\n entity.GoodsTitle = x[\"Title\"];\r\n entity.GoodsCode = x[\"Code\"];\r\n entity.MainUnitId = x[\"UnitId\"];\r\n entity.GoodsMainUnitCode = x[\"UnitCode\"];\r\n entity.GoodsMainUnitTitle = x[\"UnitTitle\"];\r\n entity.PriceUnitId = x[\"DefaultUnitId\"];\r\n entity.GoodsUnitTitle = x[\"DefaultUnitTitle\"];\r\n entity.GoodsUnitId = x[\"DefaultUnitId\"];\r\n entity.GoodsKindCode = x[\"GoodsKindCode\"];\r\n entity.HasTaxDuty = x[\"HasTaxDuty\"];\r\n entity.State = RowState.New;\r\n entity.Id = 0;\r\n if (!this.dataList.some((f) => f[key] === x[\"Id\"] && f[\"State\"] !== RowState.Detached && f[\"State\"] !== RowState.Delete)) {\r\n this.dataList.push(entity);\r\n hasNewRecord = true;\r\n }\r\n });\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n }\r\n }\r\n if (\r\n $event &&\r\n (apiName === \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\" || apiName === \"SellVoucherHeader/GetReferenceVoucherByVoucherKind\")\r\n ) {\r\n if (this.CurrentVoucherKind.BasedOnBOM) {\r\n this.SetBOMAnalystic($event);\r\n this.cd.markForCheck();\r\n return;\r\n }\r\n if (this.ReferenceVoucherChange) this.ReferenceVoucherChange($event[0]);\r\n $event.forEach((element) => {\r\n if (element && !this.gridData.some((x) => x.ReferenceId === element.Id)) {\r\n let entity: InvVoucherDetail = {};\r\n entity.Id = 0;\r\n entity.State = RowState.New;\r\n entity.RowNumber =\r\n this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached && x.Id >= 0).length > 0\r\n ? this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached && x.Id >= 0).length + 1\r\n : 1;\r\n if (element.BaseRemainAmount) entity.BaseAmount = element.BaseRemainAmount;\r\n else entity.BaseAmount = element.RemainAmount;\r\n if (entity.BaseAmount <= 0 && element.RemainMainAmount > 0)\r\n entity.BaseAmount = element.RemainMainAmount /= element.GoodsUnitRatio <= 0 ? 1 : element.GoodsUnitRatio;\r\n entity.Amount = element.RemainAmount;\r\n\r\n if (element.PreRemainAmount !== null && element.PreRemainAmount !== undefined && element.PreRemainAmount !== 0)\r\n entity.PreRemainAmount = element.PreRemainAmount;\r\n else entity.PreRemainAmount = element.RemainAmount;\r\n entity.ExpiryDate = element.ExpiryDate;\r\n entity.RemainAmount = element.RemainAmount;\r\n entity.RemainMainAmount = element.RemainMainAmount;\r\n entity.PackageRatio = element.PackageRatio;\r\n\r\n entity.MainAmount = (element.GoodsUnitRatio <= 0 ? 1 : element.GoodsUnitRatio) * entity.Amount;\r\n entity.StandardMainAmount = entity.MainAmount;\r\n entity.Comment = element.Comment;\r\n\r\n entity.GoodsCode = element.GoodsCode;\r\n entity.GoodsId = element.GoodsId;\r\n entity.GoodsTitle = element.GoodsTitle;\r\n entity.GoodsUnitId = element.GoodsUnitId;\r\n entity.GoodsMainUnitTitle = element.MainUnitTitle;\r\n entity.GoodsUnitCode = element.GoodsUnitCode;\r\n entity.GoodsUnitTitle = element.GoodsUnitTitle;\r\n entity.GoodsUnitRatio = element.GoodsUnitRatio;\r\n entity.GoodsKindCode = element.GoodsKindCode;\r\n entity.GoodsKindTitle = element.GoodsKindTitle;\r\n entity.HasTaxDuty = element.HasTaxDuty;\r\n entity.TaxRate = element.TaxRate;\r\n entity.CostSubLedgerId = element.CostSubLedgerId;\r\n entity.CostSubLedgerCode = element.CostSubLedgerCode;\r\n entity.CostSubLedgerTitle = element.CostSubLedgerTitle;\r\n entity.CostSubLedgerLatinTitle = element.CostSubLedgerLatinTitle;\r\n\r\n entity.DetailLedgerId = element.DetailLedgerId;\r\n entity.DetailLedgerCode = element.DetailLedgerCode;\r\n entity.DetailLedgerTitle = element.DetailLedgerTitle;\r\n entity.DetailLedgerLatinTitle = element.DetailLedgerLatinTitle;\r\n entity.DetailLedger2Id = element.DetailLedger2Id;\r\n entity.DetailLedger2Code = element.DetailLedger2Code;\r\n entity.DetailLedger2Title = element.DetailLedger2Title;\r\n entity.DetailLedger2LatinTitle = element.DetailLedger2LatinTitle;\r\n entity.DetailLedger3Id = element.DetailLedger3Id;\r\n entity.DetailLedger3Code = element.DetailLedger3Code;\r\n entity.DetailLedger3Title = element.DetailLedger3Title;\r\n entity.DetailLedger3LatinTitle = element.DetailLedger3LatinTitle;\r\n entity.DetailLedger4Id = element.DetailLedger4Id;\r\n entity.DetailLedger4Code = element.DetailLedger4Code;\r\n entity.DetailLedger4Title = element.DetailLedger4Title;\r\n entity.DetailLedger4LatinTitle = element.DetailLedger4LatinTitle;\r\n entity.DetailLedger5Id = element.DetailLedger5Id;\r\n entity.DetailLedger5Code = element.DetailLedger5Code;\r\n entity.DetailLedger5Title = element.DetailLedger5Title;\r\n entity.DetailLedger5LatinTitle = element.DetailLedger5LatinTitle;\r\n\r\n entity.CostDetailLedgerId = element.CostDetailLedger1Id;\r\n entity.CostDetailLedgerCode = element.CostDetailLedgerCode;\r\n entity.CostDetailLedgerTitle = element.CostDetailLedgerTitle;\r\n entity.CostDetailLedger1LatinTitle = element.CostDetailLedgerLatinTitle;\r\n entity.CostDetailLedger2Id = element.CostDetailLedger2Id;\r\n entity.CostDetailLedger2Code = element.CostDetailLedger2Code;\r\n entity.CostDetailLedger2Title = element.CostDetailLedger2Title;\r\n entity.CostDetailLedger2LatinTitle = element.CostDetailLedger2LatinTitle;\r\n entity.CostDetailLedger3Id = element.CostDetailLedger3Id;\r\n entity.CostDetailLedger3Code = element.CostDetailLedger3Code;\r\n entity.CostDetailLedger3Title = element.CostDetailLedger3Title;\r\n entity.CostDetailLedger3LatinTitle = element.CostDetailLedger3LatinTitle;\r\n entity.CostDetailLedger4Id = element.CostDetailLedger4Id;\r\n entity.CostDetailLedger4Code = element.CostDetailLedger4Code;\r\n entity.CostDetailLedger4Title = element.CostDetailLedger4Title;\r\n entity.CostDetailLedger4LatinTitle = element.CostDetailLedger4LatinTitle;\r\n entity.CostDetailLedger5Id = element.CostDetailLedger5Id;\r\n entity.CostDetailLedger5Code = element.CostDetailLedger5Code;\r\n entity.CostDetailLedger5Title = element.CostDetailLedger5Title;\r\n entity.CostDetailLedger5LatinTitle = element.CostDetailLedger5LatinTitle;\r\n\r\n if (this.IsPurchaseInvoice || this.IsReturnPurchaseInvoice) {\r\n entity.DiscountAmount = element.DiscountAmount ?? 0;\r\n entity.DiscountRate = element.DiscountRate ?? 0;\r\n entity.Surplusage = element.Surplusage ?? 0;\r\n entity.Deduction = element.Deduction ?? 0;\r\n entity.Tax = element.Tax ?? 0;\r\n }\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n if (this.CurrentReferenceVoucherKind !== null) {\r\n if (this.CurrentReferenceVoucherKind && this.CurrentReferenceVoucherKind.IsWarehouse !== true) entity.SellReferenceId = element.Id;\r\n else entity.ReferenceId = element.Id;\r\n }\r\n\r\n entity.ReferenceCode = element.VoucherNo;\r\n\r\n entity.TeloranceAmount = element.TeloranceAmount;\r\n entity.TraceElement = element.TraceElement;\r\n if (\r\n this.CurrentReferenceVoucherKind !== null &&\r\n this.CurrentReferenceVoucherKind.IsWarehouse &&\r\n this.CurrentVoucherKind.IncrementalKindCode !== 2\r\n )\r\n entity.UnitPrice = element.UnitPrice ?? 0;\r\n if (!entity.UnitPrice) entity.UnitPrice = 0;\r\n entity.Price = element.Price;\r\n entity.Price = Math.round(entity.UnitPrice * entity.Amount);\r\n entity.PriceUnitId = element.PriceUnitId;\r\n entity.PriceUnitCode = element.PriceUnitCode;\r\n entity.PriceUnitTitle = element.PriceUnitTitle;\r\n entity.IsGoods = element.IsGoods;\r\n entity.TotalPrice =\r\n entity.Amount * (entity.UnitPrice ?? 0) +\r\n (entity.Tax ? entity.Tax : 0) -\r\n (entity.DiscountAmount ? entity.DiscountAmount : 0) +\r\n (entity.Surplusage ? entity.Surplusage : 0) -\r\n (entity.Deduction ? entity.Deduction : 0);\r\n if (\r\n !this.dataList.some(\r\n (f) =>\r\n (f.ReferenceId === element.Id || f.SellReferenceId === element.Id) && f.State !== RowState.Delete && f.State !== RowState.Detached\r\n )\r\n ) {\r\n this.dataList.push(entity);\r\n hasNewRecord = true;\r\n }\r\n }\r\n });\r\n if (this.dataList.length > 0) this.valueChanges.emit(this.dataList[this.dataList.length - 1]);\r\n let filterddata = this.dataList.filter((x) => x.Id >= 0 && x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.forGoodsGroupBy.emit();\r\n this.cd.markForCheck();\r\n }\r\n if (hasNewRecord) this.closeEditor();\r\n this.valueChanges.emit(this.dataList[0]);\r\n }\r\n\r\n setelementByVoucherKindList(apiName: string) {\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n\r\n if (!this.isLoading && !this.invReferenceVoucherLoded && this.filterEntity.VoucherDate) {\r\n this.isLoading = true;\r\n let model = Object.assign({}, this.filterEntity);\r\n if (this.CurrentVoucherKind?.HasWarehouseTransfer) {\r\n model.WarehouseTransferId = this.filterEntity.WarehouseId;\r\n model.WarehouseId = this.filterEntity.WarehouseTransferId;\r\n }\r\n this._httpCommonService\r\n .create(apiName, model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.isLoading = false;\r\n if (apiName === \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\" || \"SellVoucherHeader/GetReferenceVoucherByVoucherKind\") {\r\n this.selectorService.setDataList(\"ReferenceId\", x as []);\r\n if (x && (x as []).length > 0) this.invReferenceVoucherLoded = true;\r\n } else this.LookupData[apiName] = x;\r\n },\r\n (error) => (this.isLoading = false)\r\n );\r\n }\r\n }\r\n setDropdownlist(apiName: string, systemName: string, category: string) {\r\n if (\r\n (apiName === \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\" || apiName === \"SellVoucherHeader/GetReferenceVoucherByVoucherKind\") &&\r\n this.ReferenceVoucherKindId &&\r\n this.ReferenceVoucherKindId > 0\r\n ) {\r\n this.setelementByVoucherKindList(apiName);\r\n }\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n\r\n if (apiName === \"Goods/ReadGoodsUnitLookUp\") return;\r\n if (systemName && category && !this.loadingData) {\r\n this.lookupservice\r\n .getLookupbyCategory(systemName, category)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.LookupData[apiName] = x;\r\n });\r\n } else\r\n this._httpCommonService\r\n .getList(apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.LookupData[apiName] = x;\r\n });\r\n }\r\n getItemDisplayById(apiName: string, systemName: string, id: number, displayMember, valueMember: string, dataItem: any, columnName: string) {\r\n if (!id) return \"\";\r\n if (apiName === \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\" || apiName === \"SellVoucherHeader/GetReferenceVoucherByVoucherKind\") {\r\n if (dataItem[\"ReferenceCode\"]) return dataItem[\"ReferenceCode\"];\r\n else return \"\";\r\n }\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n\r\n if (apiName.includes(\"Goods\") && dataItem[`Goods${displayMember}`]) return dataItem[`Goods${displayMember}`];\r\n else return dataItem[`${columnName.replace(\"Id\", displayMember)}`];\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.selectorService.setDataList(\"InvVoucherDetail\", undefined);\r\n this.selectorService.setDataList(\"ReferenceId\", undefined);\r\n //window.removeEventListener('keydown', this.cArrowDown.bind(this), false);\r\n this.saveGridColumnInfo();\r\n this.LookupData = undefined;\r\n this.DefaultValues = undefined;\r\n this.isLoadingData = undefined;\r\n this.grid = undefined;\r\n this.currentLookup = undefined;\r\n this.mySelection = undefined;\r\n this.columns = undefined;\r\n this._filterEntity = undefined;\r\n this.CurrentVoucherKind = undefined;\r\n this.formGroup = undefined;\r\n this._dataList = undefined;\r\n this.gridData = undefined;\r\n this.CurrentReferenceVoucherKind = undefined;\r\n this.editedRow = undefined;\r\n }\r\n setValue(key: string, value: any) {\r\n if (!this.formGroup?.controls[key]) this.formGroup?.addControl(key, new UntypedFormControl(value));\r\n else this.formGroup?.controls[key].setValue(value);\r\n }\r\n setGoods(event: any) {\r\n this.setValue(\"GoodsTitle\", event.Title);\r\n this.setValue(\"GoodsCode\", event.Code);\r\n this.setValue(\"MainUnitId\", event.UnitId);\r\n this.setValue(\"GoodsMainUnitCode\", event.UnitCode);\r\n this.setValue(\"GoodsMainUnitTitle\", event.UnitTitle);\r\n this.setValue(\"PriceUnitId\", event.DefaultUnitId);\r\n this.setValue(\"GoodsUnitId\", event.DefaultUnitId);\r\n this.setValue(\"GoodsUnitTitle\", event.DefaultUnitTitle);\r\n this.setValue(\"GoodsKindCode\", event.GoodsKindCode);\r\n this.setValue(\"HasTaxDuty\", event.HasTaxDuty);\r\n this.setValue(\"TaxRate\", event.TaxRate);\r\n if (event.DetailLedgerId) {\r\n this.setValue(\"GoodsDetailLedgerId\", event.DetailLedgerId);\r\n this.setValue(\"GoodsDetailLedgerCode\", event.DetailLedgerCode);\r\n this.setValue(\"GoodsDetailLedgerTitle\", event.DetailLedgerTitle);\r\n }\r\n if (\r\n event.CostSubLedgerId &&\r\n (this.CurrentVoucherKind.FormOperationKindCode === FormOperationKind.IsPurchaseService ||\r\n this.CurrentVoucherKind.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher)\r\n ) {\r\n this.setValue(\"CostSubLedgerId\", event.CostSubLedgerId);\r\n this.setValue(\"CostSubLedgerCode\", event.CostSubLedgerCode);\r\n this.setValue(\"CostSubLedgerTitle\", event.CostSubLedgerTitle);\r\n }\r\n if (event.GoodsGroupDetailLedgerId) {\r\n this.setValue(\"GoodsGroupDetailLedgerId\", event.GoodsGroupDetailLedgerId);\r\n this.setValue(\"GoodsGroupDetailLedgerCode\", event.GoodsGroupDetailLedgerCode);\r\n this.setValue(\"GoodsGroupDetailLedgerTitle\", event.GoodsGroupDetailLedgerTitle);\r\n }\r\n this.rowChanges.emit(this.formGroup?.value);\r\n setTimeout(() => {\r\n if (this.grid?.activeRow?.dataItem) {\r\n this.grid.activeRow.dataItem[\"GoodsTitle\"] = event.Title;\r\n this.grid.activeRow.dataItem[\"GoodsUnitTitle\"] = this.formGroup?.get(\"GoodsUnitTitle\")?.value ?? event.DefaultUnitTitle;\r\n }\r\n this.formGroup?.updateValueAndValidity();\r\n this.cd.markForCheck();\r\n }, 300);\r\n }\r\n removeGoods() {\r\n this.setValue(\"GoodsId\", undefined);\r\n this.setValue(\"GoodsTitle\", undefined);\r\n this.setValue(\"GoodsCode\", undefined);\r\n this.setValue(\"MainUnitId\", undefined);\r\n this.setValue(\"GoodsMainUnitCode\", undefined);\r\n this.setValue(\"GoodsMainUnitTitle\", undefined);\r\n this.setValue(\"PriceUnitId\", undefined);\r\n this.setValue(\"GoodsUnitId\", undefined);\r\n this.setValue(\"GoodsUnitTitle\", undefined);\r\n this.setValue(\"GoodsKindCode\", undefined);\r\n this.setValue(\"HasTaxDuty\", undefined);\r\n this.setValue(\"TaxRate\", undefined);\r\n this.rowChanges.emit(this.formGroup?.value);\r\n setTimeout(() => {\r\n if (this.grid?.activeRow?.dataItem) this.grid.activeRow.dataItem[\"GoodsTitle\"] = undefined;\r\n this.formGroup?.updateValueAndValidity();\r\n this.cd.markForCheck();\r\n }, 300);\r\n }\r\n selectionChange(event: any, apiName: string, columnName: string) {\r\n this.currentLookup = event;\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n\r\n if (apiName === \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\" || apiName === \"SellVoucherHeader/GetReferenceVoucherByVoucherKind\") {\r\n if (event && (!this.CurrentVoucherKind.BasedOnBOM || !this.dataList.some((s) => s.BaseGoodsId === event.GoodsId)))\r\n this.onRowsSelected([event], apiName, \"\");\r\n return;\r\n }\r\n this.valueChanges.emit(event);\r\n if (event && event.DefaultUnitId) {\r\n if (this.formGroup) {\r\n if (this.isNew) {\r\n if (this.dataList.some((s) => s.GoodsId === event.Id && s.State !== RowState.Delete && s.State !== RowState.Detached)) {\r\n this.sts.showDialog(\r\n \"این کالا قبلا انتخاب شده تکراری است. آیا تایید می کنید.\",\r\n \"حذف اطلاعات\",\r\n DialogType.confirm,\r\n () => {\r\n this.setGoods(event);\r\n },\r\n () => {\r\n this.removeGoods();\r\n }\r\n );\r\n } else this.setGoods(event);\r\n } else this.setGoods(event);\r\n }\r\n this.setGoodUnitList(event);\r\n this.setLastUnitPrice();\r\n }\r\n if (event && event.UnitId && this.formGroup && event.GoodsId && event.Ratio) {\r\n this.setValue(\"GoodsUnitTitle\", event.UnitTitle);\r\n this.setValue(\"GoodsMainUnitTitle\", event.UnitTitle);\r\n this.setValue(\"GoodsUnitCode\", event.UnitCode);\r\n this.setValue(\"PriceUnitId\", event.UnitId);\r\n this.setValue(\"GoodsUnitRatio\", !event.Ratio ? 1 : event.Ratio);\r\n\r\n this.setLastUnitPrice();\r\n } else if (event.Code) {\r\n this.setValue(`${columnName.replace(\"Id\", \"Title\")}`, event.Title);\r\n this.setValue(`${columnName.replace(\"Id\", \"Code\")}`, event.Code);\r\n }\r\n }\r\n setGoodUnitList(goods: Goods) {\r\n this._httpCommonService\r\n .getList(\"Goods/ReadGoodsUnitLookUp/\" + goods.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x: any[]) => {\r\n //x.push({ GoodsId: null, Ratio: null, UnitId: null, UnitTitle: 'تهی کردن اطلاعات', UnitCode: null });\r\n if (x.length === 0 && !x.some((u) => u.UnitId === goods.DefaultUnitId))\r\n x.push({\r\n GoodsId: goods.Id,\r\n Ratio: 1,\r\n UnitId: goods.DefaultUnitId,\r\n UnitTitle: goods.DefaultUnitTitle,\r\n UnitCode: goods.DefaultUnitCode,\r\n });\r\n if (!x.some((u) => u.UnitId === goods.UnitId))\r\n x.push({ GoodsId: goods.Id, Ratio: 1, UnitId: goods.UnitId, UnitTitle: goods.UnitTitle, UnitCode: goods.UnitCode });\r\n if (this.formGroup) {\r\n let du = x.find((d) => d.UnitId === (this.formGroup?.get(\"GoodsUnitId\")?.value ?? goods.DefaultUnitId));\r\n if (du) {\r\n this.setValue(\"GoodsUnitRatio\", !du.Ratio ? 1 : du.Ratio);\r\n } else {\r\n this.setValue(\"GoodsUnitRatio\", 1);\r\n }\r\n }\r\n this.LookupData[\"Goods/ReadGoodsUnitLookUp\"] = x;\r\n },\r\n (error) => {}\r\n );\r\n }\r\n getDateValue(date: Date) {\r\n let m: Moment = moment(date.toString()).locale(\"fa\");\r\n return m.format(\"YYYY/MM/DD\");\r\n }\r\n getFilters(columnsName: string, searchValue: string, skip: number, take: number) {\r\n var filters: GridFilter[] = [];\r\n const columns = columnsName.split(\",\");\r\n if (isNullOrEmptyString(searchValue)) return filters;\r\n columns.forEach((x) => {\r\n {\r\n if (x !== \"Id\")\r\n filters.push({ Filed: x, Operator: \"contains\", Type: \"F\", Skip: skip, Take: take, Value: searchValue.toString(), Logic: \"or\" });\r\n else if (isNumber(searchValue))\r\n filters.push({ Filed: x, Operator: \"eq\", Type: \"F\", Skip: skip, Take: take, Value: Number(searchValue), Logic: \"or\" });\r\n }\r\n });\r\n return filters;\r\n }\r\n onDataStateChange(columnName: string, searchValue: string, skip: number, take: number): Observable> {\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n\r\n var abs = new BehaviorSubject>(null);\r\n const GoodsGroupIds: number[] = [];\r\n let apiName: string = \"Goods/GoodsByGoodsGroupIds\";\r\n const filter = this.getFilters(\"Id,Code,Title,Unit.Title,GoodsKind.Title\", searchValue, skip, take);\r\n if (this.CurrentVoucherKind.FormOperationKindCode === FormOperationKind.IsPurchaseService) {\r\n filter.push({ Filed: \"IsGoods\", Operator: \"eq\", Value: false, Type: \"F\", Skip: skip, Take: take, Logic: \"and\" });\r\n }\r\n if (this.CurrentVoucherKind.VoucherKindGoodss && this.CurrentVoucherKind.VoucherKindGoodss.length > 0) {\r\n this.CurrentVoucherKind.VoucherKindGoodss.forEach((x) => GoodsGroupIds.push(x.GoodsGroupId));\r\n }\r\n if (!filter.some((x) => x.Filed === \"WarehouseId\"))\r\n filter.push({ Filed: \"WarehouseId\", Operator: \"eq\", Value: this.CurrentWarehouseId, Type: \"F\", Skip: skip, Take: take, Logic: \"and\" });\r\n if (GoodsGroupIds && GoodsGroupIds.length > 0)\r\n filter.push({ Filed: \"GoodsGroupIds\", Operator: \"eq\", Value: GoodsGroupIds, Type: \"F\", Skip: skip, Take: take, Logic: \"and\" });\r\n if (!this.isLoadingData[apiName]) {\r\n this.isLoadingData[apiName] = true;\r\n if (filter.length <= 0) filter.push({ Filed: \"Code\", Type: \"S\", Skip: skip, Take: take, Value: \"0\", Operator: \"asc\" });\r\n this._httpCommonService\r\n .GetFilterGrid>(apiName, filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x: PagingDataResult) => {\r\n if (x) abs.next(x);\r\n this.isLoadingData[apiName] = false;\r\n },\r\n (error) => (this.isLoadingData[apiName] = false)\r\n );\r\n }\r\n return abs.asObservable();\r\n }\r\n setColumnInfo(columnInfos: GridColumnInfoDetail[]) {\r\n if (!this.grid)\r\n setTimeout(() => {\r\n this.setColumnInfo(columnInfos);\r\n }, 50);\r\n\r\n if (this.grid?.columns) {\r\n if (this.grid.columns.length <= 1) {\r\n setTimeout(() => this.setColumnInfo(columnInfos), 200);\r\n }\r\n }\r\n if (this.grid?.columns) {\r\n this.grid.columns.forEach((x: ColumnComponent) => {\r\n const column = columnInfos.find((c) => c.name === (x.field ?? x.title));\r\n if (column) {\r\n x.leafIndex = column.leaftindex;\r\n x.orderIndex = column.orderindex;\r\n x.minResizableWidth = column.minResizableWidth;\r\n x.width = column.width;\r\n x.hidden = column.hidden;\r\n }\r\n });\r\n }\r\n this.isFirstLoad = true;\r\n this.cd.detectChanges();\r\n setTimeout(() => {\r\n const firstCol: ScrollRequest = {};\r\n firstCol.column = 0;\r\n if (this.grid && firstCol) this.grid?.scrollTo(firstCol);\r\n }, 110);\r\n }\r\n setDefaultColumnInfo() {\r\n this.grid?.columns?.forEach((x: ColumnComponent) => {\r\n if (x.title === \"عملیات\") {\r\n x.width = 70;\r\n x.minResizableWidth = 60;\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n if (!x.title && !x.field) {\r\n x.width = x.width;\r\n x.minResizableWidth = x.minResizableWidth;\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n const column = this.columns.find((c) => c.name === (x.field ?? x.title));\r\n if (column) {\r\n x.width = column.columnWidth;\r\n x.minResizableWidth = x.minResizableWidth;\r\n x.hidden = !column.listVisible;\r\n\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n });\r\n this.cd.markForCheck();\r\n }\r\n async saveGridColumnInfo() {\r\n const list: GridColumnInfoDetail[] = [];\r\n if (this.grid && this.grid.columns) {\r\n this.grid.columns.forEach((x: ColumnComponent) => {\r\n if (x) {\r\n const column = new GridColumnInfoDetail();\r\n column.leaftindex = x.leafIndex;\r\n column.orderindex = x.orderIndex;\r\n column.hidden = x.hidden;\r\n column.name = x.field ?? x.title;\r\n column.width = x.width;\r\n column.minResizableWidth = x.minResizableWidth;\r\n column.title = x.title;\r\n list.push(column);\r\n }\r\n });\r\n if (!this._GridColumnInfo) this._GridColumnInfo = new GridColumnInfo();\r\n this._GridColumnInfo.Key = this.CurrentVoucherKind?.Id ? `InvVoucherDetail_${this.CurrentVoucherKind?.Id}` : \"InvVoucherDetail\";\r\n this._GridColumnInfo.ColumnInfo = JSON.stringify(list);\r\n this._GridColumnInfo.CreatedUserId = this.accountService.authService.currentUser.Id;\r\n if (this.state.group && this.state.group.length > 0) this._GridColumnInfo.Group = JSON.stringify(this.state.group);\r\n else this._GridColumnInfo.Group = undefined;\r\n await this._httpCommonService.updateItem(\"MisSetUp/UpdateGridColumnInfo\", this._GridColumnInfo).pipe(takeUntil(this.ngUnsubscribe)).toPromise();\r\n }\r\n }\r\n async fitColumns() {\r\n if (!this.isFirstLoad) {\r\n if (this._GridColumnInfo) {\r\n let columnInfos: GridColumnInfoDetail[] = JSON.parse(this._GridColumnInfo.ColumnInfo);\r\n this.setColumnInfo(columnInfos);\r\n } else {\r\n const x = await this._httpCommonService\r\n .get(\r\n \"MisSetUp/GetGridColumnInfo/?key=\" +\r\n (this.CurrentVoucherKind?.Id ? `InvVoucherDetail_${this.CurrentVoucherKind.Id}` : \"InvVoucherDetail\") +\r\n `&CreatedUserId=${this.accountService.authService.currentUser.Id}`\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise();\r\n if (x) {\r\n this._GridColumnInfo = x as GridColumnInfo;\r\n this.setColumnInfo(JSON.parse(x[\"ColumnInfo\"]));\r\n if (this._GridColumnInfo.Group) {\r\n this.state.group = JSON.parse(x[\"Group\"]);\r\n }\r\n } else this.setDefaultColumnInfo();\r\n\r\n this.isFirstLoad = true;\r\n }\r\n }\r\n setTimeout(\r\n () => {\r\n this.cd.detectChanges();\r\n this.cd.markForCheck();\r\n },\r\n this.isFirstLoad ? 500 : 200\r\n );\r\n\r\n this.cd.markForCheck();\r\n }\r\n public cellCloseHandler(args: any) {\r\n const { formGroup, dataItem } = args;\r\n if (!formGroup.valid) {\r\n return;\r\n } else if (formGroup.dirty) {\r\n this.saveCurrent();\r\n } else this.closeEditor();\r\n }\r\n public editHandler({ sender, rowIndex, dataItem }) {\r\n this.rowIsEditing = true;\r\n this.editedRow = undefined;\r\n if (this.editedRowIndex !== undefined && this.editedRowIndex >= 0 && this.editedRowIndex !== rowIndex)\r\n this.cellCloseHandler({ formGroup: this.formGroup, dataItem: dataItem });\r\n if (!this.rowIsEditing) return;\r\n if (dataItem) this.valueChanges.emit(dataItem);\r\n if (!this.isAdd && !this.isEdit) {\r\n this.valueChanges.emit(dataItem);\r\n return;\r\n }\r\n this.setFormGroup(dataItem);\r\n this.editedRowIndex = rowIndex;\r\n this.valueChanges.emit(dataItem);\r\n sender.editRow(rowIndex, this.formGroup);\r\n if (this.grid) this.grid.focus();\r\n this.cd.markForCheck();\r\n if (this.formGroup) this.formGroup?.updateValueAndValidity();\r\n if (this.formGroup?.value?.GoodsId > 0) this.setGoodsUnitLookUp();\r\n }\r\n setGoodsUnitLookUp() {\r\n this._httpCommonService\r\n .getItem(\"Goods\", this.formGroup?.value?.GoodsId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.setGoodUnitList(x as Goods);\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n public doubleclic(args: any) {\r\n this.editedRow = undefined;\r\n if (this.editedRowIndex !== undefined && this.editedRowIndex >= 0 && this.editedRowIndex !== this.grid.activeRow.index - 1)\r\n this.cellCloseHandler({ formGroup: this.formGroup, dataItem: this.grid.activeRow.dataItem });\r\n this.editHandler({ sender: this.grid, rowIndex: this.grid.activeRow.index - 1, dataItem: this.grid.activeRow.dataItem });\r\n }\r\n\r\n onKeyup($event) {\r\n if ($event.key === \"Escape\") {\r\n this.cd.markForCheck();\r\n this.formGroup?.updateValueAndValidity();\r\n if (!(this.formGroup && (this.formGroup?.touched || this.formGroup?.dirty))) this.cancelHandler();\r\n }\r\n }\r\n sortChange(sort: SortDescriptor[]) {\r\n this.state.sort = sort;\r\n this.gridData = orderBy(this.gridData, sort);\r\n }\r\n editSubledgerDetailLedger() {\r\n this.dialogService\r\n .open(\r\n InvSubledgerDetailLedgerFormComponent,\r\n {\r\n label: \"اصلاح معین و تفصیلی\",\r\n currentrow: this.editedRow,\r\n Columns: this.columns,\r\n CurrentVoucherKind: this.CurrentVoucherKind,\r\n detailLedgerLevel: this.detailLedgerLevel,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (model) => {\r\n if (model) {\r\n if (model.Id > 0 && this.dataList.some((x) => x.Id === model.Id)) {\r\n this.dataList.forEach((m) => {\r\n if (m.Id === model.Id) {\r\n if (m !== model) model.State = RowState.Modify;\r\n Object.assign(m, model);\r\n // if (model.State === RowState.Modify && model.Id === 0)\r\n // console.log(model);\r\n }\r\n });\r\n } else {\r\n this.dataList.forEach((m) => {\r\n if (m.RowNumber === model.RowNumber && m.Id === model.Id && m.State === model.State) {\r\n if (model.Id == -1) model.Id = 0;\r\n if (m !== model) m.State = RowState.Modify;\r\n Object.assign(m, model);\r\n // if (model.State === RowState.Modify && model.Id === 0)\r\n // console.log(model);\r\n }\r\n });\r\n }\r\n this.valueChanges.emit(model);\r\n this.closeEditor();\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n filterChanges(event: CompositeFilterDescriptor) {\r\n event.filters.map((it) => {\r\n if (it[\"field\"] == \"GoodsId\") {\r\n it[\"field\"] = \"GoodsCode\";\r\n }\r\n });\r\n this.state.filter = event;\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n filterddata = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.gridData = process(filterddata, { filter: this.state.filter, sort: this.state.sort }).data;\r\n event.filters.map((it) => {\r\n if (it[\"field\"] == \"GoodsCode\") {\r\n it[\"field\"] = \"GoodsId\";\r\n }\r\n });\r\n }\r\n\r\n hasAggregate(columnName: string) {\r\n return this.aggregatesColumnName !== undefined && this.aggregatesColumnName.includes(columnName);\r\n }\r\n\r\n getColumnAggregates(columnName: string) {\r\n if (this.gridData.length > 0) return this.gridData.reduce((s, b) => s + b[columnName], 0);\r\n\r\n return undefined;\r\n }\r\n\r\n private clickTimeout: any;\r\n private isDoubleClick: boolean = false;\r\n onCellClick(event: any): void {\r\n if (this.clickTimeout) {\r\n this.isDoubleClick = true;\r\n clearTimeout(this.clickTimeout);\r\n this.clickTimeout = null;\r\n\r\n this.handleDoubleClick(event);\r\n } else {\r\n this.isDoubleClick = false;\r\n\r\n this.clickTimeout = setTimeout(() => {\r\n if (!this.isDoubleClick) {\r\n this.handleSingleClick(event);\r\n }\r\n this.clickTimeout = null;\r\n }, 300);\r\n }\r\n }\r\n\r\n handleSingleClick(event): void {\r\n if (this.editedRowIndex >= 0) return;\r\n let dataItem = this.grid.activeRow.dataItem;\r\n let mouseEvent = event.originalEvent;\r\n if (mouseEvent.ctrlKey && !mouseEvent.altKey) {\r\n if (dataItem.Id >= 0) {\r\n let index = this.mySelection.findIndex((it) => it == dataItem.RowNumber);\r\n if (index > -1) this.mySelection.splice(index, 1);\r\n else this.mySelection.push(dataItem.RowNumber);\r\n }\r\n this.cd.detectChanges();\r\n mouseEvent.stopImmediatePropagation();\r\n }\r\n }\r\n\r\n handleDoubleClick(event: any): void {\r\n if (this.editedRowIndex >= 0) return;\r\n\r\n if (event.column?.editable == false) return;\r\n if (event.column?.field == \"GoodsId\") return;\r\n\r\n try {\r\n const dataItem = this.grid.activeRow?.dataItem;\r\n this.valueChanges.emit(dataItem);\r\n this.setFormGroup(dataItem);\r\n this.grid.editCell(this.grid.activeRow.dataRowIndex, this.grid.activeCell.colIndex, this.formGroup);\r\n\r\n this.cd.detectChanges();\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n }\r\n\r\n saveCell(event) {\r\n if (event.column?.editable == false) return;\r\n if (event.column?.field == \"GoodsId\") return;\r\n try {\r\n this.editedRow = this.formGroup.value;\r\n\r\n this.valueChanges.emit(this.editedRow);\r\n this.saveCurrent();\r\n this.cd.detectChanges();\r\n this.editedRowIndex = -1;\r\n } catch (error) {\r\n this.editedRowIndex = -1;\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{\r\n getItemDisplayById(\r\n column.apiName,\r\n column.systemName,\r\n dataItem[column.name],\r\n column.displayMember,\r\n column.valueMember,\r\n dataItem,\r\n column.name\r\n )\r\n }}\r\n \r\n \r\n {{ getDateValue(dataItem[column.name]) }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ column.label }} الزامی است\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n جمع \r\n {{ getColumnAggregates(column.name) | number }} \r\n \r\n \r\n \r\n \r\n {{ value }}\r\n \r\n \r\n \r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostListener, Type, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormControl, Validators } from \"@angular/forms\";\r\nimport { ReportKindInfo } from \"projects/sepidz-web-framework-data-grid/src/lib/report-kind\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { DetailLedger, form_control, SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { IncrementalKind, InvStatusKind, RowState, SystemKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter, isNullOrUndefined, isNumber, LookupService, PagingDataResult, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherFormComponent } from \"src/app/backoffice/acc/accvoucher/accvoucher-form/accvoucher-form.component\";\r\nimport { SellVoucherDetail } from \"src/app/backoffice/sell/models/sell-voucher-detail.model\";\r\nimport { SellVoucherHeader } from \"src/app/backoffice/sell/models/sell-voucher-header.model\";\r\nimport { FormOperationKind } from \"../../models/form-operation-kind.enums\";\r\nimport { GoodsFormulaDetail } from \"../../models/goods-formula-detail.model\";\r\nimport { Goods } from \"../../models/goods.model\";\r\nimport { InvVoucherDetail } from \"../../models/inv-voucher-detail.model\";\r\nimport { InvVoucherGoodsSimilarRelation } from \"../../models/inv-voucher-goods-similar-relation.model\";\r\nimport { InvVoucherHeader } from \"../../models/inv-voucher-header.model\";\r\nimport { InvVoucherKind, ReferenceVoucherKind } from \"../../models/inv-voucher-kind.model\";\r\nimport { ReferenceVoucherByVoucherKindFilterInfo } from \"../../models/reference-voucher-byvoucher-kind-filter-info.model\";\r\nimport { StockInfo } from \"../../models/stock-info.model\";\r\nimport { InvVoucherModalListComponent } from \"../inv-voucher-modal-list/inv-voucher-modal-list.component\";\r\nimport { InvVoucherDetailComponent } from \"../invvoucher-detail/invvoucher-detail.component\";\r\n@Component({\r\n selector: \"ngx-invvoucher-form\",\r\n templateUrl: \"./invvoucher-form.component.html\",\r\n styleUrls: [\"./invvoucher-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvVoucherFormComponent extends BaseFormComponent {\r\n @ViewChild(\"detail\") public detail: InvVoucherDetailComponent;\r\n inputEditorform: Type;\r\n CreatedVoucherKindReferencedTo: boolean = false;\r\n isCreatingAccVoucher: boolean = false;\r\n isDeleteCreatingAccVoucher: boolean = false;\r\n isLoadingReferenceVoucherKind: boolean = false;\r\n currentVoucherKind: InvVoucherKind;\r\n StockInfoColumns: form_control[];\r\n DiscountColumns: form_control[];\r\n InvVoucherDetailColumns: form_control[];\r\n rightSideColumns: form_control[];\r\n bodyColumns: form_control[];\r\n subLedgerColumns: form_control[];\r\n leftSideColumns: form_control[];\r\n stockList: StockInfo[] = [];\r\n stockListLoaded: BehaviorSubject;\r\n filterdDataList: StockInfo[] = [];\r\n InvBalanceColumnswidth: number = 100;\r\n goodsFormulaDetailList: GoodsFormulaDetail[];\r\n ReportGoodsFormulaDetailList: GoodsFormulaDetail[];\r\n ReferenceToVoucherKinds: InvVoucherKind[];\r\n CurrentReferenceToVoucherKindId: number;\r\n CurrentGoodsList: Goods[];\r\n OrignalDetail: InvVoucherDetail[];\r\n isValidating: boolean = false;\r\n isOkForLoad: boolean = false;\r\n hasPriceRefresh: boolean = false;\r\n isNewVoucher: boolean = false;\r\n erroremessage: string;\r\n isloading: boolean = false;\r\n goodsError: boolean = false;\r\n maxCodeLoading: boolean = false;\r\n voucherConfirmDisable: boolean = false;\r\n confirmLabel: string;\r\n accVoucherCaption: string;\r\n currentReport: string;\r\n reportList: SaveReportFile[];\r\n reportKinds = ReportKindInfo.reportKinds;\r\n isFristReplaceGoodsSimilar: boolean = true;\r\n isRefreshingData: boolean = false;\r\n footerColumns: form_control[];\r\n transportColumns: form_control[];\r\n filterLookUp: any[] = [{ key: \"Quarantine\", value: false }];\r\n isNonValidEdit: boolean = true;\r\n @HostListener(\"window:keydown\", [\"$event\"])\r\n cs(e: KeyboardEvent) {\r\n if (document.hidden) return;\r\n if (e.ctrlKey && e.shiftKey && !e.altKey && (e.key.toUpperCase() === \"P\" || e.key === \"ح\" || e.key === \"\\\\\")) {\r\n e.preventDefault();\r\n this.currentReport = \"preview\";\r\n this.changeReport(\"preview\");\r\n }\r\n if (e.ctrlKey && e.altKey && !e.shiftKey && (e.key.toUpperCase() === \"P\" || e.key === \"ح\")) {\r\n e.preventDefault();\r\n this.currentReport = \"editReport\";\r\n this.changeReport(\"editReport\");\r\n }\r\n if (e.ctrlKey && !e.altKey && !e.shiftKey && (e.key.toUpperCase() === \"P\" || e.key === \"ح\")) {\r\n e.preventDefault();\r\n this.currentReport = \"print\";\r\n this.changeReport(\"print\");\r\n }\r\n if (e.ctrlKey && (e.key.toUpperCase() === \"N\" || e.key === \"د\")) {\r\n e.preventDefault();\r\n this.newVoucher();\r\n }\r\n if (e.ctrlKey && (e.key.toUpperCase() === \"D\" || e.key === \"ی\" || e.key === \"ی\")) {\r\n e.preventDefault();\r\n this.deleteVoucher();\r\n }\r\n if (e.ctrlKey && e.shiftKey && (e.key.toUpperCase() === \"S\" || e.key === \"س\")) {\r\n e.preventDefault();\r\n this.voucherConfirm();\r\n }\r\n if (e.ctrlKey && (e.key.toUpperCase() === \"R\" || e.key === \"ق\")) {\r\n e.preventDefault();\r\n this.ngOnInit().then();\r\n }\r\n }\r\n constructor(\r\n private lookupservice: LookupService,\r\n private splashFormService: SplashFormService,\r\n private missetup: MisSetupService,\r\n protected selectorService: SelectorService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected cd: ChangeDetectorRef,\r\n private datatransfer: Datatransfer,\r\n _VoucherKindInfo: VoucherKindInfo\r\n ) {\r\n super(selectorService, cd);\r\n this.NoMaxCode = true;\r\n\r\n this._id = __id;\r\n this.currentrow = this.datatransfer?.currentrow;\r\n if (this.datatransfer?.apiName) this.apiName = this.datatransfer?.apiName.split(\"/\")[0];\r\n if (this.datatransfer?.areaName) this.areaName = this.datatransfer?.areaName;\r\n this.VoucherKind = _VoucherKindInfo;\r\n this.tabsservice = _tabsservice;\r\n this.currentFiscalYear;\r\n this.onDataStateChange = this.onDataStateChange.bind(this);\r\n this.onReferenceVoucherChange = this.onReferenceVoucherChange.bind(this);\r\n this.stockListLoaded = new BehaviorSubject(false);\r\n }\r\n get headerTitleToDetailTitle(): string {\r\n return this.formGroup?.controls[\"Comment\"].value;\r\n }\r\n get detailLedgerLevel(): number {\r\n const lvl = this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n return lvl;\r\n }\r\n get filterEntity() {\r\n let entity: ReferenceVoucherByVoucherKindFilterInfo = {};\r\n entity.FiscalYearId = this.currentFiscalYear.Id;\r\n entity.DetailLedgerId = this.formGroup?.controls[\"DetailLedgerId\"] ? this.formGroup?.controls[\"DetailLedgerId\"].value : null;\r\n entity.WarehouseId = this.formGroup?.controls[\"WarehouseId\"] ? this.formGroup?.controls[\"WarehouseId\"].value : null;\r\n entity.ReferencedVoucherKindId = this.formGroup?.controls[\"ReferenceVoucherKindId\"]\r\n ? this.formGroup?.controls[\"ReferenceVoucherKindId\"].value\r\n : null;\r\n entity.VoucherDate = this.formGroup?.controls[\"VoucherDate\"] ? this.formGroup?.controls[\"VoucherDate\"].value : null;\r\n entity.VoucherKindId = this.formGroup?.controls[\"VoucherKindId\"] ? this.formGroup?.controls[\"VoucherKindId\"].value : null;\r\n entity.WarehouseTransferId = this.formGroup?.controls[\"WarehouseTransferId\"] ? this.formGroup?.controls[\"WarehouseTransferId\"].value : null;\r\n return entity;\r\n }\r\n get ReferenceVoucherKindId() {\r\n if (this.formGroup && this.formGroup?.controls[\"ReferenceVoucherKindId\"]) return this.formGroup?.controls[\"ReferenceVoucherKindId\"].value;\r\n return undefined;\r\n }\r\n get IsPurchaseInvoice() {\r\n return this.currentVoucherKind !== undefined && this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseInvoice;\r\n }\r\n get IsReturnPurchaseInvoice() {\r\n return this.currentVoucherKind !== undefined && this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.IsReturnPurchaseInvoice;\r\n }\r\n\r\n get hasReference() {\r\n return (\r\n this.currentVoucherKind !== undefined &&\r\n this.currentVoucherKind?.ReferenceVoucherKinds !== undefined &&\r\n this.currentVoucherKind?.ReferenceVoucherKinds.length > 0\r\n );\r\n }\r\n get hasReferenceRequired() {\r\n return (\r\n this.currentVoucherKind !== undefined &&\r\n this.currentVoucherKind?.ReferenceVoucherKinds !== undefined &&\r\n this.currentVoucherKind?.ReferenceVoucherKindIsRequired\r\n );\r\n }\r\n get currentFiscalYear() {\r\n return this.accountService?.authService?.currentFiscalYear;\r\n }\r\n get hasTaxDuty() {\r\n return this.currentVoucherKind && this.currentVoucherKind?.HasTaxDuty;\r\n }\r\n get hasDiscount() {\r\n return this.currentVoucherKind && this.currentVoucherKind?.HasDiscount;\r\n }\r\n get Priceable() {\r\n return this.currentVoucherKind && this.currentVoucherKind?.Priceable;\r\n }\r\n get ShowStockAmount() {\r\n this.InvBalanceColumnswidth = 65 + (!this.HasTransportInterface ? 15 : 0) + (!this.Priceable ? 15 : 0);\r\n return this.currentVoucherKind && this.currentVoucherKind?.ShowStockAmount;\r\n }\r\n get getGridHeight() {\r\n return this.Priceable === true || this.HasTransportInterface === true || this.ShowStockAmount == true ? 35 : 60;\r\n }\r\n setlocalColumns() {\r\n var col = this.orignalColumns?.filter((f) => f.formVisible && f.areaName === \"Footer\");\r\n this.footerColumns = col.sort((a, b) => a.order - b.order);\r\n var col = this.orignalColumns?.filter((f) => f.formVisible && (f.areaName === \"Transport\" || f.areaName === \"Discount\"));\r\n this.transportColumns = col.sort((a, b) => a.order - b.order);\r\n\r\n var col = this.orignalColumns?.filter((f) => f.formVisible && f.areaName === \"Discount\");\r\n this.DiscountColumns = col.sort((a, b) => a.order - b.order);\r\n }\r\n get HasJournalVoucher() {\r\n return this.currentVoucherKind?.HasJournalVoucher;\r\n }\r\n get HasTransportInterface() {\r\n return this.currentVoucherKind && this.currentVoucherKind?.HasTransportInterface;\r\n }\r\n setReferenceVoucherColumn() {\r\n this.httpCommonService\r\n .get(\"InvVoucherHeader/GetReferenceVoucherInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: form_control[]) => {\r\n this.selectorService.setColumns(\"ReferenceId\", data);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n async ngOnInit() {\r\n this.isNewVoucher = false;\r\n if (this.currentrow && this.currentrow[\"VoucherHeaderId\"]) this.currentrow.Id = this.currentrow[\"VoucherHeaderId\"];\r\n\r\n if (this.detail !== undefined)\r\n setTimeout(() => {\r\n this.detail.setColumns();\r\n }, 100);\r\n this.filterdDataList = [];\r\n this.apiName = \"InvVoucherHeader\";\r\n this.areaName = \"Inventory\";\r\n if (this.currentrow && (this.currentrow as InvVoucherHeader).VoucherKindTitle) {\r\n this.label = (this.currentrow as InvVoucherHeader).VoucherKindTitle + `(${(this.currentrow as InvVoucherHeader).VoucherNo})`;\r\n this.tabsservice.setTabTitle(this._id.metadata.id, this.getFormTitle());\r\n this.model.ReferenceVoucherKindCode = this.currentrow.ReferenceVoucherKindCode;\r\n }\r\n if (this.ShowStockAmount) this.setStockInfoColumns();\r\n\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.pathPreFix = `INV`;\r\n this.reportName = \"InventoryDocument\";\r\n this.setCurrentVoucherKind();\r\n await super.ngOnInit();\r\n this.loadReports();\r\n this.selectorService.submitted$.next(false);\r\n this.setReferenceVoucherColumn();\r\n this.GetGoodsFormulaDetail();\r\n }\r\n setStatusKind() {\r\n if (!this.model.StatusKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"INV\", \"StatusKind\", InvStatusKind.Registered)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", this.model.StatusKindId);\r\n this.setValue(\"StatusKindCode\", this.model.StatusKindCode);\r\n this.setValue(\"StatusKindTitle\", this.model.StatusKindTitle);\r\n }\r\n });\r\n }\r\n }\r\n setConfirmStatusKind() {\r\n this.lookupservice\r\n .getLookupbyCode(\"INV\", \"StatusKind\", InvStatusKind.Confirmed)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", this.model.StatusKindId);\r\n this.setValue(\"StatusKindCode\", this.model.StatusKindCode);\r\n this.setValue(\"StatusKindTitle\", this.model.StatusKindTitle);\r\n }\r\n });\r\n }\r\n setdefault() {\r\n if (this.model?.InvVoucherDetailList?.length > 0) this.OrignalDetail = Object.assign([], this.model.InvVoucherDetailList);\r\n if (this.model?.IsTakingOfInventory === undefined)\r\n this.model.IsTakingOfInventory = this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.IsTakingOfInventory;\r\n\r\n if (!this.model.SystemKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"GNR\", \"SystemKind\", SystemKind.INV)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.SystemKindId = x.Id;\r\n this.setValue(\"SystemKindId\", x.Id);\r\n });\r\n }\r\n if (this.model.VoucherKindId) {\r\n this.VoucherKind = new VoucherKindInfo();\r\n this.VoucherKind.VoucherKindId = this.model.VoucherKindId;\r\n this.setCurrentVoucherKind();\r\n }\r\n if (!this.model.Invoicecredit) this.model.Invoicecredit = 0;\r\n if (!this.model.VoucherDate && this.currentVoucherKind && this.currentVoucherKind?.ToDayDate) {\r\n this.model.VoucherDate = new Date();\r\n this.setValue(\"VoucherDate\", this.model.VoucherDate);\r\n }\r\n if (!this.model.InvVoucherDetailList) this.model.InvVoucherDetailList = [];\r\n\r\n if (!this.model.FiscalYearId && this.currentFiscalYear) {\r\n this.model.FiscalYearId = this.currentFiscalYear.Id;\r\n this.model.Year = this.currentFiscalYear.Year;\r\n } else if (!this.model.FiscalYearId) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n this.model.Year = x.Year;\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"Year\", x.Year);\r\n }\r\n });\r\n }\r\n if (!this.model.StatusKindId) {\r\n this.setStatusKind();\r\n this.confirmLabel = \"تایید سند\";\r\n }\r\n if (this.model.StatusKindCode >= InvStatusKind.Confirmed) this.confirmLabel = \"برگشت از تایید\";\r\n else this.confirmLabel = \"تایید\";\r\n\r\n if (!this.model.VoucherKindId && this.currentVoucherKind) {\r\n this.model.VoucherKindId = this.currentVoucherKind?.Id;\r\n this.model.VoucherKindCode = this.currentVoucherKind?.Code;\r\n this.model.VoucherKindTitle = this.currentVoucherKind?.Title;\r\n } else if (!this.model.VoucherKindId && this.VoucherKind.VoucherKindId) {\r\n this.model.VoucherKindId = this.VoucherKind.VoucherKindId;\r\n }\r\n if (!this.model.BranchId) {\r\n this.model.BranchId = this.accountService.authService.currentBranchId;\r\n }\r\n if (!this.model.SlaveNo) this.model.SlaveNo = 0;\r\n if (!this.model.SumDeduction) this.model.SumDeduction = 0;\r\n if (!this.model.SumPrice) this.model.SumPrice = 0;\r\n if (!this.model.SumSurplusage) this.model.SumSurplusage = 0;\r\n if (!this.model.TotalPrice) this.model.TotalPrice = 0;\r\n if (!this.model.TotalDeduction) this.model.TotalDeduction = 0;\r\n if (!this.model.TotalSurplusage) this.model.TotalSurplusage = 0;\r\n if (!this.model.DiscountAmount) this.model.DiscountAmount = 0;\r\n if (!this.model.Tax) this.model.Tax = 0;\r\n if (!this.model.TotalDeduction) this.model.TotalDeduction = 0;\r\n if (!this.model.TransportPrice) this.model.TransportPrice = 0;\r\n if (!this.model.TransportTax) this.model.TransportTax = 0;\r\n if (this.model.StatusKindCode === InvStatusKind.AccountRegistered) this.accVoucherCaption = \"حذف سند حسابداری\";\r\n else this.accVoucherCaption = \"سند حسابداری\";\r\n this.setDefaultValues();\r\n if (this.model?.InvVoucherDetailList?.length <= 0 && this.OrignalDetail?.length > 0) this.model.InvVoucherDetailList = this.OrignalDetail;\r\n if (this.detail && this.model && this.model?.InvVoucherDetailList && this.model?.InvVoucherDetailList?.length > 0) {\r\n this.model.InvVoucherDetailList.forEach((x) => (x.State = RowState.NoChange));\r\n this.detail.dataList = this.model.InvVoucherDetailList;\r\n this.detail.cd.markForCheck();\r\n console.log(this.detail.dataList);\r\n this.cd.markForCheck();\r\n\r\n this.detail.cd.markForCheck();\r\n if (!this.isNewRow && this.detail.dataList.some((x) => x.Id == 0)) {\r\n setTimeout(async () => {\r\n await this.ngOnInit();\r\n }, 50);\r\n //console.log(this.detail.dataList);\r\n }\r\n }\r\n if (this.detail && !this.isNewRow) this.detail.cancelHandler();\r\n\r\n if (!this.isNewRow && this.model?.VoucherKindId > 0) {\r\n try {\r\n this.setReferenceToVoucherKind().then();\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n setTimeout(() => {\r\n this.setAllUnTouched();\r\n // if (this.detail.dataList.some((x) => x.Id == 0)) {\r\n //console.log(this.detail.dataList);\r\n // }\r\n }, 200);\r\n }\r\n\r\n setMaxCode() {\r\n if (!this.isNewRow || this.maxCodeLoading) return;\r\n\r\n this.maxCodeLoading = true;\r\n if (this.currentFiscalYear) {\r\n var fiscalYearId = this.currentFiscalYear.Id;\r\n this.httpCommonService\r\n .getMaxCodeWithParameter(this.apiName, this.VoucherKind.VoucherKindId, fiscalYearId, this.model.WarehouseId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (!this.model) this.model = {};\r\n if (data && data[\"VoucherNumber\"]) {\r\n this.model[\"VoucherNo\"] = data[\"VoucherNumber\"] as number;\r\n if (this.formGroup?.get(\"VoucherDate\")?.value && this.formGroup?.get(\"VoucherDate\")?.value !== this.model[\"VoucherDate\"])\r\n this.model[\"VoucherDate\"] = this.formGroup?.get(\"VoucherDate\")?.value;\r\n\r\n if (this.currentVoucherKind && this.currentVoucherKind?.ToDayDate && !this.formGroup?.get(\"VoucherDate\")?.value) {\r\n this.model[\"VoucherDate\"] = new Date();\r\n } else if (!this.model[\"VoucherDate\"] && !this.formGroup?.get(\"VoucherDate\")?.value)\r\n this.model[\"VoucherDate\"] = data[\"VoucherDate\"] as Date;\r\n if (this.currentVoucherKind.Code >= 1001 && this.currentVoucherKind.Code <= 1005) {\r\n const branch = this.accountService.authService.currentBranch;\r\n this.model.WarehouseId = branch.InvWarehouseId;\r\n }\r\n if (!this.formGroup) {\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n } else {\r\n this.setValue(\"VoucherNo\", data[\"VoucherNumber\"] as number);\r\n this.setValue(\"VoucherDate\", this.model[\"VoucherDate\"]);\r\n }\r\n }\r\n this.maxCodeLoading = false;\r\n },\r\n (error) => (this.maxCodeLoading = false)\r\n );\r\n } else {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n var fiscalYearId = x.Id;\r\n this.httpCommonService\r\n .getMaxCodeWithParameter(this.apiName, this.VoucherKind.VoucherKindId, fiscalYearId, this.model.WarehouseId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data && data[\"VoucherNumber\"]) {\r\n this.model[\"VoucherNo\"] = data[\"VoucherNumber\"] as number;\r\n if (this.currentVoucherKind && this.currentVoucherKind?.ToDayDate) this.model[\"VoucherDate\"] = new Date();\r\n else this.model[\"VoucherDate\"] = data[\"VoucherDate\"] as Date;\r\n if (!this.formGroup) {\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n } else {\r\n this.setValue(\"VoucherNo\", data[\"VoucherNumber\"] as number);\r\n this.setValue(\"VoucherDate\", data[\"VoucherDate\"] as Date);\r\n }\r\n }\r\n this.maxCodeLoading = false;\r\n },\r\n (error) => (this.maxCodeLoading = false)\r\n );\r\n }\r\n });\r\n }\r\n }\r\n onChange($event) {\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Warehouse\") && $event.KeyName === \"WarehouseId\") {\r\n if (this.model.WarehouseCode !== $event.data.Code) this.setMaxCode();\r\n this.model.WarehouseCode = $event.data.Code;\r\n this.model.WarehouseTitle = $event.data.Title;\r\n }\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Warehouse\") && $event.KeyName === \"WarehouseTransferId\") {\r\n this.model.WarehouseTransferCode = $event.data.Code;\r\n this.model.WarehouseTransferTitle = $event.data.Title;\r\n }\r\n\r\n this.isValid();\r\n }\r\n\r\n async setCurrentVoucherKind() {\r\n if (this.currentVoucherKind?.IncrementalKindCode > 0 && !this.VoucherKind?.VoucherKindId) return;\r\n await this.httpCommonService\r\n .getItem(\"InvVoucherKind\", this.VoucherKind?.VoucherKindId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n try {\r\n if (data) {\r\n this.setValue(\"VoucherKindId\", this.VoucherKind?.VoucherKindId);\r\n this.currentVoucherKind = Object.assign({}, data as InvVoucherKind);\r\n this.model.IsTakingOfInventory = this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.IsTakingOfInventory;\r\n this.model.Invoicecredit = this.currentVoucherKind?.Invoicecredit;\r\n this.setValue(\"Invoicecredit\", this.model?.Invoicecredit);\r\n this.setValue(\"IsTakingOfInventory\", this.model?.IsTakingOfInventory);\r\n this.model.VoucherKindId = this.currentVoucherKind?.Id;\r\n this.model.VoucherKindCode = this.currentVoucherKind?.Code;\r\n this.model.IncrementalKindCode = this.currentVoucherKind?.IncrementalKindCode;\r\n this.model.SendToInvDailyVoucher = this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.SendToInvDailyVoucher;\r\n this.setValue(\"IncrementalKindCode\", this.model?.IncrementalKindCode);\r\n if (data.HasOpositeParty) this.selectorService.setDataStateChange(\"DetailLedgerId\", this.onDataStateChange);\r\n\r\n if (this._id && this.model?.VoucherNo) {\r\n this.label = data.Title + `(${this.model?.VoucherNo})`;\r\n this.tabsservice.setTabTitle(this._id.metadata.id, this.getFormTitle());\r\n }\r\n this.setValue(\"VoucherKindCode\", this.currentVoucherKind?.Code);\r\n if (this.ShowStockAmount) this.setStockInfoColumns();\r\n if (this.hasReference) this.setReferenceVoucherColumns();\r\n this.setMaxCode();\r\n this.setColumnAttribute();\r\n this.addControl();\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n isNoValidForEdit(): boolean {\r\n let StatusKindCode: number = InvStatusKind.Confirmed;\r\n let EditStatusKindCode: number = InvStatusKind.AccountRegistered;\r\n this.isNonValidEdit = this.model?.StatusKindCode == EditStatusKindCode;\r\n return (!this.isNewRow && this.model && this.model?.StatusKindCode >= StatusKindCode) || this.model?.HasReferencedVoucherTo;\r\n }\r\n setColumnAttribute() {\r\n try {\r\n this.setlocalColumns();\r\n this.orignalColumns?.forEach((x) => {\r\n if (x.name === \"WarehouseTransferId\") {\r\n if (this.currentVoucherKind && this.currentVoucherKind?.HasWarehouseTransfer) {\r\n x.formVisible = this.currentVoucherKind?.HasWarehouseTransfer;\r\n x.disabled = !this.currentVoucherKind?.HasWarehouseTransfer;\r\n if (this.currentVoucherKind?.HasWarehouseTransfer) x.required = this.currentVoucherKind?.HasWarehouseTransfer;\r\n if (this.currentVoucherKind?.OpositePartyWarehouseCaption) x.label = this.currentVoucherKind?.OpositePartyWarehouseCaption;\r\n if (x.required === true) {\r\n this.formGroup.controls[x.name].clearValidators();\r\n this.formGroup.controls[x.name].setValidators(Validators.required);\r\n }\r\n } else {\r\n x.formVisible = this.currentVoucherKind?.HasWarehouseTransfer;\r\n x.disabled = true;\r\n x.required = false;\r\n }\r\n }\r\n\r\n if (x.name === \"DestinationBranchId\") {\r\n x.formVisible = this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.SendToInvDailyVoucher;\r\n x.required = this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.SendToInvDailyVoucher;\r\n if (x.required === true) {\r\n this.formGroup.controls[x.name].clearValidators();\r\n this.formGroup.controls[x.name].setValidators(Validators.required);\r\n }\r\n }\r\n if (x.name === \"VoucherDate\") {\r\n if (this.currentVoucherKind) {\r\n x.disabled = this.currentVoucherKind?.HasCheckVoucherDate;\r\n if (this.formGroup && this.formGroup?.get(x.name)) {\r\n if (x.disabled) this.formGroup?.get(x.name).disable();\r\n else this.formGroup?.get(x.name).enable();\r\n this.formGroup?.get(x.name).updateValueAndValidity();\r\n }\r\n }\r\n }\r\n if (x.name === \"WarehouseId\") {\r\n if (this.currentVoucherKind) {\r\n if (this.currentVoucherKind?.Code >= 1001 && this.currentVoucherKind?.Code <= 1005) {\r\n const branch = this.accountService.authService.currentBranch;\r\n this.model.WarehouseId = branch.InvWarehouseId;\r\n this.setValue(\"WarehouseId\", branch.InvWarehouseId);\r\n }\r\n x.formVisible = this.currentVoucherKind?.ShowWarehouse;\r\n x.disabled =\r\n !this.currentVoucherKind?.ShowWarehouse ||\r\n this.currentVoucherKind?.NoChangeRefereWarehouseDetailLedger === true ||\r\n (this.currentVoucherKind.Code >= 1001 && this.currentVoucherKind.Code <= 1005);\r\n x.required = this.currentVoucherKind?.ShowWarehouse || this.currentVoucherKind?.IncrementalKindCode <= IncrementalKind.Decrement;\r\n if (this.currentVoucherKind?.WarehouseCaption) x.label = this.currentVoucherKind?.WarehouseCaption;\r\n if (x.required === true) {\r\n this.formGroup.controls[x.name].clearValidators();\r\n this.formGroup.controls[x.name].setValidators(Validators.required);\r\n }\r\n } else {\r\n x.formVisible = this.currentVoucherKind?.ShowWarehouse ?? false;\r\n x.disabled = true;\r\n x.required = false;\r\n }\r\n }\r\n if (x.name === \"SubLedgerId\") {\r\n if (this.currentVoucherKind) {\r\n x.formVisible = this.currentVoucherKind?.HasSubledger;\r\n x.disabled = !this.currentVoucherKind?.HasSubledger;\r\n } else {\r\n x.formVisible = this.currentVoucherKind?.HasSubledger ?? false;\r\n x.disabled = true;\r\n }\r\n }\r\n if (x.name === \"DetailLedgerId\") {\r\n if (this.currentVoucherKind) {\r\n x.formVisible = this.currentVoucherKind?.HasOpositeParty;\r\n x.disabled = !this.currentVoucherKind?.HasOpositeParty || this.currentVoucherKind?.NoChangeRefereWarehouseDetailLedger === true;\r\n if (this.currentVoucherKind?.HasOpositeParty) x.label = this.currentVoucherKind?.OpositePartyCaption;\r\n if (this.currentVoucherKind?.HasOpositeParty) x.order = 1;\r\n x.required = !this.currentVoucherKind?.HasOpositeParty;\r\n if (x.required === true) {\r\n this.formGroup.controls[x.name].clearValidators();\r\n this.formGroup.controls[x.name].setValidators(Validators.required);\r\n }\r\n } else {\r\n x.formVisible = this.currentVoucherKind?.HasOpositeParty ?? false;\r\n x.disabled = true;\r\n x.required = false;\r\n }\r\n }\r\n if (x.name === \"ReceiptDate\" || x.name === \"ReceiptDays\") {\r\n if (this.currentVoucherKind) {\r\n x.formVisible = this.currentVoucherKind?.HasReceiptDate;\r\n x.disabled = !this.currentVoucherKind?.HasReceiptDate;\r\n } else {\r\n x.formVisible = this.currentVoucherKind?.HasReceiptDate ?? false;\r\n x.disabled = true;\r\n }\r\n }\r\n if (x.name === \"Invoicecredit\") {\r\n if (this.currentVoucherKind) {\r\n x.formVisible = this.currentVoucherKind?.HasCredit;\r\n x.disabled = !this.currentVoucherKind?.HasCredit;\r\n } else {\r\n x.formVisible = this.currentVoucherKind?.HasReceiptDate ?? false;\r\n x.disabled = true;\r\n }\r\n }\r\n if (x.name === \"TransportInterfaceSubLedgerId\" || x.name === \"TransportInterfaceDetailLedgerId\") {\r\n if (this.currentVoucherKind) {\r\n x.formVisible = this.currentVoucherKind?.HasTransportInterface;\r\n x.disabled = !this.currentVoucherKind?.HasTransportInterface;\r\n } else {\r\n x.formVisible = this.currentVoucherKind?.HasTransportInterface ?? false;\r\n x.disabled = true;\r\n x.required = false;\r\n }\r\n }\r\n\r\n if (x.name === \"ReferenceVoucherKindId\") {\r\n if (this.hasReference) {\r\n x.formVisible = this.hasReference;\r\n x.disabled = !this.hasReference;\r\n if (this.hasReference) x.required = this.hasReferenceRequired;\r\n if (x.required === true) {\r\n this.formGroup.controls[x.name].clearValidators();\r\n this.formGroup.controls[x.name].setValidators(Validators.required);\r\n }\r\n if (this.hasReference) {\r\n this.setReferenceVoucherKind();\r\n this.setReferenceToVoucherKind();\r\n if (!this.model.ReferenceVoucherKindId) {\r\n let vk = this.currentVoucherKind?.ReferenceVoucherKinds.find((vk) => vk.IsDefault);\r\n if (vk) {\r\n this.model.ReferenceVoucherKindId = vk.ReferenceVoucherKindId;\r\n this.setValue(\"ReferenceVoucherKindId\", vk.ReferenceVoucherKindId);\r\n }\r\n }\r\n }\r\n } else {\r\n x.formVisible = this.hasReference;\r\n x.disabled = true;\r\n x.required = false;\r\n }\r\n }\r\n if (x.name === \"SlaveNo\") {\r\n if (this.currentVoucherKind) {\r\n x.formVisible = this.currentVoucherKind?.HasSlaveNo;\r\n x.disabled = !this.currentVoucherKind?.HasSlaveNo;\r\n if (this.currentVoucherKind?.SlaveNoCaption) x.label = this.currentVoucherKind?.SlaveNoCaption;\r\n } else {\r\n x.formVisible = this.currentVoucherKind?.HasSlaveNo ?? false;\r\n x.disabled = true;\r\n }\r\n }\r\n });\r\n if (this.formGroup?.controls[\"StatusKindCode\"].value === InvStatusKind.Registered && !this.isNoValidForEdit()) {\r\n this.voucherConfirmDisable = true;\r\n this.cd.markForCheck();\r\n }\r\n if (this.isNoValidForEdit()) {\r\n this.orignalColumns?.forEach((x) => {\r\n if (\r\n (!x.name.includes(\"DetailLedger2\") &&\r\n !x.name.includes(\"DetailLedger3\") &&\r\n !x.name.includes(\"SubLedger\") &&\r\n !x.name.includes(\"DetailLedger4\") &&\r\n !x.name.includes(\"DetailLedger5\")) ||\r\n this.model.StatusKindCode === InvStatusKind.AccountRegistered\r\n )\r\n x.disabled = true;\r\n else x.disabled = false;\r\n if (this.formGroup && this.formGroup?.get(x.name)) {\r\n if (x.disabled) this.formGroup?.get(x.name).disable();\r\n else this.formGroup?.get(x.name).enable();\r\n this.formGroup?.get(x.name).updateValueAndValidity();\r\n }\r\n });\r\n } else {\r\n this.orignalColumns?.forEach((x) => {\r\n if (this.formGroup && this.formGroup?.get(x.name)) {\r\n if (x.disabled) this.formGroup?.get(x.name).disable();\r\n else this.formGroup?.get(x.name).enable();\r\n this.formGroup?.get(x.name).updateValueAndValidity();\r\n }\r\n });\r\n }\r\n if (this.formGroup) this.formGroup?.updateValueAndValidity();\r\n if (this.currentVoucherKind) {\r\n this.label = this.currentVoucherKind?.Title + `(${this.model.VoucherNo})`;\r\n if (this._id) this.tabsservice.setTabTitle(this._id.metadata.id, this.getFormTitle());\r\n }\r\n if (this.formGroup) this.formGroup?.updateValueAndValidity();\r\n this.cd.markForCheck();\r\n this.InvVoucherDetailColumns = this.getDetailControlModels(\"InvVoucherDetailList\");\r\n if (this.model?.StatusKindCode == InvStatusKind.AccountRegistered) {\r\n this.InvVoucherDetailColumns.forEach((element) => {\r\n element.disabled = true;\r\n });\r\n } else {\r\n if (this.model?.StatusKindCode >= InvStatusKind.Confirmed || this.model?.StatusKindCode >= InvStatusKind.Calculated) {\r\n this.InvVoucherDetailColumns.forEach((element) => {\r\n if (element.name != \"DetailLedgerId\" && element.name != \"DetailLedger2Id\" && element.name != \"DetailLedger3Id\") element.disabled = true;\r\n });\r\n }\r\n }\r\n this.columns = this.orignalColumns?.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.cd.markForCheck();\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n this.columns.forEach((x) => {\r\n x.isFloat = null;\r\n x.userClass = null;\r\n x.columnNumber = null;\r\n if (x.name === \"Comment\") x.userClass = \"inv-desc\";\r\n });\r\n this.cd.markForCheck();\r\n }\r\n setReferenceVoucherKind() {\r\n if (this.isLoadingReferenceVoucherKind === true) return;\r\n this.isLoadingReferenceVoucherKind = true;\r\n this.httpCommonService\r\n .get(\"InvVoucherKind/ReadLookUp\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.isLoadingReferenceVoucherKind = false;\r\n let vk = (data as InvVoucherKind[]).filter((x) =>\r\n this.currentVoucherKind?.ReferenceVoucherKinds.some((vk) => vk.ReferenceVoucherKindId === x.Id)\r\n );\r\n this.selectorService.setDataList(\"ReferenceVoucherKindId\", vk);\r\n },\r\n (error) => {\r\n this.isLoadingReferenceVoucherKind = false;\r\n this.getFailedHelper(error);\r\n }\r\n );\r\n }\r\n async changeReferenceToVoucherKind(id: number) {\r\n let vk = this.ReferenceToVoucherKinds.find((x) => x.Id === id);\r\n if (!vk) return;\r\n let rvk: ReferenceVoucherKind = { InvVoucherKindId: vk.Id };\r\n if (!this.model.HasReferencedVoucherTo && vk) await this.CreateVoucherKindReferencedTo(rvk);\r\n else this.erroremessage = \"برای این سند قبلا معطوف صادر شده است.\";\r\n }\r\n async setReferenceToVoucherKind() {\r\n await this.httpCommonService\r\n .get(\"InvVoucherKind/GetReferenceVoucherKind/?id=\" + this.currentVoucherKind?.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: InvVoucherKind[]) => {\r\n if (data && data.length > 0) {\r\n this.ReferenceToVoucherKinds = data;\r\n this.CurrentReferenceToVoucherKindId = data[0].Id;\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n\r\n setDefaultValues() {\r\n this.orignalColumns?.forEach((x) => {\r\n if (x.controlType === FormControlTypes.checkbox && this.model[x.name] === undefined) this.model[x.name] = false;\r\n if (x.name === \"VoucherDate\") x.disabled = this.currentVoucherKind && this.currentVoucherKind?.HasCheckVoucherDate;\r\n });\r\n }\r\n addControl() {\r\n this.selectorService.setIsFloat(\"TotalDiscount\", true);\r\n this.isOkForLoad = false;\r\n if (this.formGroup) this.setSummery();\r\n if (this.currentVoucherKind?.HasSubledger && this.currentVoucherKind?.DefaultSubLedgerId && !this.model?.SubLedgerId)\r\n this.setValue(\"SubLedgerId\", this.currentVoucherKind?.DefaultSubLedgerId);\r\n if (this.currentVoucherKind?.ShowWarehouse && this.currentVoucherKind?.DefaultWarehouseId && !this.model?.WarehouseId)\r\n this.setValue(\"WarehouseId\", this.currentVoucherKind?.DefaultWarehouseId);\r\n if (this.currentVoucherKind !== undefined) this.isOkForLoad = true;\r\n if (this.formGroup?.controls[\"VoucherDate\"])\r\n this.formGroup?.controls[\"VoucherDate\"].valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => this.isValid());\r\n this.hasPriceRefresh =\r\n this.currentVoucherKind &&\r\n this.currentVoucherKind?.HasPriceRefresh &&\r\n (this.isNewRow || this.model.StatusKindCode == InvStatusKind.Registered) &&\r\n !this.missetup.getboolean(\"INV\", \"CostBasedPricing\");\r\n this.isFristReplaceGoodsSimilar =\r\n this.isNewRow && this.currentVoucherKind && this.currentVoucherKind?.IncrementalKindCode === IncrementalKind.Decrement;\r\n this.cd.markForCheck();\r\n this.formGroup?.controls[\"TransportInterfaceSharingKindCode\"].valueChanges.subscribe((x) => {\r\n this.SetTransportPrice();\r\n });\r\n }\r\n onChanged($event) {\r\n if (this.isNewRow) this.setdefault();\r\n if ($event && $event.apiName === \"LookUp\" && $event.data.SystemName === \"INV\" && $event.data.Category === \"TransportInterfaceSharingKind\") {\r\n this.model.TransportInterfaceSharingKindCode = $event.data.Code;\r\n this.model.TransportInterfaceSharingKindLatinTitle = $event.data.Title;\r\n this.setValue(\"TransportInterfaceSharingKindCode\", $event.data.Code);\r\n this.setValue(\"TransportInterfaceSharingKindLatinTitle\", $event.data.Title);\r\n this.SetTransportPrice();\r\n }\r\n }\r\n onValueChanges($event) {\r\n if (this.detail && this.detail?.dataList) this.model.InvVoucherDetailList = this.detail?.dataList;\r\n if (!this.isloading && $event && ($event.UnitId || $event.GoodsId) && $event.State !== RowState.Delete && $event.State !== RowState.Detached) {\r\n this.isloading = true;\r\n let goodsId: number = $event.GoodsId ? $event.GoodsId : $event.Id;\r\n var filters: GridFilter[] = [];\r\n let isReadable: boolean = false;\r\n if (this.stockList && this.stockList.length > 0) this.filterdDataList = this.stockList.filter((f) => f.GoodsId === goodsId);\r\n filters.push({ Filed: \"FiscalYearId\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 1000, Value: this.model.FiscalYearId, Logic: \"and\" });\r\n let voucherdate: Date = this.formGroup?.get(\"VoucherDate\")?.value;\r\n if (isNullOrUndefined(voucherdate)) {\r\n if (!this.model.VoucherDate) voucherdate = new Date();\r\n else voucherdate = this.model.VoucherDate;\r\n }\r\n filters.push({ Filed: \"VoucherDate\", Operator: \"lte\", Type: \"F\", Skip: 0, Take: 1000, Value: voucherdate, Logic: \"and\" });\r\n var GoodsIds: number[] = [];\r\n this.model?.InvVoucherDetailList?.forEach((x) => {\r\n if (x.GoodsId && !GoodsIds.some((g) => g === x.GoodsId)) {\r\n GoodsIds.push(x.GoodsId);\r\n isReadable = true;\r\n }\r\n });\r\n if (goodsId && !GoodsIds.some((g) => g === goodsId)) {\r\n GoodsIds.push(goodsId);\r\n isReadable = true;\r\n }\r\n if (!isReadable) {\r\n this.filterdDataList = this.stockList?.filter((f) => f.GoodsId === goodsId);\r\n return;\r\n }\r\n filters.push({ Filed: \"GoodsIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 1000, Value: GoodsIds, Logic: \"and\" });\r\n this.setSummery();\r\n this.httpCommonService\r\n .create(`InvVoucherHeader/GetCaredx`, filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x: PagingDataResult) => {\r\n this.isloading = false;\r\n this.stockList = x.Data as [];\r\n this.stockListLoaded.next(true);\r\n this.filterdDataList = this.stockList.filter((f) => f.GoodsId === goodsId);\r\n if ($event && $event.GoodsId) {\r\n if ($event.State === RowState.Delete || $event.State === RowState.Detached) {\r\n this.erroremessage = undefined;\r\n this.model?.InvVoucherDetailList?.forEach((x) => {\r\n this.setGoodsValidation(x);\r\n });\r\n } else this.setGoodsValidation($event);\r\n }\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n this.isloading = false;\r\n this.getFailedHelper(error);\r\n }\r\n );\r\n }\r\n\r\n if ($event && $event.GoodsId) {\r\n if ($event.State === RowState.Delete || $event.State === RowState.Detached) {\r\n this.erroremessage = undefined;\r\n if (this.formGroup?.get(\"WarehouseId\")?.value)\r\n this.model?.InvVoucherDetailList?.forEach((x) => {\r\n this.setGoodsValidation(x);\r\n });\r\n } else {\r\n if (this.formGroup?.get(\"WarehouseId\")?.value)\r\n this.model?.InvVoucherDetailList?.forEach((x) => {\r\n this.setGoodsValidation(x);\r\n });\r\n }\r\n }\r\n if (!this.isValidating) this.isValid();\r\n if (this.model.InvVoucherDetailList.some((x) => x.State === RowState.Modify) && this.isNoValidForEdit() === true) this.formGroup?.markAsTouched();\r\n }\r\n getStockList() {\r\n var filters: GridFilter[] = [];\r\n filters.push({ Filed: \"FiscalYearId\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: this.model.FiscalYearId, Logic: \"and\" });\r\n let voucherdate: Date = this.formGroup?.get(\"VoucherDate\")?.value;\r\n if (isNullOrUndefined(voucherdate)) {\r\n if (!this.model.VoucherDate) voucherdate = new Date();\r\n else voucherdate = this.model.VoucherDate;\r\n }\r\n filters.push({ Filed: \"VoucherDate\", Operator: \"lte\", Type: \"F\", Skip: 0, Take: 20, Value: voucherdate, Logic: \"and\" });\r\n filters.push({\r\n Filed: \"WarehouseId\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.controls[\"WarehouseId\"].value,\r\n Logic: \"and\",\r\n });\r\n return this.httpCommonService.create(`InvVoucherHeader/GetCaredx`, filters);\r\n }\r\n onValueChangeByApiName($event) {\r\n if ($event && $event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Warehouse\")) {\r\n this.model.WarehouseTitle = $event.data.Title;\r\n this.model.WarehouseCode = $event.data.Code;\r\n this.setMaxCode();\r\n }\r\n if (this.model.InvVoucherDetailList !== undefined && this.model?.InvVoucherDetailList?.length > 0) {\r\n this.erroremessage = undefined;\r\n this.model?.InvVoucherDetailList?.filter(\r\n (x) => x.State !== RowState.Delete && x.State !== RowState.Detached && x.State !== RowState.SoftDelete\r\n ).forEach((x) => {\r\n this.onValueChanges(x);\r\n });\r\n }\r\n if (!this.isValidating) this.isValid();\r\n else if ($event && $event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"DetailLedger\")) {\r\n this.isValid();\r\n }\r\n this.isValidating = false;\r\n }\r\n setGoodsValidation(event: InvVoucherDetail) {\r\n this.goodsError = false;\r\n this.erroremessage = undefined;\r\n if (event.ReferenceId && event.ReferenceId > 0 && event.BaseAmount > 0) {\r\n if (event.Amount > event.BaseAmount && !this.currentVoucherKind?.BasedOnBOM) {\r\n this.goodsError = true;\r\n this.erroremessage = `برای کالای ${event.GoodsTitle} با کد(${event.GoodsCode}) در انبار ${this.model.WarehouseTitle} مقدار نمی تواند از مقدارمبنا بیشتر باشد.`;\r\n }\r\n }\r\n if (this.formGroup?.get(\"WarehouseId\")?.value) {\r\n if (this.currentVoucherKind && this.currentVoucherKind?.IncrementalKindCode === IncrementalKind.Decrement && event.MainAmount) {\r\n let stockinfo = this.stockList.find((x) => x.WarehouseId === this.formGroup?.get(\"WarehouseId\")?.value && x.GoodsId === event.GoodsId);\r\n if (\r\n this.currentVoucherKind?.IncrementalKindCode === IncrementalKind.Decrement &&\r\n event.State != RowState.Delete &&\r\n (!stockinfo || stockinfo.StockAmount + event.OrignalMainAmount - event.MainAmount < 0)\r\n )\r\n if (!this.missetup.getboolean(\"INV\", \"NegativeBalance\")) {\r\n this.goodsError = true;\r\n event.HasError = true;\r\n this.erroremessage = `برای کالای ${event.GoodsTitle} با کد(${event.GoodsCode}) در انبار ${this.model.WarehouseTitle} موجودی کافی وجود ندارد.`;\r\n }\r\n }\r\n }\r\n this.cd.markForCheck();\r\n }\r\n setSummery() {\r\n if (this.model === undefined || this.model.InvVoucherDetailList === undefined) return;\r\n if (!this.formGroup?.controls[\"TotalPrice\"])\r\n this.formGroup?.addControl(\"TotalPrice\", new UntypedFormControl(this.model?.InvVoucherDetailList?.getSumWithKey(\"Price\")));\r\n else this.formGroup?.controls[\"TotalPrice\"].setValue(this.model?.InvVoucherDetailList?.getSumWithKey(\"Price\"));\r\n\r\n if (!this.formGroup?.controls[\"SumPrice\"])\r\n this.formGroup?.addControl(\"SumPrice\", new UntypedFormControl(this.model?.InvVoucherDetailList?.getSumWithKey(\"TotalPrice\")));\r\n else this.formGroup?.controls[\"SumPrice\"].setValue(this.model?.InvVoucherDetailList?.getSumWithKey(\"TotalPrice\"));\r\n\r\n if (this.hasDiscount) {\r\n if (!this.formGroup?.controls[\"DiscountAmount\"])\r\n this.formGroup?.addControl(\"DiscountAmount\", new UntypedFormControl(this.model?.InvVoucherDetailList?.getSumWithKey(\"DiscountAmount\")));\r\n else {\r\n var test = this.model?.InvVoucherDetailList?.getSumWithKey(\"DiscountAmount\");\r\n this.formGroup?.controls[\"DiscountAmount\"].setValue(this.model?.InvVoucherDetailList?.getSumWithKey(\"DiscountAmount\"));\r\n }\r\n if (!this.formGroup?.controls[\"SumDeduction\"])\r\n this.formGroup?.addControl(\"SumDeduction\", new UntypedFormControl(this.model?.InvVoucherDetailList?.getSumWithKey(\"Deduction\")));\r\n else this.formGroup?.controls[\"SumDeduction\"].setValue(this.model?.InvVoucherDetailList?.getSumWithKey(\"Deduction\"));\r\n }\r\n if (this.hasTaxDuty) {\r\n if (!this.formGroup?.controls[\"Tax\"])\r\n this.formGroup?.addControl(\"Tax\", new UntypedFormControl(this.model?.InvVoucherDetailList?.getSumWithKey(\"Tax\")));\r\n else this.formGroup?.controls[\"Tax\"].setValue(this.model?.InvVoucherDetailList?.getSumWithKey(\"Tax\"));\r\n }\r\n if (!this.formGroup?.controls[\"SumSurplusage\"])\r\n this.formGroup?.addControl(\"SumSurplusage\", new UntypedFormControl(this.model?.InvVoucherDetailList?.getSumWithKey(\"Surplusage\")));\r\n else this.formGroup?.controls[\"SumSurplusage\"].setValue(this.model?.InvVoucherDetailList?.getSumWithKey(\"Surplusage\"));\r\n if (!this.formGroup?.controls[\"PaymentValue\"]) this.formGroup?.addControl(\"PaymentValue\", new UntypedFormControl(0));\r\n else this.formGroup?.controls[\"PaymentValue\"].setValue(0);\r\n if (!this.formGroup?.controls[\"RemainValue\"]) this.formGroup?.addControl(\"RemainValue\", new UntypedFormControl(0));\r\n else this.formGroup?.controls[\"RemainValue\"].setValue(0);\r\n }\r\n isValueValid() {\r\n if (this.formGroup?.controls[\"TransportPrice\"].value && this.formGroup?.controls[\"TransportPrice\"].value < 0) {\r\n this.erroremessage = `کرایه نمی تواند منفی باشد.`;\r\n }\r\n if (this.formGroup?.controls[\"TransportTax\"].value && this.formGroup?.controls[\"TransportTax\"].value < 0) {\r\n this.erroremessage = `مالیات کرایه نمی تواند منفی باشد.`;\r\n }\r\n }\r\n isChanged = () => {\r\n let flag: boolean = false;\r\n Object.keys(this.model).forEach((key) => {\r\n if (!key.includes(\"SubLedger\") && !key.includes(\"DetailLedger\") && this.formGroup?.get(key)?.value)\r\n flag = this.formGroup?.get(key)?.value !== this.model[key];\r\n });\r\n return flag;\r\n };\r\n isValid() {\r\n let flag: boolean = true;\r\n if (this.isValidating) return;\r\n if (!this.formGroup?.valid && !this.formGroup?.get(\"StatusKindId\")?.value) this.setStatusKind();\r\n if (!this.goodsError) this.erroremessage = undefined;\r\n else flag = false;\r\n if (this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.IsTakingOfInventory && !this.isChanged) {\r\n this.erroremessage = \"شما مجاز به ویرایش / حذف سند انبارگردنی نیستید.\";\r\n return false;\r\n }\r\n this.isValueValid();\r\n flag = !this.erroremessage ? true : false;\r\n if (\r\n new Date(this.formGroup?.controls[\"VoucherDate\"].value).setHours(0, 0, 0, 0) <\r\n new Date(this.accountService.authService.currentFiscalYear.StartDate).setHours(0, 0, 0, 0) ||\r\n new Date(this.formGroup?.controls[\"VoucherDate\"].value).setHours(0, 0, 0, 0) >\r\n new Date(this.accountService.authService.currentFiscalYear.EndDate).setHours(0, 0, 0, 0)\r\n ) {\r\n this.erroremessage = \"تاریخ سند باید در محدوده سال مالی باشد.\";\r\n return false;\r\n }\r\n // if (flag && this.currentVoucherKind && this.currentVoucherKind.FormOperationKindCode === FormOperationKind.SendToInvDailyVoucher && !this.isNewRow) {\r\n // this.erroremessage = \"سند از نوع ارسال به انبار روزانه قابل ویرایش نیست.\";\r\n // flag = false;\r\n // }\r\n\r\n if (flag && this.currentVoucherKind && this.currentVoucherKind?.HasCheckVoucherDate && this.isNewRow) {\r\n if (new Date(this.formGroup?.controls[\"VoucherDate\"].value).setHours(0, 0, 0, 0) < new Date().setHours(0, 0, 0, 0)) {\r\n this.erroremessage = \"تاریخ سند نمی تواند کوچکتر از تاریخ جاری باشد.\";\r\n flag = false;\r\n }\r\n }\r\n\r\n if (!this.formGroup?.controls[\"FiscalYearId\"].value && !this.accountService.authService.currentFiscalYear) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) this.setValue(\"FiscalYearId\", x.Id);\r\n });\r\n }\r\n if (this.currentVoucherKind?.HasOpositeParty && flag) {\r\n if (!this.formGroup?.controls[\"DetailLedgerId\"]?.value) {\r\n this.erroremessage = `انتخاب ${this.getColumnCaption(\"DetailLedgerId\")} الزامی است.`;\r\n flag = false;\r\n }\r\n }\r\n if (this.erroremessage && flag) flag = false;\r\n if (flag) {\r\n if (\r\n this.currentVoucherKind &&\r\n (this.currentVoucherKind?.IncrementalKindCode <= IncrementalKind.Decrement ||\r\n this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseInvoice ||\r\n this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.IsReturnPurchaseInvoice) &&\r\n !this.formGroup?.get(\"WarehouseId\")?.value &&\r\n !this.model.WarehouseId\r\n ) {\r\n this.erroremessage = \"برای اسناد با ماهیت افزاینده/کاهنده/فاکتور خرید انتخاب انبار الزامی است.\";\r\n\r\n flag = false;\r\n }\r\n if (flag) {\r\n if (\r\n this.model.InvVoucherDetailList &&\r\n this.model?.InvVoucherDetailList?.filter((x) => x.Id != -1 && x.State !== RowState.Delete && x.State !== RowState.Detached).length > 0\r\n ) {\r\n flag = this.formGroup?.valid || this.formGroup?.status === \"DISABLED\";\r\n } else {\r\n this.erroremessage = \"برای سند هیچ قلمی وارد نشده است.\";\r\n flag = false;\r\n }\r\n }\r\n if (\r\n flag &&\r\n this.currentVoucherKind?.HasWarehouseTransfer &&\r\n this.formGroup?.controls[\"WarehouseId\"].value === this.formGroup?.controls[\"WarehouseTransferId\"].value\r\n ) {\r\n flag = false;\r\n this.erroremessage = \"انبار مبداء و مقصد نمی تواند یکی باشد.\";\r\n }\r\n if (\r\n (flag && this.currentVoucherKind?.AutoFocusedDocumentIssuance && this.currentVoucherKind?.AutoCreateVoucherKindId !== undefined) ||\r\n this.currentVoucherKind?.HasAutoConfirm\r\n ) {\r\n if (\r\n this.currentVoucherKind &&\r\n this.currentVoucherKind?.HasWarehouseTransfer &&\r\n this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseInvoice &&\r\n this.currentVoucherKind?.IncrementalKindCode === 1 &&\r\n this.model?.InvVoucherDetailList?.some(\r\n (x) => x.Id != -1 && x.State !== RowState.Detached && x.State !== RowState.Delete && x.UnitPrice === 0\r\n )\r\n ) {\r\n this.erroremessage = \"بعلت اقلام بدون قیمت سند قابل تائید نیست.\";\r\n flag = false;\r\n }\r\n }\r\n if (flag) {\r\n if (\r\n this.model?.InvVoucherDetailList?.some(\r\n (x) => x.Id != -1 && x.State !== RowState.Detached && x.State !== RowState.Delete && (!x.Amount || x.Amount <= 0)\r\n )\r\n ) {\r\n this.erroremessage = \"مقدار نمی تواند خالی باشد.\";\r\n flag = false;\r\n }\r\n }\r\n if (\r\n flag &&\r\n this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseInvoice &&\r\n this.model?.InvVoucherDetailList &&\r\n this.model?.InvVoucherDetailList?.some(\r\n (x) =>\r\n x.Id != -1 &&\r\n (!x.UnitPrice || x.UnitPrice <= 0) &&\r\n x.State !== RowState.Delete &&\r\n x.State !== RowState.Detached &&\r\n x.State !== RowState.SoftDelete\r\n )\r\n ) {\r\n this.erroremessage = \"تکمیل فی اقلام الزامی است.\";\r\n flag = false;\r\n }\r\n if (flag && this.currentVoucherKind?.IncrementalKindCode === IncrementalKind.Decrement) {\r\n this.model?.InvVoucherDetailList?.forEach((x) => {\r\n if (flag) {\r\n this.isValidating = true;\r\n this.onValueChanges(x);\r\n this.isValidating = false;\r\n if (this.stockList?.length <= 0 && this.erroremessage) {\r\n this.isValidating = true;\r\n this.onValueChanges(x);\r\n this.isValidating = false;\r\n }\r\n flag = !this.erroremessage;\r\n }\r\n });\r\n }\r\n if (flag) {\r\n this.isValidating = true;\r\n this.onValueChangeByApiName(null);\r\n this.isValidating = false;\r\n flag = !this.erroremessage;\r\n }\r\n }\r\n\r\n return flag;\r\n }\r\n getFilters(columnsName: string, searchValue: string, skip: number, take: number) {\r\n var filters: GridFilter[] = [];\r\n const columns = columnsName.split(\",\");\r\n columns.forEach((x) => {\r\n {\r\n if (x !== \"Id\")\r\n filters.push({ Filed: x, Operator: \"contains\", Type: \"F\", Skip: skip, Take: take, Value: searchValue.toString(), Logic: \"or\" });\r\n else if (isNumber(searchValue))\r\n filters.push({ Filed: x, Operator: \"eq\", Type: \"F\", Skip: skip, Take: take, Value: Number(searchValue), Logic: \"or\" });\r\n }\r\n });\r\n return filters;\r\n }\r\n onDataStateChange(columnName: string, searchValue: string, skip: number, take: number): Observable> {\r\n var abs = new BehaviorSubject>(null);\r\n const dLkids: number[] = [];\r\n if (\r\n columnName === \"DetailLedgerId\" &&\r\n this.currentVoucherKind?.VoucherKindDetailLedgerKinds &&\r\n this.currentVoucherKind?.VoucherKindDetailLedgerKinds.length > 0\r\n ) {\r\n this.currentVoucherKind?.VoucherKindDetailLedgerKinds.forEach((x) => dLkids.push(x.DetailLedgerKindId));\r\n }\r\n let apiName: string = \"DetailLedger/DetailLedgerWithDetailLedgerKindIds\";\r\n const filter = this.getFilters(\"Id,Code,Title\", searchValue, skip, take);\r\n if (dLkids && dLkids.length > 0)\r\n filter.push({ Filed: \"dLkinds\", Operator: \"eq\", Value: dLkids, Type: \"F\", Skip: skip, Take: take, Logic: \"and\" });\r\n this.httpCommonService\r\n .GetFilterGrid>(apiName, filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x: PagingDataResult) => {\r\n if (x) abs.next(x);\r\n });\r\n return abs.asObservable();\r\n }\r\n preSave() {\r\n if (this.model.StatusKindCode !== InvStatusKind.Registered) return;\r\n var filters: GridFilter[] = [];\r\n filters.push({ Filed: \"FiscalYearId\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: this.model.FiscalYearId, Logic: \"and\" });\r\n let voucherdate: Date = this.formGroup?.get(\"VoucherDate\")?.value;\r\n if (isNullOrUndefined(voucherdate)) {\r\n if (!this.model.VoucherDate) voucherdate = new Date();\r\n else voucherdate = this.model.VoucherDate;\r\n }\r\n filters.push({ Filed: \"VoucherDate\", Operator: \"lte\", Type: \"F\", Skip: 0, Take: 20, Value: voucherdate, Logic: \"and\" });\r\n var GoodsIds: number[] = [];\r\n this.model?.InvVoucherDetailList?.forEach((x) => {\r\n if (x.GoodsId && !GoodsIds.some((g) => g === x.GoodsId)) {\r\n GoodsIds.push(x.GoodsId);\r\n }\r\n });\r\n filters.push({ Filed: \"GoodsIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: GoodsIds, Logic: \"and\" });\r\n this.httpCommonService\r\n .create(`InvVoucherHeader/GetCaredx`, filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x: PagingDataResult) => {\r\n this.isloading = false;\r\n this.stockList = x.Data as [];\r\n this.stockListLoaded.next(true);\r\n },\r\n (error) => {\r\n this.isloading = false;\r\n this.getFailedHelper(error);\r\n }\r\n );\r\n let errors: string = \"\";\r\n this.model?.InvVoucherDetailList?.filter(\r\n (x) => x.Id != -1 && x.State !== RowState.Delete && x.State !== RowState.Detached && x.State !== RowState.SoftDelete\r\n )?.forEach((x) => {\r\n this.setGoodsValidation(x);\r\n if (this.erroremessage) errors = errors + \",\" + this.erroremessage;\r\n });\r\n if (errors) {\r\n this.goodsError = true;\r\n this.erroremessage = errors;\r\n }\r\n }\r\n beforupdate() {\r\n if (this.detail) {\r\n if (this.detail.formGroup && this.detail?.formGroup?.valid) this.detail.saveCurrent();\r\n else this.detail.cancelHandler();\r\n }\r\n if (this.model.AccVoucherFixNumber > 0) return;\r\n\r\n this.setValue(\"SendToInvDailyVoucher\", this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.SendToInvDailyVoucher);\r\n\r\n if (!this.formGroup?.controls[\"BasedOnBOM\"]) this.setValue(\"BasedOnBOM\", this.currentVoucherKind?.BasedOnBOM);\r\n\r\n if (this.model.InvVoucherDetailList !== undefined && this.model?.InvVoucherDetailList?.length > 0) {\r\n this.erroremessage = undefined;\r\n this.model?.InvVoucherDetailList?.filter(\r\n (x) => x.Id != -1 && x.State !== RowState.Delete && x.State !== RowState.Detached && x.State !== RowState.SoftDelete\r\n ).forEach((x) => {\r\n this.onValueChanges(x);\r\n });\r\n }\r\n\r\n this.model.InvVoucherDetailList = this.model?.InvVoucherDetailList?.filter((x) => x.State !== RowState.Detached);\r\n if (\r\n (this.currentVoucherKind?.HasAutoConfirm ||\r\n this.currentVoucherKind?.HasJournalVoucherAuto ||\r\n this.currentVoucherKind?.AutoFocusedDocumentIssuance) &&\r\n this.model.StatusKindCode < InvStatusKind.Confirmed\r\n ) {\r\n this.lookupservice\r\n .getLookupbyCode(\"INV\", \"StatusKind\", InvStatusKind.Confirmed)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", x.Id);\r\n this.setValue(\"StatusKindCode\", x.Code);\r\n this.setValue(\"StatusKindTitle\", x.Title);\r\n\r\n if (this.model.StatusKindCode === InvStatusKind.Confirmed) this.confirmLabel = \"برگشت از تایید\";\r\n else this.confirmLabel = \"تایید سند\";\r\n }\r\n });\r\n }\r\n\r\n if (this.model.InvVoucherDetailList && this.model?.InvVoucherDetailList?.length > 0) {\r\n if (!this.formGroup?.controls[\"InvVoucherDetailList\"])\r\n this.formGroup?.addControl(\"InvVoucherDetailList\", new UntypedFormControl(this.model.InvVoucherDetailList));\r\n else this.formGroup?.controls[\"InvVoucherDetailList\"].setValue(this.model.InvVoucherDetailList);\r\n } else this.erroremessage = \"برای سند هیچ قلمی وارد نشده است.\";\r\n\r\n if (\r\n (this.currentVoucherKind?.AutoFocusedDocumentIssuance && this.currentVoucherKind?.AutoCreateVoucherKindId !== undefined) ||\r\n this.currentVoucherKind?.HasAutoConfirm\r\n ) {\r\n if (this.model.StatusKindCode <= InvStatusKind.Registered) this.setConfirmStatusKind();\r\n }\r\n this.SetTransportPrice();\r\n }\r\n SetTransportPrice() {\r\n if (this.model.StatusKindCode >= InvStatusKind.Confirmed) return;\r\n if (\r\n this.currentVoucherKind?.HasTransportInterface &&\r\n this.model !== null &&\r\n this.model.InvVoucherDetailList !== null &&\r\n this.model?.InvVoucherDetailList?.some((x) => x.Id != -1 && x.State !== RowState.Delete && x.State !== RowState.Detached) &&\r\n this.formGroup?.controls[\"TransportPrice\"] &&\r\n this.formGroup?.controls[\"TransportPrice\"].value > 0\r\n ) {\r\n switch (this.formGroup?.controls[\"TransportInterfaceSharingKindCode\"].value ?? this.model.TransportInterfaceSharingKindCode) {\r\n case 1:\r\n let TotalAmount: number = this.model?.InvVoucherDetailList?.getSumWithKey(\"MainAmount\");\r\n this.model?.InvVoucherDetailList?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).forEach((x) => {\r\n x.TransportPrice = Math.round((this.formGroup?.controls[\"TransportPrice\"].value * x.MainAmount) / TotalAmount);\r\n if (this.formGroup?.controls[\"TransportTax\"].value > 0)\r\n x.TransportTax = Math.round((this.formGroup?.controls[\"TransportTax\"].value * x.MainAmount) / TotalAmount);\r\n else x.TransportTax = 0;\r\n\r\n if (x.State === RowState.NoChange && this.model.StatusKindCode < InvStatusKind.Confirmed) x.State = RowState.Modify;\r\n });\r\n break;\r\n\r\n case 2:\r\n let TotalPrice: number = this.model?.InvVoucherDetailList?.getSumWithKey(\"Price\");\r\n this.model?.InvVoucherDetailList?.filter((x) => x.Id != -1 && x.State !== RowState.Delete && x.State !== RowState.Detached).forEach((x) => {\r\n x.TransportPrice = Math.round((this.formGroup?.controls[\"TransportPrice\"].value * x.Price) / TotalPrice);\r\n if (this.formGroup?.controls[\"TransportTax\"].value > 0)\r\n x.TransportTax = Math.round((this.formGroup?.controls[\"TransportTax\"].value * x.Price) / TotalPrice);\r\n else x.TransportTax = 0;\r\n\r\n if (x.State === RowState.NoChange) x.State = RowState.Modify;\r\n });\r\n break;\r\n\r\n case 3:\r\n let EqualPrice =\r\n this.formGroup?.controls[\"TransportPrice\"].value /\r\n this.model?.InvVoucherDetailList?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).length;\r\n this.model?.InvVoucherDetailList?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).forEach((x) => {\r\n x.TransportPrice = Math.round(EqualPrice);\r\n x.TransportTax = Math.round(\r\n this.formGroup?.controls[\"TransportTax\"].value /\r\n this.model?.InvVoucherDetailList?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).length\r\n );\r\n if (x.State === RowState.NoChange) x.State = RowState.Modify;\r\n });\r\n break;\r\n\r\n default:\r\n this.model?.InvVoucherDetailList?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).forEach((x) => {\r\n x.TransportPrice = 0;\r\n x.TransportTax = 0;\r\n if (x.State === RowState.NoChange) x.State = RowState.Modify;\r\n });\r\n break;\r\n }\r\n }\r\n var sumTransportPrice = this.model?.InvVoucherDetailList?.getSumWithKey(\"TransportPrice\");\r\n\r\n var sumTransportTax = this.model?.InvVoucherDetailList?.getSumWithKey(\"TransportTax\");\r\n var temp = this.model?.InvVoucherDetailList?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached);\r\n var last = temp !== undefined && temp.length > 0 ? temp[temp.length - 1] : undefined;\r\n if (this.formGroup?.controls[\"TransportPrice\"].value !== sumTransportPrice && last !== undefined) {\r\n last.TransportPrice = last.TransportPrice + (this.formGroup?.controls[\"TransportPrice\"].value - sumTransportPrice);\r\n }\r\n if (this.formGroup?.controls[\"TransportTax\"].value !== sumTransportTax) {\r\n last.TransportTax = last.TransportTax + (this.formGroup?.controls[\"TransportTax\"].value - sumTransportTax);\r\n }\r\n ///به علت مشکل CanDelete\r\n // if (last && last.State === RowState.NoChange && this.model.StatusKindCode < InvStatusKind.Confirmed)\r\n // last.State = RowState.Modify;\r\n if (this.formGroup?.controls[\"TransportPrice\"].value === 0 || !this.formGroup?.controls[\"TransportPrice\"].value) {\r\n this.model?.InvVoucherDetailList?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).forEach((x) => {\r\n x.TransportPrice = 0;\r\n x.TransportTax = 0;\r\n // if (x.State === RowState.NoChange && this.model?.StatusKindCode < InvStatusKind.Confirmed)\r\n // x.State = RowState.Modify;\r\n });\r\n }\r\n if (this.formGroup?.controls[\"TransportInterfaceSharingKindCode\"].value === 4) {\r\n this.model?.InvVoucherDetailList?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).forEach((x) => {\r\n x.TransportPrice = 0;\r\n x.TransportTax = 0;\r\n // if (x.State === RowState.NoChange)\r\n // x.State = RowState.Modify;\r\n });\r\n }\r\n }\r\n\r\n setReferenceVoucherColumns() {\r\n this.httpCommonService\r\n .get(\"InvVoucherHeader/GetReferenceVoucherInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.selectorService.setColumns(\"ReferenceId\", data as []);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n setStockInfoColumns() {\r\n this.httpCommonService\r\n .get(\"InvVoucherHeader/GetStockInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.StockInfoColumns = (data as form_control[]).filter((f) => (!f.areaName || f.areaName === \"default\") && f.listVisible);\r\n this.StockInfoColumns = this.StockInfoColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n\r\n async CreateVoucherKindReferencedTo(rvk: ReferenceVoucherKind) {\r\n if (rvk === null || rvk === undefined) {\r\n if (this.currentVoucherKind?.AutoCreateVoucherKindId !== undefined) {\r\n this.httpCommonService\r\n .getItem(\"InvVoucherKind\", this.currentVoucherKind?.AutoCreateVoucherKindId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (data) => {\r\n if (data !== null && data.IsWarehouse) await this.CreateInvVoucherReferencedTo(data);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n if (rvk !== null && rvk !== undefined) {\r\n await this.httpCommonService\r\n .getItem(\"InvVoucherKind\", rvk.InvVoucherKindId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (data) => {\r\n if (data !== null && data.IsWarehouse) await this.CreateInvVoucherReferencedTo(data);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n async saveReferenceVoucher(model: any) {\r\n this.CreatedVoucherKindReferencedTo = true;\r\n if (!this.model.HasReferencedVoucherTo) {\r\n this.splashFormService.openDialog(\"\", \"در حال صدور سند معطوف\");\r\n let apiName = this.apiName;\r\n if (model.SellVoucherDetailList && model.SellVoucherDetailList.length > 0) apiName = \"SellVoucherHeader\";\r\n await this.httpCommonService\r\n .create(apiName, model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (row) => {\r\n this.splashFormService.closeLoading();\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n await this.ngOnInit();\r\n this.isRefreshingData = false;\r\n this.CreatedVoucherKindReferencedTo = false;\r\n this.sts.showToast(\"primary\", \"\", \"صند معطوف با موفقیت صادر شد.\");\r\n },\r\n async (error) => {\r\n await this.ngOnInit();\r\n this.isRefreshingData = false;\r\n this.CreatedVoucherKindReferencedTo = false;\r\n this.saveFailedHelper(error);\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(` خطا در صدور سند معطوف ${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n }\r\n async CreateInvVoucherReferencedTo(vk: InvVoucherKind) {\r\n let flag: boolean = true;\r\n\r\n var refVoucher: any;\r\n if (vk.IsWarehouse !== true) refVoucher = {};\r\n else refVoucher = {};\r\n Object.keys(this.model).forEach((key) => {\r\n if (key !== \"SendToInvDailyVoucher\" && key !== \"BasedOnBOM\") refVoucher[key] = this.model[key];\r\n });\r\n if (vk.HasSubledger && vk.DefaultSubLedgerId) refVoucher.SubLedgerId = vk.DefaultSubLedgerId;\r\n else refVoucher.SubLedgerId = undefined;\r\n if (this.currentVoucherKind?.HasWarehouseTransfer) {\r\n refVoucher.WarehouseId = this.model.WarehouseTransferId;\r\n refVoucher.WarehouseCode = this.model.DetailLedgerCode;\r\n refVoucher.WarehouseTitle = this.model.DetailLedgerTitle;\r\n refVoucher.WarehouseTransferId = this.model.WarehouseId;\r\n refVoucher.WarehouseTransferCode = this.model.WarehouseCode;\r\n refVoucher.WarehouseTransferTitle = this.model.WarehouseTitle;\r\n refVoucher.DetailLedgerId = this.model.DetailLedgerId;\r\n }\r\n if (vk.HasOpositeParty === true && !this.formGroup?.get(\"DetailLedgerId\")?.value) {\r\n this.sts.showDialog(\"برای صدور سند معطوف نیازبه طرف حساب دارد.\", \"صدور سند معطوف\");\r\n return;\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\r\n vk.IsWarehouse === true ? \"INV\" : \"SELL\",\r\n \"StatusKind\",\r\n vk.FormOperationKindCode === FormOperationKind.IsPurchaseInvoice ? InvStatusKind.Registered : InvStatusKind.Confirmed\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n refVoucher.StatusKindId = x.Id;\r\n refVoucher.StatusKindCode = x.Code;\r\n refVoucher.StatusKindTitle = x.Title;\r\n }\r\n });\r\n refVoucher.State = RowState.New;\r\n refVoucher.FiscalYearId = this.model.FiscalYearId;\r\n refVoucher.Id = 0;\r\n if (vk.IsWarehouse !== true) refVoucher.InvReferenceVoucherId = this.model.Id;\r\n else refVoucher.ReferenceVoucherId = this.model.Id;\r\n refVoucher.VoucherKindId = vk.Id;\r\n refVoucher.VoucherKindCode = vk.Code;\r\n refVoucher.VoucherKindTitle = vk.Title;\r\n refVoucher.IncrementalKindCode = vk.IncrementalKindCode;\r\n refVoucher.IncrementalKindTitle = vk.IncrementalKindTitle;\r\n refVoucher.ReferenceVoucherKindId = this.currentVoucherKind?.Id;\r\n refVoucher.ReferenceVoucherKindCode = this.currentVoucherKind?.Code;\r\n refVoucher.ReferenceVoucherKindTitle = this.currentVoucherKind?.Title;\r\n refVoucher.VoucherDate = this.model.VoucherDate;\r\n if (vk.IsWarehouse === true) refVoucher.InvVoucherDetailList = [];\r\n else refVoucher.SellVoucherDetailList = [];\r\n if (vk.IncrementalKindCode !== IncrementalKind.Decrement) {\r\n refVoucher.TotalPrice = this.model.TotalPrice;\r\n refVoucher.TotalDeduction = this.model.TotalDeduction;\r\n refVoucher.TotalSurplusage = this.model.TotalSurplusage;\r\n }\r\n if (this.model?.InvVoucherDetailList[0].Id <= 0) return;\r\n this.model?.InvVoucherDetailList?.filter((x) => x.Id != -1 && x.State !== RowState.Delete && x.State !== RowState.Detached).forEach((x) => {\r\n var vd: any;\r\n\r\n if (vk.IsWarehouse !== true) vd = {};\r\n else vd = {};\r\n Object.keys(x).forEach((key) => {\r\n vd[key] = x[key];\r\n });\r\n vd.BaseAmount = x.MainAmount;\r\n vd.RemainMainAmount = x.MainAmount;\r\n vd.State = RowState.New;\r\n vd.Id = 0;\r\n if (vk.IsWarehouse !== true) vd.InvReferenceId = x.Id;\r\n else vd.ReferenceId = x.Id;\r\n vd.ReferenceCode = this.model.VoucherNo;\r\n if (vk.IncrementalKindCode === IncrementalKind.Decrement) vd.UnitPrice = 0;\r\n\r\n if (\r\n (vk.IncrementalKindCode === IncrementalKind.Decrement || vk.ReserveBalance || vk.HasInventoryControl) &&\r\n this.missetup.getnumber(\"INV\", \"NegativeBalance\")\r\n ) {\r\n let SaleAvailable: boolean = true;\r\n }\r\n if (\r\n !(vk.FormOperationKindCode === FormOperationKind.IsPurchaseInvoice || vk.FormOperationKindCode === FormOperationKind.IsReturnPurchaseInvoice)\r\n ) {\r\n vd.DiscountAmount = 0;\r\n vd.DiscountRate = 0;\r\n vd.Surplusage = 0;\r\n vd.Deduction = 0;\r\n vd.Tax = 0;\r\n }\r\n if (vk.IsWarehouse !== true) refVoucher.SellVoucherDetailList.push(vd);\r\n else refVoucher.InvVoucherDetailList.push(vd);\r\n });\r\n if (!flag) {\r\n this.sts.showDialog(\r\n \"خطا در صدور سند معطوف.\",\r\n \"هشدار\",\r\n DialogType.confirm,\r\n () => this.closeForm(true),\r\n () => this.closeForm(false)\r\n );\r\n } else await this.saveReferenceVoucher(refVoucher);\r\n }\r\n\r\n afterupdate() {\r\n super.afterupdate();\r\n this.afterDataLoaded.pipe(takeUntil(this.ngUnsubscribe)).subscribe(async (x) => {\r\n if (this.model.AccVoucherFixNumber > 0) return;\r\n if (x === true && !this.isRefreshingData) {\r\n this.isRefreshingData = true;\r\n if (this.currentVoucherKind?.AutoFocusedDocumentIssuance && this.currentVoucherKind?.AutoCreateVoucherKindId !== undefined) {\r\n if (!this.model.HasReferencedVoucherTo && this.CreatedVoucherKindReferencedTo === false) await this.CreateVoucherKindReferencedTo(null);\r\n } else if (this.currentVoucherKind?.HasJournalVoucher && this.currentVoucherKind?.HasJournalVoucherAuto) {\r\n if (this.model.StatusKindCode !== InvStatusKind.Confirmed) {\r\n this.lookupservice\r\n .getLookupbyCode(\"INV\", \"StatusKind\", InvStatusKind.Confirmed)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n if (this.model.StatusKindCode === InvStatusKind.Confirmed) this.confirmLabel = \"برگشت از تایید\";\r\n else this.confirmLabel = \"تایید سند\";\r\n this.save();\r\n }\r\n });\r\n } else {\r\n let gridFilter: GridFilter[] = [];\r\n let InvVoucherHeaderIds: number[] = [];\r\n InvVoucherHeaderIds.push(this.model.Id);\r\n let filter: GridFilter = {\r\n Type: \"F\",\r\n Filed: \"InvVoucherHeaderIds\",\r\n Value: InvVoucherHeaderIds,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n };\r\n gridFilter.push(filter);\r\n if (!this.isDeleteCreatingAccVoucher) this.createAccVoucher(gridFilter);\r\n this.isDeleteCreatingAccVoucher = false;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n closeForm(flag: boolean = false) {\r\n if (flag && !this.isNewVoucher) {\r\n if (this._id?.metadata?.id) {\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.tabsservice.tabItemOnCanClosing.next(this._id?.metadata?.id);\r\n }\r\n this.close();\r\n }\r\n if (this.isNewVoucher && flag) {\r\n this.selectorService.submitted$.next(false);\r\n this.model = undefined;\r\n this.currentrow = undefined;\r\n this.ngOnInit().then();\r\n }\r\n this.isClosing = false;\r\n }\r\n isCloseable() {\r\n this.selectorService.submitted$.next(false);\r\n this.formGroup?.markAsUntouched();\r\n this.currentrow = this.model;\r\n return false;\r\n }\r\n\r\n canDeactivate(): boolean | Observable {\r\n if (\r\n !(\r\n (this.formGroup && this.formGroup?.dirty && this.formGroup?.touched) ||\r\n (this.model?.InvVoucherDetailList?.length > 0 &&\r\n this.model?.InvVoucherDetailList?.some((x) => (x.Id != -1 && x.State === RowState.New) || x.State === RowState.Modify))\r\n )\r\n )\r\n return true;\r\n this.sts.showDialog(\r\n \"شما اطلاعات ذخیره نشده دارید! در صورت خروج اطلاعات از دست خواهد رفت.\",\r\n \"هشدار\",\r\n DialogType.confirm,\r\n () => this.closeForm(true),\r\n () => this.closeForm(false)\r\n );\r\n return false;\r\n }\r\n\r\n submitButtonDisabled() {\r\n return this.model !== undefined && this.model.HasReferencedVoucherTo && !(this.formGroup?.touched && this.formGroup?.valid);\r\n }\r\n voucherConfirm() {\r\n // if (this.model.HasReferencedVoucherTo && this.model.StatusKindCode === InvStatusKind.Confirmed) {\r\n // this.sts.showDialog(\"به علت وجود سند معطوف امکان حذف/ویرایش وجود ندارد.\", \"هشدار\");\r\n // return;\r\n // }\r\n // if(this.model.HasReferencedVoucherTo && this.model.StatusKindCode === InvStatusKind.Confirmed)\r\n // {\r\n // this.sts.showDialog('به علت وجود سند معطوف قابل ویرایش نیست.', 'خطا در حذف اطلاعات');\r\n // }\r\n // else\r\n\r\n if (\r\n this.currentrow.ReferenceVoucherStatusKindCode == InvStatusKind.Calculated &&\r\n this.formGroup?.controls[\"StatusKindCode\"].value === InvStatusKind.Confirmed\r\n ) {\r\n this.sts.showDialog(\"به علت وجود سند مبنا ریالی شده امکان برگشت از تایید وجود ندارد.\", \"هشدار\");\r\n return;\r\n }\r\n if (\r\n this.isValid() &&\r\n (this.formGroup?.controls[\"StatusKindCode\"].value === InvStatusKind.Registered ||\r\n this.formGroup?.controls[\"StatusKindCode\"].value === InvStatusKind.Confirmed)\r\n ) {\r\n this.lookupservice\r\n .getLookupbyCode(\r\n \"INV\",\r\n \"StatusKind\",\r\n this.model.StatusKindCode === InvStatusKind.Confirmed ? InvStatusKind.Registered : InvStatusKind.Confirmed\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n if (this.formGroup?.controls[\"StatusKindCode\"].value === InvStatusKind.Confirmed) {\r\n this.currentVoucherKind.HasAutoConfirm = false;\r\n this.currentVoucherKind.HasJournalVoucherAuto = false;\r\n this.currentVoucherKind.AutoFocusedDocumentIssuance = false;\r\n }\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", x.Id);\r\n this.setValue(\"StatusKindCode\", x.Code);\r\n this.setValue(\"StatusKindTitle\", x.Title);\r\n if (this.model.StatusKindCode === InvStatusKind.Confirmed) this.confirmLabel = \"برگشت از تایید\";\r\n else {\r\n if (this.model?.InvVoucherDetailList && this.model.InvVoucherDetailList.length > 0) {\r\n this.onValueChanges(this.model.InvVoucherDetailList[0]);\r\n this.erroremessage = undefined;\r\n }\r\n this.confirmLabel = \"تایید سند\";\r\n }\r\n //if (!this.isloading)\r\n this.save();\r\n //else\r\n // this.stockListLoaded\r\n // .pipe(takeUntil(this.ngUnsubscribe))\r\n // .subscribe(x => {\r\n // if (x && !this.isSaving && this.model.StatusKindCode === InvStatusKind.Registered)\r\n // this.save();\r\n // });\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n }\r\n delete_Voucher() {\r\n this.sts.showToast(\"primary\", \"\", \"در حال حذف...\");\r\n this.httpCommonService\r\n .delete(this.apiName, this.model.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت حذف شد.\");\r\n this.model = undefined;\r\n this.currentrow = undefined;\r\n this.OrignalDetail = [];\r\n this.currentVoucherKind.HasJournalVoucherAuto = false;\r\n this.currentVoucherKind.AutoFocusedDocumentIssuance = false;\r\n await this.ngOnInit();\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف اطلاعات\");\r\n }\r\n );\r\n }\r\n deleteVoucher() {\r\n this.sts.showDialog(`آیا از حذف سند اطمینان دارید؟`, \"حذف سند\", DialogType.confirm, () => this.delete_Voucher());\r\n }\r\n async newVoucher() {\r\n this.isNewVoucher = true;\r\n if (this.canDeactivate()) {\r\n this.isClosing = false;\r\n this.selectorService.submitted$.next(false);\r\n this.model = {} as any;\r\n this.OrignalDetail = [];\r\n this.currentrow = undefined;\r\n this.cd.markForCheck();\r\n await this.ngOnInit();\r\n }\r\n }\r\n\r\n async voucherRefrenceTo() {\r\n if (!this.model.HasReferencedVoucherTo) await this.CreateVoucherKindReferencedTo(null);\r\n else this.erroremessage = \"برای این سند قبلا معطوف صادر شده است.\";\r\n }\r\n accountAccVoucher(create: boolean = true) {\r\n if (create && this.model.StatusKindCode < InvStatusKind.Confirmed) {\r\n this.sts.showDialog(`سند تایید نشده است.`, \"خطا\");\r\n return;\r\n }\r\n if (this.model.StatusKindCode >= InvStatusKind.Confirmed) {\r\n let gridFilter: GridFilter[] = [];\r\n let InvVoucherHeaderIds: number[] = [];\r\n InvVoucherHeaderIds.push(this.model.Id);\r\n let filter: GridFilter = {\r\n Type: \"F\",\r\n Filed: \"InvVoucherHeaderIds\",\r\n Value: InvVoucherHeaderIds,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n };\r\n gridFilter.push(filter);\r\n if (this.model.AccVoucherFixNumber !== undefined && this.model.AccVoucherFixNumber > 0 && !create) {\r\n this.deleteAccVoucher(gridFilter);\r\n }\r\n if (create && (this.model.StatusKindCode === InvStatusKind.Confirmed || this.model.StatusKindCode === InvStatusKind.Calculated))\r\n this.createAccVoucher(gridFilter);\r\n }\r\n }\r\n createAccVoucher(gridFilter: GridFilter[]) {\r\n if (this.isCreatingAccVoucher === true) return;\r\n this.isCreatingAccVoucher = true;\r\n this.splashFormService.openDialog(\"\", \"در حال صدور سند حسابداری\");\r\n this.httpCommonService\r\n .create(this.apiName + \"/CreateAccVoucher\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (x) => {\r\n if (x) {\r\n this.splashFormService.closeLoading();\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"سند با موفقیت صادر شد.\", \"\");\r\n this.accVoucherCaption = \"حذف سند حسابداری\";\r\n await this.ngOnInit();\r\n this.isRefreshingData = false;\r\n this.isCreatingAccVoucher = false;\r\n }\r\n },\r\n async (error) => {\r\n this.isRefreshingData = false;\r\n this.currentVoucherKind.HasJournalVoucherAuto = false;\r\n await this.ngOnInit();\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در صدور اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n this.isCreatingAccVoucher = false;\r\n }\r\n );\r\n }\r\n deleteAccVoucher(gridFilter: GridFilter[]) {\r\n this.isDeleteCreatingAccVoucher = true;\r\n this.splashFormService.openDialog(\"\", \"در حال حذف سند حسابداری\");\r\n this.currentVoucherKind.HasJournalVoucherAuto = false;\r\n this.httpCommonService\r\n .create(this.apiName.split(\"/\")[0] + \"/DeleteAccVoucher\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (x) => {\r\n if (x) {\r\n this.splashFormService.closeLoading();\r\n this.currentVoucherKind.HasJournalVoucherAuto = false;\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"سند با موفقیت حذف شد.\", \"\");\r\n this.accVoucherCaption = \"سند حسابداری\";\r\n this.isCloseable();\r\n await this.ngOnInit();\r\n this.isRefreshingData = false;\r\n this.isCreatingAccVoucher = false;\r\n this.cd.markForCheck();\r\n }\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در حذف اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n viewAccVoucher() {\r\n this.httpCommonService\r\n .getItem(this.apiName + \"/ViewAccVoucher\", this.model.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n var datatrasfer: Datatransfer = {};\r\n datatrasfer.apiName = this.apiName;\r\n datatrasfer.label = \"سند حسابداری\";\r\n datatrasfer.areaName = \"Accounting\";\r\n datatrasfer.currentrow = x;\r\n const menu = {\r\n title: `سند حسابداری-(نمایش)`,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: AccVoucherFormComponent,\r\n // modulePath: this.tabsservice.getActiveTab().modulePath,\r\n data: [\r\n { provide: EntityBase, useValue: x },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: x[\"\"] } },\r\n ],\r\n };\r\n this.tabsservice.open(menu);\r\n },\r\n (error) => this.sts.showDialog(`خطا در نمایش سند:${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n deleteRowsWithoutValues() {\r\n this.model?.InvVoucherDetailList?.forEach((x) => {\r\n if (!x.Amount || x.Amount <= 0) {\r\n if (x.State === RowState.New) x.State = RowState.Detached;\r\n else x.State = RowState.Delete;\r\n }\r\n });\r\n }\r\n\r\n DelteZeroAmount() {\r\n this.model?.InvVoucherDetailList?.forEach((item) => {\r\n if (item.Amount == 0) {\r\n if (item.State === RowState.New) item.State = RowState.Detached;\r\n else item.State = RowState.Delete;\r\n }\r\n });\r\n }\r\n GetGoodsFormulaDetail() {\r\n var filters: GridFilter[] = [];\r\n let voucherdate: Date = this.formGroup?.get(\"VoucherDate\")?.value;\r\n if (isNullOrUndefined(voucherdate)) {\r\n if (!this.model.VoucherDate) voucherdate = new Date();\r\n else voucherdate = this.model.VoucherDate;\r\n }\r\n if (this.formGroup && this.formGroup?.get(\"VoucherDate\")?.value) this.model.VoucherDate = this.formGroup?.get(\"VoucherDate\")?.value;\r\n filters.push({ Filed: \"EffectDate\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: this.model?.VoucherDate, Logic: \"and\" });\r\n\r\n this.httpCommonService\r\n .create(\"InvVoucherHeader/GetGoodsFormulaDetail\", filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: GoodsFormulaDetail[]) => {\r\n this.goodsFormulaDetailList = data;\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n ReplaceGoodsSimilar() {\r\n if (!this.model?.InvVoucherDetailList?.some((x) => x.HasError)) return;\r\n\r\n let editableList: InvVoucherDetail[] = [];\r\n if (this.goodsFormulaDetailList == null || this.goodsFormulaDetailList.length <= 0) {\r\n this.GetGoodsFormulaDetail();\r\n }\r\n this.getStockList()\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (stock: PagingDataResult) => {\r\n let PrevAmount: number = 0;\r\n let _stockList = stock.Data as StockInfo[];\r\n let PrevGoodsId: number = 0;\r\n this.model?.InvVoucherDetailList?.filter((x) => x.HasError)\r\n .sort((a, b) => a.GoodsId - b.GoodsId)\r\n .forEach((entity) => {\r\n if (PrevGoodsId != entity.GoodsId) PrevAmount = 0;\r\n var OrignalSaleAvailable = _stockList.some(\r\n (x) => x.WarehouseId === this.formGroup?.get(\"WarehouseId\")?.value && x.GoodsId === entity.GoodsId\r\n )\r\n ? _stockList.find((x) => x.WarehouseId === this.formGroup?.get(\"WarehouseId\")?.value && x.GoodsId === entity.GoodsId).StockAmount\r\n : 0;\r\n var SaleAvailable = OrignalSaleAvailable - PrevAmount;\r\n let RemainAmount = entity.MainAmount;\r\n let CurrentAmount = 0;\r\n\r\n if (SaleAvailable <= 0) {\r\n while (RemainAmount > 0) {\r\n var GoodsFormulaDetail = this.goodsFormulaDetailList.find(\r\n (x) => x.GoodsId == entity.GoodsId && x.HeaderGoodsId == entity.BaseGoodsId\r\n );\r\n if (GoodsFormulaDetail != null) {\r\n var GoodsSimilar = GoodsFormulaDetail.GoodsSimilars;\r\n if (GoodsSimilar != null && GoodsSimilar.length > 0) {\r\n RemainAmount = entity.MainAmount;\r\n entity.MainAmount = 0;\r\n entity.Amount = 0;\r\n GoodsSimilar.forEach((gs) => {\r\n var CurrentSimarValue = editableList.some((x) => x.GoodsId == gs.GoodsId) ? editableList?.getSumWithKey(\"MainAmount\") : 0;\r\n CurrentSimarValue = this.model?.InvVoucherDetailList?.some((x) => x.GoodsId == gs.GoodsId)\r\n ? this.model?.InvVoucherDetailList?.getSumWithKey(\"StandardValue\")\r\n : 0;\r\n let gsRemainAmount = RemainAmount;\r\n if (gs.StandardAmount !== undefined) gsRemainAmount = (RemainAmount * gs.StandardAmount) / GoodsFormulaDetail.StandardAmount;\r\n SaleAvailable = _stockList.some(\r\n (x) => x.WarehouseId === this.formGroup?.get(\"WarehouseId\")?.value && x.GoodsId === gs.GoodsId\r\n )\r\n ? _stockList.find((x) => x.WarehouseId === this.formGroup?.get(\"WarehouseId\")?.value && x.GoodsId === gs.GoodsId)\r\n .StockAmount - CurrentSimarValue\r\n : 0;\r\n if (SaleAvailable > 0) {\r\n if (gsRemainAmount > SaleAvailable) CurrentAmount = SaleAvailable;\r\n else CurrentAmount = gsRemainAmount;\r\n gsRemainAmount = gsRemainAmount - CurrentAmount;\r\n RemainAmount = (gsRemainAmount * GoodsFormulaDetail.StandardAmount) / gs.StandardAmount;\r\n if (CurrentAmount > 0) {\r\n var row = Object.assign({}, entity);\r\n row.InvVoucherHeaderId = this.model.Id ?? 0;\r\n row.MainAmount = CurrentAmount;\r\n row.GoodsUnitRatio = entity.GoodsUnitRatio;\r\n row.Amount = row.MainAmount / row.GoodsUnitRatio;\r\n row.BaseGoodsId = entity.BaseGoodsId;\r\n row.IsGoods = entity.IsGoods;\r\n row.BaseAmount = entity.BaseAmount;\r\n row.GoodsId = gs.GoodsId;\r\n row.GoodsCode = gs.GoodsCode;\r\n row.GoodsTitle = gs.GoodsTitle;\r\n row.GoodsUnitId = gs.GoodsUnitId;\r\n row.GoodsUnitTitle = gs.UnitTitle;\r\n row.PriceUnitId = gs.GoodsUnitId;\r\n row.PriceUnitTitle = gs.UnitTitle;\r\n row.StandardValue = CurrentAmount;\r\n row.ReferenceCode = entity.ReferenceCode;\r\n row.ReferenceId = entity.ReferenceId;\r\n row.UnitPrice = 0;\r\n row.Price = 0;\r\n row.OrignalAmount = 0;\r\n row.OrignalMainAmount = 0;\r\n row.DiscountRate = 0;\r\n row.DiscountAmount = 0;\r\n row.TotalPrice = 0;\r\n row.FirstOutAmount = 0;\r\n row.TransportPrice = 0;\r\n row.TransportTax = 0;\r\n row.RemainMainAmount = 0;\r\n row.StockAmount = 0;\r\n row.SumSaleAmount = 0;\r\n row.SumInventoryAmount = 0;\r\n row.SumReserveAmount = 0;\r\n row.SaleAvailable = 0;\r\n row.DefaultStockAmount = 0;\r\n row.DefaultSumSaleAmount = 0;\r\n row.DefaultSumInventoryAmount = 0;\r\n row.DefaultSumReserveAmount = 0;\r\n row.DefaultSaleAvailable = 0;\r\n row.HasReferencedVoucherTo = false;\r\n row.State = RowState.New;\r\n row.Id = 0;\r\n row.Comment = `جایگزین کالای کد(${entity.GoodsCode}) عنوان (${entity.GoodsTitle})`;\r\n editableList.push(row);\r\n }\r\n SaleAvailable = 0;\r\n }\r\n });\r\n entity.Amount += RemainAmount;\r\n entity.MainAmount = entity.Amount * entity.GoodsUnitRatio;\r\n entity.StandardValue = entity.Amount * entity.GoodsUnitRatio;\r\n RemainAmount = 0;\r\n } else {\r\n RemainAmount = 0;\r\n }\r\n } else {\r\n RemainAmount = 0;\r\n }\r\n }\r\n }\r\n\r\n if (SaleAvailable > 0) {\r\n entity.StandardValue = Object.assign({}, entity).MainAmount;\r\n CurrentAmount =\r\n OrignalSaleAvailable - PrevAmount > 0 && entity.MainAmount >= OrignalSaleAvailable - PrevAmount\r\n ? OrignalSaleAvailable - PrevAmount\r\n : entity.MainAmount;\r\n RemainAmount = entity.MainAmount - CurrentAmount;\r\n entity.Amount = 0;\r\n entity.MainAmount =\r\n OrignalSaleAvailable - PrevAmount > 0 && entity.MainAmount >= OrignalSaleAvailable - PrevAmount\r\n ? OrignalSaleAvailable - PrevAmount\r\n : entity.MainAmount;\r\n entity.Amount = entity.MainAmount / entity.GoodsUnitRatio;\r\n PrevAmount += entity.MainAmount;\r\n while (RemainAmount > 0) {\r\n let GoodsFormulaDetail = this.goodsFormulaDetailList.find(\r\n (x) => x.GoodsId == entity.GoodsId && x.HeaderGoodsId == entity.BaseGoodsId\r\n );\r\n if (GoodsFormulaDetail != null) {\r\n var GoodsSimilar = GoodsFormulaDetail.GoodsSimilars;\r\n if (GoodsSimilar !== null && GoodsSimilar.length > 0) {\r\n GoodsSimilar.forEach((gs) => {\r\n var CurrentSimarValue = editableList.some((x) => x.GoodsId == gs.GoodsId) ? editableList?.getSumWithKey(\"MainAmount\") : 0;\r\n let gsRemainAmount = RemainAmount;\r\n if (gs.StandardAmount !== undefined) gsRemainAmount = (RemainAmount * gs.StandardAmount) / GoodsFormulaDetail.StandardAmount;\r\n SaleAvailable =\r\n _stockList.find((x) => x.WarehouseId === this.formGroup?.get(\"WarehouseId\")?.value && x.GoodsId === gs.GoodsId)\r\n .StockAmount - CurrentSimarValue;\r\n if (SaleAvailable > 0) {\r\n if (gsRemainAmount > SaleAvailable) CurrentAmount = SaleAvailable;\r\n else CurrentAmount = gsRemainAmount;\r\n gsRemainAmount = gsRemainAmount - CurrentAmount;\r\n RemainAmount = (gsRemainAmount * GoodsFormulaDetail.StandardAmount) / gs.StandardAmount;\r\n if (CurrentAmount > 0) {\r\n var row = {};\r\n }\r\n row.MainAmount = CurrentAmount;\r\n row.GoodsUnitRatio = entity.GoodsUnitRatio;\r\n row.IsGoods = entity.IsGoods;\r\n row.BaseAmount = entity.BaseAmount;\r\n row.Amount = row.MainAmount / row.GoodsUnitRatio;\r\n row.BaseGoodsId = entity.BaseGoodsId;\r\n row.GoodsId = gs.GoodsId;\r\n row.GoodsCode = gs.GoodsCode;\r\n row.GoodsTitle = gs.GoodsTitle;\r\n row.GoodsUnitId = gs.GoodsUnitId;\r\n row.GoodsUnitTitle = gs.UnitTitle;\r\n row.StandardValue = CurrentAmount;\r\n row.ReferenceCode = entity.ReferenceCode;\r\n row.ReferenceId = entity.ReferenceId;\r\n row.Comment = `جایگزین کالای کد(${entity.GoodsCode}) عنوان (${entity.GoodsTitle})`;\r\n editableList.push(row);\r\n }\r\n SaleAvailable = 0;\r\n });\r\n if (RemainAmount <= 0) break;\r\n }\r\n entity.Amount += RemainAmount;\r\n entity.MainAmount = entity.Amount * entity.GoodsUnitRatio;\r\n entity.StandardValue = entity.Amount * entity.GoodsUnitRatio;\r\n RemainAmount = 0;\r\n } else {\r\n entity.Amount += RemainAmount;\r\n entity.MainAmount = entity.Amount * entity.GoodsUnitRatio;\r\n entity.StandardValue = entity.Amount * entity.GoodsUnitRatio;\r\n RemainAmount = 0;\r\n }\r\n }\r\n } else {\r\n RemainAmount = 0;\r\n }\r\n PrevGoodsId = entity.GoodsId;\r\n });\r\n editableList.forEach((item) => {\r\n this.model?.InvVoucherDetailList?.push(item);\r\n });\r\n this.DelteZeroAmount();\r\n if (this.currentVoucherKind?.IncrementalKindCode == 2 && this.currentVoucherKind?.BasedOnBOM) this.SetInvVoucherGoodsSimilar();\r\n this.SetGoodsGroupBy();\r\n\r\n this.isFristReplaceGoodsSimilar = false;\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n this.getFailedHelper(error);\r\n }\r\n );\r\n }\r\n SetGoodsGroupBy() {\r\n let VoucherDetails: InvVoucherDetail[];\r\n if (this.currentVoucherKind?.IsGroupByWithGoods) {\r\n VoucherDetails = Object.assign([], this.detail.dataList);\r\n this.model.InvVoucherDetailList = [];\r\n }\r\n if (\r\n this.currentVoucherKind?.IsGroupByWithGoods &&\r\n !this.missetup.getboolean(\"INV\", \"IsGroupByWithGoods\") &&\r\n this.currentVoucherKind?.IncrementalKindCode !== IncrementalKind.Neutral\r\n ) {\r\n VoucherDetails.forEach((entity) => {\r\n if (\r\n !this.model?.InvVoucherDetailList?.some(\r\n (x) =>\r\n x.IsGoods === entity.IsGoods &&\r\n x.BaseGoodsId === entity.BaseGoodsId &&\r\n x.GoodsId === entity.GoodsId &&\r\n x.GoodsUnitId == entity.GoodsUnitId &&\r\n x.Comment === entity.Comment\r\n )\r\n ) {\r\n const detail = VoucherDetails?.filter(\r\n (x) =>\r\n x.IsGoods === entity.IsGoods &&\r\n x.BaseGoodsId === entity.BaseGoodsId &&\r\n x.GoodsId === entity.GoodsId &&\r\n x.GoodsUnitId == entity.GoodsUnitId &&\r\n x.Comment === entity.Comment\r\n );\r\n entity.Amount = detail?.getSumWithKey(\"Amount\");\r\n entity.BaseAmount = detail?.getSumWithKey(\"BaseAmount\");\r\n entity.Deduction = detail?.getSumWithKey(\"Deduction\");\r\n entity.DiscountAmount = detail?.getSumWithKey(\"DiscountAmount\");\r\n entity.DiscountRate = detail?.getSumWithKey(\"DiscountRate\");\r\n entity.RemainAmount = detail?.getSumWithKey(\"RemainAmount\");\r\n entity.RemainMainAmount = detail?.getSumWithKey(\"RemainMainAmount\");\r\n entity.Surplusage = detail?.getSumWithKey(\"Surplusage\");\r\n entity.Tax = detail?.getSumWithKey(\"Tax\");\r\n entity.UnitPrice = this.currentVoucherKind?.IncrementalKindCode == 2 ? 0 : detail?.getSumWithKey(\"UnitPrice\");\r\n entity.FirstOutAmount = this.currentVoucherKind?.IncrementalKindCode == 2 ? 0 : detail?.getSumWithKey(\"FirstOutAmount\");\r\n entity.PreRemainAmount = this.currentVoucherKind?.IncrementalKindCode == 2 ? 0 : detail?.getSumWithKey(\"PreRemainAmount\");\r\n this.model?.InvVoucherDetailList?.push(entity);\r\n }\r\n });\r\n }\r\n if (\r\n this.currentVoucherKind?.IsGroupByWithGoods &&\r\n this.missetup.getboolean(\"INV\", \"IsGroupByWithGoods\") &&\r\n this.currentVoucherKind?.IncrementalKindCode === IncrementalKind.Neutral\r\n ) {\r\n VoucherDetails.forEach((entity) => {\r\n if (\r\n !this.model?.InvVoucherDetailList?.some(\r\n (x) => x.IsGoods === entity.IsGoods && x.GoodsId === entity.GoodsId && x.GoodsUnitId == entity.GoodsUnitId && x.Comment === entity.Comment\r\n )\r\n ) {\r\n const detail = VoucherDetails?.filter(\r\n (x) => x.IsGoods === entity.IsGoods && x.GoodsId === entity.GoodsId && x.GoodsUnitId == entity.GoodsUnitId && x.Comment === entity.Comment\r\n );\r\n entity.Amount = detail?.getSumWithKey(\"Amount\");\r\n entity.BaseAmount = detail?.getSumWithKey(\"BaseAmount\");\r\n entity.Deduction = detail?.getSumWithKey(\"Deduction\");\r\n entity.DiscountAmount = detail?.getSumWithKey(\"DiscountAmount\");\r\n entity.DiscountRate = detail?.getSumWithKey(\"DiscountRate\");\r\n entity.RemainAmount = detail?.getSumWithKey(\"RemainAmount\");\r\n entity.RemainMainAmount = detail?.getSumWithKey(\"RemainMainAmount\");\r\n entity.Surplusage = detail?.getSumWithKey(\"Surplusage\");\r\n entity.Tax = detail?.getSumWithKey(\"Tax\");\r\n entity.UnitPrice = this.currentVoucherKind?.IncrementalKindCode == 2 ? 0 : detail?.getSumWithKey(\"UnitPrice\");\r\n entity.FirstOutAmount = this.currentVoucherKind?.IncrementalKindCode == 2 ? 0 : detail.getSumWithKey(\"FirstOutAmount\");\r\n entity.PreRemainAmount = this.currentVoucherKind?.IncrementalKindCode == 2 ? 0 : detail?.getSumWithKey(\"PreRemainAmount\");\r\n this.model?.InvVoucherDetailList?.push(entity);\r\n }\r\n });\r\n }\r\n if (this.currentVoucherKind?.IsGroupByWithGoods) this.detail.dataList = this.model?.InvVoucherDetailList;\r\n this.detail.setRowNumber();\r\n let model = Object.assign({}, this.filterEntity);\r\n if (this.model?.InvVoucherDetailList?.length > 1) model[\"VoucherNo\"] = this.model?.InvVoucherDetailList[1].ReferenceCode;\r\n if (this.currentVoucherKind?.HasWarehouseTransfer) {\r\n model.WarehouseTransferId = this.filterEntity.WarehouseId;\r\n model.WarehouseId = this.filterEntity.WarehouseTransferId;\r\n }\r\n this.httpCommonService\r\n .create(\"InvVoucherHeader/GetVoucherByVoucherKind\", model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n if (x && x?.length > 0) {\r\n const voucher = x[0];\r\n this.setValue(\"WarehouseId\", voucher.WarehouseId);\r\n this.setValue(\"VoucherDate\", voucher.VoucherDate);\r\n this.setValue(\"DetailLedgerId\", voucher.DetailLedgerId);\r\n this.isloading = false;\r\n this.model.InvVoucherDetailList = this.model.InvVoucherDetailList.filter((f) => f.Id != -1);\r\n this.onValueChanges(this.model.InvVoucherDetailList[0]);\r\n }\r\n },\r\n (error) => {}\r\n );\r\n console.log();\r\n }\r\n SetInvVoucherGoodsSimilar() {\r\n if (!this.model.InvVoucherGoodsSimilarRelationList) this.model.InvVoucherGoodsSimilarRelationList = [];\r\n this.model?.InvVoucherDetailList?.forEach((item) => {\r\n if (\r\n !this.model.InvVoucherGoodsSimilarRelationList.some(\r\n (x) => x.SimilarGoodsId == item.GoodsId && x.GoodsId == (item.BaseGoodsId !== undefined ? item.BaseGoodsId : item.GoodsId)\r\n )\r\n ) {\r\n if (item.StandardValue == 0 && item.MainAmount > 0) item.StandardValue = item.MainAmount;\r\n if (item.StandardValue > 0) {\r\n var entity = {};\r\n var item2 = Object.assign({}, item);\r\n entity.InvVoucherHeaderId = this.model.Id ?? 0;\r\n entity.GoodsId = item2.BaseGoodsId !== undefined ? item2.BaseGoodsId : item2.GoodsId;\r\n entity.SimilarGoodsId = item2.GoodsId;\r\n entity.StandardAmount = item2.StandardValue;\r\n this.model.InvVoucherGoodsSimilarRelationList.push(entity);\r\n }\r\n } else {\r\n var similar = this.model.InvVoucherGoodsSimilarRelationList.find(\r\n (x) => x.SimilarGoodsId == item.GoodsId && x.GoodsId == (item.BaseGoodsId !== undefined ? item.BaseGoodsId : item.GoodsId)\r\n );\r\n if (similar != null && similar.StandardAmount != item.StandardValue && item.StandardValue != 0) {\r\n similar.StandardAmount = item.StandardValue;\r\n }\r\n }\r\n });\r\n }\r\n PriceRefresh() {\r\n if (!this.model.InvVoucherDetailList || this.model?.InvVoucherDetailList?.length <= 0) return;\r\n this.beforupdate();\r\n this.httpCommonService\r\n .create(\"InvVoucherHeader/GetGoodsBOMPrice\", this.getDataFromFormGroup())\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: InvVoucherHeader) => {\r\n this.model = data;\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this.selectorService.setDataStateChange(\"DetailLedgerId\", undefined);\r\n this.currentVoucherKind = undefined;\r\n this.StockInfoColumns = undefined;\r\n this.InvVoucherDetailColumns = undefined;\r\n this.rightSideColumns = undefined;\r\n this.bodyColumns = undefined;\r\n this.subLedgerColumns = undefined;\r\n this.DiscountColumns = undefined;\r\n this.leftSideColumns = undefined;\r\n this.stockList = undefined;\r\n this.filterdDataList = undefined;\r\n this.goodsFormulaDetailList = undefined;\r\n this.ReportGoodsFormulaDetailList = undefined;\r\n this.CurrentGoodsList = undefined;\r\n this.reportList = undefined;\r\n this.isFristReplaceGoodsSimilar = undefined;\r\n this.footerColumns = undefined;\r\n this.transportColumns = undefined;\r\n }\r\n loadVoucherList() {\r\n this.inputEditorform = InvVoucherModalListComponent;\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n label: this.label,\r\n currentVoucherKindId: this.currentVoucherKind?.Id,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (model) => {\r\n if (model) {\r\n if (this.detail) this.detail.cancelHandler();\r\n this.currentrow = model;\r\n this.id = this.currentrow.Id;\r\n await this.ngOnInit();\r\n }\r\n });\r\n }\r\n\r\n changeReport(reprtName: string) {\r\n super.changeReport(reprtName);\r\n this.currentReport = undefined;\r\n }\r\n onReferenceVoucherChange(entity: any) {\r\n if (this.currentVoucherKind?.HasWarehouseTransfer && !this.formGroup?.get(\"WarehouseTransferId\")?.value) {\r\n this.model.WarehouseTransferId = entity.WarehouseId;\r\n this.model.WarehouseTransferCode = entity.WarehouseCode;\r\n this.model.WarehouseTransferTitle = entity.WarehouseTitle;\r\n this.setValue(\"WarehouseTransferId\", this.model.WarehouseTransferId);\r\n this.setValue(\"WarehouseTransferCode\", this.model.WarehouseTransferCode);\r\n this.setValue(\"WarehouseTransferTitle\", this.model.WarehouseTransferTitle);\r\n } else if (\r\n (!this.formGroup?.get(\"DetailLedgerId\")?.value || this.currentVoucherKind?.NoChangeRefereWarehouseDetailLedger === true) &&\r\n entity.DetailLedgerId\r\n ) {\r\n this.model.DetailLedgerId = entity.DetailLedgerId;\r\n this.model.DetailLedgerCode = entity.DetailLedgerCode;\r\n this.model.DetailLedgerTitle = entity.DetailLedgerTitle;\r\n this.setValue(\"DetailLedgerId\", this.model.DetailLedgerId);\r\n this.setValue(\"DetailLedgerCode\", this.model.DetailLedgerCode);\r\n this.setValue(\"DetailLedgerTitle\", this.model.DetailLedgerTitle);\r\n }\r\n\r\n if (\r\n (this.currentVoucherKind?.HasWarehouseTransfer && this.currentVoucherKind?.IncrementalKindCode == IncrementalKind.Increment) ||\r\n (this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseInvoice &&\r\n this.currentVoucherKind?.IncrementalKindCode == IncrementalKind.Debtor)\r\n ) {\r\n this.model.VoucherDate = entity.VoucherDate;\r\n this.setValue(\"VoucherDate\", this.model.VoucherDate);\r\n }\r\n if (\r\n this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseInvoice &&\r\n this.currentVoucherKind?.IncrementalKindCode == IncrementalKind.Debtor &&\r\n (!this.formGroup?.get(\"WarehouseId\")?.value || this.currentVoucherKind?.NoChangeRefereWarehouseDetailLedger === true)\r\n ) {\r\n this.model.WarehouseId = entity.WarehouseId;\r\n this.model.WarehouseCode = entity.WarehouseCode;\r\n this.model.WarehouseTitle = entity.WarehouseTitle;\r\n this.setValue(\"WarehouseId\", this.model.WarehouseId);\r\n this.setValue(\"WarehouseCode\", this.model.WarehouseCode);\r\n this.setValue(\"WarehouseTitle\", this.model.WarehouseTitle);\r\n }\r\n }\r\n onvalueChangeWithName($event) {\r\n if ($event && $event?.name === \"TotalDiscount\" && $event.value) {\r\n this.model.InvVoucherDetailList.forEach((x) => {\r\n x.DiscountRate = $event.value;\r\n this.detail?._setChanges(x);\r\n });\r\n }\r\n this.setSummery();\r\n this.cd.markForCheck();\r\n }\r\n}\r\n"," 0\"\r\n [apiName]=\"apiName\"\r\n [group]=\"formGroup\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [model]=\"model\"\r\n [columns]=\"columns\"\r\n [defaultHeight]=\"35\"\r\n [isShowModal]=\"false\"\r\n [submitButtonDisabled]=\"submitButtonDisabled()\"\r\n [erroremessage]=\"erroremessage\"\r\n [hasDefault]=\"false\"\r\n [filterLookUp]=\"filterLookUp\"\r\n (valueChangeByApiName)=\"onChange($event)\"\r\n (cancelChange)=\"cancel()\"\r\n (submitChange)=\"save()\">\r\n \r\n
= 2\">\r\n \r\n \r\n
\r\n
= 3\">\r\n \r\n \r\n
\r\n
= 4\">\r\n \r\n \r\n
\r\n
= 5\">\r\n \r\n \r\n
\r\n
\r\n \r\n 0\">\r\n \r\n \r\n \r\n
\r\n
\r\n 0\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [columns]=\"StockInfoColumns\"\r\n [(dataList)]=\"filterdDataList\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [groupable]=\"false\"\r\n [filtering]=\"false\"\r\n [hideToolber]=\"true\">\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n = 2 || isNewRow\">\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n 2 || isNewRow\">\r\n \r\n 1\">\r\n \r\n \r\n \r\n \r\n \r\n = 0 && !isNewRow\"\r\n icon=\"icon-content_copy-o\"\r\n class=\"btnstyle\"\r\n tooltip=\"معطوف\">\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { EntityBase, GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { IncrementalKind, InvStatusKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherFormComponent } from \"src/app/backoffice/acc/accvoucher/accvoucher-form/accvoucher-form.component\";\r\nimport { InvVoucherHeader } from \"../../models/inv-voucher-header.model\";\r\nimport { ReceivedFromRahkaranFormComponent } from \"../../received-from-rahkaran/received-from-rahkaran-form.component\";\r\nimport { InvVoucherDetailFilterComponent } from \"../inv-voucher-detail-filter/inv-voucher-detail-filter.component\";\r\nimport { InvVoucherHeaderImportExcelFormComponent } from \"../inv-voucher-header-import-excel/inv-voucher-header-import-excel-form.component\";\r\nimport { InvVoucherFormComponent } from \"../invvoucher-form/invvoucher-form.component\";\r\nimport { ReferenceVoucherListComponent } from \"../reference-voucher-list/reference-voucher-list.component\";\r\n\r\n@Component({\r\n selector: \"ngx-invvoucher-list\",\r\n templateUrl: \"./invvoucher-list.component.html\",\r\n styleUrls: [\"./invvoucher-list.component.scss\"],\r\n})\r\nexport class InvVoucherListComponent extends BaseListComponent {\r\n filterInfo: NameValue[] = [];\r\n actions: EntityListAction[];\r\n filters: GridFilter[];\r\n unSortableFilterable: string[] = [];\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n constructor(private lookupservice: LookupService, private _tabsservice: TabularService, private splashFormService: SplashFormService) {\r\n super();\r\n this.inputEditorform = InvVoucherFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n get currentFiscalYear() {\r\n return this.accountService.authService.currentFiscalYear;\r\n }\r\n id: any;\r\n ngOnInit() {\r\n this.unSortableFilterable.push(\"RemainValue\");\r\n this.apiName = \"InvVoucherHeader/GetWithCustomFilter\";\r\n this.label = \"فهرست اسناد\";\r\n this.areaName = \"Inventory\";\r\n this.setactions();\r\n if (this.currentFiscalYear) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: this.currentFiscalYear?.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: x.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n }\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.filterInfo = null;\r\n this.actions = null;\r\n }\r\n createAccVoucher(gridFilter: GridFilter[]) {\r\n this.splashFormService.openDialog(\"\", \"در حال صدور سند حسابداری\");\r\n this.httpCommonService\r\n .create(this.apiName.split(\"/\")[0] + \"/CreateAccVoucher\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"اسناد با موفقیت صادر شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در صدور اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n deleteAccVoucher(gridFilter: GridFilter[]) {\r\n this.splashFormService.openDialog(\"\", \"در حال حذف سند حسابداری\");\r\n this.httpCommonService\r\n .create(this.apiName.split(\"/\")[0] + \"/DeleteAccVoucher\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"اسناد با موفقیت حذف شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در حذف اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: InvVoucherHeader,\r\n onRowsSelected: InvVoucherHeader[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n if (onRowSelected && (!onRowsSelected || onRowsSelected.length <= 0)) onRowsSelected = [onRowSelected];\r\n let InvVoucherHeaderIds: number[];\r\n ///نمایش سند حسابداری\r\n if (action.name === \"ViewAccVoucher\") {\r\n if (onRowSelected) {\r\n if (!onRowSelected.AccVoucherFixNumber) {\r\n this.sts.showDialog(\"سندحسابداری صادر نشده است.\", \"خطا\");\r\n return;\r\n }\r\n this.httpCommonService\r\n .getItem(\"InvVoucherHeader/ViewAccVoucher\", onRowsSelected.length > 0 ? onRowsSelected[0].Id : onRowSelected.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n var datatrasfer: Datatransfer = {};\r\n datatrasfer.apiName = \"AccVoucherHeader\";\r\n datatrasfer.label = \"صدور سند حسابداری\";\r\n datatrasfer.areaName = \"Accounting\";\r\n datatrasfer.currentrow = x;\r\n const menu = {\r\n title: `سند حسابداری-(نمایش)`,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: AccVoucherFormComponent,\r\n data: [\r\n { provide: EntityBase, useValue: x },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: x[\"\"] } },\r\n ],\r\n };\r\n this._tabsservice.open(menu);\r\n },\r\n (error) => this.sts.showDialog(`خطا در نمایش سند:${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n }\r\n ///سند حسابداری\r\n if (action.name === \"CreateAccVoucher\" || action.name === \"DeleteAccVoucher\") {\r\n if (\r\n onRowSelected &&\r\n onRowSelected.HasJournalVoucher &&\r\n ((onRowSelected.IncrementalKindCode === IncrementalKind.Decrement && onRowSelected.StatusKindCode === InvStatusKind.Calculated) ||\r\n (onRowSelected.IncrementalKindCode !== IncrementalKind.Neutral && onRowSelected.StatusKindCode === InvStatusKind.Confirmed))\r\n ) {\r\n if (!InvVoucherHeaderIds) InvVoucherHeaderIds = [];\r\n if (\r\n action.name !== \"DeleteAccVoucher\" &&\r\n action.name === \"CreateAccVoucher\" &&\r\n onRowSelected.IncrementalKindCode === IncrementalKind.Decrement &&\r\n onRowSelected.StatusKindCode !== InvStatusKind.Calculated\r\n ) {\r\n this.sts.showDialog(\"اسناد ریالی نشده است.\", \"\");\r\n return;\r\n }\r\n InvVoucherHeaderIds.push(onRowSelected.Id);\r\n }\r\n if (onRowsSelected && onRowsSelected.length > 0) {\r\n if (\r\n onRowsSelected.some(\r\n (s) =>\r\n action.name === \"CreateAccVoucher\" &&\r\n s.IncrementalKindCode === IncrementalKind.Decrement &&\r\n s.StatusKindCode !== InvStatusKind.Calculated\r\n )\r\n ) {\r\n this.sts.showDialog(\"اسناد ریالی نشده است.\", \"\");\r\n return;\r\n }\r\n onRowsSelected.forEach((x) => {\r\n if (x) {\r\n if (!InvVoucherHeaderIds) InvVoucherHeaderIds = [];\r\n if (\r\n !InvVoucherHeaderIds.some((id) => id === x.Id) &&\r\n x.HasJournalVoucher &&\r\n ((action.name === \"CreateAccVoucher\" &&\r\n ((x.IncrementalKindCode === IncrementalKind.Decrement && x.StatusKindCode === InvStatusKind.Calculated) ||\r\n (x.IncrementalKindCode !== IncrementalKind.Neutral &&\r\n (x.StatusKindCode === InvStatusKind.Confirmed || x.StatusKindCode === InvStatusKind.Calculated)))) ||\r\n (action.name === \"DeleteAccVoucher\" && x.Id))\r\n )\r\n InvVoucherHeaderIds.push(x.Id);\r\n }\r\n });\r\n }\r\n if (!isAllSelected && !InvVoucherHeaderIds.some((x) => 1 === 1)) {\r\n this.sts.showDialog(\"اسناد تائید نشده است.\", \"\");\r\n return;\r\n }\r\n let filter: GridFilter = {\r\n Type: \"F\",\r\n Filed: \"InvVoucherHeaderIds\",\r\n Value: InvVoucherHeaderIds,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n };\r\n if (InvVoucherHeaderIds && InvVoucherHeaderIds.length > 0) gridFilter.push(filter);\r\n\r\n if (action.name === \"CreateAccVoucher\") {\r\n if (gridFilter.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا اسناد انتخاب شده قابل صدور سند حسابداری نیست\", \"خطا\");\r\n return;\r\n }\r\n this.sts.showDialog(\"آیا از صدور سند حسابداری اطمینان دارید؟\", \"صدور سند\", DialogType.confirm, () => this.createAccVoucher(gridFilter));\r\n }\r\n if (action.name === \"DeleteAccVoucher\") {\r\n if (gridFilter.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا اسناد انتخاب شده قابل حذف نیست\", \"خطا\");\r\n return;\r\n }\r\n this.sts.showDialog(\"آیا از حذف سند حسابداری اطمینان دارید؟\", \"حذف سند\", DialogType.confirm, () => this.deleteAccVoucher(gridFilter));\r\n }\r\n }\r\n ///تایید اسناد\r\n if (action.name === \"VoucherConFirmed\" && onRowsSelected.length > 0) {\r\n onRowsSelected = onRowsSelected.filter((x) => x.StatusKindCode === InvStatusKind.Registered);\r\n if (!onRowsSelected || onRowsSelected.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا اسناد انتخاب شده قابل تایید نیست\", \"خطا\");\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"INV\", \"StatusKind\", InvStatusKind.Confirmed)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((sk) => {\r\n if (sk) {\r\n onRowsSelected.forEach((x) => {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n });\r\n this.splashFormService.openDialog(\"\", \"در حال تایید اسناد\");\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName.split(\"/\")[0], onRowsSelected)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"اسناد با موفقیت تایید شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در تایید اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n ///برگشت از تایید اسناد\r\n if (action.name === \"VoucherDeConfirm\" && onRowsSelected.length > 0) {\r\n onRowsSelected = onRowsSelected.filter(\r\n (x) => x.StatusKindCode === InvStatusKind.Confirmed && !x.HasReferencedVoucherTo && !x.IsTakingOfInventory\r\n );\r\n if (!onRowsSelected || onRowsSelected.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا وضعیت اسناد انتخاب شده تایید نیست یا معطوف دار\", \"خطا\");\r\n return;\r\n }\r\n const inValid_InventoryList = onRowsSelected.filter((x) => x.ReferenceVoucherStatusKindCode === InvStatusKind.Calculated);\r\n if (inValid_InventoryList && inValid_InventoryList.length > 0) {\r\n let err: string = ``;\r\n inValid_InventoryList.forEach((element) => {\r\n err += element.VoucherNo + (inValid_InventoryList.length > 1 ? \" ,\" : \" \");\r\n });\r\n this.sts.showDialog(`شماره سندهای ${err} دارای مبنا ریالی شده می باشند`, \"خطا\");\r\n return;\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"INV\", \"StatusKind\", InvStatusKind.Registered)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((sk) => {\r\n if (sk) {\r\n onRowsSelected.forEach((x) => {\r\n if (!x.HasReferencedVoucherTo) {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n }\r\n });\r\n this.splashFormService.openDialog(\"\", \"در حال برگشت از تایید اسناد\");\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName.split(\"/\")[0], onRowsSelected)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\"اسناد با موفقیت برگشت از تایید شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در برگشت از تایید اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n ///اختتام اسناد\r\n if (action.name === \"VoucherClosing\" && onRowsSelected.length > 0) {\r\n let isCancelled: boolean = false;\r\n let onRowsSelected1 = onRowsSelected.filter((x) => x.StatusKindCode === InvStatusKind.Closing);\r\n if (!onRowsSelected1 || onRowsSelected1.length <= 0) {\r\n onRowsSelected1 = onRowsSelected.filter((x) => x.StatusKindCode === InvStatusKind.Confirmed);\r\n isCancelled = onRowsSelected1 && onRowsSelected1.length > 0;\r\n }\r\n if (!onRowsSelected1 || onRowsSelected1.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا اسناد انتخاب شده قابل اختتام نیست\", \"خطا\");\r\n return;\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"INV\", \"StatusKind\", !isCancelled ? InvStatusKind.Confirmed : InvStatusKind.Closing)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((sk) => {\r\n if (sk) {\r\n onRowsSelected1.forEach((x) => {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n });\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName.split(\"/\")[0], onRowsSelected1)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n if (sk.Code === InvStatusKind.Confirmed) this.sts.showDialog(\"اسناد با موفقیت برگشت اختتام شد.\", \"\");\r\n else this.sts.showDialog(\"اسناد با موفقیت مختومه شد.\", \"\");\r\n },\r\n (error) => this.sts.showDialog(`خطا در اختتام اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n });\r\n }\r\n\r\n ///ابطال /برگشت از ابطال\r\n if (action.name === \"VoucherCancelled\" && onRowsSelected.length > 0) {\r\n let isCancelled: boolean = false;\r\n let onRowsSelected1 = onRowsSelected.filter(x => x.StatusKindCode === InvStatusKind.Registered);\r\n if (!onRowsSelected || onRowsSelected?.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا وضعیت اسناد انتخاب شده تایید نیست\", \"خطا\");\r\n }\r\n else{\r\n if(onRowsSelected.some(x => x.StatusKindCode >= InvStatusKind.Confirmed)) {\r\n this.sts.showDialog(\"فقط اسناد در وضعبت ثبت اولیه قابل ابطال هستند \", \"خطا\");\r\n return;\r\n }\r\n }\r\n \r\n this.lookupservice.getLookupbyCode(\"INV\", \"StatusKind\", isCancelled ? InvStatusKind.Registered : InvStatusKind.Cancelled)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((sk) => {\r\n if (sk) {\r\n onRowsSelected1.forEach((x) => {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n });\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName.split(\"/\")[0], onRowsSelected1)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n if (isCancelled) this.sts.showDialog(\"اسناد با موفقیت برگشت از ابطال شد.\", \"\");\r\n else this.sts.showDialog(\"اسناد با موفقیت ابطال شد.\", \"\");\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n },\r\n (error) => this.sts.showDialog(`خطا در ابطال اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n });\r\n }\r\n if (!onRowSelected && onRowsSelected && onRowsSelected.length > 0) onRowSelected = onRowsSelected[0];\r\n ///سند مبنا\r\n if (action.name === \"InvVoucherBase\" && onRowSelected != null) {\r\n this.dialogService\r\n .open(\r\n ReferenceVoucherListComponent,\r\n {\r\n VoucherId: onRowsSelected.length > 0 ? onRowsSelected[0].Id : onRowSelected.Id,\r\n apiName: action.apiName,\r\n areaName: action.areaName,\r\n label: \"سند مبنا\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {});\r\n }\r\n ///سند معطوف\r\n if (action.name === \"InvRefrenceTo\" && onRowSelected != null) {\r\n this.dialogService\r\n .open(\r\n ReferenceVoucherListComponent,\r\n {\r\n VoucherId: onRowsSelected.length > 0 ? onRowsSelected[0].Id : onRowSelected.Id,\r\n apiName: action.apiName,\r\n areaName: action.areaName,\r\n label: \"سند معطوف\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {});\r\n }\r\n ///فیلتر اقلام سند\r\n if (action.name === \"InvVoucherDetailFilter\") {\r\n this.dialogService\r\n .open(\r\n InvVoucherDetailFilterComponent,\r\n {\r\n currentrow: null,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {\r\n if (model && model.length > 0) this.filters = model;\r\n });\r\n }\r\n ///حذف فیلتر افلام\r\n if (action.name === \"InvVoucherDetailFilterRemove\") {\r\n this.filters = [];\r\n }\r\n ///دریافت از راهکاران\r\n if (action.name === \"ReceivedFromRahkaran\") {\r\n this.dialogService\r\n .open(\r\n ReceivedFromRahkaranFormComponent,\r\n {\r\n currentrow: null,\r\n apiName: action.apiName,\r\n areaName: this.areaName,\r\n label: action.displayName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {});\r\n }\r\n ///ارسال به راهکاران\r\n if (action.name === \"SendToRahkaran\") {\r\n if (!InvVoucherHeaderIds) InvVoucherHeaderIds = [];\r\n if (onRowSelected?.Id) InvVoucherHeaderIds.push(onRowSelected.Id);\r\n if (onRowsSelected && onRowsSelected.length > 0) {\r\n if (onRowsSelected.some((s) => s.StatusKindCode === InvStatusKind.Registered || s.StatusKindCode === InvStatusKind.Cancelled)) {\r\n this.sts.showDialog(\"اسناد تایید نشده است.\", \"\");\r\n return;\r\n }\r\n onRowsSelected.forEach((x) => {\r\n if (x) {\r\n if (!InvVoucherHeaderIds) InvVoucherHeaderIds = [];\r\n InvVoucherHeaderIds.push(x.Id);\r\n }\r\n });\r\n }\r\n if (!isAllSelected && !InvVoucherHeaderIds.some((x) => 1 === 1)) {\r\n this.sts.showDialog(\"اسناد تائید نشده است.\", \"\");\r\n return;\r\n }\r\n let filter: GridFilter = {\r\n Type: \"F\",\r\n Filed: \"InvVoucherHeaderIds\",\r\n Value: InvVoucherHeaderIds,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n };\r\n if (InvVoucherHeaderIds && InvVoucherHeaderIds.length > 0) gridFilter.push(filter);\r\n\r\n this.splashFormService.openDialog(\"\", \"در حال ارسال به راهکاران\");\r\n this.httpCommonService\r\n .create(action.apiName, gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"ارسال به راهکاران با موفقیت صادر شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در ارسال به راهکاران${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n ///حذف سند انبار روزانه\r\n if (action.name === \"DeleteInvDailyVoucher\" && onRowSelected.SendToInvDailyVoucher === true) {\r\n this.splashFormService.openDialog(\"\", \"در حال حذف سند انبار روزانه\");\r\n this.httpCommonService\r\n .create(action.apiName, onRowSelected)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"سند انبار روزانه با موفقیت حذف شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(` خطا در حذف سند انبار روزانه ${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n } else if (action.name === \"DeleteInvDailyVoucher\" && onRowSelected.SendToInvDailyVoucher !== true)\r\n this.sts.showDialog(\"سند از نوع ارسال به انبار روزانه نمی باشد.\", \"\");\r\n\r\n ///دریافت از اکسل\r\n if (action.name === \"ImportFromExcel\") {\r\n var gridInfo = this.getGridInfo();\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n gridInfo: gridInfo,\r\n label: action.displayName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n });\r\n }\r\n\r\n return;\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"CreateAccVoucher\",\r\n disabled: false,\r\n displayName: \"صدور سند حسابداری\",\r\n iconName: \"icon-create_new_folder-o\",\r\n apiName: \"InvVoucherHeader/CreateAccVoucher\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"DeleteAccVoucher\",\r\n disabled: false,\r\n displayName: \"حذف سند حسابداری\",\r\n iconName: \"icon-delete-sweep-outline\",\r\n apiName: \"InvVoucherHeader/DeleteAccVoucher\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"ViewAccVoucher\",\r\n disabled: false,\r\n displayName: \"نمایش سند حسابداری\",\r\n iconName: \"icon-table_view-f\",\r\n apiName: \"InvVoucherHeader/ViewAccVoucher\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherCancelled\",\r\n disabled: false,\r\n displayName: \"ابطال/برگشت از ابطال سند\",\r\n iconName: \"icon-blocked\",\r\n apiName: \"InvVoucherHeader/VoucherCancelled\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherConFirmed\",\r\n disabled: false,\r\n displayName: \"تائید سند\",\r\n iconName: \"icon-folder-open-outline\",\r\n apiName: \"InvVoucherHeader/VoucherConFirmed\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherDeConfirm\",\r\n disabled: false,\r\n displayName: \"برگشت از تائید\",\r\n iconName: \"icon-folder-open\",\r\n apiName: \"InvVoucherHeader/VoucherDeConfirm\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherClosing\",\r\n disabled: false,\r\n displayName: \"اختتام/برگشت از اختتام اسناد\",\r\n iconName: \"icon-package-variant-closed\",\r\n apiName: \"InvVoucherHeader/VoucherClosing\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"InvReportPrint\",\r\n disabled: false,\r\n displayName: \"چاپ سند\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InvVoucherHeader/InvReportPrint\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"InvRefrenceTo\",\r\n disabled: false,\r\n displayName: \"سند معطوف\",\r\n iconName: \"icon-content_copy-o\",\r\n apiName: \"InvVoucherHeader/GetInvReferenceToVouchersByVoucherId\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"InvVoucherBase\",\r\n disabled: false,\r\n displayName: \"سند مبنا\",\r\n iconName: \"icon-folder-open-outline\",\r\n apiName: \"InvVoucherHeader/GetInvReferenceVouchersByVoucherId\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"InvVoucherDetailFilter\",\r\n disabled: false,\r\n displayName: \"فیلتر اقلام\",\r\n iconName: \"icon-filter-variant-plus\",\r\n apiName: \"InvVoucherHeader\",\r\n areaName: \"Inventory\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"InvVoucherDetailFilterRemove\",\r\n disabled: false,\r\n displayName: \"حذف فیلتر اقلام\",\r\n iconName: \"icon-filter-variant-minus\",\r\n apiName: \"InvVoucherHeader\",\r\n areaName: \"Inventory\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"ReceivedFromRahkaran\",\r\n disabled: false,\r\n displayName: \"دریافت از راهکاران\",\r\n iconName: \"icon-receiveandpay\",\r\n apiName: \"InvVoucherHeader/ReceivedFromRahkaran\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"SendToRahkaran\",\r\n disabled: false,\r\n displayName: \"ارسال به راهکاران\",\r\n iconName: \"icon-send-F\",\r\n apiName: \"InvVoucherHeader/SendToRahkaran\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"DeleteInvDailyVoucher\",\r\n disabled: false,\r\n displayName: \"حذف سند انبار روزانه\",\r\n iconName: \"icon-delete-o\",\r\n apiName: \"InvVoucherHeader/DeleteInvDailyVoucher\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"ImportFromExcel\",\r\n disabled: false,\r\n displayName: \"ورودی اکسل\",\r\n iconName: \"icon-file-excel-o\",\r\n apiName: \"InvVoucherHeader/ImportExcel\",\r\n areaName: \"Inventory\",\r\n Form_Component: InvVoucherHeaderImportExcelFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n let Ids: number[] = [];\r\n\r\n this.grid.selectedRows.forEach((x) => Ids.push(x.Id));\r\n let filter = this.grid.getGridFilter();\r\n if (Ids.length > 0)\r\n filter.push({\r\n Filed: \"Ids\",\r\n Value: Ids,\r\n Operator: filter[0].Operator,\r\n Skip: filter[0].Skip,\r\n Take: filter[0].Take,\r\n Type: \"F\",\r\n Logic: filter[0].Logic,\r\n });\r\n return new Promise((resolve, reject) => {\r\n resolve({ GridInfo: this.getGridInfo(), Filters: filter });\r\n });\r\n }\r\n\r\n getGridInfo(): GridColumnInfoDetail[] {\r\n let columns: GridColumnInfoDetail[] = [];\r\n columns.push({ hidden: false, name: \"VoucherNo\", orderindex: 0, title: \"شماره سند\" });\r\n columns.push({ hidden: false, name: \"ShamsiVoucherDate\", orderindex: 1, title: \"تاریخ سند\" });\r\n columns.push({ hidden: false, name: \"VoucherKindCode\", orderindex: 2, title: \"کد نوع سند\" });\r\n columns.push({ hidden: false, name: \"WarehouseCode\", orderindex: 3, title: \"کد انبار\" });\r\n columns.push({ hidden: false, name: \"DetailLedgerCode\", orderindex: 3, title: \"کد طرف مقابل\" });\r\n columns.push({ hidden: false, name: \"RowNumber\", orderindex: 5, title: \"ردیف\" });\r\n columns.push({ hidden: false, name: \"Comment\", orderindex: 6, title: \"شرح قلم\" });\r\n columns.push({ hidden: false, name: \"GoodsCode\", orderindex: 7, title: \"کد کالا\" });\r\n columns.push({ hidden: false, name: \"GoodsUnitCode\", orderindex: 8, title: \"کد واحد سنجش\" });\r\n columns.push({ hidden: false, name: \"Amount\", orderindex: 10, title: \"مقدار\" });\r\n columns.push({ hidden: false, name: \"MainAmount\", orderindex: 11, title: \"مقدار اصلی\" });\r\n columns.push({ hidden: false, name: \"UnitPrice\", orderindex: 12, title: \"نرخ\" });\r\n columns.push({ hidden: false, name: \"GoodsUnitRatio\", orderindex: 13, title: \"نسبت به واحد اصلی واحد شنجش\" });\r\n columns.push({ hidden: false, name: \"Surplusage\", orderindex: 14, title: \"اضافات\" });\r\n columns.push({ hidden: false, name: \"Deduction\", orderindex: 15, title: \"کسور\" });\r\n columns.push({ hidden: false, name: \"DiscountRate\", orderindex: 16, title: \"درصد تخفیف\" });\r\n columns.push({ hidden: false, name: \"DiscountAmount\", orderindex: 17, title: \"مبلغ تخفیف\" });\r\n columns.push({ hidden: false, name: \"Tax\", orderindex: 18, title: \"مالیات\" });\r\n\r\n return columns;\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { DropDownListModule } from \"@progress/kendo-angular-dropdowns\";\r\nimport { PopupModule } from \"@progress/kendo-angular-popup\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { ThemeModule } from \"projects/sepidz-web-framework-shell/src/lib/@theme/theme.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { TabularModule } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.module\";\r\nimport { ReceivedFromRahkaranFormComponent } from \"../received-from-rahkaran/received-from-rahkaran-form.component\";\r\nimport { InvSubledgerDetailLedgerFormComponent } from \"./inv-subledger-detailLedger/inv-subledger-detailLedger-form.component\";\r\nimport { InvVoucherDetailFilterComponent } from \"./inv-voucher-detail-filter/inv-voucher-detail-filter.component\";\r\nimport { InvVoucherHeaderImportExcelFormComponent } from \"./inv-voucher-header-import-excel/inv-voucher-header-import-excel-form.component\";\r\nimport { InvVoucherModalListComponent } from \"./inv-voucher-modal-list/inv-voucher-modal-list.component\";\r\nimport { InvVoucherDetailComponent } from \"./invvoucher-detail/invvoucher-detail.component\";\r\nimport { InvVoucherFormComponent } from \"./invvoucher-form/invvoucher-form.component\";\r\nimport { InvVoucherListComponent } from \"./invvoucher-list/invvoucher-list.component\";\r\nimport { ReferenceVoucherListComponent } from \"./reference-voucher-list/reference-voucher-list.component\";\r\n\r\nconst components = [\r\n InvVoucherListComponent,\r\n InvVoucherFormComponent,\r\n InvVoucherDetailComponent,\r\n ReferenceVoucherListComponent,\r\n InvVoucherModalListComponent,\r\n InvVoucherDetailFilterComponent,\r\n InvSubledgerDetailLedgerFormComponent,\r\n ReceivedFromRahkaranFormComponent,\r\n InvVoucherHeaderImportExcelFormComponent,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, ThemeModule, TabularModule, DropDownListModule, PopupModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class InvvoucherModule {}\r\n","import { ChangeDetectorRef, Component, Input } from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { Observable } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvVoucherHeader } from \"../../models/inv-voucher-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-reference-voucher-list\",\r\n templateUrl: \"./reference-voucher-list.component.html\",\r\n styleUrls: [\"./reference-voucher-list.component.scss\"],\r\n})\r\nexport class ReferenceVoucherListComponent extends BaseFormComponent {\r\n @Input() VoucherId: number;\r\n dataList: any[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.getDataList();\r\n this.setColumns();\r\n this.formGroup = new UntypedFormGroup({});\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.dataList = undefined;\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n getDataList() {\r\n this.httpCommonService\r\n .get(this.apiName + \"/?id=\" + this.VoucherId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.dataList = data as [];\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n async setColumns() {\r\n this.orignalColumns = [];\r\n this.columns = [\r\n {\r\n name: \"GoodsId\",\r\n modelName: \"GoodsId\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RowNumber\",\r\n modelName: \"RowNumber\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"ردیف\",\r\n order: 1,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"VoucherKindCode\",\r\n modelName: \"VoucherKindCode\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"کد نوع سند\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"VoucherKindTitle\",\r\n modelName: \"VoucherKindTitle\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"نوع سند\",\r\n order: 3,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"VoucherNo\",\r\n modelName: \"VoucherNo\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"شماره سند\",\r\n order: 4,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"ShamsiVoucherDate\",\r\n modelName: \"ShamsiVoucherDate\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"تاریخ سند\",\r\n order: 5,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"GoodsCode\",\r\n modelName: \"GoodsCode\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"َکد کالا\",\r\n order: 6,\r\n textType: \"text\",\r\n withComma: false,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"GoodsTitle\",\r\n modelName: \"GoodsTitle\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"کالا\",\r\n order: 7,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"GoodsUnitCode\",\r\n modelName: \"GoodsUnitCode\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: false,\r\n label: \"کد واحد سنجش\",\r\n order: 8,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"GoodsMainUnitTitle\",\r\n modelName: \"GoodsMainUnitTitle\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"واحد سنجش\",\r\n order: 9,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"GoodsUnitRatio\",\r\n modelName: \"GoodsUnitRatio\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: false,\r\n label: \"نسبت به واحد اصلی\",\r\n order: 10,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Amount\",\r\n modelName: \"Amount\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"مقدار\",\r\n order: 11,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"MainAmount\",\r\n modelName: \"MainAmount\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"مقدار اصلی\",\r\n order: 12,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { TakingOfInventoryDetail } from \"./taking-of-inventory-detail.model\";\r\n\r\nexport class TakingOfInventoryHeader extends EntityBase {\r\n public InventoryBalancingDate: Date;\r\n\r\n public ShamsiInventoryBalancingDate: string;\r\n public Number: Number;\r\n\r\n public BranchId: number;\r\n\r\n public BranchCode?: number;\r\n\r\n public BranchTitle: string;\r\n\r\n public BranchLatinTitle: string;\r\n\r\n public WarehouseId: number;\r\n\r\n public WarehouseCode?: number;\r\n\r\n public WarehouseTitle: string;\r\n public WarehouseLatinTitle: string;\r\n\r\n public StatusKindId: number;\r\n\r\n public StatusKindCode?: number;\r\n\r\n public StatusKindTitle: string;\r\n\r\n public InventoryReceiptVoucherKindId?: number;\r\n\r\n public InventoryReceiptVoucherKindCode?: number;\r\n public InventoryReceiptVoucherKindTitle: string;\r\n\r\n public InventoryReceiptId?: number;\r\n\r\n public InventoryReceiptNo?: number;\r\n\r\n public InventoryDeliveryVoucherKindId?: number;\r\n\r\n public InventoryDeliveryId?: number;\r\n\r\n public InventoryDeliveryVoucherKindCode?: number;\r\n\r\n public InventoryDeliveryVoucherKindTitle: string;\r\n\r\n public InventoryDeliveryVoucherKindLatinTitle: string;\r\n\r\n public InventoryDeliveryNo?: number;\r\n\r\n public InventoryBalancingKindId: number;\r\n\r\n public InventoryBalancingKindCode?: number;\r\n\r\n public InventoryBalancingKindTitle: string;\r\n\r\n public FiscalYearId: number;\r\n\r\n public Comment: string;\r\n\r\n public TakingOfInventoryDetailList: TakingOfInventoryDetail[];\r\n\r\n public DetailLedgerId?: number;\r\n\r\n public DetailLedgerCode?: number;\r\n\r\n public DetailLedgerTitle: string;\r\n public HasPricing: boolean;\r\n}\r\n","export enum FormOperationKind {\r\n /// \r\n /// سند ابتدای دوره\r\n /// \r\n IsFirstVoucher = 1,\r\n // /// \r\n // /// انبار به انبار\r\n // /// \r\n // HasWarehouseTransfer = 2,\r\n /// \r\n /// فاکتور خرید\r\n /// \r\n IsPurchaseInvoice = 3,\r\n /// \r\n /// فاکتور برگشت از خرید\r\n /// \r\n IsReturnPurchaseInvoice = 4,\r\n /// \r\n /// سند خرید خدمت\r\n /// \r\n IsPurchaseService = 5,\r\n /// \r\n /// سند مصرف\r\n /// \r\n IsConsumptionVoucher = 6,\r\n /// \r\n /// سند ضایعات\r\n /// \r\n IsDamages = 7,\r\n /// \r\n /// انبار گردانی\r\n /// \r\n IsTakingOfInventory = 8,\r\n /// \r\n /// ارسال به انبار روزانه\r\n /// \r\n SendToInvDailyVoucher = 9,\r\n /// \r\n /// دریافت از فروش رستورانی\r\n /// \r\n ReceivedFromResturantSell = 10,\r\n // /// \r\n // /// دریافت از راهکاران\r\n // /// \r\n // ReceivedFromRahkaran = 11,\r\n // /// \r\n // /// ارسال به راهکاران\r\n // /// \r\n // SendToRahkaran = 12,\r\n}\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n\r\nexport class GoodsFormulaDetail extends EntityBase {\r\n public GoodsFormulaHeaderId: number;\r\n public GoodsId: number;\r\n public StandardAmount: number;\r\n public LossPercent: number;\r\n public LossAmount: number;\r\n public PriceRatio: number;\r\n public Comment: string;\r\n public LatinComment: string;\r\n public GoodsCode: string;\r\n public GoodsTitle: string;\r\n public GoodsLatinTitle: string;\r\n public HasGoodsSimilar: boolean;\r\n public GoodsSimilars: GoodsSimilar[];\r\n public GoodsKindCode?: number;\r\n public GoodsKindTitle: string;\r\n public GoodsKindLatinTitle: string;\r\n public GoodsUnitPrice: number;\r\n public GoodsPrice: number;\r\n public HeaderGoodsId: number;\r\n public TempRowNumber?: number;\r\n public RowNumber?: number;\r\n}\r\n\r\nexport class GoodsFormulaHeader extends EntityBase {\r\n public GoodsId: number;\r\n public Amount: number;\r\n public Title: string;\r\n public LatinTitle: string;\r\n public Active: boolean;\r\n public IsResuarantWareHouse: boolean;\r\n public EffectDate: Date;\r\n public ShamsiEffectDate: string;\r\n public Comment: string;\r\n public LatinComment: string;\r\n public BranchId?: number;\r\n public GoodsCode: string;\r\n public GoodsTitle: string;\r\n public GoodsLatinTitle: string;\r\n public GoodsFormulaDetails: GoodsFormulaDetail[];\r\n public GoodsUnitRatio: number;\r\n public GoodsUnitTitle: string;\r\n public BranchCode?: number;\r\n public BranchTitle: string;\r\n public BranchLatinTitle: string;\r\n public TempRowNumber?: number;\r\n public CostPrice?: number;\r\n}\r\n\r\nexport class GoodsSimilar extends EntityBase {\r\n public GoodsId: number;\r\n public GoodsFormulaDetailId: number;\r\n public StandardAmount?: number;\r\n public LossPercent?: number;\r\n public LossAmount?: number;\r\n public PriceRatio?: number;\r\n public Priority: number;\r\n public Comment: string;\r\n public LatinComment: string;\r\n public GoodsCode: string;\r\n public GoodsTitle: string;\r\n public GoodsLatinTitle: string;\r\n public GoodsUnitId?: number;\r\n public UnitTitle: string;\r\n public TempRowNumber?: number;\r\n}\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { GoodsFormulaDetail, GoodsFormulaHeader } from \"./goods-formula-detail.model\";\r\n\r\nexport class Goods extends EntityBase {\r\n public GoodsGroupId?: number;\r\n public GoodsGroupTreePath: string;\r\n public GoodsGroupTreeCode: string;\r\n public Code: string;\r\n public Title: string;\r\n public LatinTitle: string;\r\n public Comment: string;\r\n public LatinComment: string;\r\n public GoodsKindId: number;\r\n public GoodsKindCode?: number;\r\n public GoodsKindTitle: string;\r\n public UnitId: number;\r\n public UnitCode?: number;\r\n public UnitTitle: string;\r\n public DefaultUnitId: number;\r\n public DefaultUnitCode?: number;\r\n public DefaultUnitTitle: string;\r\n public Active: boolean;\r\n public IsGoods: boolean;\r\n public HasTracing: boolean;\r\n public IsMarketable: boolean;\r\n public HasTaxDuty: boolean;\r\n public TaxRate?: number;\r\n public HasExpiryDate: boolean;\r\n public CostSubLedgerId?: number;\r\n public CostSubLedgerCode?: number;\r\n public CostSubLedgerTitle: string;\r\n public DetailLedgerId?: number;\r\n public DetailLedgerCode?: number;\r\n public DetailLedgerTitle: string;\r\n public GoodsUnits: GoodsUnit[];\r\n public RemainAmount?: number;\r\n public UnitPrice?: number;\r\n public TotalPrice?: number;\r\n public DefaultUnitRatio: number;\r\n public GoodsFormulaHeaders: GoodsFormulaHeader[];\r\n public GoodsBarCodes: GoodsBarCode[];\r\n public GoodsGroupDetailLedgerId?: number;\r\n public GoodsGroupDetailLedgerCode?: number;\r\n public GoodsGroupDetailLedgerTitle: string;\r\n public Attribute: string;\r\n public UsedInInvDailyVoucher?: Boolean;\r\n\r\n public GoodsRahkaranRelationId?: number;\r\n}\r\n\r\nexport class GoodsUnit extends EntityBase {\r\n public GoodsId: number;\r\n public IsDefault: boolean;\r\n public Ratio: number;\r\n public UnitCode?: number;\r\n public UnitId: number;\r\n public UnitTitle: string;\r\n}\r\n\r\nexport class GoodsBarCode extends EntityBase {\r\n public GoodsId: number;\r\n public BarCode: string;\r\n public BarCodeTitle: string;\r\n}\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n\r\nexport class InvVoucherKind extends EntityBase {\r\n public IsWarehouse: boolean;\r\n public Active: boolean;\r\n public AutoCreateVoucherKindCode?: number;\r\n public AutoCreateVoucherKindId?: number;\r\n public AutoCreateVoucherKindLatinTitle: string;\r\n public AutoCreateVoucherKindTitle: string;\r\n public AutoFocusedDocumentIssuance: boolean;\r\n public CanChangeRefereAmount: boolean;\r\n public CanChangeReferePrice: boolean;\r\n public CheckValidDate: boolean;\r\n public CheckWithBaseAmount: boolean;\r\n public Code: number;\r\n public Comment: string;\r\n public CreditFunctionKindCode?: number;\r\n public CreditFunctionKindId?: number;\r\n public CreditFunctionKindLatinTitle: string;\r\n public CreditFunctionKindTitle: string;\r\n public ItemAdjustmentKindId?: number;\r\n public HasAutoConfirm: boolean;\r\n public HasBaseBranch: boolean;\r\n public HasChangeInvoicecredit: boolean;\r\n public HasCheckVoucherDate: boolean;\r\n public HasCredit: boolean;\r\n public HasCurrentBranch: boolean;\r\n public HasReceiptDate: boolean;\r\n public HasSlaveNo: boolean;\r\n public HasTaxDuty: boolean;\r\n public HasTraceElement: boolean;\r\n public IncrementalKindCode?: number;\r\n public IncrementalKindLatinTitle: string;\r\n public IncrementalKindTitle: string;\r\n public Invoicecredit: number;\r\n public IsBasedVerifiedDocuments: boolean;\r\n public LatinComment: string;\r\n public LatinTitle: string;\r\n public OrderByNumber: number;\r\n public FormOperationKindId?: number;\r\n public FormOperationKindCode?: number;\r\n public FormOperationKindTitle: string;\r\n public HasWarehouseTransfer: boolean;\r\n public ReferenceVoucherKindIsRequired: boolean;\r\n public ReserveBalance: boolean;\r\n public SlaveNoCaption: string;\r\n public SystemKindId: number;\r\n public SystemKindCode?: number;\r\n public SystemKindTitle?: string;\r\n public Title: string;\r\n public ToDayDate: boolean;\r\n public BasedOnBOM: boolean;\r\n public DefaultSubLedgerCode?: number;\r\n public DefaultSubLedgerId?: number;\r\n public DefaultSubLedgerLatinTitle: string;\r\n public DefaultSubLedgerTitle: string;\r\n public DefaultWarehouseCode?: number;\r\n public DefaultWarehouseId?: number;\r\n public DefaultWarehouseLatinTitle: string;\r\n public DefaultWarehouseTitle: string;\r\n public DetailLedgerInLevelCode?: number;\r\n public DetailLedgerInLevelId?: number;\r\n public DetailLedgerInLevelLatinTitle: string;\r\n public DetailLedgerInLevelTitle: string;\r\n public GoodsDetailLedgerInLevelCode?: number;\r\n public GoodsDetailLedgerInLevelId?: number;\r\n public GoodsDetailLedgerInLevelLatinTitle: string;\r\n public GoodsDetailLedgerInLevelTitle: string;\r\n public HasDiscount: boolean;\r\n public HasExpiryDate: boolean;\r\n public HasGrdDetailAccessControl: boolean;\r\n public HasInventoryControl: boolean;\r\n public HasJournalVoucher: boolean;\r\n public HasJournalVoucherAuto: boolean;\r\n public HasOpositeParty: boolean;\r\n public HasPriceRefresh: boolean;\r\n public HasTransferee: boolean;\r\n public HasTransportInterface: boolean;\r\n public IncrementalKindId: number;\r\n public IsGroupByWithGoods: boolean;\r\n public NoChangeRefereWarehouseDetailLedger: boolean;\r\n public NoCheckBaseAmount: boolean;\r\n public NoUnitInBarCodeRead: boolean;\r\n public IsProductConversionForm: boolean;\r\n public OpositePartyCaption: string;\r\n public OpositePartyLatinCaption: string;\r\n public OpositePartyWarehouseCaption: string;\r\n public OpositePartyWarehouseLatinCaption: string;\r\n public Priceable: boolean;\r\n public ShowLastUnitPrice: boolean;\r\n public ShowStockAmount: boolean;\r\n public ShowWarehouse: boolean;\r\n public SingleOrIngredients: boolean;\r\n public TaxDutyIsEditable: boolean;\r\n public TransfereeCaption: string;\r\n public WarehouseCaption: string;\r\n public WarehouseLatinCaption: string;\r\n public WarehouseSubledgerCode?: number;\r\n public WarehouseSubledgerId?: number;\r\n public WarehouseSubledgerLatinTitle: string;\r\n public WarehouseSubledgerTitle: string;\r\n public DefaultSellKindCode?: number;\r\n public DefaultSellKindId?: number;\r\n public DefaultSellKindLatinTitle: string;\r\n public DefaultSellKindTitle: string;\r\n public DeliveryPlaceCaption: string;\r\n public HasCustomerRemain: boolean;\r\n public HasDeliveryPlace: boolean;\r\n public HasSellKind: boolean;\r\n public HassPriceUnit: boolean;\r\n public HasSubledger: boolean;\r\n public SellKindCaption: string;\r\n public WarehouseIsInHeader: boolean;\r\n public RahkaranVoucherKindId?: number;\r\n public RahkaranTransferId?: number;\r\n public RahkaranTransferCode?: number;\r\n public RahkaranTransferIdTitle: string;\r\n public FilterByProductHalfMade: boolean;\r\n public ReferenceVoucherKinds: ReferenceVoucherKind[];\r\n public VoucherKindDetailLedgerKinds: VoucherKindDetailLedgerKind[];\r\n public VoucherKindGoodss: VoucherKindGoods[];\r\n}\r\nexport class ReferenceVoucherKind extends EntityBase {\r\n public InvVoucherKindCode?: number;\r\n public InvVoucherKindId?: number;\r\n public InvVoucherKindLatinTitle: string;\r\n public InvVoucherKindTitle: string;\r\n public IsDefault: boolean;\r\n public IsWarehouse: boolean;\r\n public ReferenceVoucherKindCode?: number;\r\n public ReferenceVoucherKindId: number;\r\n public ReferenceVoucherKindLatinTitle: string;\r\n public ReferenceVoucherKindTitle: string;\r\n public AutoCreateVoucherKindId?: number;\r\n}\r\nexport class VoucherKindDetailLedgerKind extends EntityBase {\r\n public DetailLedgerKindCode?: number;\r\n public DetailLedgerKindId: number;\r\n public DetailLedgerKindTitle: string;\r\n public InvVoucherKindCode?: number;\r\n public InvVoucherKindId: number;\r\n public InvVoucherKindLatinTitle: string;\r\n public InvVoucherKindTitle: string;\r\n public IsWarehouse?: boolean;\r\n}\r\nexport class VoucherKindGoods extends EntityBase {\r\n public GoodsGroupTreeCode: string;\r\n public GoodsGroupId: number;\r\n public GoodsGroupLatinTitle: string;\r\n public GoodsGroupTreePath: string;\r\n public InvVoucherKindCode?: number;\r\n public InvVoucherKindId: number;\r\n public InvVoucherKindLatinTitle: string;\r\n public InvVoucherKindTitle: string;\r\n public IsWarehouse: boolean;\r\n}\r\n","export class ReferenceVoucherByVoucherKindFilterInfo {\r\n public ReferencedVoucherKindId?: number;\r\n public VoucherKindId: number;\r\n public DetailLedgerId?: number;\r\n public WarehouseId?: number;\r\n public WarehouseTransferId?: number;\r\n public VoucherDate: Date;\r\n public BranchId?: number;\r\n public FiscalYearId: number;\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, UntypedFormGroup } from \"@angular/forms\";\r\nimport { EditableGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component\";\r\nimport { ReportKindInfo } from \"projects/sepidz-web-framework-data-grid/src/lib/report-kind\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { InvStatusKind, RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { GoodsUnit } from \"../../../models/goods.model\";\r\nimport { ProductConversionDetail, ProductConversionHeader } from \"../../../models/product-conversion-header.model\";\r\nimport { ProductConversionStandardDetail } from \"../../../models/product-conversion-standard-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-product-conversion-form\",\r\n templateUrl: \"./product-conversion-form.component.html\",\r\n styleUrls: [\"./product-conversion-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ProductConversionFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n reportKinds = ReportKindInfo.reportKinds;\r\n ProductConversionDetailColumns: form_control[] = [];\r\n DefaultValues: Dictionary = [];\r\n @ViewChild(\"grid\") public grid: EditableGridComponent;\r\n constructor(\r\n _tabsservice: TabularService,\r\n __id: FormContainerModel,\r\n private lookupservice: LookupService,\r\n private splashFormService: SplashFormService,\r\n protected selectorService: SelectorService,\r\n private datatransfer: Datatransfer,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.currentrow = this.datatransfer?.currentrow;\r\n if (this.datatransfer?.apiName) this.apiName = this.datatransfer?.apiName;\r\n if (this.datatransfer?.label) this.label = this.datatransfer?.label;\r\n if (this.datatransfer?.areaName) this.areaName = this.datatransfer?.areaName;\r\n\r\n this.tabsservice = _tabsservice;\r\n }\r\n get readableStandardInfo() {\r\n return this.model?.WastesVoucherId || this.model.IncrementVoucherId || this.model?.DecrementVoucherId;\r\n }\r\n get VoucherCreatable() {\r\n return (\r\n !this.isNewRow &&\r\n this.model?.ProductConversionDetails &&\r\n this.model?.ProductConversionDetails.length > 0 &&\r\n !this.model?.IncrementVoucherId &&\r\n !this.model?.DecrementVoucherId &&\r\n !this.model?.WastesVoucherId\r\n );\r\n }\r\n get VoucherDeleteable() {\r\n return this.model?.IncrementVoucherId || this.model?.DecrementVoucherId || this.model?.WastesVoucherId;\r\n }\r\n\r\n async ngOnInit() {\r\n this.DefaultValues[\"ProductConversionHeaderId\"] = 0;\r\n this.apiName = \"ProductConversionHeader\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.ProductConversionTitle\");\r\n this.reportName = \"ProductConversionHeader\";\r\n this.pathPreFix = \"INV\";\r\n super.ngOnInit();\r\n }\r\n setAvragePurchaseByWarehouse() {\r\n let filters: GridFilter[] = [];\r\n let GoodsIds: Number[] = [];\r\n if (!this.formGroup?.get(\"GoodsId\")?.value) return;\r\n GoodsIds.push(this.formGroup.get(\"GoodsId\").value);\r\n filters.push({\r\n Filed: \"VoucherDate\",\r\n Value: this.formGroup?.get(\"ProductConversionDate\")?.value,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"gte\",\r\n Type: \"F\",\r\n Logic: \"and\",\r\n });\r\n filters.push({\r\n Filed: \"WarehouseId\",\r\n Value: this.formGroup?.get(\"WarehouseId\")?.value,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"gte\",\r\n Type: \"F\",\r\n Logic: \"and\",\r\n });\r\n filters.push({\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup?.get(\"FiscalYearId\")?.value,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"gte\",\r\n Type: \"F\",\r\n Logic: \"and\",\r\n });\r\n filters.push({\r\n Filed: \"CurrentBranchId\",\r\n Value: this.formGroup?.get(\"BranchId\")?.value,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"gte\",\r\n Type: \"F\",\r\n Logic: \"and\",\r\n });\r\n filters.push({ Filed: \"GoodsIds\", Value: GoodsIds, Skip: 0, Take: 0, Operator: \"gte\", Type: \"F\", Logic: \"and\" });\r\n this.httpCommonService\r\n .create(\"Goods/GetAvragePurchaseByWarehouse\", filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x: any[]) => {\r\n if (x) {\r\n this.model.UnitPrice = x.filter((f) => f.GoodsId === this.formGroup?.get(\"GoodsId\")?.value).getSumWithKey(\"AvrageUnitPrice\");\r\n this.setValue(\"UnitPrice\", this.model.UnitPrice);\r\n }\r\n });\r\n }\r\n setGoodsProductConversionFormPrice() {\r\n let filters: GridFilter[] = [];\r\n let GoodsIds: Number[] = [];\r\n if (!this.formGroup?.get(\"GoodsId\")?.value) return;\r\n GoodsIds.push(this.formGroup.get(\"GoodsId\").value);\r\n filters.push({\r\n Filed: \"VoucherDate\",\r\n Value: this.formGroup?.get(\"ProductConversionDate\")?.value,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"gte\",\r\n Type: \"F\",\r\n Logic: \"and\",\r\n });\r\n filters.push({\r\n Filed: \"WarehouseId\",\r\n Value: this.formGroup?.get(\"WarehouseId\")?.value,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"gte\",\r\n Type: \"F\",\r\n Logic: \"and\",\r\n });\r\n filters.push({\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup?.get(\"FiscalYearId\")?.value,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"gte\",\r\n Type: \"F\",\r\n Logic: \"and\",\r\n });\r\n filters.push({\r\n Filed: \"CurrentBranchId\",\r\n Value: this.formGroup?.get(\"BranchId\")?.value,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"gte\",\r\n Type: \"F\",\r\n Logic: \"and\",\r\n });\r\n filters.push({ Filed: \"GoodsIds\", Value: GoodsIds, Skip: 0, Take: 0, Operator: \"gte\", Type: \"F\", Logic: \"and\" });\r\n this.httpCommonService\r\n .create(\"InventoryReview/GetGoodsLastUnitPrice\", filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x && x.length > 0) {\r\n this.model.UnitPrice = x.getSumWithKey(\"DefaultUnitPrice\");\r\n this.setValue(\"UnitPrice\", this.model.UnitPrice);\r\n } else this.setAvragePurchaseByWarehouse();\r\n });\r\n }\r\n onformGroupValueChanges(changedData: { newValue: any; oldValue: any; field: string; formGroup: FormGroup }) {\r\n if (changedData.field === \"BaseAmount\") {\r\n let AmountRate: number = changedData.formGroup.get(\"AmountRate\").value ?? 0;\r\n let BaseAmount: number = changedData.formGroup.get(\"BaseAmount\").value ?? 0;\r\n let PriceRate: number = changedData.formGroup.get(\"PriceRate\").value ?? 0;\r\n let BaseUnitPrice: number =\r\n changedData.formGroup.get(\"BaseUnitPrice\").value ?? this.model.Price / (this.model.Amount - (this.model.WastesAmount ?? 0));\r\n if (AmountRate <= 0 && BaseAmount > 0)\r\n changedData.formGroup\r\n .get(\"AmountRate\")\r\n .setValue((BaseAmount / (this.formGroup.get(\"Amount\").value - (this.formGroup.get(\"WastesAmount\").value ?? 0))) * 100);\r\n\r\n if (\r\n !changedData.formGroup.get(\"PriceRate\").value ||\r\n changedData.formGroup.get(\"PriceRate\").value === 0 ||\r\n changedData.formGroup.get(\"PriceRate\").value !== (Price / this.model.Price) * 100\r\n ) {\r\n if (PriceRate !== (Price / this.model.Price) * 100) {\r\n var Price = Math.round(BaseUnitPrice * BaseAmount);\r\n changedData.formGroup.get(\"PriceRate\").setValue((Price / this.model.Price) * 100);\r\n }\r\n }\r\n }\r\n }\r\n onChange($event) {\r\n if (this.isNewRow) {\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Goods/GetPagining\")) {\r\n this.model.GoodsTitle = $event.data.Title;\r\n this.model.GoodsCode = $event.data.Code;\r\n this.model.GoodsId = $event.data.Id;\r\n this.model.GoodsUnitId = $event.data.UnitId;\r\n this.model.GoodsUnitTitle = $event.data.UnitTitle;\r\n this.model.GoodsUnitRatio = $event.data.DefaultUnitRatio;\r\n this.setValue(\"GoodsUnitRatio\", this.model.GoodsUnitRatio);\r\n this.setValue(\"GoodsUnitId\", this.model.GoodsUnitId);\r\n this.setValue(\"GoodsUnitTitle\", this.model.GoodsUnitTitle);\r\n this.setGoodsUnit();\r\n this.setGoodsProductConversionFormPrice();\r\n if (this.grid?.formGroup) {\r\n this.grid.formGroup.get(\"BaseAmount\").valueChanges.subscribe((s) => {\r\n if (s) {\r\n let AmountRate: number = this.grid?.formGroup?.get(\"AmountRate\").value ?? 0;\r\n let BaseAmount: number = this.grid?.formGroup?.get(\"BaseAmount\").value ?? 0;\r\n let PriceRate: number = this.grid?.formGroup?.get(\"PriceRate\").value ?? 0;\r\n let BaseUnitPrice: number = this.grid?.formGroup?.get(\"BaseUnitPrice\").value;\r\n if (AmountRate <= 0 && BaseAmount > 0)\r\n this.grid?.formGroup\r\n ?.get(\"AmountRate\")\r\n .setValue((BaseAmount / (this.formGroup.get(\"Amount\").value - (this.formGroup.get(\"WastesAmount\").value ?? 0))) * 100);\r\n\r\n if (!this.grid?.formGroup?.get(\"PriceRate\").value || this.grid?.formGroup?.get(\"PriceRate\").value === 0) {\r\n if (PriceRate == 0) {\r\n var Price = Math.round(BaseUnitPrice * BaseAmount);\r\n this.grid?.formGroup?.get(\"PriceRate\").setValue((Price / this.model.Price) * 100);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Goods/ReadGoodsUnitLookUp\")) {\r\n this.model.GoodsUnitTitle = $event.data.UnitTitle;\r\n this.model.GoodsUnitRatio = $event.data.Ratio;\r\n this.setValue(\"GoodsUnitRatio\", this.model.GoodsUnitRatio);\r\n this.setValue(\"GoodsUnitTitle\", this.model.GoodsUnitTitle);\r\n this.setGoodsUnit();\r\n }\r\n }\r\n }\r\n setGoodsUnit() {\r\n this.httpCommonService\r\n .getList(\"Goods/ReadGoodsUnitLookUp/\" + this.model.GoodsId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (!(x as GoodsUnit[]).some((u) => u.UnitId === this.model.GoodsUnitId))\r\n (x as GoodsUnit[]).push({\r\n GoodsId: this.model.GoodsId,\r\n UnitId: this.model.GoodsUnitId,\r\n Ratio: 1,\r\n UnitTitle: this.model.GoodsUnitTitle,\r\n IsDefault: false,\r\n Id: 0,\r\n });\r\n this.selectorService.setDataList(\"GoodsUnitId\", x as []);\r\n });\r\n }\r\n setdefault() {\r\n if (this.model?.GoodsId) this.setGoodsUnit();\r\n if (!this.model.ProductConversionDate) this.model.ProductConversionDate = new Date();\r\n if (!this.model.ProductConversionDetails) this.model.ProductConversionDetails = [];\r\n if (!this.model.FiscalYearId && this.accountService.authService.currentFiscalYear) {\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.model.Year = this.accountService.authService.currentFiscalYear.Year;\r\n } else if (!this.model.FiscalYearId) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n this.model.Year = x.Year;\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"Year\", x.Year);\r\n }\r\n });\r\n }\r\n if (!this.model.BranchId) this.model.BranchId = this.accountService.authService.currentBranchId;\r\n if (!this.model.StatusKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"INV\", \"StatusKind\", InvStatusKind.Registered)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", this.model.StatusKindId);\r\n this.setValue(\"StatusKindCode\", this.model.StatusKindCode);\r\n this.setValue(\"StatusKindTitle\", this.model.StatusKindTitle);\r\n }\r\n });\r\n }\r\n\r\n if (this.grid && this.model && this.model?.ProductConversionDetails && this.model?.ProductConversionDetails?.length > 0) {\r\n this.model.ProductConversionDetails.forEach((x) => (x.State = RowState.NoChange));\r\n this.grid.dataList = this.model.ProductConversionDetails;\r\n this.cd.markForCheck();\r\n if (!this.isNewRow && this.grid.dataList.some((x) => x.Id == 0)) {\r\n setTimeout(async () => {\r\n await this.ngOnInit();\r\n }, 50);\r\n }\r\n }\r\n }\r\n setDetailValue(x: UntypedFormGroup) {\r\n if (x != null) {\r\n let BaseAmount: number = x.get(\"BaseAmount\").value;\r\n if (BaseAmount > 0) x.get(\"BaseMainAmount\").setValue(BaseAmount * this.model.GoodsUnitRatio);\r\n let Amount: number = x.get(\"Amount\").value;\r\n let AmountRate: number = x.get(\"AmountRate\").value;\r\n let GoodsUnitRatio: number = x.get(\"GoodsUnitRatio\").value;\r\n let PriceRate: number = x.get(\"PriceRate\").value;\r\n if (Amount > 0 || AmountRate > 0) {\r\n if (AmountRate && AmountRate > 0) {\r\n BaseAmount = (AmountRate * (this.formGroup.get(\"Amount\").value - (this.formGroup.get(\"WastesAmount\").value ?? 0))) / 100;\r\n x.get(\"BaseAmount\").setValue(BaseAmount);\r\n }\r\n x.get(\"MainAmount\").setValue(Amount * GoodsUnitRatio);\r\n if (Amount && Amount > 0) {\r\n x.get(\"UnitPrice\").setValue((x.get(\"PriceRate\").value * this.model.Price) / 100 / Amount);\r\n x.get(\"Price\").setValue(Math.round(Amount * x.get(\"UnitPrice\").value));\r\n }\r\n }\r\n }\r\n }\r\n setAmountValue() {\r\n if (this.model.ProductConversionDetails == null) return;\r\n this.model.MainAmount = this.formGroup?.get(\"MainAmount\")?.value;\r\n this.model.Amount = this.formGroup?.get(\"Amount\")?.value;\r\n this.model.GoodsUnitRatio = this.formGroup?.get(\"GoodsUnitRatio\")?.value;\r\n this.model.UnitPrice = this.formGroup?.get(\"UnitPrice\")?.value;\r\n if (this.model.MainAmount != this.model.Amount * this.model.GoodsUnitRatio) this.model.MainAmount = this.model.Amount * this.model.GoodsUnitRatio;\r\n if (this.model.Price != this.model.UnitPrice * this.model.Amount) this.model.Price = this.model.UnitPrice * this.model.Amount;\r\n if (this.model.ProductConversionDetails.length > 0 && this.model.Price > 0 && this.model.Amount > 0) {\r\n this.model.ProductConversionDetails.forEach((item) => {\r\n if (\r\n item.BaseUnitPrice !=\r\n this.model.Price /\r\n (this.model.Amount - (this.model.WastesAmount ?? 0) <= 0 ? 1 : this.model.Amount - (this.formGroup?.get(\"WastesAmount\").value ?? 0))\r\n ) {\r\n item.BaseUnitPrice = this.model.Price / (this.model.Amount - (this.model.WastesAmount ?? 0));\r\n if (this.grid?.formGroup) this.grid.formGroup.get(\"BaseUnitPrice\").setValue(item.BaseUnitPrice);\r\n }\r\n if (item.UnitPrice != (item.BaseUnitPrice * item.BaseAmount) / (item.Amount <= 0 ? 1 : item.Amount) && item.Amount > 0) {\r\n if (item.PriceRate > 0) {\r\n item.UnitPrice = (item.PriceRate * this.model.Price) / 100 / item.Amount;\r\n } else item.UnitPrice = (item.BaseUnitPrice * item.BaseAmount) / item.Amount;\r\n if (this.grid?.formGroup) this.grid.formGroup.get(\"UnitPrice\").setValue(item.UnitPrice);\r\n }\r\n if (item.Price != item.UnitPrice * item.Amount) {\r\n item.Price = item.UnitPrice * item.Amount;\r\n if (this.grid?.formGroup) this.grid.formGroup.get(\"Price\").setValue(item.Price);\r\n }\r\n if (item.MainAmount != item.Amount * item.GoodsUnitRatio) {\r\n item.MainAmount = item.Amount * item.GoodsUnitRatio;\r\n if (this.grid?.formGroup) this.grid.formGroup.get(\"MainAmount\").setValue(item.MainAmount);\r\n }\r\n\r\n if (item.PriceRate == 0) {\r\n item.PriceRate = (item.Price / this.model.Price) * 100;\r\n if (this.grid?.formGroup) this.grid.formGroup.get(\"PriceRate\").setValue(item.PriceRate);\r\n }\r\n if (item.AmountRate == 0) {\r\n item.PriceRate = (item.Price / this.model.Price) * 100;\r\n if (this.grid?.formGroup)\r\n this.grid.formGroup.get(\"AmountRate\").setValue((item.BaseAmount / (this.model.Amount - (this.model.WastesAmount ?? 0))) * 100);\r\n }\r\n });\r\n }\r\n this.setValue(\"Price\", this.model.Price);\r\n this.setValue(\"MainAmount\", this.model.MainAmount);\r\n }\r\n addControl() {\r\n this.formGroup?.get(\"Amount\").valueChanges.subscribe((s) => {\r\n if (s) this.setAmountValue();\r\n });\r\n this.formGroup?.get(\"UnitPrice\").valueChanges.subscribe((s) => {\r\n if (s) this.setAmountValue();\r\n });\r\n this.cd.markForCheck();\r\n }\r\n focusFunction() {\r\n if (this.model?.GoodsId) this.setGoodsUnit();\r\n }\r\n valueChanges(event) {\r\n if (event.DefaultUnitId) {\r\n this.httpCommonService\r\n .getList(\"Goods/ReadGoodsUnitLookUp/\" + event.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.Amount = this.formGroup.get(\"Amount\").value ?? 0;\r\n this.model.WastesAmount = this.formGroup.get(\"WastesAmount\").value ?? 0;\r\n if (!(x as GoodsUnit[]).some((u) => u.UnitId === event.UnitId))\r\n (x as GoodsUnit[]).push({ GoodsId: event.Id, UnitId: event.UnitId, Ratio: 1, UnitTitle: event.UnitTitle, IsDefault: false, Id: 0 });\r\n this.selectorService.setDataList(\"Goods/ReadGoodsUnitLookUp\", x as []);\r\n this.grid.formGroup?.get(\"GoodsUnitRatio\").setValue(event.DefaultUnitRatio ?? 1);\r\n if (this.grid.formGroup?.get(\"BaseUnitPrice\"))\r\n this.grid.formGroup.get(\"BaseUnitPrice\").setValue(this.model.Price / (this.model.Amount - (this.model.WastesAmount ?? 0)));\r\n });\r\n }\r\n if (event instanceof UntypedFormGroup) this.setDetailValue(event);\r\n }\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name !== \"StatusKindTitle\" && x.name !== \"Price\") x.disabled = this.VoucherDeleteable ? true : false;\r\n });\r\n this.ProductConversionDetailColumns = this.getDetailControlModels(\"ProductConversionDetails\");\r\n\r\n this.columns.forEach((x) => ((x.isFloat = null), (x.userClass = null), (x.columnNumber = null)));\r\n this.cd.markForCheck();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getItem(`${this.apiName}/GetMaxCode`, this.formGroup?.get(\"FiscalYearId\")?.value)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model.Number = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n async createVoucher() {\r\n this.splashFormService.openDialog(\"\", \"در حال صدور اسناد\");\r\n await this.httpCommonService\r\n .create(this.apiName + \"/CreateVoucher\", this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\"اسناد با موفقیت صادر شد.\", \"\");\r\n this.saveSuccessHelper(row);\r\n this.ngOnInit();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در صدور سند${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n async deleteVoucher() {\r\n this.splashFormService.openDialog(\"\", \"در حال حذف اسناد\");\r\n await this.httpCommonService\r\n .create(this.apiName + \"/DeleteVucher\", this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\"اسناد با موفقیت حذف شد.\", \"\");\r\n this.saveSuccessHelper(row);\r\n this.ngOnInit();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(` خطا در حذف سند ${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n getStandardInfo() {\r\n this.model.WastesAmount = this.formGroup?.get(\"WastesAmount\")?.value;\r\n if (!this.formGroup?.get(\"GoodsId\")?.value) this.sts.showDialog(\"کالای تبدیل انتخاب نشده است.\", \"دریافت اطلاعات استاندارد\");\r\n if (!this.formGroup?.get(\"Amount\")?.value || !this.formGroup?.get(\"Price\")?.value)\r\n this.sts.showDialog(\"مقدار یا فی وارد نشده است.\", \"دریافت اطلاعات استاندارد\");\r\n this.httpCommonService\r\n .getList(`ProductConversionStandardHeader/GetStandardInfo/${this.formGroup.get(\"GoodsId\").value}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x: ProductConversionStandardDetail[]) => {\r\n if (x && x.length > 0) {\r\n x.forEach((item) => {\r\n if (!this.model.ProductConversionDetails.some((x) => x.GoodsId === item.GoodsId)) {\r\n let entity = {};\r\n entity.GoodsId = item.GoodsId;\r\n entity.AmountRate = item.AmountRate;\r\n entity.PriceRate = item.PriceRate;\r\n entity.GoodsCode = item.GoodsCode;\r\n entity.GoodsTitle = item.GoodsTitle;\r\n entity.GoodsUnitId = item.GoodsUnitId;\r\n entity.GoodsUnitTitle = item.GoodsUnitTitle;\r\n entity.GoodsUnitRatio = item.GoodsUnitRatio;\r\n entity.BaseUnitPrice = this.model.Price / (this.model.Amount - (this.model.WastesAmount ?? 0));\r\n entity.BaseAmount = ((this.model.Amount - (this.model.WastesAmount ?? 0)) * entity.AmountRate) / 100;\r\n entity.BaseMainAmount = entity.BaseAmount * entity.GoodsUnitRatio;\r\n this.model.ProductConversionDetails.push(entity);\r\n }\r\n });\r\n this.cd.markForCheck();\r\n if (this.grid) {\r\n this.grid.dataList = this.model.ProductConversionDetails;\r\n this.grid.refreshform();\r\n }\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n isCloseable() {\r\n this.selectorService.submitted$.next(false);\r\n this.formGroup?.markAsUntouched();\r\n this.currentrow = this.model;\r\n return false;\r\n }\r\n}\r\n","\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ProductConversionFormComponent } from \"../product-conversion-form/product-conversion-form.component\";\r\n@Component({\r\n selector: \"ngx-product-conversion-list\",\r\n templateUrl: \"./product-conversion-list.component.html\",\r\n styleUrls: [\"./product-conversion-list.component.scss\"],\r\n})\r\nexport class ProductConversionListComponent extends BaseListComponent {\r\n actions: EntityListAction[];\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n constructor(private lookupservice: LookupService) {\r\n super();\r\n this.inputEditorform = ProductConversionFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"ProductConversionHeader\";\r\n this.areaName = \"Inventory\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.ProductConversionTitle\");\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { EditableGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { GoodsUnit } from \"../../../models/goods.model\";\r\nimport { ProductConversionStandardHeader } from \"../../../models/product-conversion-standard-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-product-conversion-standard-form\",\r\n templateUrl: \"./product-conversion-standard-form.component.html\",\r\n styleUrls: [\"./product-conversion-standard-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ProductConversionStandardFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n DefaultValues: Dictionary = [];\r\n @ViewChild(\"grid\") public grid: EditableGridComponent;\r\n ProductConversionStandardDetailColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.DefaultValues[\"ProductConversionStandardHeaderId\"] = 0;\r\n this.apiName = \"ProductConversionStandardHeader\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.ProductConversionStandardTitle\");\r\n super.ngOnInit();\r\n }\r\n setGoodsUnit() {\r\n this.httpCommonService\r\n .getList(\"Goods/ReadGoodsUnitLookUp/\" + this.model.GoodsId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (!(x as GoodsUnit[]).some((u) => u.UnitId === this.model.GoodsUnitId))\r\n (x as GoodsUnit[]).push({\r\n GoodsId: this.model.GoodsId,\r\n UnitId: this.model.GoodsUnitId,\r\n Ratio: 1,\r\n UnitTitle: this.model.GoodsUnitTitle,\r\n IsDefault: false,\r\n Id: 0,\r\n });\r\n this.selectorService.setDataList(\"GoodsUnitId\", x as []);\r\n });\r\n }\r\n onChange($event) {\r\n if (this.isNewRow) {\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Goods/GetPagining\")) {\r\n this.model.GoodsTitle = $event.data.Title;\r\n this.model.GoodsCode = $event.data.Code;\r\n this.model.GoodsId = $event.data.Id;\r\n this.model.GoodsUnitId = $event.data.UnitId;\r\n this.model.GoodsUnitTitle = $event.data.UnitTitle;\r\n this.model.GoodsUnitRatio = $event.data.DefaultUnitRatio;\r\n this.setValue(\"GoodsUnitRatio\", this.model.GoodsUnitRatio);\r\n this.setValue(\"GoodsUnitId\", this.model.GoodsUnitId);\r\n this.setValue(\"GoodsUnitTitle\", this.model.GoodsUnitTitle);\r\n this.setGoodsUnit();\r\n }\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Goods/ReadGoodsUnitLookUp\")) {\r\n this.model.GoodsUnitTitle = $event.data.UnitTitle;\r\n this.model.GoodsUnitRatio = $event.data.Ratio;\r\n this.setValue(\"GoodsUnitTitle\", this.model.GoodsUnitTitle);\r\n this.setValue(\"GoodsUnitRatio\", this.model.GoodsUnitRatio);\r\n this.setGoodsUnit();\r\n }\r\n }\r\n }\r\n setdefault() {\r\n if (!this.model.ProductConversionStandardDetails) this.model.ProductConversionStandardDetails = [];\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n valueChanges(event) {\r\n if (event.Ratio) {\r\n this.grid.formGroup.get(\"GoodsUnitRatio\").setValue(event.Ratio);\r\n }\r\n if (event.DefaultUnitId) {\r\n this.grid.formGroup.get(\"GoodsUnitRatio\").setValue(event.DefaultUnitRatio);\r\n this.httpCommonService\r\n .getList(\"Goods/ReadGoodsUnitLookUp/\" + event.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (!(x as GoodsUnit[]).some((u) => u.UnitId === event.UnitId))\r\n (x as GoodsUnit[]).push({ GoodsId: event.Id, UnitId: event.UnitId, Ratio: 1, UnitTitle: event.UnitTitle, IsDefault: false, Id: 0 });\r\n this.selectorService.setDataList(\"Goods/ReadGoodsUnitLookUp\", x as []);\r\n });\r\n }\r\n }\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.ProductConversionStandardDetailColumns = this.getDetailControlModels(\"ProductConversionStandardDetails\");\r\n }\r\n}\r\n","\r\n 0\">\r\n \r\n \r\n \r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ProductConversionStandardFormComponent } from \"../product-conversion-standard-form/product-conversion-standard-form.component\";\r\n@Component({\r\n selector: \"ngx-product-conversion-standard-list\",\r\n templateUrl: \"./product-conversion-standard-list.component.html\",\r\n styleUrls: [\"./product-conversion-standard-list.component.scss\"],\r\n})\r\nexport class ProductConversionStandardListComponent extends BaseListComponent {\r\n actions: EntityListAction[];\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n constructor(private lookupservice: LookupService) {\r\n super();\r\n this.inputEditorform = ProductConversionStandardFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"ProductConversionStandardHeader\";\r\n this.areaName = \"Inventory\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.ProductConversionStandardTitle\");\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ProductConversionFormComponent } from \"./product-conversion-form/product-conversion-form/product-conversion-form.component\";\r\nimport { ProductConversionListComponent } from \"./product-conversion-form/product-conversion-list/product-conversion-list.component\";\r\nimport { ProductConversionStandardFormComponent } from \"./product-conversion-standard-form/product-conversion-standard-form/product-conversion-standard-form.component\";\r\nimport { ProductConversionStandardListComponent } from \"./product-conversion-standard-form/product-conversion-standard-list/product-conversion-standard-list.component\";\r\n\r\nconst components = [\r\n ProductConversionListComponent,\r\n ProductConversionFormComponent,\r\n ProductConversionStandardListComponent,\r\n ProductConversionStandardFormComponent,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class ProductConversionModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { City, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n@Component({\r\n selector: \"received-from-rahkaran-form\",\r\n templateUrl: \"./received-from-rahkaran-form.component.html\",\r\n styleUrls: [\"./received-from-rahkaran-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ReceivedFromRahkaranFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private splashFormService: SplashFormService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.label = \"دریافت اسناد از راهکاران\";\r\n super.ngOnInit();\r\n }\r\n setColumnAttribute() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"تاریخ سند\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"VoucherDate\",\r\n disabled: false,\r\n name: \"VoucherDate\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.columns.push({\r\n label: \"نوع سند\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"InvVoucherKindId\",\r\n disabled: false,\r\n name: \"InvVoucherKindId\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"InvVoucherKind/ReadLookUpReceivedFromRahkaran\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n addControl() {\r\n this.setValue(\"VoucherDate\", new Date());\r\n this.cd.markForCheck();\r\n }\r\n public async save() {\r\n let gridFilter: GridFilter[] = [];\r\n gridFilter.push({\r\n Type: \"F\",\r\n Filed: \"VoucherDate\",\r\n Value: this.formGroup.get(\"VoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n gridFilter.push({\r\n Type: \"F\",\r\n Filed: \"InvVoucherKindId\",\r\n Value: this.formGroup.get(\"InvVoucherKindId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n\r\n this.httpCommonService\r\n .create(this.apiName, gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"دریافت از راهکاران با موفقیت صادر شد.\", \"\");\r\n this.cancel();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در دریافت از راهکاران${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n}\r\n","\r\n\r\n","import { AverageGoodsReportCompareComponent } from './average-goods-report-compare/average-goods-report-compare.component';\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ReportReviewModule } from \"src/app/review/review.module\";\r\nimport { AverageGoodsReportComponent } from \"./average-goods-report/average-goods-report.component\";\r\nimport { CirculationOfGoodsReportComponent } from \"./circulation-of-goods-report/circulation-of-goods-report.component\";\r\nimport { CostPriceOfManufacturedProductsReportComponent } from \"./cost-price-of-manufactured-products-report/cost-price-of-manufactured-products-report.component\";\r\nimport { FinishedPriceOfProductsBeforeSaleReportComponent } from \"./finished-price-of-products-before-sale-report/finished-price-of-products-before-sale-report.component\";\r\nimport { GeneralMonthlyFoodCostReportComponent } from \"./general-monthly-food-cost-report/general-monthly-food-cost-report.component\";\r\nimport { MaterialUseInProductReportComponent } from \"./material-use-in-product-report/material-use-in-product-report.component\";\r\nimport { NegativeRemainOfGoodsDalyReportComponent } from \"./negative-remain-of-goods-daly-report/negative-remain-of-goods-daly-report.component\";\r\nimport { NewDailyPurchaseInvoiceReportComponent } from \"./new-daily-purchase-invoice-Report/new-daily-purchase-invoice-Report.component\";\r\nimport { PriceChangeInPurchaseReportComponent } from \"./price-change-in-purchase-report/price-change-in-purchase-report.component\";\r\nimport { PurchaseInvoiceReportComponent } from \"./purchase-invoice-report/purchase-invoice-report.component\";\r\nimport { PurchaseReportWithTaxComponent } from \"./purchase-report-with-tax/purchase-report-with-tax.component\";\r\nconst components = [\r\n MaterialUseInProductReportComponent,\r\n PurchaseInvoiceReportComponent,\r\n PriceChangeInPurchaseReportComponent,\r\n FinishedPriceOfProductsBeforeSaleReportComponent,\r\n CirculationOfGoodsReportComponent,\r\n CostPriceOfManufacturedProductsReportComponent,\r\n GeneralMonthlyFoodCostReportComponent,\r\n NewDailyPurchaseInvoiceReportComponent,\r\n PurchaseReportWithTaxComponent,\r\n NegativeRemainOfGoodsDalyReportComponent,\r\n AverageGoodsReportComponent,\r\n AverageGoodsReportCompareComponent\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, ReportReviewModule],\r\n})\r\nexport class InventoryReportModule {}\r\n","import { ChangeDetectorRef, Component } from '@angular/core';\r\nimport { ReportCopyComponent } from 'projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component';\r\nimport { ReportSelectorComponent } from 'projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component';\r\nimport { BaseFormComponent } from 'projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component';\r\nimport { SelectorService } from 'projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service';\r\nimport { FormContainerModel } from 'projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model';\r\nimport { TabularService } from 'projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service ';\r\nimport { form_control, EntityListAction, FiscalYear, SaveReportFile } from 'projects/sepidz-web-framework/src/lib/models';\r\nimport { FormControlTypes } from 'projects/sepidz-web-framework/src/lib/models/form-base-control.model';\r\nimport { GridFilter } from 'projects/sepidz-web-framework/src/lib/services';\r\nimport { MisSetupService } from 'projects/sepidz-web-framework/src/lib/services/missetup.service';\r\nimport { Observable } from 'rxjs';\r\nimport { takeUntil, take } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-average-goods-report-compare',\r\n templateUrl: './average-goods-report-compare.component.html',\r\n styleUrls: ['./average-goods-report-compare.component.scss']\r\n})\r\nexport class AverageGoodsReportCompareComponent extends BaseFormComponent {\r\n\r\n public apiName: string = \"InventoryReview\";\r\n public label: string = \"گزارش میانگن کالا مقایسه‌ای\";\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n public entitys: any[];\r\n constructor(\r\n private missetup: MisSetupService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetAverageGoodsReport\";\r\n this.pathPreFix = \"INV\";\r\n this.apiName = \"InventoryReview\";\r\n this.areaName = \"Inventory\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کد کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"واحد سنجش\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کمترین‌فی خرید\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"میانگین خرید\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"آخرین‌فی خرید\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"بیشترین‌فی خرید\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n getAccountLevel() {\r\n let list: any[] = [];\r\n list.push({ Key: \"PL\", Title: \"گروه حساب\" });\r\n list.push({ Key: \"GL\", Title: \"حساب کل\" });\r\n list.push({ Key: \"SL\", Title: \"حساب معین\" });\r\n list.push({ Key: \"DL1\", Title: \"حساب تفصیلی اول\" });\r\n list.push({ Key: \"DL2\", Title: \"حساب تفصیلی دوم\" });\r\n list.push({ Key: \"DL3\", Title: \"حساب تفصیلی سوم\" });\r\n list.push({ Key: \"DL4\", Title: \"حساب تفصیلی چهارم\" });\r\n list.push({ Key: \"DL5\", Title: \"حساب تفصیلی پنجم\" });\r\n return list;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"Invoice/GetInvoices\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n let filter: GridFilter[] = [];\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.httpCommonService\r\n .GetFilterGrid(\"InventoryReview/GetAverageGoodsReport\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entitys = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, Permission, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"average-goods-report\",\r\n templateUrl: \"average-goods-report.component.html\",\r\n styleUrls: [\"average-goods-report.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AverageGoodsReportComponent extends BaseFormComponent {\r\n public apiName: string = \"InventoryReview\";\r\n public label: string = \"گزارش میانگن کالا\";\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n public entitys: any[];\r\n constructor(\r\n private missetup: MisSetupService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetAverageGoodsReport\";\r\n this.pathPreFix = \"INV\";\r\n this.apiName = \"InventoryReview\";\r\n this.areaName = \"Inventory\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کد کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n columnWidth: 200,\r\n });\r\n this.gridColumns.push({\r\n label: \"کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n columnWidth: 200,\r\n });\r\n this.gridColumns.push({\r\n label: \"واحد سنجش\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n columnWidth: 200,\r\n });\r\n this.gridColumns.push({\r\n label: \"کمترین‌فی خرید\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n columnWidth: 200,\r\n });\r\n this.gridColumns.push({\r\n label: \"میانگین خرید\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n columnWidth: 200,\r\n });\r\n this.gridColumns.push({\r\n label: \"آخرین‌فی خرید\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n columnWidth: 200,\r\n });\r\n this.gridColumns.push({\r\n label: \"بیشترین‌فی خرید\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n columnWidth: 200,\r\n });\r\n\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n getAccountLevel() {\r\n let list: any[] = [];\r\n list.push({ Key: \"PL\", Title: \"گروه حساب\" });\r\n list.push({ Key: \"GL\", Title: \"حساب کل\" });\r\n list.push({ Key: \"SL\", Title: \"حساب معین\" });\r\n list.push({ Key: \"DL1\", Title: \"حساب تفصیلی اول\" });\r\n list.push({ Key: \"DL2\", Title: \"حساب تفصیلی دوم\" });\r\n list.push({ Key: \"DL3\", Title: \"حساب تفصیلی سوم\" });\r\n list.push({ Key: \"DL4\", Title: \"حساب تفصیلی چهارم\" });\r\n list.push({ Key: \"DL5\", Title: \"حساب تفصیلی پنجم\" });\r\n return list;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n let filter: GridFilter[] = [];\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.httpCommonService\r\n .GetFilterGrid(\"InventoryReview/GetAverageGoodsReport\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entitys = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"circulation-of-goods-report\",\r\n templateUrl: \"circulation-of-goods-report.component.html\",\r\n styleUrls: [\"circulation-of-goods-report.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CirculationOfGoodsReportComponent extends BaseFormComponent {\r\n public apiName: string = \"InventoryReview\";\r\n public label: string = \"گزارش گردش کالا\";\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n public entitys: any[];\r\n constructor(\r\n private missetup: MisSetupService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetCirculationOfGoodsReport\";\r\n this.pathPreFix = \"INV\";\r\n this.apiName = \"InventoryReview\";\r\n this.areaName = \"Inventory\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n userClass: \"select-shr\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.columns.push({\r\n label: \"انبار\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"WarehouseId\",\r\n disabled: false,\r\n name: \"WarehouseId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n dataList: this.getWarehouse(),\r\n apiName: \"\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کد کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"واحد سنجش\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مقدار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"فی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مبلغ\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n getWarehouse() {\r\n let list: any[] = [];\r\n list.push({ Key: \"PL\", Title: \"انبار اصلی\" });\r\n list.push({ Key: \"GL\", Title: \"انبار رستوران\" });\r\n list.push({ Key: \"SL\", Title: \"انبار تالار\" });\r\n list.push({ Key: \"DL1\", Title: \"انبار فست فود\" });\r\n list.push({ Key: \"DL2\", Title: \"انبار کافی شاپ\" });\r\n return list;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.httpCommonService\r\n .GetFilterGrid(\"InventoryReview/GetCirculationOfGoodsReport\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entitys = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"cost-price-of-manufactured-products-report\",\r\n templateUrl: \"cost-price-of-manufactured-products-report.component.html\",\r\n styleUrls: [\"cost-price-of-manufactured-products-report.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CostPriceOfManufacturedProductsReportComponent extends BaseFormComponent {\r\n public apiName: string = \"InventoryReview\";\r\n public label: string = \"گزارش قیمت تمام شده محصولات تولیدی\";\r\n public entitys: any[];\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n constructor(\r\n private missetup: MisSetupService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetCostPriceOfManufacturedProductsReport\";\r\n this.pathPreFix = \"INV\";\r\n this.apiName = \"InventoryReview\";\r\n this.areaName = \"Inventory\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.gridColumns.push({\r\n label: \"عنوان و کد محصول\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کد کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"عنوان کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"واحد سنجش\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مقدار استاندارد\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"فی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"فی آخرین خرید\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"توضیحات\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n let filter: GridFilter[] = [];\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.httpCommonService\r\n .GetFilterGrid(\"InventoryReview/GetCostPriceOfManufacturedProductsReport\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entitys = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"finished-price-of-products-before-sale-report\",\r\n templateUrl: \"finished-price-of-products-before-sale-report.component.html\",\r\n styleUrls: [\"finished-price-of-products-before-sale-report.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FinishedPriceOfProductsBeforeSaleReportComponent extends BaseFormComponent {\r\n public apiName: string = \"InventoryReview\";\r\n public label: string = \"گزارش قیمت تمام شده محصولات قبل از فروش\";\r\n public entitys: any[];\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n constructor(\r\n private missetup: MisSetupService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetFinishedPriceOfProductsBeforeSaleReport\";\r\n this.pathPreFix = \"INV\";\r\n this.apiName = \"InventoryReview\";\r\n this.areaName = \"Inventory\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 3,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.gridColumns.push({\r\n label: \"کد محصول\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"عنوان محصول\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مقدار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"واحد\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کد مواد\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"عنوان کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"واحد سنجش\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مقدار استاندارد\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"فی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"آخرین فی خرید\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"توضیحات\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.httpCommonService\r\n .GetFilterGrid(\"InventoryReview/GetFinishedPriceOfProductsBeforeSaleReport\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => (this.entitys = data));\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"general-monthly-food-cost-report\",\r\n templateUrl: \"general-monthly-food-cost-report.component.html\",\r\n styleUrls: [\"general-monthly-food-cost-report.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GeneralMonthlyFoodCostReportComponent extends BaseFormComponent {\r\n public apiName: string = \"InventoryReview\";\r\n public label: string = \"گزارش فود کاست ماهانه کلی\";\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n public entitys: any[];\r\n constructor(\r\n private missetup: MisSetupService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetGeneralMonthlyFoodCostReport\";\r\n this.pathPreFix = \"INV\";\r\n this.apiName = \"InventoryReview\";\r\n this.areaName = \"Inventory\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.gridColumns.push({\r\n label: \"کد کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"عنوان\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"فی فروش\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"تعداد فروش\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"جمع مبلغ فروش\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"بهای تمام شده محصول\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"بهای تمام شده کل\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"نسبت به\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n let filter: GridFilter[] = [];\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.httpCommonService\r\n .GetFilterGrid(\"InventoryReview/GetGeneralMonthlyFoodCostReport\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entitys = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ReferenceVoucherListComponent } from \"../../invvoucher/reference-voucher-list/reference-voucher-list.component\";\r\nimport { InvVoucherKind } from \"../../models/inv-voucher-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-no-reference-voucher-form\",\r\n templateUrl: \"./inv-no-reference-voucher-form.component.html\",\r\n styleUrls: [\"./inv-no-reference-voucher-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvNoReferenceVoucherFormComponent extends BaseFormComponent {\r\n voucherKind: InvVoucherKind;\r\n ReferenceVoucherKindIds: number[] = [];\r\n ReferenceVoucherKind: InvVoucherKind[];\r\n dataList: any[] = [];\r\n SelectedRow: any;\r\n @ViewChild(KGridComponent) grid: KGridComponent;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"InvVoucherHeader/GetInvNoReferenceVoucher\";\r\n this.label = \"اسناد بدون معطوف\";\r\n this.setColumns();\r\n this.formGroup = new UntypedFormGroup({});\r\n this.setdefault();\r\n this.addControl();\r\n }\r\n setdefault() {\r\n this.setValue(\"VoucherKindId\", null, true);\r\n this.setValue(\"ReferenceVoucherKindIds\", this.ReferenceVoucherKindIds, true);\r\n this.setValue(\"ShowReference\", false, true);\r\n this.setValue(\"LinearReferenced\", false, true);\r\n }\r\n onRowSelected($event) {\r\n this.voucherKind = $event;\r\n if (this.voucherKind.IsWarehouse === true) {\r\n this.apiName = \"InvVoucherHeader/GetInvNoReferenceVoucher\";\r\n this.grid.apiName = this.apiName;\r\n } else {\r\n this.apiName = \"SellVoucherHeader/GetInvNoReferenceVoucher\";\r\n this.grid.apiName = this.apiName;\r\n }\r\n\r\n this.setReferenceVoucherKind();\r\n }\r\n setReferenceVoucherKind() {\r\n this.httpCommonService\r\n .get(\"InvVoucherKind/GetReferenceVoucherKind/?id=\" + this.voucherKind.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: InvVoucherKind[]) => {\r\n this.ReferenceVoucherKind = data;\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n onChange($event) {\r\n let FiscalYearId: number = this.accountService.authService.currentFiscalYear?.Id;\r\n if (this.grid && this.formGroup.get(\"ReferenceVoucherKindIds\").value && this.formGroup.get(\"ReferenceVoucherKindIds\").value.length > 0) {\r\n this.grid.filters = this.getGridFilter();\r\n this.grid.refreshData();\r\n }\r\n }\r\n async setColumns() {\r\n this.orignalColumns = [];\r\n\r\n this.httpCommonService\r\n .get(\"InvVoucherHeader/GetReferenceVoucherInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: form_control[]) => {\r\n this.columns = data.filter((x) => x.name != \"DiscountAmount\" && x.name !== \"Tax\" && x.name !== \"Surplusage\" && x.name !== \"Deduction\");\r\n this.columns = (data as form_control[]).sort((a, b) => a.order - b.order);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n getGridFilter(Skip: number = 0, Take: number = 10): GridFilter[] {\r\n let gridFilter: GridFilter[] = [];\r\n\r\n gridFilter = [\r\n {\r\n Type: \"F\",\r\n Filed: \"ReferenceVoucherKindIds\",\r\n Value: this.formGroup.get(\"ReferenceVoucherKindIds\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 10,\r\n },\r\n {\r\n Type: \"F\",\r\n Filed: \"BranchId\",\r\n Value: this.accountService.authService.currentBranchId,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 10,\r\n },\r\n {\r\n Type: \"F\",\r\n Filed: \"ShowReference\",\r\n Value: !this.formGroup?.get(\"ShowReference\")?.value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 10,\r\n },\r\n {\r\n Type: \"F\",\r\n Filed: \"LinearReferenced\",\r\n Value: this.formGroup?.get(\"LinearReferenced\")?.value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 10,\r\n },\r\n {\r\n Type: \"F\",\r\n Filed: \"VoucherKindId\",\r\n Value: this.formGroup.get(\"VoucherKindId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 10,\r\n },\r\n {\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.accountService.authService.currentFiscalYear?.Id,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 10,\r\n },\r\n ];\r\n return gridFilter;\r\n }\r\n addControl() {\r\n this.formGroup?.controls[\"ShowReference\"].valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && this.formGroup?.get(\"LinearReferenced\").value) {\r\n this.formGroup?.get(\"LinearReferenced\").setValue(false);\r\n this.cd.markForCheck();\r\n }\r\n });\r\n this.formGroup?.controls[\"LinearReferenced\"].valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && this.formGroup?.get(\"ShowReference\").value) {\r\n this.formGroup?.get(\"ShowReference\").setValue(false);\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n onRow_Selected($event) {\r\n this.SelectedRow = $event;\r\n }\r\n ReferenceTo() {\r\n if (!this.SelectedRow || !this.SelectedRow[\"VoucherHeaderId\"]) return;\r\n this.dialogService\r\n .open(\r\n ReferenceVoucherListComponent,\r\n {\r\n VoucherId: this.SelectedRow[\"VoucherHeaderId\"],\r\n apiName: \"InvVoucherHeader/GetInvReferenceToVouchersByVoucherId\",\r\n areaName: \"Inventory\",\r\n label: \"سند معطوف\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {});\r\n }\r\n Reference() {\r\n if (!this.SelectedRow || !this.SelectedRow[\"ReferenceVoucherHeaderId\"]) return;\r\n\r\n this.dialogService\r\n .open(\r\n ReferenceVoucherListComponent,\r\n {\r\n VoucherId: this.SelectedRow[\"ReferenceVoucherHeaderId\"],\r\n apiName: \"InvVoucherHeader/GetInvReferenceVouchersByVoucherId\",\r\n areaName: \"Inventory\",\r\n label: \"سند مبنا\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {});\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n 0\"\r\n #grid\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [filtering]=\"false\"\r\n [allowUnsort]=\"false\"\r\n [groupable]=\"false\"\r\n [name]=\"apiName\"\r\n [columns]=\"columns\"\r\n [isEdit]=\"false\"\r\n [isAdd]=\"false\"\r\n (onRowSelected)=\"onRow_Selected($event)\"\r\n [isDelete]=\"false\"\r\n pathPreFix=\"INV\">\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { InvNoReferenceVoucherFormComponent } from \"./inv-no-reference-voucher-form.component\";\r\nconst components = [InvNoReferenceVoucherFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class InvNoReferenceVoucherModule {}\r\n","import { Component } from \"@angular/core\";\r\nimport { UntypedFormGroup, UntypedFormBuilder } from \"@angular/forms\";\r\nimport { ReviewService } from \"src/app/review/review.service\";\r\nimport { form_control, Permission, EntityListAction, FiscalYear } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { AccVoucherFormComponent } from \"src/app/backoffice/acc/accvoucher/accvoucher-form/accvoucher-form.component\";\r\nimport { InvVoucherFormComponent } from \"../../invvoucher/invvoucher-form/invvoucher-form.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ReviewFilterItem } from \"src/app/review/models/review-filter-item\";\r\n\r\n@Component({\r\n selector: \"inventory-review\",\r\n templateUrl: \"./inventory-review.component.html\",\r\n styleUrls: [\"./inventory-review.component.scss\"],\r\n providers: [ReviewService],\r\n})\r\nexport class InventoryReviewComponent extends BaseListComponent {\r\n actions: EntityListAction[];\r\n formGroup: UntypedFormGroup;\r\n GetInvVoucherKindColumns: form_control[] = [];\r\n GetDetailLedgerColumns: form_control[] = [];\r\n GetWarehouseColumns: form_control[] = [];\r\n GetGoodsGroupColumns: form_control[] = [];\r\n GetGoodsColumns: form_control[] = [];\r\n GetGoodsCardAmountColumns: form_control[] = [];\r\n GetGoodsCardPriceColumns: form_control[] = [];\r\n GetVoucherHeaderColumns: form_control[] = [];\r\n GetVoucherDetailColumns: form_control[] = [];\r\n GetGoodsFormulaColumns: form_control[] = [];\r\n GetProductConsumptionReport: form_control[] = [];\r\n InvVoucherKindIds: number[] = [];\r\n StatusKindIds: number[] = [];\r\n BranchIds: number[] = [];\r\n DetailLedgerKindIds: number[] = [];\r\n activeTabTitle: string;\r\n selected: string = \"\";\r\n constructor(private service: ReviewService, private tabsservice: TabularService, private fb: UntypedFormBuilder) {\r\n super();\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.service.startDate = new Date();\r\n this.service.endDate = new Date();\r\n let currentFiscalYear = this.accountService.authService.currentFiscalYear;\r\n\r\n this.setactions();\r\n if (currentFiscalYear) {\r\n this.service.startDate.setDate(this.service.startDate.getDate() - 30);\r\n this.service.startDate$.next(this.service.startDate);\r\n this.service.startDate$.next(this.service.startDate);\r\n if (currentFiscalYear && currentFiscalYear.StartDate) {\r\n let fystartDate = new Date(currentFiscalYear.StartDate);\r\n if (fystartDate.setHours(0, 0, 0, 0) > this.service.startDate.setHours(0, 0, 0, 0))\r\n this.service.startDate = this.accountService.authService.currentFiscalYear.StartDate;\r\n else if (fystartDate.setHours(0, 0, 0, 0) < this.service.startDate.setHours(0, 0, 0, 0)) {\r\n this.service.startDate = currentFiscalYear.StartDate;\r\n this.service.endDate = currentFiscalYear.EndDate;\r\n this.service.startDate$.next(currentFiscalYear.StartDate);\r\n this.service.endDate$.next(currentFiscalYear.EndDate);\r\n }\r\n }\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.service.startDate.setDate(this.service.startDate.getDate() - 30);\r\n let fystartDate = new Date(x.StartDate);\r\n if (fystartDate.setHours(0, 0, 0, 0) > this.service.startDate.setHours(0, 0, 0, 0)) this.service.startDate = x.StartDate;\r\n else if (fystartDate.setHours(0, 0, 0, 0) < this.service.startDate.setHours(0, 0, 0, 0)) {\r\n this.service.startDate = x.StartDate;\r\n this.service.endDate = x.EndDate;\r\n this.service.startDate$.next(currentFiscalYear.StartDate);\r\n this.service.endDate$.next(currentFiscalYear.EndDate);\r\n }\r\n }\r\n });\r\n // this.BranchIds = [];\r\n // this.BranchIds.push(this.accountService.authService.currentBranchId);\r\n // this.service.addFilter(this.accountService.authService.currentBranch.Title, [\r\n // {\r\n // key: \"BranchIds\",\r\n // value: this.accountService.authService.currentBranchId,\r\n // title: this.accountService.authService.currentBranch.Title,\r\n // persianKey: this.accountService.authService.currentBranch.Title,\r\n // },\r\n // ]);\r\n this.formGroup = this.fb.group({\r\n InvVoucherKindIds: this.InvVoucherKindIds,\r\n StatusKindIds: this.StatusKindIds,\r\n BranchIds: this.BranchIds,\r\n OnlySupplier: false,\r\n IsGoods: false,\r\n SlaveNo: undefined,\r\n StartNumber: undefined,\r\n EndNumber: undefined,\r\n IsService: false,\r\n TraceElement: undefined,\r\n ReceiptDate: undefined,\r\n ShowBeginingOfTheCoursResidue: false,\r\n ShowRunningTotal: false,\r\n });\r\n this.service.filter$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n let ShowBeforeRemain: boolean = x.items.some((r) => r.key === \"ShowBeforeRemain\");\r\n let AmountRemain: boolean = x.items.some((r) => r.key === \"ShowRunningTotal\");\r\n if (AmountRemain) {\r\n this.GetVoucherDetailColumns.find((x) => x.name === \"AmountRemain\").listVisible = true;\r\n }\r\n this.populateGridColumns();\r\n }\r\n });\r\n this.populateGridColumns();\r\n this.setColumns();\r\n }\r\n setColumns() {\r\n this.httpCommonService\r\n .get(\"InventoryReview/GetGoodsFormulaInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetGoodsFormulaColumns = data as form_control[];\r\n this.GetGoodsFormulaColumns = this.GetGoodsFormulaColumns.sort((a, b) => a.order - b.order);\r\n this.GetGoodsFormulaColumns.find((x) => x.name === \"BranchCode\").listVisible = true;\r\n this.GetGoodsFormulaColumns.find((x) => x.name === \"BranchTitle\").listVisible = true;\r\n this.GetGoodsFormulaColumns.find((x) => x.name === \"ProductCode\").listVisible = true;\r\n this.GetGoodsFormulaColumns.find((x) => x.name === \"ProductName\").listVisible = true;\r\n this.GetGoodsFormulaColumns.find((x) => x.name === \"ProductUnitTitle\").listVisible = true;\r\n this.GetGoodsFormulaColumns.find((x) => x.name === \"ProductShamsiEffectDate\").listVisible = true;\r\n\r\n this.setColumnVisiblty();\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n\r\n this.httpCommonService\r\n .get(\"InventoryReview/GetInventoryReviewInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetVoucherDetailColumns = data as form_control[];\r\n this.GetVoucherDetailColumns = this.GetVoucherDetailColumns.sort((a, b) => a.order - b.order);\r\n this.GetVoucherDetailColumns.forEach((x) => {\r\n if (\r\n x.name === \"BranchCode\" ||\r\n x.name === \"BranchTitle\" ||\r\n x.name === \"VoucherDate\" ||\r\n x.name === \"ReceiptDate\" ||\r\n x.name === \"ShamsiReceiptDate\" ||\r\n x.name === \"SlaveNo\" ||\r\n x.name === \"GoodsMainUnitTitle\" ||\r\n x.name === \"DetailLedgerCode\" ||\r\n x.name === \"WarehouseCode\" ||\r\n x.name === \"GoodsGroupCode\" ||\r\n x.name === \"GoodsGroupTitle\" ||\r\n x.name === \"AmountRemain\" ||\r\n x.name === \"MonthAmount\" ||\r\n x.name === \"Amount\" ||\r\n x.name === \"MainAmount\" ||\r\n x.name === \"DaylyAvrage\" ||\r\n x.name === \"MonthlyAvrage\"\r\n )\r\n x.listVisible = false;\r\n if (x.name === \"Amount\" || x.name === \"MainAmount\") x.listVisible = true;\r\n });\r\n this.setColumnVisiblty();\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n setColumnVisiblty() {}\r\n populateGridColumns(): any {\r\n var col: form_control[] = [];\r\n col = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"MainInputAmount\",\r\n modelName: \"MainInputAmount\",\r\n listVisible: true,\r\n label: \"وارده اصلی\",\r\n order: 11,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"MainOutputAmount\",\r\n modelName: \"MainOutputAmount\",\r\n listVisible: true,\r\n label: \"صادره اصلی\",\r\n order: 12,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"MainAmountRemain\",\r\n modelName: \"MainAmountRemain\",\r\n listVisible: true,\r\n label: \"مانده اصلی\",\r\n order: 13,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"InputPrice\",\r\n modelName: \"InputPrice\",\r\n listVisible: true,\r\n label: \"وارده ریالی\",\r\n order: 14,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"OutputPrice\",\r\n modelName: \"OutputPrice\",\r\n listVisible: true,\r\n label: \"صادره ریالی\",\r\n order: 15,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"PriceRemain\",\r\n modelName: \"PriceRemain\",\r\n listVisible: true,\r\n label: \"مانده ریالی\",\r\n order: 16,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DiscountAmount\",\r\n modelName: \"DiscountAmount\",\r\n listVisible: true,\r\n label: \"تخفیف\",\r\n order: 17,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Surplusage\",\r\n modelName: \"Surplusage\",\r\n listVisible: true,\r\n label: \"اضافات\",\r\n order: 18,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Deduction\",\r\n modelName: \"Deduction\",\r\n listVisible: true,\r\n label: \"کسور\",\r\n order: 19,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n this.GetInvVoucherKindColumns = [];\r\n Object.assign(this.GetInvVoucherKindColumns, col);\r\n this.GetInvVoucherKindColumns.push({\r\n name: \"VoucherKindCode\",\r\n modelName: \"VoucherKind.Code\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetInvVoucherKindColumns.push({\r\n name: \"VoucherKindTitle\",\r\n modelName: \"VoucherKind.Title\",\r\n listVisible: true,\r\n label: \"عنوان\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetInvVoucherKindColumns = this.GetInvVoucherKindColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetDetailLedgerColumns = [];\r\n Object.assign(this.GetDetailLedgerColumns, col);\r\n this.GetDetailLedgerColumns.push({\r\n name: \"DetailLedgerCode\",\r\n modelName: \"DetailLedger.Code\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedgerColumns.push({\r\n name: \"DetailLedgerTitle\",\r\n modelName: \"DetailLedger.Title\",\r\n listVisible: true,\r\n label: \"عنوان\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedgerColumns = this.GetDetailLedgerColumns.sort((a, b) => a.order - b.order);\r\n this.GetWarehouseColumns = [];\r\n Object.assign(this.GetWarehouseColumns, col);\r\n this.GetWarehouseColumns.push({\r\n name: \"WarehouseCode\",\r\n modelName: \"Warehouse.Code\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetWarehouseColumns.push({\r\n name: \"WarehouseTitle\",\r\n modelName: \"Warehouse.Title\",\r\n listVisible: true,\r\n label: \"انبار\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetWarehouseColumns = this.GetWarehouseColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetGoodsGroupColumns = [];\r\n Object.assign(this.GetGoodsGroupColumns, col);\r\n this.GetGoodsGroupColumns.push({\r\n name: \"GoodsGroupCode\",\r\n modelName: \"GoodsGroup.TreeCode\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsGroupColumns.push({\r\n name: \"GoodsGroupTitle\",\r\n modelName: \"GoodsGroup.TreePath\",\r\n listVisible: true,\r\n label: \"عنوان\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsGroupColumns = this.GetGoodsGroupColumns.sort((a, b) => a.order - b.order);\r\n this.GetGoodsColumns = [];\r\n Object.assign(this.GetGoodsColumns, col);\r\n this.GetGoodsColumns.push({\r\n name: \"GoodsCode\",\r\n modelName: \"Goods.Code\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns.push({\r\n name: \"GoodsTitle\",\r\n modelName: \"Goods.Title\",\r\n listVisible: true,\r\n label: \"عنوان\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns.push({\r\n name: \"GoodsGroupCode\",\r\n modelName: \"GoodsGroup.TreeCode\",\r\n listVisible: true,\r\n label: \"کد گروه\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns.push({\r\n name: \"GoodsGroupTitle\",\r\n modelName: \"GoodsGroup.TreePath\",\r\n listVisible: true,\r\n label: \"عنوان گروه\",\r\n order: 4,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns.push({\r\n name: \"GoodsUnitTitle\",\r\n modelName: \"GoodsUnitTitle\",\r\n listVisible: true,\r\n label: \"واحد سنجش\",\r\n order: 5,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns.push({\r\n name: \"GoodsMainUnitTitle\",\r\n modelName: \"GoodsMainUnitTitle\",\r\n listVisible: true,\r\n label: \"واحد سنجش اصلی\",\r\n order: 5,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns.push({\r\n name: \"DaylyAvrage\",\r\n modelName: \"DaylyAvrage\",\r\n listVisible: true,\r\n label: \"میانگین مصرف روزانه\",\r\n order: 20,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns.push({\r\n name: \"MonthlyAvrage\",\r\n modelName: \"MonthlyAvrage\",\r\n listVisible: true,\r\n label: \"میانگین مصرف ماهانه\",\r\n order: 21,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns.push({\r\n name: \"UnitPrice\",\r\n modelName: \"UnitPrice\",\r\n listVisible: true,\r\n label: \"آخرین فی\",\r\n order: 21,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns = this.GetGoodsColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetVoucherHeaderColumns = [];\r\n Object.assign(this.GetVoucherHeaderColumns, col);\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"VoucherKindTitle\",\r\n modelName: \"VoucherKindT.itle\",\r\n listVisible: true,\r\n label: \"نوع سند\",\r\n order: 1,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"VoucherNo\",\r\n modelName: \"VoucherNo\",\r\n listVisible: true,\r\n label: \"شماره سند\",\r\n order: 2,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"ShamsiVoucherDate\",\r\n modelName: \"ShamsiVoucherDate\",\r\n listVisible: true,\r\n label: \"تاریخ سند\",\r\n order: 3,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"ShamsiReceiptDate\",\r\n modelName: \"ShamsiReceiptDate\",\r\n listVisible: true,\r\n label: \"تاریخ وصول\",\r\n order: 4,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"Invoicecredit\",\r\n modelName: \"Invoicecredit\",\r\n listVisible: true,\r\n label: \"اعتبار به روز\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"SlaveNo\",\r\n modelName: \"SlaveNo\",\r\n listVisible: true,\r\n label: \"َشماره پیگیری\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"DetailLedgerCode\",\r\n modelName: \"DetailLedger.Code\",\r\n listVisible: true,\r\n label: \"کد طرف مقابل\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"DetailLedgerTitle\",\r\n modelName: \"DetailLedger.Title\",\r\n listVisible: true,\r\n label: \"طرف مقابل\",\r\n order: 8,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"WarehouseTitle\",\r\n modelName: \"WarehouseTitle\",\r\n listVisible: true,\r\n label: \"انبار\",\r\n order: 9,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns = this.GetVoucherHeaderColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetGoodsCardAmountColumns = [];\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"BranchTitle\",\r\n modelName: \"BranchTitle\",\r\n listVisible: true,\r\n label: \"َشعبه\",\r\n order: 1,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"WarehouseTitle\",\r\n modelName: \"WarehouseTitle\",\r\n listVisible: true,\r\n label: \"َانبار\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"GoodsCode\",\r\n modelName: \"GoodsCode\",\r\n listVisible: true,\r\n label: \"َکدکالا\",\r\n order: 3,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"GoodsTitle\",\r\n modelName: \"GoodsTitle\",\r\n listVisible: true,\r\n label: \"َکالا\",\r\n order: 4,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"GoodsMainUnitTitle\",\r\n modelName: \"GoodsMainUnitTitle\",\r\n listVisible: true,\r\n label: \"واحد سنجش\",\r\n order: 5,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"ShamsiVoucherDate\",\r\n modelName: \"ShamsiVoucherDate\",\r\n listVisible: true,\r\n label: \"تاریخ سند\",\r\n order: 5,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"Comment\",\r\n modelName: \"Comment\",\r\n listVisible: true,\r\n label: \"شرح\",\r\n order: 6,\r\n textType: \"text\",\r\n withComma: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"MainInputAmount\",\r\n modelName: \"MainInputAmount\",\r\n listVisible: true,\r\n label: \"مقدار وارده\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"MainOutputAmount\",\r\n modelName: \"MainOutputAmount\",\r\n listVisible: true,\r\n label: \"مقدارصادره\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns = this.GetGoodsCardAmountColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetGoodsCardPriceColumns = [];\r\n Object.assign(this.GetGoodsCardPriceColumns, this.GetGoodsCardAmountColumns);\r\n this.GetGoodsCardPriceColumns.push({\r\n name: \"InputPrice\",\r\n modelName: \"InputPrice\",\r\n listVisible: true,\r\n label: \"وارده ریالی\",\r\n order: 9,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardPriceColumns.push({\r\n name: \"OutputPrice\",\r\n modelName: \"OutputPrice\",\r\n listVisible: true,\r\n label: \"صادره ریالی\",\r\n order: 9,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardPriceColumns = this.GetGoodsCardPriceColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetProductConsumptionReport = [];\r\n this.GetProductConsumptionReport.push({\r\n name: \"IngredientCode\",\r\n modelName: \"Ingredient.Code\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetProductConsumptionReport.push({\r\n name: \"IngredientTitle\",\r\n modelName: \"Ingredient.Title\",\r\n listVisible: true,\r\n label: \"عنوان\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetProductConsumptionReport.push({\r\n name: \"GoodsMainUnitTitle\",\r\n modelName: \"GoodsMainUnitTitle\",\r\n listVisible: true,\r\n label: \"واحد اصلی\",\r\n order: 3,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetProductConsumptionReport.push({\r\n name: \"MainInputAmount\",\r\n modelName: \"MainInputAmount\",\r\n listVisible: true,\r\n label: \"وارده اصلی\",\r\n order: 4,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetProductConsumptionReport.push({\r\n name: \"MainOutputAmount\",\r\n modelName: \"MainOutputAmount\",\r\n listVisible: true,\r\n label: \"صادره اصلی\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetProductConsumptionReport.push({\r\n name: \"Surplusage\",\r\n modelName: \"Surplusage\",\r\n listVisible: true,\r\n label: \"اضافات\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetProductConsumptionReport.push({\r\n name: \"Deduction\",\r\n modelName: \"Deduction\",\r\n listVisible: true,\r\n label: \"کسورات\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetProductConsumptionReport.push({\r\n name: \"MainAmountRemain\",\r\n modelName: \"MainAmountRemain\",\r\n listVisible: true,\r\n label: \"مانده اصلی\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetProductConsumptionReport.push({\r\n name: \"SalesBasedConsumption\",\r\n modelName: \"SalesBasedConsumption\",\r\n listVisible: true,\r\n label: \"مصرف بر مبنای فروش\",\r\n order: 9,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetProductConsumptionReport.push({\r\n name: \"SalesBasedResidual\",\r\n modelName: \"SalesBasedResidual\",\r\n listVisible: true,\r\n label: \"مانده اصلی بر اساس فروش\",\r\n order: 10,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetProductConsumptionReport.push({\r\n name: \"SalesBasedBalance\",\r\n modelName: \"SalesBasedBalance\",\r\n listVisible: true,\r\n label: \"مانده صادره بر اساس فروش\",\r\n order: 11,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: any, onRowsSelected: any[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n ///نمایش سند حسابداری\r\n if (action.name === \"AccVoucherHeader\") {\r\n var datatrasfer: Datatransfer = {};\r\n onRowSelected.Id = onRowSelected.AccVoucherHeaderId;\r\n datatrasfer.apiName = action.apiName;\r\n datatrasfer.areaName = action.areaName;\r\n datatrasfer.currentrow = onRowSelected;\r\n action.Form_Component = AccVoucherFormComponent;\r\n datatrasfer.apiName = \"AccVoucherHeader\";\r\n datatrasfer.areaName = \"Accounting\";\r\n datatrasfer.label = \"سند حسابداری\";\r\n if (onRowSelected.AccVoucherHeaderId) this.showVoucher(datatrasfer, action);\r\n }\r\n\r\n ///سند مبنا\r\n if (action.name === \"BaseVoucher\") {\r\n var datatrasfer: Datatransfer = {};\r\n onRowSelected.Id = onRowSelected.VoucherHeaderId;\r\n datatrasfer.apiName = action.apiName;\r\n datatrasfer.areaName = action.areaName;\r\n datatrasfer.currentrow = onRowSelected;\r\n action.Form_Component = InvVoucherFormComponent;\r\n datatrasfer.apiName = action.apiName;\r\n datatrasfer.areaName = action.areaName;\r\n datatrasfer.label = \"سند انبار\";\r\n if (onRowSelected.VoucherHeaderId) this.showVoucher(datatrasfer, action);\r\n }\r\n }\r\n showVoucher(datatrasfer: Datatransfer, action: any) {\r\n const menu = {\r\n title: datatrasfer.label,\r\n isCloseable: true,\r\n icon: action.iconName,\r\n active: true,\r\n responsive: true,\r\n componentType: action.Form_Component,\r\n data: [\r\n { provide: EntityBase, useValue: datatrasfer.currentrow },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: 0 } },\r\n ],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"AccVoucherHeader\",\r\n disabled: false,\r\n isModal: false,\r\n displayName: \"سند حسابداری\",\r\n iconName: \"icon-table_view-f\",\r\n Form_Component: AccVoucherFormComponent,\r\n apiName: \"AccVoucherHeader\",\r\n areaName: \"Accounting\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"BaseVoucher\",\r\n disabled: false,\r\n isModal: false,\r\n displayName: \"سند مبنا\",\r\n iconName: \"icon-folder-open-outline\",\r\n areaName: \"Inventory\",\r\n Form_Component: InvVoucherFormComponent,\r\n apiName: \"InvVoucherHeader\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"GetGoodsHistory\",\r\n disabled: false,\r\n displayName: \"تاریخچه\",\r\n iconName: \"icon-history-o\",\r\n areaName: \"Inventory\",\r\n Form_Component: InvVoucherFormComponent,\r\n apiName: \"InventoryReview/GetGoodsHistory\",\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n setSelectedFilter(filter: string) {\r\n if (this.selected === filter) this.selected = \"\";\r\n else this.selected = filter;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.INV.InventoryReview.FilterInfo\" | translate }}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.INV.StatusKind.StatusKindTitle\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.INV.InventoryReview.Branch\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\r\n \"\r\n name=\"VoucherDetail\"\r\n [title]=\"'ClientApp.BackOffice.INV.InventoryReview.VoucherDetail' | translate\"\r\n apiName=\"InventoryReview/GetVoucherDetail\"\r\n areaName=\"Inventory\"\r\n [columns]=\"GetVoucherDetailColumns\"\r\n [selective]=\"false\"\r\n [filtering]=\"true\"\r\n [isModal]=\"false\"\r\n defaultSortKey=\"VoucherDate\"\r\n pathPreFix=\"INV\"\r\n [actionTregger]=\"onActionClick\"\r\n [actions]=\"actions\"\r\n key=\"VoucherDetailIds\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\r\n \"\r\n name=\"GoodsFormulaReport\"\r\n [title]=\"'ClientApp.BackOffice.INV.InventoryReview.GoodsFormulaReport' | translate\"\r\n apiName=\"InventoryReview/GoodsFormulaReport\"\r\n areaName=\"Inventory\"\r\n [columns]=\"GetGoodsFormulaColumns\"\r\n [selective]=\"false\"\r\n [filtering]=\"false\"\r\n [groupable]=\"true\"\r\n pathPreFix=\"INV\">\r\n \r\n \r\n \r\n 0\r\n \"\r\n name=\"VoucherGoodsWarehouseReport\"\r\n [title]=\"'ClientApp.BackOffice.INV.InventoryReview.VoucherGoodsWarehouseReport' | translate\"\r\n apiName=\"InventoryReview/GetVoucherGoodsWarehouseDetail\"\r\n areaName=\"Inventory\"\r\n [columns]=\"GetVoucherDetailColumns\"\r\n [selective]=\"false\"\r\n [filtering]=\"false\"\r\n [groupable]=\"true\"\r\n pathPreFix=\"INV\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ReportReviewModule } from \"src/app/review/review.module\";\r\nimport { InventoryReviewComponent } from \"./inventory-review.component\";\r\n\r\nconst components = [InventoryReviewComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, ReportReviewModule],\r\n})\r\nexport class InventpryReviewModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"material-use-in-product-report\",\r\n templateUrl: \"material-use-in-product-report.component.html\",\r\n styleUrls: [\"material-use-in-product-report.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MaterialUseInProductReportComponent extends BaseFormComponent {\r\n public apiName: string = \"InventoryReview\";\r\n public label: string = \"استفاده مواد در محصول\";\r\n public entitys: any[];\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n constructor(\r\n private missetup: MisSetupService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetMaterialUseInProductReport\";\r\n this.pathPreFix = \"INV\";\r\n this.apiName = \"InventoryReview\";\r\n this.areaName = \"Inventory\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 2,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.gridColumns.push({\r\n label: \"کد محصول\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کد کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"محصول\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"واحد سنجش\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مقدار استاندارد\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"تاریخ موثر\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"عنوان کالا مشابه\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.setColumnNumber(this.columns, 5);\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n setColumnAttribute() {\r\n this.columns.forEach((x) => ((x.isFloat = null), (x.userClass = null)));\r\n this.cd.markForCheck();\r\n }\r\n\r\n addControl(): void {\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.httpCommonService\r\n .GetFilterGrid(\"InventoryReview/GetMaterialUseInProductReport\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entitys = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"negative-remain-of-goods-daly-report\",\r\n templateUrl: \"negative-remain-of-goods-daly-report.component.html\",\r\n styleUrls: [\"negative-remain-of-goods-daly-report.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NegativeRemainOfGoodsDalyReportComponent extends BaseFormComponent {\r\n public apiName: string = \"InventoryReview/GetNegativeRemainOfGoodsDailyReport\";\r\n public label: string = \"گزارش مانده منفی کالا به تفکیک روز\";\r\n public filters: GridFilter[] = [];\r\n public gridColumns: form_control[] = [];\r\n\r\n constructor(__id: FormContainerModel, _tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetNegativeRemainOfGoodsDailyReport\";\r\n this.pathPreFix = \"INV\";\r\n this.apiName = \"InventoryReview/GetNegativeRemainOfGoodsDailyReport\";\r\n this.areaName = \"Inventory\";\r\n this.loadReports();\r\n this.setGridColumns();\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.filters.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.accountService.authService.currentFiscalYear.Id,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n }\r\n this.filters.push({\r\n Type: \"S\",\r\n Filed: \"GoodsCode\",\r\n Value: 0,\r\n Logic: \"and\",\r\n Operator: \"asc\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.filters.push({\r\n Type: \"S\",\r\n Filed: \"ShamsiVoucherDate\",\r\n Value: 0,\r\n Logic: \"and\",\r\n Operator: \"asc\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.filters = Object.assign([], this.filters);\r\n super.ngOnInit();\r\n }\r\n\r\n setGridColumns() {\r\n this.gridColumns.push({ label: \"شعبه\", modelName: \"BranchTitle\", name: \"BranchTitle\", order: 0, listVisible: true });\r\n this.gridColumns.push({ label: \"انبار\", modelName: \"WarehouseTitle\", name: \"WarehouseTitle\", order: 1, listVisible: true });\r\n this.gridColumns.push({ label: \"تاریخ\", modelName: \"ShamsiVoucherDate\", name: \"ShamsiVoucherDate\", order: 2, listVisible: true });\r\n this.gridColumns.push({ label: \"کد کالا\", modelName: \"GoodsCode\", name: \"GoodsCode\", order: 3, listVisible: true });\r\n this.gridColumns.push({ label: \"کالا\", modelName: \"GoodsTitle\", name: \"GoodsTitle\", order: 4, listVisible: true });\r\n this.gridColumns.push({ label: \"واحد سنجش\", modelName: \"GoodsUnitTitle\", name: \"GoodsUnitTitle\", order: 5, listVisible: true });\r\n this.gridColumns.push({\r\n label: \"وارده\",\r\n modelName: \"InPutAmount\",\r\n name: \"InPutAmount\",\r\n order: 6,\r\n listVisible: true,\r\n withComma: true,\r\n textType: \"number\",\r\n });\r\n this.gridColumns.push({\r\n label: \"صادره\",\r\n modelName: \"OutPutAmount\",\r\n name: \"OutPutAmount\",\r\n order: 7,\r\n listVisible: true,\r\n withComma: true,\r\n textType: \"number\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مانده\",\r\n modelName: \"RemainAmount\",\r\n name: \"RemainAmount\",\r\n order: 9,\r\n listVisible: true,\r\n withComma: true,\r\n textType: \"number\",\r\n });\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n userClass: \"small\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.setColumnNumber(this.columns, 5);\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n addControl(): void {\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) this.setValue(\"FiscalYearId\", x.Id);\r\n });\r\n }\r\n\r\n onFormChanges(changes: FiscalYear) {\r\n if (changes?.Year) {\r\n const fiscalYearIdIndex = this.filters.findIndex((x) => x.Filed === \"FiscalYearId\" && x.Type === \"F\");\r\n this.filters.splice(fiscalYearIdIndex, 1, {\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: changes.Id,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.filters = Object.assign([], this.filters);\r\n }\r\n }\r\n\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"new-daily-purchase-invoice-report\",\r\n templateUrl: \"new-daily-purchase-invoice-report.component.html\",\r\n styleUrls: [\"new-daily-purchase-invoice-report.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NewDailyPurchaseInvoiceReportComponent extends BaseFormComponent {\r\n public apiName: string = \"InventoryReview\";\r\n public label: string = \"گزارش فاکتور خرید روزانه جدید\";\r\n constructor(\r\n private missetup: MisSetupService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetNewDailyPurchaseInvoiceReport\";\r\n this.pathPreFix = \"INV\";\r\n this.apiName = \"InventoryReview\";\r\n this.areaName = \"Inventory\";\r\n this.loadReports();\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"سال مالی\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"FiscalYearId\",\r\n disabled: false,\r\n name: \"FiscalYearId\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"FiscalYear/FiscalYear\",\r\n valueMember: \"Id\",\r\n displayMember: \"Year\",\r\n });\r\n this.columns.push({\r\n label: \"تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"VoucherDate\",\r\n disabled: false,\r\n name: \"VoucherDate\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n this.setValue(\"VoucherDate\", new Date());\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData(reprtName, saveReportFile);\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData(reprtName, saveReportFile);\r\n }\r\n loadData(reportName: string, saveReportFile: SaveReportFile) {\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"FiscalYearId\",\r\n Value: this.formGroup.get(\"FiscalYearId\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({ Type: \"F\", Filed: \"VoucherDate\", Value: this.formGroup.get(\"VoucherDate\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n this.httpCommonService\r\n .GetFilterGrid(\"InventoryReview/GetNewDailyPurchaseInvoiceReport\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n this.setReport(reportName, saveReportFile, data as []);\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, form_control, SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"price-change-in-purchase-report\",\r\n templateUrl: \"price-change-in-purchase-report.component.html\",\r\n styleUrls: [\"price-change-in-purchase-report.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PriceChangeInPurchaseReportComponent extends BaseFormComponent {\r\n public apiName: string = \"InventoryReview\";\r\n public label: string = \"گزارش تغییر قیمت در خرید\";\r\n public entitys: any[];\r\n public gridColumns: form_control[] = [];\r\n public actions: EntityListAction[] = [];\r\n constructor(\r\n private missetup: MisSetupService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetPriceChangeInPurchaseReport\";\r\n this.pathPreFix = \"INV\";\r\n this.apiName = \"InventoryReview\";\r\n this.areaName = \"Inventory\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.gridColumns.push({\r\n label: \"کد کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"کالا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"واحد سنجش\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مقدار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مقدار اصلی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"فی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مقدار قبلی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مقدار اصلی قبلی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"فی قبلی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"آخرین تاریخ\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"تاریخ ماقبل\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"نرخ تغییر\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n }\r\n });\r\n }\r\n\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n this.httpCommonService\r\n .getList(\"InventoryReview/GetPriceChangeInPurchaseReport\")\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entitys = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup } from \"@angular/forms\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, Permission, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherFormComponent } from \"src/app/backoffice/acc/accvoucher/accvoucher-form/accvoucher-form.component\";\r\nimport { ReviewService } from \"src/app/review/review.service\";\r\nimport { InvVoucherFormComponent } from \"../../invvoucher/invvoucher-form/invvoucher-form.component\";\r\n\r\n@Component({\r\n selector: \"purchase-invoice-report\",\r\n templateUrl: \"purchase-invoice-report.component.html\",\r\n styleUrls: [\"purchase-invoice-report.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PurchaseInvoiceReportComponent extends BaseListComponent {\r\n actions: EntityListAction[];\r\n formGroup: UntypedFormGroup;\r\n GetInvVoucherKindColumns: form_control[] = [];\r\n GetDetailLedgerColumns: form_control[] = [];\r\n GetWarehouseColumns: form_control[] = [];\r\n GetGoodsGroupColumns: form_control[] = [];\r\n GetGoodsColumns: form_control[] = [];\r\n GetGoodsCardAmountColumns: form_control[] = [];\r\n GetGoodsCardPriceColumns: form_control[] = [];\r\n GetPurchaseInvoiceReport: form_control[] = [];\r\n GetVoucherDetailColumns: form_control[] = [];\r\n GetGoodsFormulaColumns: form_control[] = [];\r\n GetProductConsumptionReport: form_control[] = [];\r\n InvVoucherKindIds: number[] = [];\r\n StatusKindIds: number[] = [];\r\n BranchIds: number[] = [];\r\n WarehouseIds: number[] = [];\r\n DetailLedgerIds: number[] = [];\r\n ReferenceVoucherKindIds: number[] = [];\r\n activeTabTitle: string;\r\n selected: string = \"\";\r\n constructor(private service: ReviewService, private tabsservice: TabularService, private fb: UntypedFormBuilder) {\r\n super();\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.service.startDate = new Date();\r\n this.service.endDate = new Date();\r\n let currentFiscalYear = this.accountService.authService.currentFiscalYear;\r\n\r\n this.setactions();\r\n if (currentFiscalYear) {\r\n this.service.startDate.setDate(this.service.startDate.getDate() - 30);\r\n this.service.startDate$.next(this.service.startDate);\r\n this.service.startDate$.next(this.service.startDate);\r\n if (currentFiscalYear && currentFiscalYear.StartDate) {\r\n let fystartDate = new Date(currentFiscalYear.StartDate);\r\n if (fystartDate.setHours(0, 0, 0, 0) > this.service.startDate.setHours(0, 0, 0, 0))\r\n this.service.startDate = this.accountService.authService.currentFiscalYear.StartDate;\r\n else if (fystartDate.setHours(0, 0, 0, 0) < this.service.startDate.setHours(0, 0, 0, 0)) {\r\n this.service.startDate = currentFiscalYear.StartDate;\r\n this.service.endDate = currentFiscalYear.EndDate;\r\n this.service.startDate$.next(currentFiscalYear.StartDate);\r\n this.service.endDate$.next(currentFiscalYear.EndDate);\r\n }\r\n }\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.service.startDate.setDate(this.service.startDate.getDate() - 30);\r\n let fystartDate = new Date(x.StartDate);\r\n if (fystartDate.setHours(0, 0, 0, 0) > this.service.startDate.setHours(0, 0, 0, 0)) this.service.startDate = x.StartDate;\r\n else if (fystartDate.setHours(0, 0, 0, 0) < this.service.startDate.setHours(0, 0, 0, 0)) {\r\n this.service.startDate = x.StartDate;\r\n this.service.endDate = x.EndDate;\r\n this.service.startDate$.next(currentFiscalYear.StartDate);\r\n this.service.endDate$.next(currentFiscalYear.EndDate);\r\n }\r\n }\r\n });\r\n this.formGroup = this.fb.group({\r\n InvVoucherKindIds: this.InvVoucherKindIds,\r\n StatusKindIds: this.StatusKindIds,\r\n BranchIds: this.BranchIds,\r\n WarehouseIds: this.WarehouseIds,\r\n DetailLedgerIds: this.DetailLedgerIds,\r\n ReferenceVoucherKindIds: this.ReferenceVoucherKindIds,\r\n OnlySupplier: false,\r\n IsGoods: false,\r\n SlaveNo: undefined,\r\n StartNumber: undefined,\r\n EndNumber: undefined,\r\n IsService: false,\r\n TraceElement: undefined,\r\n ReceiptDate: undefined,\r\n ShowBeginingOfTheCoursResidue: false,\r\n ShowRunningTotal: false,\r\n });\r\n this.service.filter$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n let ShowBeforeRemain: boolean = x.items.some((r) => r.key === \"ShowBeforeRemain\");\r\n let AmountRemain: boolean = x.items.some((r) => r.key === \"ShowRunningTotal\");\r\n if (AmountRemain) {\r\n this.GetVoucherDetailColumns.find((x) => x.name === \"AmountRemain\").listVisible = true;\r\n }\r\n this.populateGridColumns();\r\n }\r\n });\r\n this.populateGridColumns();\r\n this.setColumns();\r\n }\r\n setColumns() {\r\n this.httpCommonService\r\n .get(\"InventoryReview/GetGoodsFormulaInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetGoodsFormulaColumns = data as form_control[];\r\n this.GetGoodsFormulaColumns = this.GetGoodsFormulaColumns.sort((a, b) => a.order - b.order);\r\n this.GetGoodsFormulaColumns.find((x) => x.name === \"BranchCode\").listVisible = true;\r\n this.GetGoodsFormulaColumns.find((x) => x.name === \"BranchTitle\").listVisible = true;\r\n this.GetGoodsFormulaColumns.find((x) => x.name === \"ProductCode\").listVisible = true;\r\n this.GetGoodsFormulaColumns.find((x) => x.name === \"ProductName\").listVisible = true;\r\n this.GetGoodsFormulaColumns.find((x) => x.name === \"ProductUnitTitle\").listVisible = true;\r\n this.GetGoodsFormulaColumns.find((x) => x.name === \"ProductShamsiEffectDate\").listVisible = true;\r\n\r\n this.setColumnVisiblty();\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n\r\n this.httpCommonService\r\n .get(\"InventoryReview/GetInventoryReviewInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetVoucherDetailColumns = data as form_control[];\r\n this.GetVoucherDetailColumns = this.GetVoucherDetailColumns.sort((a, b) => a.order - b.order);\r\n this.GetVoucherDetailColumns.forEach((x) => {\r\n if (\r\n x.name === \"BranchCode\" ||\r\n x.name === \"BranchTitle\" ||\r\n x.name === \"VoucherDate\" ||\r\n x.name === \"ReceiptDate\" ||\r\n x.name === \"ShamsiReceiptDate\" ||\r\n x.name === \"SlaveNo\" ||\r\n x.name === \"GoodsMainUnitTitle\" ||\r\n x.name === \"DetailLedgerCode\" ||\r\n x.name === \"WarehouseCode\" ||\r\n x.name === \"GoodsGroupCode\" ||\r\n x.name === \"GoodsGroupTitle\" ||\r\n x.name === \"AmountRemain\" ||\r\n x.name === \"MonthAmount\" ||\r\n x.name === \"Amount\" ||\r\n x.name === \"MainAmount\" ||\r\n x.name === \"DaylyAvrage\" ||\r\n x.name === \"MonthlyAvrage\"\r\n )\r\n x.listVisible = false;\r\n if (x.name === \"Amount\" || x.name === \"MainAmount\") x.listVisible = true;\r\n });\r\n this.setColumnVisiblty();\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n setColumnVisiblty() {}\r\n populateGridColumns(): any {\r\n var col: form_control[] = [];\r\n col = [\r\n {\r\n name: \"DiscountAmount\",\r\n modelName: \"DiscountAmount\",\r\n listVisible: true,\r\n label: \"تخفیف\",\r\n order: 9,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Surplusage\",\r\n modelName: \"Surplusage\",\r\n listVisible: true,\r\n label: \"اضافات\",\r\n order: 10,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Deduction\",\r\n modelName: \"Deduction\",\r\n listVisible: true,\r\n label: \"کسورات\",\r\n order: 11,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Tax\",\r\n modelName: \"Tax\",\r\n listVisible: true,\r\n label: \"مالیات\",\r\n order: 12,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n this.GetPurchaseInvoiceReport = [];\r\n Object.assign(this.GetPurchaseInvoiceReport, col);\r\n this.GetPurchaseInvoiceReport.push({\r\n name: \"WarehouseTitle\",\r\n modelName: \"WarehouseTitle\",\r\n listVisible: true,\r\n label: \"َانبار\",\r\n order: 1,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetPurchaseInvoiceReport.push({\r\n name: \"DetailLedgerTitle\",\r\n modelName: \"DetailLedgerTitle\",\r\n listVisible: true,\r\n label: \"تامین کننده\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetPurchaseInvoiceReport.push({\r\n name: \"InvVoucherKindTitle\",\r\n modelName: \"InvVoucherKindTitle\",\r\n listVisible: true,\r\n label: \"نوع سند\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetPurchaseInvoiceReport.push({\r\n name: \"VoucherNo\",\r\n modelName: \"VoucherNo\",\r\n listVisible: true,\r\n label: \"شماره سند\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetPurchaseInvoiceReport.push({\r\n name: \"ShamsiVoucherDate\",\r\n modelName: \"ShamsiVoucherDate\",\r\n listVisible: true,\r\n label: \"تاریخ سند\",\r\n order: 4,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetPurchaseInvoiceReport.push({\r\n name: \"GoodsTitle\",\r\n modelName: \"GoodsTitle\",\r\n listVisible: true,\r\n label: \"َکالا\",\r\n order: 5,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetPurchaseInvoiceReport.push({\r\n name: \"Amount\",\r\n modelName: \"Amount\",\r\n listVisible: true,\r\n label: \"تعداد\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetPurchaseInvoiceReport.push({\r\n name: \"UnitPrice\",\r\n modelName: \"UnitPrice\",\r\n listVisible: true,\r\n label: \"فی خرید\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetPurchaseInvoiceReport.push({\r\n name: \"Price\",\r\n modelName: \"Price\",\r\n listVisible: true,\r\n label: \"مبلغ خرید\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetPurchaseInvoiceReport.push({\r\n name: \"MaxUnitPrice\",\r\n modelName: \"MaxUnitPrice\",\r\n listVisible: true,\r\n label: \"بیشترین مبلغ خرید\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetPurchaseInvoiceReport.push({\r\n name: \"AverageUnitPrice\",\r\n modelName: \"AverageUnitPrice\",\r\n listVisible: true,\r\n label: \"میانگین مبلغ خرید\",\r\n order: 8,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetPurchaseInvoiceReport.push({\r\n name: \"InvoiceTotal\",\r\n modelName: \"InvoiceTotal\",\r\n listVisible: true,\r\n label: \"جمع فاکتور\",\r\n order: 13,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetPurchaseInvoiceReport.push({\r\n name: \"LastUnitPrice\",\r\n modelName: \"LastUnitPrice\",\r\n listVisible: true,\r\n label: \"آخرین فی خرید\",\r\n order: 14,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetPurchaseInvoiceReport.push({\r\n name: \"MinUnitPrice\",\r\n modelName: \"MinUnitPrice\",\r\n listVisible: true,\r\n label: \"کمترین فی خرید\",\r\n order: 15,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetPurchaseInvoiceReport = this.GetPurchaseInvoiceReport.sort((a, b) => a.order - b.order);\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: any, onRowsSelected: any[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n ///نمایش سند حسابداری\r\n if (action.name === \"AccVoucherHeader\") {\r\n var datatrasfer: Datatransfer = {};\r\n onRowSelected.Id = onRowSelected.AccVoucherHeaderId;\r\n datatrasfer.apiName = action.apiName;\r\n datatrasfer.areaName = action.areaName;\r\n datatrasfer.currentrow = onRowSelected;\r\n action.Form_Component = AccVoucherFormComponent;\r\n datatrasfer.apiName = \"AccVoucherHeader\";\r\n datatrasfer.areaName = \"Accounting\";\r\n datatrasfer.label = \"سند حسابداری\";\r\n if (onRowSelected.AccVoucherHeaderId) this.showVoucher(datatrasfer, action);\r\n }\r\n\r\n ///سند مبنا\r\n if (action.name === \"BaseVoucher\") {\r\n var datatrasfer: Datatransfer = {};\r\n onRowSelected.Id = onRowSelected.VoucherHeaderId;\r\n datatrasfer.apiName = action.apiName;\r\n datatrasfer.areaName = action.areaName;\r\n datatrasfer.currentrow = onRowSelected;\r\n action.Form_Component = InvVoucherFormComponent;\r\n datatrasfer.apiName = action.apiName;\r\n datatrasfer.areaName = action.areaName;\r\n datatrasfer.label = \"سند انبار\";\r\n if (onRowSelected.VoucherHeaderId) this.showVoucher(datatrasfer, action);\r\n }\r\n }\r\n showVoucher(datatrasfer: Datatransfer, action: any) {\r\n const menu = {\r\n title: datatrasfer.label,\r\n isCloseable: true,\r\n icon: action.iconName,\r\n active: true,\r\n responsive: true,\r\n componentType: action.Form_Component,\r\n data: [\r\n { provide: EntityBase, useValue: datatrasfer.currentrow },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: 0 } },\r\n ],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"AccVoucherHeader\",\r\n disabled: false,\r\n isModal: false,\r\n displayName: \"سند حسابداری\",\r\n iconName: \"icon-table_view-f\",\r\n Form_Component: AccVoucherFormComponent,\r\n apiName: \"AccVoucherHeader\",\r\n areaName: \"Accounting\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"BaseVoucher\",\r\n disabled: false,\r\n isModal: false,\r\n displayName: \"سند مبنا\",\r\n iconName: \"icon-folder-open-outline\",\r\n areaName: \"Inventory\",\r\n Form_Component: InvVoucherFormComponent,\r\n apiName: \"InvVoucherHeader\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"GetGoodsHistory\",\r\n disabled: false,\r\n displayName: \"تاریخچه\",\r\n iconName: \"icon-history-o\",\r\n areaName: \"Inventory\",\r\n Form_Component: InvVoucherFormComponent,\r\n apiName: \"InventoryReview/GetGoodsHistory\",\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n setSelectedFilter(filter: string) {\r\n if (this.selected === filter) this.selected = \"\";\r\n else this.selected = filter;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.INV.InventoryReview.Branch\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.INV.PurchaseInvoiceReport.Warehouse\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.INV.PurchaseInvoiceReport.Supplier\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.INV.PurchaseInvoiceReport.ReferenceVoucherKind\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"purchase-report-with-tax\",\r\n templateUrl: \"purchase-report-with-tax.component.html\",\r\n styleUrls: [\"purchase-report-with-tax.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PurchaseReportWithTaxComponent extends BaseFormComponent {\r\n public apiName: string = \"InventoryReview\";\r\n public label: string = \"گزارش ریز خرید با مالیات\";\r\n constructor(\r\n private missetup: MisSetupService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"GetPurchaseReportWithTax\";\r\n this.pathPreFix = \"INV\";\r\n this.apiName = \"InventoryReview\";\r\n this.areaName = \"Inventory\";\r\n this.loadReports();\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"از تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartVoucherDate\",\r\n disabled: false,\r\n name: \"StartVoucherDate\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndVoucherDate\",\r\n disabled: false,\r\n name: \"EndVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.orignalColumns = this.columns;\r\n }\r\n addControl(): void {\r\n this.setValue(\"Key\", \"GL\");\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"BranchId\", this.accountService.authService.currentFiscalYear.BranchId);\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"BranchId\", x.BranchId);\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData(reprtName, saveReportFile);\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData(reprtName, saveReportFile);\r\n }\r\n loadData(reportName: string, saveReportFile: SaveReportFile) {\r\n let filter: GridFilter[] = [];\r\n filter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.formGroup.get(\"BranchId\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.httpCommonService\r\n .GetFilterGrid(\"InventoryReview/GetPurchaseReportWithTax\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n this.setReport(reportName, saveReportFile, data as []);\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-warehouse-goods-report\",\r\n templateUrl: \"./warehouse-goods-report.component.html\",\r\n styleUrls: [\"./warehouse-goods-report.component.scss\"],\r\n})\r\nexport class WarehouseGoodsReportComponent extends BaseListComponent {\r\n WarehouseGoodsColumns: form_control[] = [];\r\n constructor() {\r\n super();\r\n }\r\n ngOnInit() {\r\n this.setColumns().then();\r\n this.label = \"گزارش ارتباط کالا و انبار\";\r\n this.apiName = \"Warehouse/WarehouseGoodsReport\";\r\n this.areaName = \"Inventory\";\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n }\r\n async setColumns() {\r\n await this.httpCommonService\r\n .get(\"Warehouse/GetWarehouseGoodsFormulaInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.WarehouseGoodsColumns = data as form_control[];\r\n this.WarehouseGoodsColumns = this.WarehouseGoodsColumns.sort((a, b) => a.order - b.order);\r\n this.WarehouseGoodsColumns.forEach((x) => {\r\n if (x.name === \"WarehouseCode\" || x.name === \"WarehouseTitle\" || x.name === \"GoodsCode\" || x.name === \"GoodsTitle\")\r\n x.listVisible = true;\r\n else x.listVisible = false;\r\n });\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n}\r\n","
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [isModal]=\"false\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n defaultSortKey=\"WarehouseCode,GoodsCode\"\r\n [columns]=\"WarehouseGoodsColumns\"\r\n reportName=\"WarehouseGoodsReport\"\r\n pathPreFix=\"INV\">\r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { WarehouseGoodsReportComponent } from \"./warehouse-goods-report.component\";\r\n\r\nconst components = [WarehouseGoodsReportComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class WarehouseGoodsReportModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport * as moment from \"jalali-moment\";\r\nimport { EditableGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { InvStatusKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { debounceTime, takeUntil } from \"rxjs/operators\";\r\nimport { InvVoucherDetail } from \"../../models/inv-voucher-detail.model\";\r\nimport { InvVoucherHeader } from \"../../models/inv-voucher-header.model\";\r\nimport { TakingOfInventoryDetail } from \"../../models/taking-of-inventory-detail.model\";\r\nimport { TakingOfInventoryHeader } from \"../../models/Taking-Of-Inventory-Header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-taking-of-inventory-form\",\r\n templateUrl: \"./taking-of-inventory-form.component.html\",\r\n styleUrls: [\"./taking-of-inventory-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class TakingOfInventoryFormComponent extends BaseFormComponent {\r\n erroremessage: string;\r\n DefaultValues: Dictionary = [];\r\n currentReport: string = \"print\";\r\n TakingOfInventoryDetailList: form_control[];\r\n @ViewChild(\"editablegrid\") public editablegrid: EditableGridComponent;\r\n get currentFiscalYear() {\r\n return this.accountService.authService.currentFiscalYear;\r\n }\r\n dataiIsLOaded: boolean = false;\r\n _isClosing: boolean = false;\r\n constructor(\r\n private lookupService: LookupService,\r\n private datatransfer: Datatransfer,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService\r\n ) {\r\n super(selectorService, cd);\r\n this.currentrow = this.datatransfer?.currentrow;\r\n this.apiName = this.datatransfer?.apiName;\r\n this.label = this.datatransfer?.label;\r\n this.areaName = this.datatransfer?.areaName;\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n }\r\n async ngOnInit() {\r\n this.reportName = \"TakingOfInventory\";\r\n this.apiName = \"TakingOfInventoryHeader\";\r\n this.label = \"انبارگردانی\";\r\n\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.pathPreFix = \"INV\";\r\n super.ngOnInit();\r\n this.loadReports();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (!this.model) this.model = new TakingOfInventoryHeader();\r\n if (data) {\r\n this.model[\"Number\"] = data as number;\r\n this.setValue(\"Number\", data);\r\n }\r\n this.setdefault();\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n onRowSelected($event) {}\r\n onChange($event) {\r\n if ($event && $event.apiName && $event.apiName.includes(\"Warehouse\")) {\r\n this.model.WarehouseTitle = $event.data.Title;\r\n this.model.WarehouseCode = $event.data.Code;\r\n }\r\n }\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.TakingOfInventoryDetailList = this.getDetailControlModels(\"TakingOfInventoryDetailList\");\r\n this.columns.forEach((x) => {\r\n if (!x.name.includes(\"DetailLedger\")) x.disabled = this.model?.TakingOfInventoryDetailList?.length > 0;\r\n });\r\n this.columns.forEach((x) => (x.isFloat = null));\r\n this.columns.forEach((x) => (x.userClass = null));\r\n this.cd.markForCheck();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.TakingOfInventoryDetailList = undefined;\r\n }\r\n setdefault() {\r\n this.DefaultValues[\"TakingOfInventoryHeaderId\"] = 0;\r\n if (!this.model.BranchId) this.model.BranchId = this.accountService.authService.currentBranchId;\r\n if (!this.model.TakingOfInventoryDetailList) this.model.TakingOfInventoryDetailList = [];\r\n if (!this.model.FiscalYearId) {\r\n if (this.currentFiscalYear) this.model.FiscalYearId = this.currentFiscalYear.Id;\r\n else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n }\r\n });\r\n }\r\n if (!this.model.StatusKindId) {\r\n this.lookupService\r\n .getLookupbyCode(\"INV\", \"StatusKind\", InvStatusKind.Registered)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", x.Id);\r\n });\r\n }\r\n if (!this.model.InventoryBalancingDate) {\r\n this.model.InventoryBalancingDate = new Date();\r\n }\r\n this.dataiIsLOaded = this.model.TakingOfInventoryDetailList && this.model.TakingOfInventoryDetailList.length > 0;\r\n }\r\n\r\n preparation(inCreament: boolean) {\r\n if (\r\n this.model.InventoryReceiptId ||\r\n this.model.InventoryDeliveryId ||\r\n (!this.model.InventoryDeliveryVoucherKindId && !this.model.InventoryReceiptVoucherKindId)\r\n )\r\n return;\r\n\r\n var refVoucher: InvVoucherHeader = {};\r\n\r\n refVoucher.VoucherNo = 0;\r\n refVoucher.FiscalYearId = this.model.FiscalYearId;\r\n refVoucher.TotalPrice = this.model.TakingOfInventoryDetailList.filter(\r\n (x) => (inCreament && x.FinalMainRemainAmount > 0) || (!inCreament && x.FinalMainRemainAmount < 0)\r\n )?.getSumWithKey(\"TotalPrice\");\r\n if (refVoucher.TotalPrice < 0) refVoucher.TotalPrice = refVoucher.TotalPrice * -1;\r\n refVoucher.VoucherKindId = inCreament ? this.model.InventoryReceiptVoucherKindId : this.model.InventoryDeliveryVoucherKindId;\r\n refVoucher.VoucherKindCode = inCreament ? this.model.InventoryReceiptVoucherKindCode : this.model.InventoryDeliveryVoucherKindCode;\r\n refVoucher.VoucherKindTitle = inCreament ? this.model.InventoryReceiptVoucherKindTitle : this.model.InventoryDeliveryVoucherKindTitle;\r\n refVoucher.InvVoucherDetailList = [];\r\n refVoucher.Comment = this.model.Comment;\r\n refVoucher.VoucherDate = this.model.InventoryBalancingDate;\r\n refVoucher.StatusKindId = this.model.StatusKindId;\r\n refVoucher.StatusKindCode = this.model.StatusKindCode;\r\n refVoucher.StatusKindTitle = this.model.StatusKindTitle;\r\n refVoucher.WarehouseId = this.model.WarehouseId;\r\n refVoucher.WarehouseCode = this.model.WarehouseCode;\r\n refVoucher.WarehouseTitle = this.model.WarehouseTitle;\r\n refVoucher.DetailLedgerId = this.model.DetailLedgerId;\r\n refVoucher.DetailLedgerCode = this.model.DetailLedgerCode;\r\n refVoucher.DetailLedgerTitle = this.model.DetailLedgerTitle;\r\n this.model.TakingOfInventoryDetailList.filter(\r\n (x) =>\r\n (inCreament && x.FinalMainRemainAmount && x.FinalMainRemainAmount > 0) ||\r\n (!inCreament && x.FinalMainRemainAmount && x.FinalMainRemainAmount < 0)\r\n ).forEach((x) => {\r\n var vd: InvVoucherDetail = {};\r\n vd.GoodsId = x.GoodsId;\r\n vd.GoodsCode = x.GoodsCode;\r\n vd.GoodsTitle = x.GoodsTitle;\r\n vd.GoodsUnitId = x.DefaultUnitId ? x.DefaultUnitId : 0;\r\n vd.GoodsUnitCode = x.DefaultUnitCode ? x.DefaultUnitCode : 0;\r\n vd.GoodsUnitTitle = x.DefaultUnitTitle;\r\n vd.Amount = x.FinalRemainAmount > 0 ? x.FinalRemainAmount : x.FinalRemainAmount * -1;\r\n vd.MainAmount = x.FinalMainRemainAmount > 0 ? x.FinalMainRemainAmount : x.FinalMainRemainAmount * -1;\r\n vd.GoodsUnitRatio = x.DefaultUnitRatio ? x.DefaultUnitRatio : 1;\r\n vd.Comment = \"انبار گردانی\";\r\n vd.PriceUnitId = vd.GoodsUnitId;\r\n vd.UnitPrice = inCreament === true && x.UnitPrice ? x.UnitPrice : 0;\r\n refVoucher.InvVoucherDetailList.push(vd);\r\n });\r\n if (refVoucher.InvVoucherDetailList != null && refVoucher.InvVoucherDetailList.length > 0) {\r\n this.model.InventoryReceiptId = refVoucher.Id;\r\n this.model.InventoryReceiptNo = refVoucher.VoucherNo;\r\n }\r\n return refVoucher;\r\n }\r\n notPrintable() {\r\n return this.model && this.model.TakingOfInventoryDetailList && this.model.TakingOfInventoryDetailList.length > 0;\r\n }\r\n notCreatable() {\r\n return (\r\n !this.model ||\r\n !this.model.TakingOfInventoryDetailList ||\r\n this.model.TakingOfInventoryDetailList.length <= 0 ||\r\n (this.model.InventoryReceiptId !== undefined && this.model.InventoryReceiptId !== null) ||\r\n (this.model.InventoryDeliveryId !== undefined && this.model.InventoryDeliveryId !== null)\r\n );\r\n }\r\n notDeleteable() {\r\n return !this.model.InventoryReceiptId || !this.model.InventoryDeliveryId;\r\n }\r\n submitButtonDisabled() {\r\n return (\r\n (this.model.InventoryReceiptId !== undefined && this.model.InventoryReceiptId !== null) ||\r\n (this.model.InventoryDeliveryId !== undefined && this.model.InventoryDeliveryId !== null)\r\n );\r\n }\r\n createInvVoucher() {\r\n if (\r\n this.model.InventoryReceiptId ||\r\n this.model.InventoryDeliveryId ||\r\n (!this.model.InventoryDeliveryVoucherKindId && !this.model.InventoryReceiptVoucherKindId)\r\n )\r\n return;\r\n\r\n let inCreament = this.preparation(true);\r\n let deCreament = this.preparation(false);\r\n let _model = {\r\n TakingOfInventoryHeader: this.getDataFromFormGroup(),\r\n InCreamentVoucher: inCreament,\r\n DeCreamentVoucher: deCreament,\r\n };\r\n this.httpCommonService\r\n .updateItem(`TakingOfInventoryHeader/CreateInventoryVoucher`, _model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.ngOnInit();\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n deleteInvVoucher() {\r\n if (!this.model.InventoryReceiptId && !this.model.InventoryDeliveryId) return;\r\n this.isDetailValid();\r\n if (!this.model?.HasPricing) {\r\n this.httpCommonService\r\n .updateItem(`TakingOfInventoryHeader/DeleteInventoryVoucher`, this.getDataFromFormGroup())\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.ngOnInit();\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n isDetailValid() {\r\n if (this.model?.HasPricing) {\r\n this.erroremessage = \"بعلت قیمت گذاری اسناد اضافات و کسورات،سند قابل حذف نمی باشد\";\r\n }\r\n }\r\n hasFirstVoucher(): boolean {\r\n return false;\r\n }\r\n\r\n onValueChanges(form: UntypedFormGroup) {\r\n let Orignal = this.model?.TakingOfInventoryDetailList?.find((x) => x.TagNumber == form.controls[\"TagNumber\"].value);\r\n\r\n form.controls[\"MainQuantity\"].valueChanges.pipe(debounceTime(300)).subscribe(() => {\r\n if (form.controls[\"MainQuantity\"].value !== Orignal.MainQuantity) {\r\n if (\r\n form.controls[\"MainQuantity\"].value >= 0 &&\r\n form.controls[\"DefaultUnitRatio\"].value &&\r\n form.controls[\"Quantity\"].value !== form.controls[\"MainQuantity\"].value / form.controls[\"DefaultUnitRatio\"].value\r\n ) {\r\n form.controls[\"Quantity\"].patchValue(form.controls[\"MainQuantity\"].value / form.controls[\"DefaultUnitRatio\"].value, { emitEvent: false });\r\n }\r\n }\r\n });\r\n\r\n form.controls[\"Quantity\"].valueChanges.pipe(debounceTime(300)).subscribe(() => {\r\n if (form.controls[\"Quantity\"].value !== Orignal.Quantity) {\r\n if (\r\n form.controls[\"Quantity\"].value >= 0 &&\r\n form.controls[\"DefaultUnitRatio\"].value &&\r\n form.controls[\"MainQuantity\"].value !== form.controls[\"Quantity\"].value * form.controls[\"DefaultUnitRatio\"].value\r\n ) {\r\n form.controls[\"MainQuantity\"].patchValue(form.controls[\"Quantity\"].value * form.controls[\"DefaultUnitRatio\"].value, { emitEvent: false });\r\n }\r\n }\r\n });\r\n\r\n form.controls[\"RemainAmount\"].valueChanges.pipe(debounceTime(300)).subscribe(() => {\r\n if (\r\n form.controls[\"RemainAmount\"].value &&\r\n form.controls[\"Quantity\"].value &&\r\n form.controls[\"FinalRemainAmount\"].value !== form.controls[\"Quantity\"].value - form.controls[\"RemainAmount\"].value\r\n ) {\r\n form.controls[\"FinalRemainAmount\"].patchValue(form.controls[\"Quantity\"].value - form.controls[\"RemainAmount\"].value, { emitEvent: false });\r\n }\r\n });\r\n\r\n form.controls[\"MainRemainAmount\"].valueChanges.pipe(debounceTime(300)).subscribe(() => {\r\n if (\r\n form.controls[\"MainQuantity\"].value &&\r\n form.controls[\"MainRemainAmount\"].value &&\r\n form.controls[\"FinalMainRemainAmount\"].value !== form.controls[\"MainQuantity\"].value - form.controls[\"MainRemainAmount\"].value\r\n ) {\r\n form.controls[\"FinalMainRemainAmount\"].patchValue(form.controls[\"MainQuantity\"].value - form.controls[\"MainRemainAmount\"].value, {\r\n emitEvent: false,\r\n });\r\n }\r\n });\r\n\r\n this.erroremessage = undefined;\r\n }\r\n ValueChanges(entity: TakingOfInventoryDetail) {\r\n if (entity && entity.DefaultUnitRatio !== entity.MainQuantity / entity.DefaultUnitRatio)\r\n entity.Quantity = entity.MainQuantity / entity.DefaultUnitRatio;\r\n\r\n if (entity.Quantity && entity.DefaultUnitRatio && entity.MainQuantity !== entity.Quantity * entity.DefaultUnitRatio)\r\n entity.MainQuantity = entity.Quantity * entity.DefaultUnitRatio;\r\n\r\n if (entity.RemainAmount && entity.Quantity && entity.FinalRemainAmount !== entity.Quantity - entity.RemainAmount)\r\n entity.FinalRemainAmount = entity.Quantity - entity.RemainAmount;\r\n if (entity.MainQuantity && entity.MainRemainAmount && entity.FinalMainRemainAmount !== entity.MainQuantity - entity.MainRemainAmount)\r\n entity.FinalMainRemainAmount = entity.MainQuantity - entity.MainRemainAmount;\r\n }\r\n isValid() {\r\n let flag: boolean = true;\r\n if (!this.model.TakingOfInventoryDetailList || this.model.TakingOfInventoryDetailList.length <= 0) {\r\n this.erroremessage = \"هیچ آرتیکلی وجود ندارد\";\r\n flag = false;\r\n }\r\n\r\n this.model.TakingOfInventoryDetailList.forEach((x) => {\r\n if (!x.TakingOfInventoryHeaderId) x.TakingOfInventoryHeaderId = 0;\r\n this.ValueChanges(x);\r\n });\r\n if (this.model.TakingOfInventoryDetailList.some((x) => x.MainQuantity === undefined)) {\r\n this.erroremessage = \"تعدادی از کالاها شمارش نشده است.\";\r\n flag = false;\r\n }\r\n return flag;\r\n }\r\n\r\n printTag() {\r\n if (this.model.TakingOfInventoryDetailList && this.model.TakingOfInventoryDetailList.length > 0) return;\r\n this.erroremessage = undefined;\r\n if (this.hasFirstVoucher()) {\r\n this.erroremessage = \"به دلیل وجود رسید ابتدای دوره ایجاد تگ امکان پذیر نیست.\";\r\n return;\r\n }\r\n this.model.WarehouseId = this.formGroup.controls[\"WarehouseId\"].value;\r\n this.model.InventoryBalancingDate = this.formGroup.controls[\"InventoryBalancingDate\"].value;\r\n\r\n if (!this.model.WarehouseId) {\r\n this.erroremessage = \"انبار انتخاب نشده است.\";\r\n return;\r\n }\r\n if (!this.model.InventoryBalancingDate) {\r\n this.erroremessage = \"تاریخ انبار گردانی انتخاب نشده است.\";\r\n return;\r\n }\r\n this.model.TakingOfInventoryDetailList = [];\r\n this.httpCommonService\r\n .create(`Goods/GetInventoryBalancingByWarehouse`, {\r\n WarehouseId: this.formGroup?.get(\"WarehouseId\")?.value,\r\n FiscalYearId: this.formGroup?.get(\"FiscalYearId\")?.value,\r\n CurrentDate: this.formGroup?.get(\"InventoryBalancingDate\")?.value,\r\n })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n if (x) {\r\n let Tagnumber: number = 0;\r\n (x as any[]).forEach((item) => {\r\n Tagnumber++;\r\n var row = {};\r\n row.GoodsId = item.Id;\r\n row.GoodsCode = item.Code;\r\n row.GoodsTitle = item.Title;\r\n row.MainRemainAmount = item.RemainAmount;\r\n row.RemainAmount = item.RemainAmount / (!item.DefaultUnitRatio || item.DefaultUnitRatio === 0 ? 1 : item.DefaultUnitRatio);\r\n row.TagNumber = Tagnumber;\r\n if (!row.RemainAmount) row.RemainAmount = 0;\r\n row.UnitId = item.UnitId;\r\n row.UnitCode = item.UnitCode;\r\n row.UnitTitle = item.UnitTitle;\r\n row.DefaultUnitId = item.DefaultUnitId;\r\n row.DefaultUnitCode = item.DefaultUnitCode;\r\n row.DefaultUnitTitle = item.DefaultUnitTitle;\r\n row.UnitPrice = item.UnitPrice * item.DefaultUnitRatio;\r\n if (!row.UnitPrice) row.UnitPrice = 0;\r\n row.DefaultUnitRatio = !item.DefaultUnitRatio || item.DefaultUnitRatio === 0 ? 1 : item.DefaultUnitRatio;\r\n this.model.TakingOfInventoryDetailList.push(row);\r\n });\r\n if (this.editablegrid) {\r\n this.editablegrid.dataList = this.model.TakingOfInventoryDetailList;\r\n this.editablegrid.refreshform();\r\n }\r\n this.cd.markForCheck();\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n setButtonEnable() {}\r\n private SaveTakingOfInventoryDetail(json: string) {\r\n let entityList: TakingOfInventoryDetail[] = JSON.parse(json);\r\n if (entityList == null || entityList.length <= 0) {\r\n this.sts.showDialog(`خواندن اطلاعات با مشکل مواجه شد یک بار دیگر سعی کنید.`, \"پیغام خطا\");\r\n return;\r\n }\r\n this.model.TakingOfInventoryDetailList.forEach((item) => {\r\n if (item) {\r\n var res = entityList.find((x) => x.GoodsId === item.GoodsId && x.Quantity);\r\n if (res != null) {\r\n item.Quantity = res.Quantity;\r\n item.MainQuantity = item.Quantity * item.DefaultUnitRatio;\r\n }\r\n }\r\n });\r\n if (this.editablegrid) {\r\n this.editablegrid.dataList = this.model.TakingOfInventoryDetailList;\r\n this.editablegrid.refreshform();\r\n this.cd.markForCheck();\r\n }\r\n }\r\n btnExport() {\r\n const date = moment(this.model.InventoryBalancingDate) || moment();\r\n date.jYear();\r\n let jsondata = JSON.stringify(this.model.TakingOfInventoryDetailList);\r\n let filename = `TakingOfInventory${this.model.WarehouseCode}${date.jYear()}${date.jMonth()}${date.jDay()}.json`;\r\n var a = document.createElement(\"a\");\r\n a.setAttribute(\"href\", \"data:text/plain;charset=utf-u,\" + encodeURIComponent(jsondata));\r\n a.setAttribute(\"download\", filename);\r\n a.click();\r\n }\r\n openFile(event) {\r\n this.sts.showToast(\"info\", \"\", \"در حال ذخیره تغییرات...\");\r\n let input = event.target;\r\n var text;\r\n for (var index = 0; index < input.files.length; index++) {\r\n let reader = new FileReader();\r\n reader.onload = () => {\r\n text = reader.result;\r\n if (text) {\r\n {\r\n this.SaveTakingOfInventoryDetail(text);\r\n }\r\n }\r\n };\r\n reader.readAsText(input.files[index]);\r\n }\r\n }\r\n isCloseable() {\r\n this.selectorService.submitted$.next(false);\r\n this.formGroup?.markAsUntouched();\r\n this.currentrow = this.model;\r\n return false;\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { TakingOfInventoryFormComponent } from \"../taking-of-inventory-form/taking-of-inventory-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-taking-of-inventory-list\",\r\n templateUrl: \"./taking-of-inventory-list.component.html\",\r\n styleUrls: [\"./taking-of-inventory-list.component.scss\"],\r\n})\r\nexport class TakingOfInventoryListComponent extends BaseListComponent {\r\n filterInfo: NameValue[] = [];\r\n constructor() {\r\n super();\r\n this.inputEditorform = TakingOfInventoryFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"TakingOfInventoryHeader\";\r\n this.areaName = \"Inventory\";\r\n this.label = \"انبار گردانی\";\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: this.accountService.authService.currentFiscalYear?.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: x.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { TakingOfInventoryFormComponent } from \"./taking-of-inventory-form/taking-of-inventory-form.component\";\r\nimport { TakingOfInventoryListComponent } from \"./taking-of-inventory-list/taking-of-inventory-list.component\";\r\n\r\nconst components = [TakingOfInventoryFormComponent, TakingOfInventoryListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class TakingOfInventoryModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Unit } from \"../../models/unit.model\";\r\n\r\n@Component({\r\n selector: \"ngx-unit-form\",\r\n templateUrl: \"./unit-form.component.html\",\r\n styleUrls: [\"./unit-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UnitFormComponent extends BaseFormComponent {\r\n deactivateSave: boolean = false;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n erroremessage: string;\r\n async ngOnInit() {\r\n this.apiName = \"Unit\";\r\n this.label = this.translate(\"ClientApp.BackOffice.INV.Unit.Unit\");\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Unit } from \"../../models/unit.model\";\r\n\r\n@Component({\r\n selector: \"unit-import-excel-form\",\r\n templateUrl: \"./unit-import-excel-form.component.html\",\r\n styleUrls: [\"./unit-import-excel-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UnitImportExcelFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n gridInfo: GridColumnInfoDetail[];\r\n UnitLiist: Unit[] = [];\r\n public hColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Unit\";\r\n this.label = \"دریافت فایل اکسل\";\r\n super.ngOnInit();\r\n await this.setData();\r\n }\r\n async setColumns() {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns.push({\r\n label: \"ردیف اول عنون ستونهاست.\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"isFirstRowColumnsName\",\r\n disabled: false,\r\n name: \"isFirstRowColumnsName\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.hColumns = this.hColumns;\r\n }\r\n async setData() {\r\n await this.httpCommonService\r\n .getList(\"Unit\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.UnitLiist = data as Unit[];\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n alert(\"انتخاب بیش از یک فایل مجاز نیست.\");\r\n return;\r\n } else {\r\n const result = await this.parseExcelDoc(target.files[0]).catch((err) => console.error(err));\r\n await this.SetUnitInfo(result);\r\n }\r\n }\r\n async SetUnitInfo(excelData: any[]) {\r\n let ColumnsName = [];\r\n let ErroeMessage: string = \"\";\r\n if (this.formGroup.get(\"isFirstRowColumnsName\")?.value === true) {\r\n ColumnsName = excelData[0] as any[];\r\n } else ColumnsName = this.gridInfo.filter((c) => c.name != null && c.title != \"عملیات\" && !c.hidden) as any[];\r\n let isFirtsRow: boolean = true;\r\n for (var i = 0; i < excelData.length; i++) {\r\n var x = excelData[i];\r\n if (this.formGroup.get(\"isFirstRowColumnsName\").value === true && isFirtsRow === true) {\r\n } else {\r\n let row: Unit = {};\r\n let index: number = 0;\r\n ColumnsName.forEach((c) => {\r\n let key: string;\r\n if (c.name) key = c.name;\r\n else {\r\n if (this.orignalColumns.some((g) => g.label === c || g.name == c)) {\r\n key = this.orignalColumns.find((g) => g.label === c || g.name == c).name;\r\n }\r\n }\r\n row[key] = x[index];\r\n index++;\r\n });\r\n if (!this.UnitLiist.some((g) => g.Code === row.Code || g.Title?.trim() === row.Title?.trim())) {\r\n this.UnitLiist.push(row);\r\n } else {\r\n console.log(row);\r\n }\r\n }\r\n if (isFirtsRow === true) isFirtsRow = false;\r\n if (ErroeMessage) break;\r\n }\r\n if (!ErroeMessage) {\r\n await this.httpCommonService\r\n .bulkInsert(\r\n this.apiName,\r\n this.UnitLiist.filter((x) => !x.Id)\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت ذخیره شد.\");\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در ذخیره اطلاعات\");\r\n }\r\n );\r\n } else this.sts.showDialog(ErroeMessage, \"خطا در دریافت کالا\");\r\n }\r\n public cancel() {\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { ColumnBase } from \"@progress/kendo-angular-grid\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Unit } from \"../../models/unit.model\";\r\nimport { UnitFormComponent } from \"../unit-form/unit-form.component\";\r\nimport { UnitImportExcelFormComponent } from \"../unit-import-excel/unit-import-excel-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-unit-list\",\r\n templateUrl: \"./unit-list.component.html\",\r\n styleUrls: [\"./unit-list.component.scss\"],\r\n})\r\nexport class UnitListComponent extends BaseListComponent {\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n constructor() {\r\n super();\r\n this.inputEditorform = UnitFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Unit\";\r\n this.areaName = \"Inventory\";\r\n this.label = this.translate(\"ClientApp.BackOffice.INV.Unit.UnitList\");\r\n this.setactions();\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"ImportFromExcel\",\r\n disabled: false,\r\n displayName: \"ورودی اکسل\",\r\n iconName: \"icon-file-excel-o\",\r\n apiName: \"GroupLedger/ImportExcel\",\r\n areaName: \"Accounting\",\r\n Form_Component: UnitImportExcelFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: Unit, onRowsSelected: Unit[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n if (action.name === \"ImportFromExcel\") {\r\n var gridInfo = this.getGridInfo(this.grid.grid.columns.toArray());\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n gridInfo: gridInfo,\r\n label: action.displayName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n }\r\n }\r\n\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.getGridInfo(this.grid.grid.columns.toArray()));\r\n });\r\n }\r\n\r\n getGridInfo(columns: ColumnBase[]): GridColumnInfoDetail[] {\r\n return columns\r\n .filter((x) => !x.hidden)\r\n .map((x) => {\r\n const info = new GridColumnInfoDetail();\r\n info.name = x[\"field\"];\r\n info.hidden = x.hidden;\r\n info.orderindex = x.orderIndex;\r\n info.title = x.title;\r\n return info;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { UnitFormComponent } from \"./unit-form/unit-form.component\";\r\nimport { UnitImportExcelFormComponent } from \"./unit-import-excel/unit-import-excel-form.component\";\r\nimport { UnitListComponent } from \"./unit-list/unit-list.component\";\r\n\r\nconst components = [UnitFormComponent, UnitListComponent, UnitImportExcelFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class UnitModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { GridFilter, PagingDataResult, isNumber } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Goods } from \"../../models/goods.model\";\r\nimport { Warehouse } from \"../../models/warehouse.model\";\r\n\r\n@Component({\r\n selector: \"ngx-warehouse-form\",\r\n templateUrl: \"./warehouse-form.component.html\",\r\n styleUrls: [\"./warehouse-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class WarehouseFormComponent extends BaseFormComponent {\r\n WarehouseGoodsColumn: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.onDataStateChange = this.onDataStateChange.bind(this);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Warehouse\";\r\n this.label = this.translate(\"ClientApp.BackOffice.INV.Warehouse.Warehouse\");\r\n super.ngOnInit();\r\n }\r\n getFilters(columnsName: string, searchValue: string, skip: number, take: number) {\r\n var filters: GridFilter[] = [];\r\n const columns = columnsName.split(\",\");\r\n columns.forEach((x) => {\r\n {\r\n if (x !== \"Id\")\r\n filters.push({ Filed: x, Operator: \"contains\", Type: \"F\", Skip: skip, Take: take, Value: searchValue.toString(), Logic: \"or\" });\r\n else if (isNumber(searchValue))\r\n filters.push({ Filed: x, Operator: \"eq\", Type: \"F\", Skip: skip, Take: take, Value: Number(searchValue), Logic: \"or\" });\r\n }\r\n });\r\n return filters;\r\n }\r\n onDataStateChange(columnName: string, searchValue: string, skip: number, take: number): Observable> {\r\n var abs = new BehaviorSubject>(undefined);\r\n const goodsIds: number[] = [];\r\n if (columnName === \"GoodsId\") {\r\n this.model.WarehouseGoodss.forEach((x) => {\r\n if (x.State !== RowState.Delete && x.State !== RowState.Detached) goodsIds.push(x.GoodsId);\r\n });\r\n }\r\n let apiName: string = \"Goods/GetGoodsByGoodsId\";\r\n const filter = this.getFilters(\"Id,Code,Title\", searchValue, skip, take);\r\n if (goodsIds && goodsIds.length > 0)\r\n filter.push({ Filed: \"goodsIds\", Operator: \"eq\", Value: goodsIds, Type: \"F\", Skip: skip, Take: take, Logic: \"and\" });\r\n this.httpCommonService\r\n .GetFilterGrid>(apiName, filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x: PagingDataResult) => {\r\n if (x) abs.next(x);\r\n });\r\n return abs.asObservable();\r\n }\r\n setdefault() {\r\n this.selectorService.setDataStateChange(\"GoodsId\", this.onDataStateChange);\r\n if (!this.model.WarehouseGoodss) this.model.WarehouseGoodss = [];\r\n\r\n if (!this.model.Quarantine) {\r\n this.model.Quarantine = false;\r\n if (this.formGroup) this.formGroup.controls[\"Quarantine\"].setValue(this.model.Quarantine);\r\n }\r\n super.setdefault();\r\n }\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.setGoodsColumn();\r\n }\r\n setGoodsColumn() {\r\n this.selectorService.setTakeValue(\"GoodsId\", 1000);\r\n let c = this.getDetailControlModels(\"WarehouseGoodss\");\r\n c.forEach((x) => {\r\n if (x.name === \"GoodsId\") x.isMulti = true;\r\n });\r\n this.WarehouseGoodsColumn = c;\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setdefault();\r\n });\r\n }\r\n valueChanges($event) {}\r\n beforupdate() {\r\n this.model.WarehouseGoodss.forEach((x) => {\r\n if (!x.WarehouseId) x.WarehouseId = this.model.Id;\r\n });\r\n }\r\n}\r\n","\r\n 0\">\r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowAccessKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { GridFilter, LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { RowAccessComponent } from \"src/app/gnr/row-access/row-access.component\";\r\nimport { Warehouse } from \"../../models/warehouse.model\";\r\nimport { WarehouseFormComponent } from \"../warehouse-form/warehouse-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-warehouse-list\",\r\n templateUrl: \"./warehouse-list.component.html\",\r\n styleUrls: [\"./warehouse-list.component.scss\"],\r\n})\r\nexport class WarehouseListComponent extends BaseListComponent {\r\n loadingIndicator: boolean;\r\n inputEditorform: any;\r\n editingName: {\r\n name: string;\r\n };\r\n HasRowAccess: boolean;\r\n private sub: any;\r\n constructor(private lookupservice: LookupService, private missetup: MisSetupService) {\r\n super();\r\n this.inputEditorform = WarehouseFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n if (this.HasRowAccess === undefined) {\r\n this.HasRowAccess = this.missetup.getboolean(\"GNR\", \"HasRowAccess\");\r\n }\r\n this.apiName = \"Warehouse\";\r\n this.areaName = \"Inventory\";\r\n this.label = this.translate(\"ClientApp.BackOffice.INV.Warehouse.Warehouse\");\r\n this.setactions();\r\n }\r\n setactions() {\r\n if (this.HasRowAccess === true)\r\n this.actions = [\r\n {\r\n name: \"RowAccess\",\r\n disabled: false,\r\n displayName: \"دسترسی در ردیف\",\r\n iconName: \"icon-users\",\r\n apiName: \"Warehouse/RowAccess\",\r\n areaName: \"Inventory\",\r\n requireSelectedrows: true,\r\n Form_Component: RowAccessComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: Warehouse, onRowsSelected: Warehouse[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n if (action.name === \"RowAccess\") {\r\n let ids: number[] = [];\r\n if (onRowsSelected != null && onRowsSelected.length > 0) {\r\n onRowsSelected.forEach((x) => ids.push(x.Id));\r\n } else ids.push(onRowSelected.Id);\r\n this.lookupservice\r\n .getLookupbyCode(\"Security\", \"RowAccess\", RowAccessKind.Warehouse)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n SelectedRows: ids,\r\n RowKindId: x.Id,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n },\r\n (error) => {}\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { WarehouseFormComponent } from \"./warehouse-form/warehouse-form.component\";\r\nimport { WarehouseListComponent } from \"./warehouse-list/warehouse-list.component\";\r\n\r\nconst components = [WarehouseFormComponent, WarehouseListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class WarehouseModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { EditableGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { DebtorCreditorNoticesKind } from \"../../models/credit-function-kind.enums\";\r\nimport { DebtorCreditorNoticesHeader } from \"../../models/debtor-creditor-notices-header.model\";\r\n\r\n@Component({\r\n selector: \"debtor-creditor-notices-header-form\",\r\n templateUrl: \"./debtor-creditor-notices-header-form.component.html\",\r\n styleUrls: [\"./debtor-creditor-notices-header-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DebtorCreditorNoticesHeaderFormComponent extends BaseFormComponent {\r\n erroremessage: string;\r\n DefaultValues: Dictionary = [];\r\n isCreatingAccVoucher: boolean = false;\r\n DebtorCreditorNoticesDetailColumns: form_control[] = [];\r\n @ViewChild(\"detail\") public detail: EditableGridComponent;\r\n get currentFiscalYear() {\r\n return this.accountService.authService.currentFiscalYear;\r\n }\r\n constructor(\r\n private lookupservice: LookupService,\r\n selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n private splashFormService: SplashFormService\r\n ) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.DefaultValues[\"DebtorCreditorNoticesHeaderId\"] = 0;\r\n this.selectorService.setDisabledValue(\"GoodsId\", true);\r\n this.apiName = \"DebtorCreditorNoticesHeader\";\r\n this.label = \"اعلامیه بدهکار بستانکار\";\r\n this.defaultCoumnNumber = 6;\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (!this.model.DebtorCreditorNoticesDetailList) this.model.DebtorCreditorNoticesDetailList = [];\r\n if (!this.model.BranchId) this.model.BranchId = this.accountService.authService.currentBranchId;\r\n if (!this.model.DebtorCreditorKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"SELL\", \"DebtorCreditorNoticesKind\", DebtorCreditorNoticesKind.Normal)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.DebtorCreditorKindId = x.Id;\r\n this.model.DebtorCreditorKindCode = x.Code;\r\n this.model.DebtorCreditorKindTitle = x.Title;\r\n this.setValue(\"DebtorCreditorKindId\", this.model.DebtorCreditorKindId);\r\n this.setValue(\"DebtorCreditorKindCode\", this.model.DebtorCreditorKindCode);\r\n this.setValue(\"DebtorCreditorKindTitle\", this.model.DebtorCreditorKindTitle);\r\n }\r\n });\r\n }\r\n if (!this.model.FiscalYearId && this.currentFiscalYear) {\r\n this.model.FiscalYearId = this.currentFiscalYear.Id;\r\n this.model.Year = this.currentFiscalYear.Year;\r\n } else if (!this.model.FiscalYearId) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n this.model.Year = x.Year;\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"Year\", x.Year);\r\n }\r\n });\r\n }\r\n this.setColumnAttribute();\r\n }\r\n setColumnAttribute() {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"DebtorCreditorDate\" || x.name === \"Comment\") x.disabled = this.model.AccVoucherHeaderId != undefined;\r\n });\r\n this.columns.forEach((x) => {\r\n if (x.name === \"DebtorCreditorDate\" || x.name === \"Comment\") x.disabled = this.model.AccVoucherHeaderId != undefined;\r\n });\r\n this.DebtorCreditorNoticesDetailColumns = this.getDetailControlModels(\"DebtorCreditorNoticesDetailList\");\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n async accountAccVoucher(create: boolean = true) {\r\n let gridFilter: GridFilter[] = [];\r\n let DebtorCreditorNoticesHeaderIds: number[] = [];\r\n DebtorCreditorNoticesHeaderIds.push(this.model.Id);\r\n let filter: GridFilter = {\r\n Type: \"F\",\r\n Filed: \"DebtorCreditorNoticesHeaderIds\",\r\n Value: DebtorCreditorNoticesHeaderIds,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n };\r\n gridFilter.push(filter);\r\n if (this.model.AccVoucherHeaderId !== undefined && this.model.AccVoucherHeaderId > 0 && !create) {\r\n await this.deleteAccVoucher();\r\n }\r\n if (create) await this.createAccVoucher(gridFilter);\r\n }\r\n\r\n async createAccVoucher(gridFilter: GridFilter[]) {\r\n if (this.isCreatingAccVoucher === true) return;\r\n this.isCreatingAccVoucher = true;\r\n this.splashFormService.openDialog(\"\", \"در حال صدور سند حسابداری\");\r\n await this.httpCommonService\r\n .create(this.apiName + \"/CreateAccVoucher\", this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (x) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\"سند با موفقیت صادر شد.\", \"\");\r\n await this.ngOnInit();\r\n this.isCreatingAccVoucher = false;\r\n },\r\n async (error) => {\r\n await this.ngOnInit();\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در صدور اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n this.isCreatingAccVoucher = false;\r\n }\r\n );\r\n }\r\n async deleteAccVoucher() {\r\n this.splashFormService.openDialog(\"\", \"در حال حذف سند حسابداری\");\r\n await this.httpCommonService\r\n .create(this.apiName.split(\"/\")[0] + \"/DeleteAccVoucher\", this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (x) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\"سند با موفقیت حذف شد.\", \"\");\r\n this.isCloseable();\r\n await this.ngOnInit();\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در حذف اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n beforupdate() {\r\n this.setValue(\r\n \"DebtorCreditorNoticesDetailList\",\r\n this.model.DebtorCreditorNoticesDetailList.filter((x) => x.State !== RowState.Detached)\r\n );\r\n if (!this.model.DebtorCreditorNoticesDetailList || this.model.DebtorCreditorNoticesDetailList.length <= 0)\r\n this.model.DebtorCreditorNoticesDetailList = undefined;\r\n else\r\n this.setValue(\r\n \"DebtorCreditorNoticesDetailList\",\r\n this.model.DebtorCreditorNoticesDetailList.filter((x) => x.State !== RowState.Detached)\r\n );\r\n }\r\n isCloseable() {\r\n this.selectorService.submitted$.next(false);\r\n this.formGroup?.markAsUntouched();\r\n this.currentrow = this.model;\r\n return false;\r\n }\r\n}\r\n","\r\n \r\n
\r\n 0\"\r\n #detail\r\n [DefaultValues]=\"DefaultValues\"\r\n [columns]=\"DebtorCreditorNoticesDetailColumns\"\r\n [dataList]=\"model.DebtorCreditorNoticesDetailList\"\r\n [isAdd]=\"!model.AccVoucherHeaderId\"\r\n [isDelete]=\"!model.AccVoucherHeaderId\">\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { DebtorCreditorNoticesHeader } from \"../../models/debtor-creditor-notices-header.model\";\r\nimport { DebtorCreditorNoticesHeaderFormComponent } from \"../debtor-creditor-notices-header-form/debtor-creditor-notices-header-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-debtor-creditor-notices-header-list\",\r\n templateUrl: \"./debtor-creditor-notices-header-list.component.html\",\r\n styleUrls: [\"./debtor-creditor-notices-header-list.component.scss\"],\r\n})\r\nexport class DebtorCreditorNoticesHeaderListComponent extends BaseListComponent {\r\n filterInfo: NameValue[] = [];\r\n constructor(private splashFormService: SplashFormService) {\r\n super();\r\n this.inputEditorform = DebtorCreditorNoticesHeaderFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n let currentFiscalYear = this.accountService.authService.currentFiscalYear;\r\n this.setactions();\r\n this.apiName = \"DebtorCreditorNoticesHeader\";\r\n this.areaName = \"SellCustomer\";\r\n this.label = \"فهرست اعلامیه بدهکار بستانکار\";\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: this.accountService.authService.currentFiscalYear?.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: x.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n }\r\n });\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: DebtorCreditorNoticesHeader,\r\n onRowsSelected: DebtorCreditorNoticesHeader[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n ///انتقال مانده مشتریان\r\n this.splashFormService.openDialog(\"\", action.name === \"CustomersAccountClosing\" ? \"در حال انتقال مانده مشتری\" : \"در حال برگشت مانده مشتری\");\r\n this.httpCommonService\r\n .create(action.apiName, this.accountService.authService.currentFiscalYear)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n if (x) {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(action.name === \"CustomersAccountClosing\" ? \"مانده مشتری با موفقیت منتقل شد.\" : \"مانده مشتری با موفقیت برشکت.\", \"\");\r\n this.ngOnInit();\r\n }\r\n },\r\n (error) => {\r\n this.sts.showDialog(\r\n action.name === \"CustomersAccountClosing\"\r\n ? `خطا در انتقال مانده مشتری ${Utilities.getHttpResponseMessage(error)}`\r\n : `خطا در برگشت ماند مشتری ${Utilities.getHttpResponseMessage(error)}`,\r\n \"خطا\"\r\n );\r\n this.ngOnInit();\r\n this.splashFormService.closeLoading();\r\n }\r\n );\r\n return;\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"CustomersAccountClosing\",\r\n disabled: false,\r\n displayName: \"انتقال مانده مشتریان\",\r\n iconName: \"icon-create_new_folder-o\",\r\n apiName: \"DebtorCreditorNoticesHeader/CustomersAccountClosing\",\r\n areaName: \"SellCustomer\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"CustomersRetunRemain\",\r\n disabled: false,\r\n displayName: \"برگشت مانده مشتریان\",\r\n iconName: \"icon-delete-sweep-outline\",\r\n apiName: \"DebtorCreditorNoticesHeader/CustomersRetunRemain\",\r\n areaName: \"SellCustomer\",\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { DebtorCreditorNoticesHeaderFormComponent } from \"./debtor-creditor-notices-header-form/debtor-creditor-notices-header-form.component\";\r\nimport { DebtorCreditorNoticesHeaderListComponent } from \"./debtor-creditor-notices-header-list/debtor-creditor-notices-header-list.component\";\r\n\r\nconst components = [DebtorCreditorNoticesHeaderFormComponent, DebtorCreditorNoticesHeaderListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class DebtorCreditorNoticesHeaderModule {}\r\n","export enum CreditFunctionKind {\r\n /// \r\n ///\r\n /// \r\n Warning = 1,\r\n /// \r\n /// توقف\r\n /// \r\n Stop = 2,\r\n}\r\n\r\nexport enum DebtorCreditorNoticesKind {\r\n /// سیستمی\r\n Systemic = 1,\r\n /// يكشنبه\"\r\n Normal = 2,\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { FormGroup, UntypedFormControl } from \"@angular/forms\";\r\nimport { EditableGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { GoodsAvragePurchase } from \"src/app/backoffice/inv/models/goods-avrage-purchase.model\";\r\nimport { Goods, GoodsUnit } from \"../../../inv/models/goods.model\";\r\nimport { PriceListDetail } from \"../../models/price-list-detail.model\";\r\nimport { PriceListHeader } from \"../../models/price-list-header.model\";\r\nimport { SellCustomerGroup } from \"../../models/sell-customer-group.model\";\r\nimport { SellKind } from \"../../models/sell-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-price-list-header-form\",\r\n templateUrl: \"./price-list-header-form.component.html\",\r\n styleUrls: [\"./price-list-header-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PriceListHeaderFormComponent extends BaseFormComponent {\r\n erroremessage: string;\r\n currentSellKind: SellKind;\r\n currentSellCustomerGroup: SellCustomerGroup;\r\n @ViewChild(\"detail\") public detail: EditableGridComponent;\r\n\r\n PriceListDetailList: form_control[];\r\n averagePurchase: any[] = [];\r\n averagePurchaseId: number = 1;\r\n GetGoodsAvragePurchase: GoodsAvragePurchase[];\r\n constructor(selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.onNewdefaultRowTregger = this.onNewdefaultRowTregger.bind(this);\r\n }\r\n async ngOnInit() {\r\n this.selectorService.setDisabledValue(\"GoodsId\", true);\r\n this.apiName = \"PriceListHeader\";\r\n this.label = \"اعلامیه قیمت\";\r\n super.ngOnInit();\r\n this.averagePurchase.push({ Code: 1, Title: \"آخرین خرید\" });\r\n this.averagePurchase.push({ Code: 2, Title: \"میانگین خرید\" });\r\n }\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n let c = this.getDetailControlModels(\"PriceListDetailList\");\r\n c.forEach((x) => {\r\n if (x.name === \"GoodsId\") x.isMulti = true;\r\n });\r\n this.PriceListDetailList = c;\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.PriceListDetailList = undefined;\r\n }\r\n setdefault() {\r\n if (this.isNewRow && !this.model.PricelistDate) this.model.PricelistDate = new Date();\r\n if (!this.model.PriceListDetailList) this.model.PriceListDetailList = [];\r\n if (this.model.BranchId === undefined) this.model.BranchId = this.accountService.authService.currentBranchId;\r\n if (this.model.FiscalYearId === undefined) {\r\n if (this.accountService.authService.currentFiscalYear) this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.model.FiscalYearId = x.Id;\r\n }\r\n });\r\n }\r\n }\r\n onNewdefaultRowTregger(model: PriceListDetail, p: Goods) {\r\n model.SellKindId = this.formGroup.get(\"SellKind\").value;\r\n model.CustomerGroupId = this.formGroup.get(\"SellCustomerGroup\").value;\r\n if (p?.DefaultUnitId) {\r\n model.GoodsUnitId = p?.DefaultUnitId;\r\n model.GoodsUnitTitle = p?.DefaultUnitTitle;\r\n model.GoodsUnitCode = p?.DefaultUnitCode;\r\n }\r\n return model;\r\n }\r\n onChange($event) {\r\n if (!this.formGroup?.get(\"PricelistDate\")?.value) return;\r\n var filters: GridFilter[] = [];\r\n filters.push({\r\n Filed: \"BranchId\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.accountService.authService.currentBranchId,\r\n Logic: \"and\",\r\n });\r\n filters.push({\r\n Filed: \"FiscalYearId\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.accountService.authService.currentFiscalYear.Id,\r\n Logic: \"and\",\r\n });\r\n filters.push({\r\n Filed: \"VoucherDate\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n Skip: 0,\r\n Take: 20,\r\n Value: this.formGroup?.get(\"PricelistDate\")?.value,\r\n Logic: \"and\",\r\n });\r\n if (this.formGroup?.get(\"averagePurchaseId\")?.value === 2) {\r\n this.httpCommonService\r\n .create(\"InvVoucherHeader/GetAvragePurchase\", filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.GetGoodsAvragePurchase = x as GoodsAvragePurchase[];\r\n });\r\n } else {\r\n this.httpCommonService\r\n .create(\"InvVoucherHeader/GoodsLastPriceList\", filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.GetGoodsAvragePurchase = x as GoodsAvragePurchase[];\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n }\r\n setMaxCode() {\r\n let FiscalYearId: number = this.formGroup?.controls[\"FiscalYearId\"]?.value ?? this.model.FiscalYearId;\r\n this.httpCommonService\r\n .get(this.apiName + \"/GetMaxCode/\" + FiscalYearId + \"/\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"PricelistNo\"] = data as number;\r\n this.setValue(\"PricelistNo\", data as number);\r\n }\r\n this.setdefault();\r\n });\r\n }\r\n addControl() {\r\n this.setValue(\"SellCustomerGroup\", undefined);\r\n this.setValue(\"SellKind\", undefined);\r\n this.setValue(\"UnitPrice\", 0);\r\n this.setValue(\"DiscountRate\", 0);\r\n this.setValue(\"UnitPriceratio\", 0);\r\n this.setValue(\"CheckAllUnit\", false);\r\n this.setValue(\"CheckAllDiscount\", false);\r\n this.setValue(\"averagePurchaseId\", this.averagePurchaseId, true);\r\n this.onChange(undefined);\r\n if (this.detail) this.detail.setColumnWith();\r\n }\r\n checkAllUnitValueChange($event) {\r\n if (this.model && this.model.PriceListDetailList && this.model.PriceListDetailList.length > 0) {\r\n this.model.PriceListDetailList.forEach((x) => {\r\n if (x.State !== RowState.Delete && x.State !== RowState.Detached) x.IsFinal = $event;\r\n });\r\n }\r\n }\r\n checkAllDiscountValueChange($event) {\r\n if (this.model && this.model.PriceListDetailList && this.model.PriceListDetailList.length > 0) {\r\n this.model.PriceListDetailList.forEach((x) => {\r\n if (x.State !== RowState.Delete && x.State !== RowState.Detached) x.DiscountIsFinal = $event;\r\n });\r\n }\r\n }\r\n onRowSelectedGroup(event) {\r\n this.currentSellCustomerGroup = event;\r\n }\r\n onRowSelected(event) {\r\n this.currentSellKind = event;\r\n }\r\n valueChanges(event) {\r\n if (event && event.DefaultUnitId) {\r\n this.httpCommonService\r\n .getList(\"Goods/ReadGoodsUnitLookUp/\" + event.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (!(x as GoodsUnit[]).some((u) => u.UnitId === event[\"UnitId\"]))\r\n (x as GoodsUnit[]).push({\r\n GoodsId: event[\"Id\"],\r\n UnitId: event[\"UnitId\"],\r\n Ratio: 1,\r\n UnitTitle: event[\"UnitTitle\"],\r\n IsDefault: false,\r\n Id: 0,\r\n });\r\n this.selectorService.setDataList(\"Goods/ReadGoodsUnitLookUp\", x as []);\r\n });\r\n }\r\n this.model.PriceListDetailList.forEach((x) => {\r\n if (x.GoodsId && !x.UnitPrice) {\r\n let price = this.GetGoodsAvragePurchase.find((up) => up.GoodsId === x.GoodsId);\r\n x.UnitPrice = this.formGroup?.get(\"averagePurchaseId\")?.value === 1 ? price.DefaultUnitPrice : price.AvrageUnitPrice;\r\n }\r\n });\r\n\r\n if (event?.controls && event?.controls[\"UnitPrice\"] && !event?.controls[\"UnitPrice\"]?.value) {\r\n if (event.controls[\"GoodsId\"].value) {\r\n let price = this.GetGoodsAvragePurchase.find((up) => up.GoodsId === event.controls[\"GoodsId\"].value);\r\n (event as FormGroup).controls[\"UnitPrice\"].setValue(\r\n this.formGroup?.get(\"averagePurchaseId\")?.value === 1 ? price.DefaultUnitPrice : price.AvrageUnitPrice\r\n );\r\n }\r\n }\r\n }\r\n increaseUnitPrice() {\r\n let UnitPriceratio = this.formGroup.controls[\"UnitPriceratio\"].value;\r\n if (this.model && this.model.PriceListDetailList && this.model.PriceListDetailList.length > 0) {\r\n if (this.detail?.selectedRows && this.detail?.selectedRows?.length > 0) {\r\n this.detail.selectedRows.forEach((sr) => {\r\n let temp = this.model.PriceListDetailList.find(\r\n (x) => x.GoodsId === sr.GoodsId && x.State !== RowState.Delete && x.State !== RowState.Detached\r\n );\r\n if (temp) {\r\n if (UnitPriceratio) temp.UnitPrice = temp.UnitPrice + (temp.UnitPrice * Number(UnitPriceratio)) / 100;\r\n }\r\n });\r\n } else this.sts.showDialog(\"هيچ رديفي انتخاب نشده است\", \"هشدار\");\r\n }\r\n }\r\n replaceUnitPrice() {\r\n let UnitPrice = this.formGroup.controls[\"UnitPrice\"].value;\r\n let DiscountRate = this.formGroup.controls[\"DiscountRate\"].value;\r\n if (this.model && this.model.PriceListDetailList && this.model.PriceListDetailList.length > 0) {\r\n if (this.detail?.selectedRows && this.detail?.selectedRows?.length > 0) {\r\n this.detail.selectedRows.forEach((sr) => {\r\n let temp = this.model.PriceListDetailList.find(\r\n (x) => x.GoodsId === sr.GoodsId && x.State !== RowState.Delete && x.State !== RowState.Detached\r\n );\r\n if (temp) {\r\n if (UnitPrice) temp.UnitPrice = Number(UnitPrice);\r\n if (DiscountRate) temp.DiscountRate = Number(DiscountRate);\r\n }\r\n });\r\n } else this.sts.showDialog(\"هيچ رديفي انتخاب نشده است\", \"هشدار\");\r\n }\r\n }\r\n changeGroup() {\r\n if (this.model && this.model.PriceListDetailList && this.model.PriceListDetailList.length > 0) {\r\n if (this.detail?.selectedRows && this.detail?.selectedRows?.length > 0) {\r\n this.detail.selectedRows.forEach((sr) => {\r\n let temp = this.model.PriceListDetailList.find(\r\n (x) => x.GoodsId === sr.GoodsId && x.State !== RowState.Delete && x.State !== RowState.Detached\r\n );\r\n if (temp) {\r\n if (this.currentSellKind) {\r\n temp.SellKindId = this.currentSellKind.Id;\r\n temp.SellKindTitle = this.currentSellKind.Title;\r\n }\r\n if (this.currentSellCustomerGroup) {\r\n temp.CustomerGroupId = this.currentSellCustomerGroup.Id;\r\n temp.CustomerGroupTitle = this.currentSellCustomerGroup.Title;\r\n }\r\n }\r\n });\r\n } else this.sts.showDialog(\"هيچ رديفي انتخاب نشده است\", \"هشدار\");\r\n }\r\n }\r\n beforupdate() {\r\n if (this.model.PriceListDetailList && this.model.PriceListDetailList.length > 0) {\r\n this.model.PriceListDetailList.forEach((x) => {\r\n if (!x.PriceListHeaderId) x.PriceListHeaderId = 0;\r\n if (!x.DiscountRate) x.DiscountRate = 0;\r\n });\r\n if (!this.formGroup.controls[\"PriceListDetailList\"])\r\n this.formGroup.addControl(\"PriceListDetailList\", new UntypedFormControl(this.model.PriceListDetailList));\r\n else this.formGroup.controls[\"PriceListDetailList\"].setValue(this.model.PriceListDetailList);\r\n this.formGroup.updateValueAndValidity();\r\n } else this.erroremessage = \"برای سند هیچ قلمی وارد نشده است.\";\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { PriceListHeaderFormComponent } from \"../price-list-header-form/price-list-header-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-price-list-header-list\",\r\n templateUrl: \"./price-list-header-list.component.html\",\r\n styleUrls: [\"./price-list-header-list.component.scss\"],\r\n})\r\nexport class PriceListHeaderListComponent extends BaseListComponent {\r\n filterInfo: NameValue[] = [];\r\n constructor() {\r\n super();\r\n this.inputEditorform = PriceListHeaderFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"PriceListHeader\";\r\n this.areaName = \"SellCustomer\";\r\n this.label = \"فهرست اعلامیه قیمت\";\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: this.accountService.authService.currentFiscalYear?.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: x.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [areaName]=\"areaName\"\r\n [name]=\"apiName\"\r\n reportName=\"SellCustomer\"\r\n pathPreFix=\"SELL\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n [inputEditorform]=\"inputEditorform\">\r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { PriceListHeaderFormComponent } from \"./price-list-header-form/price-list-header-form.component\";\r\nimport { PriceListHeaderListComponent } from \"./price-list-header-list/price-list-header-list.component\";\r\n\r\nconst components = [PriceListHeaderFormComponent, PriceListHeaderListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class PriceListHeaderModule {}\r\n","import { Component } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup } from \"@angular/forms\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, form_control, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherFormComponent } from \"src/app/backoffice/acc/accvoucher/accvoucher-form/accvoucher-form.component\";\r\nimport { ReviewFilterItem } from \"src/app/review/models/review-filter-item\";\r\nimport { ReviewService } from \"src/app/review/review.service\";\r\nimport { SellVoucherFormComponent } from \"../../sell-voucher/sell-voucher-form/sell-voucher-form.component\";\r\n\r\n@Component({\r\n selector: \"sell-customer-review\",\r\n templateUrl: \"./sell-customer-review.component.html\",\r\n styleUrls: [\"./sell-customer-review.component.scss\"],\r\n providers: [ReviewService],\r\n})\r\nexport class SellCustomerReviewComponent extends BaseListComponent {\r\n actions: EntityListAction[];\r\n formGroup: UntypedFormGroup;\r\n GetSellVoucherKindColumns: form_control[] = [];\r\n GetSellKindColumns: form_control[] = [];\r\n GetWarehouseColumns: form_control[] = [];\r\n GetCustomerColumns: form_control[] = [];\r\n GetGoodsGroupColumns: form_control[] = [];\r\n GetGoodsColumns: form_control[] = [];\r\n GetSellerColumns: form_control[] = [];\r\n GetGoodsCardAmountColumns: form_control[] = [];\r\n GetGoodsCardPriceColumns: form_control[] = [];\r\n GetVoucherHeaderColumns: form_control[] = [];\r\n GetVoucherDetailColumns: form_control[] = [];\r\n SellVoucherKindIds: number[] = [];\r\n StatusKindIds: number[] = [];\r\n CustomerIds: number[] = [];\r\n BranchIds: number[] = [];\r\n GoodsIds: number[] = [];\r\n GoodsGroupIds: number[] = [];\r\n SellerIds: number[] = [];\r\n SellKindIds: number[] = [];\r\n WarehouseIds: number[] = [];\r\n activeTabTitle: string;\r\n selected: string = \"\";\r\n constructor(private service: ReviewService, private tabsservice: TabularService, private fb: UntypedFormBuilder) {\r\n super();\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.service.startDate = new Date();\r\n this.service.endDate = new Date();\r\n let currentFiscalYear = this.accountService.authService.currentFiscalYear;\r\n\r\n this.setactions();\r\n if (currentFiscalYear) {\r\n this.service.startDate.setDate(this.service.startDate.getDate() - 30);\r\n this.service.startDate$.next(this.service.startDate);\r\n if (currentFiscalYear && currentFiscalYear.StartDate) {\r\n let fystartDate = new Date(currentFiscalYear.StartDate);\r\n if (fystartDate.setHours(0, 0, 0, 0) > this.service.startDate.setHours(0, 0, 0, 0))\r\n this.service.startDate = this.accountService.authService.currentFiscalYear.StartDate;\r\n else if (fystartDate.setHours(0, 0, 0, 0) < this.service.startDate.setHours(0, 0, 0, 0)) {\r\n this.service.startDate = currentFiscalYear.StartDate;\r\n this.service.endDate = currentFiscalYear.EndDate;\r\n this.service.startDate$.next(currentFiscalYear.StartDate);\r\n this.service.endDate$.next(currentFiscalYear.EndDate);\r\n }\r\n }\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.service.startDate.setDate(this.service.startDate.getDate() - 30);\r\n let fystartDate = new Date(x.StartDate);\r\n if (fystartDate.setHours(0, 0, 0, 0) > this.service.startDate.setHours(0, 0, 0, 0)) this.service.startDate = x.StartDate;\r\n else if (fystartDate.setHours(0, 0, 0, 0) < this.service.startDate.setHours(0, 0, 0, 0)) {\r\n this.service.startDate = x.StartDate;\r\n this.service.endDate = x.EndDate;\r\n this.service.startDate$.next(currentFiscalYear.StartDate);\r\n this.service.endDate$.next(currentFiscalYear.EndDate);\r\n }\r\n }\r\n });\r\n this.BranchIds.push(this.accountService.authService.currentBranchId);\r\n this.service.addFilter(this.accountService.authService.currentBranch.Title, [\r\n {\r\n key: \"BranchIds\",\r\n value: this.accountService.authService.currentBranchId,\r\n title: this.accountService.authService.currentBranch.Title,\r\n persianKey: this.accountService.authService.currentBranch.Title,\r\n },\r\n ]);\r\n this.formGroup = this.fb.group({\r\n SellVoucherKindIds: this.SellVoucherKindIds,\r\n StatusKindIds: this.StatusKindIds,\r\n CustomerIds: this.CustomerIds,\r\n BranchIds: this.BranchIds,\r\n GoodsGroupIds: this.GoodsGroupIds,\r\n GoodsIds: this.GoodsIds,\r\n SellerIds: this.SellerIds,\r\n WarehouseIds: this.WarehouseIds,\r\n SellKindIds: this.SellKindIds,\r\n OnlySupplier: false,\r\n IsGoods: false,\r\n SlaveNo: undefined,\r\n StartNumber: undefined,\r\n EndNumber: undefined,\r\n IsService: false,\r\n TraceElement: undefined,\r\n ReceiptDate: undefined,\r\n ShowBeginingOfTheCoursResidue: false,\r\n ShowRunningTotal: false,\r\n });\r\n this.service.filter$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n let ShowBeforeRemain: boolean = x.items.some((r) => r.key === \"ShowBeforeRemain\");\r\n let AmountRemain: boolean = x.items.some((r) => r.key === \"ShowRunningTotal\");\r\n if (AmountRemain) {\r\n this.GetVoucherDetailColumns.find((x) => x.name === \"AmountRemain\").listVisible = true;\r\n }\r\n this.populateGridColumns();\r\n }\r\n });\r\n this.populateGridColumns();\r\n this.setColumns();\r\n }\r\n setColumns() {\r\n this.httpCommonService\r\n .get(\"SellCustomerReview/GetSellCustomerReviewInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetVoucherDetailColumns = data as form_control[];\r\n this.GetVoucherDetailColumns = this.GetVoucherDetailColumns.sort((a, b) => a.order - b.order);\r\n this.setColumnVisiblty();\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n setColumnVisiblty() {}\r\n populateGridColumns(): any {\r\n var col: form_control[] = [];\r\n col = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Amount\",\r\n modelName: \"Amount\",\r\n listVisible: true,\r\n label: \"تعداد\",\r\n order: 11,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"MainAmount\",\r\n modelName: \"MainAmount\",\r\n listVisible: false,\r\n label: \"تعداد اصلی\",\r\n order: 11,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"OutputAmount\",\r\n modelName: \"OutputAmount\",\r\n listVisible: true,\r\n label: \"مقدار فروش\",\r\n order: 11,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"MainOutputAmount\",\r\n modelName: \"MainOutputAmount\",\r\n listVisible: false,\r\n label: \"مقدار اصلی فروش\",\r\n order: 11,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"OutputPrice\",\r\n modelName: \"OutputPrice\",\r\n listVisible: true,\r\n label: \"مبلغ فروش\",\r\n order: 13,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"InputAmount\",\r\n modelName: \"InputAmount\",\r\n listVisible: true,\r\n label: \"مقدار برگشتي\",\r\n order: 14,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"MainInputAmount\",\r\n modelName: \"MainInputAmount\",\r\n listVisible: false,\r\n label: \"مقدار اصلی برگشتي\",\r\n order: 14,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"InputPrice\",\r\n modelName: \"InputPrice\",\r\n listVisible: true,\r\n label: \"مبلغ برگشتی\",\r\n order: 14,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DiscountAmount\",\r\n modelName: \"DiscountAmount\",\r\n listVisible: true,\r\n label: \"تخفیف\",\r\n order: 17,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Surplusage\",\r\n modelName: \"Surplusage\",\r\n listVisible: true,\r\n label: \"اضافات\",\r\n order: 18,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Deduction\",\r\n modelName: \"Deduction\",\r\n listVisible: true,\r\n label: \"کسور\",\r\n order: 19,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n this.GetSellVoucherKindColumns = [];\r\n Object.assign(this.GetSellVoucherKindColumns, col);\r\n this.GetSellVoucherKindColumns.push({\r\n name: \"VoucherKindCode\",\r\n modelName: \"VoucherKind.Code\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetSellVoucherKindColumns.push({\r\n name: \"VoucherKindTitle\",\r\n modelName: \"VoucherKind.Title\",\r\n listVisible: true,\r\n label: \"عنوان\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetSellVoucherKindColumns = this.GetSellVoucherKindColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetSellKindColumns = [];\r\n Object.assign(this.GetSellKindColumns, col);\r\n this.GetSellKindColumns.push({\r\n name: \"SellKindCode\",\r\n modelName: \"SellKind.Code\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetSellKindColumns.push({\r\n name: \"SellKindTitle\",\r\n modelName: \"SellKind.Title\",\r\n listVisible: true,\r\n label: \"عنوان\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetSellKindColumns = this.GetSellKindColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetCustomerColumns = [];\r\n Object.assign(this.GetCustomerColumns, col);\r\n this.GetCustomerColumns.push({\r\n name: \"DetailLedgerCode\",\r\n modelName: \"DetailLedgerCode\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetCustomerColumns.push({\r\n name: \"DetailLedgerTitle\",\r\n modelName: \"DetailLedgerTitle\",\r\n listVisible: true,\r\n label: \"عنوان\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetCustomerColumns = this.GetCustomerColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetWarehouseColumns = [];\r\n Object.assign(this.GetWarehouseColumns, col);\r\n this.GetWarehouseColumns.push({\r\n name: \"WarehouseCode\",\r\n modelName: \"Warehouse.Code\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetWarehouseColumns.push({\r\n name: \"WarehouseTitle\",\r\n modelName: \"Warehouse.Title\",\r\n listVisible: true,\r\n label: \"انبار\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetWarehouseColumns = this.GetWarehouseColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetGoodsGroupColumns = [];\r\n Object.assign(this.GetGoodsGroupColumns, col);\r\n this.GetGoodsGroupColumns.push({\r\n name: \"GoodsGroupCode\",\r\n modelName: \"GoodsGroup.TreeCode\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsGroupColumns.push({\r\n name: \"GoodsGroupTitle\",\r\n modelName: \"GoodsGroup.TreePath\",\r\n listVisible: true,\r\n label: \"عنوان\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsGroupColumns = this.GetGoodsGroupColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetSellerColumns = [];\r\n Object.assign(this.GetSellerColumns, col);\r\n this.GetSellerColumns.push({\r\n name: \"SellerCode\",\r\n modelName: \"SellerCode\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetSellerColumns.push({\r\n name: \"SellerTitle\",\r\n modelName: \"SellerTitle\",\r\n listVisible: true,\r\n label: \"عنوان\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetSellerColumns = this.GetSellerColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetGoodsColumns = [];\r\n Object.assign(this.GetGoodsColumns, col);\r\n this.GetGoodsColumns.push({\r\n name: \"GoodsCode\",\r\n modelName: \"Goods.Code\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns.push({\r\n name: \"GoodsTitle\",\r\n modelName: \"Goods.Title\",\r\n listVisible: true,\r\n label: \"عنوان\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns.push({\r\n name: \"GoodsGroupCode\",\r\n modelName: \"GoodsGroup.TreeCode\",\r\n listVisible: true,\r\n label: \"کد گروه\",\r\n order: 3,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns.push({\r\n name: \"GoodsGroupTitle\",\r\n modelName: \"GoodsGroup.TreePath\",\r\n listVisible: true,\r\n label: \"عنوان گروه\",\r\n order: 4,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns.push({\r\n name: \"GoodsUnitTitle\",\r\n modelName: \"GoodsUnitTitle\",\r\n listVisible: true,\r\n label: \"واحد سنجش\",\r\n order: 5,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns.push({\r\n name: \"GoodsMainUnitTitle\",\r\n modelName: \"GoodsMainUnitTitle\",\r\n listVisible: true,\r\n label: \"واحد سنجش اصلی\",\r\n order: 5,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsColumns = this.GetGoodsColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetVoucherHeaderColumns = [];\r\n Object.assign(this.GetVoucherHeaderColumns, col);\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"VoucherKindTitle\",\r\n modelName: \"VoucherKindT.itle\",\r\n listVisible: true,\r\n label: \"نوع سند\",\r\n order: 1,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"VoucherNo\",\r\n modelName: \"VoucherNo\",\r\n listVisible: true,\r\n label: \"شماره سند\",\r\n order: 2,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"ShamsiVoucherDate\",\r\n modelName: \"ShamsiVoucherDate\",\r\n listVisible: true,\r\n label: \"تاریخ سند\",\r\n order: 3,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"ShamsiReceiptDate\",\r\n modelName: \"ShamsiReceiptDate\",\r\n listVisible: true,\r\n label: \"تاریخ وصول\",\r\n order: 4,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"Invoicecredit\",\r\n modelName: \"Invoicecredit\",\r\n listVisible: true,\r\n label: \"اعتبار به روز\",\r\n order: 5,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"SlaveNo\",\r\n modelName: \"SlaveNo\",\r\n listVisible: true,\r\n label: \"َشماره پیگیری\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"DetailLedgerCode\",\r\n modelName: \"DetailLedger.Code\",\r\n listVisible: true,\r\n label: \"کد طرف مقابل\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"DetailLedgerTitle\",\r\n modelName: \"DetailLedger.Title\",\r\n listVisible: true,\r\n label: \"طرف مقابل\",\r\n order: 8,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"WarehouseTitle\",\r\n modelName: \"WarehouseTitle\",\r\n listVisible: true,\r\n label: \"انبار\",\r\n order: 9,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns = this.GetVoucherHeaderColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetGoodsCardAmountColumns = [];\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"BranchTitle\",\r\n modelName: \"BranchTitle\",\r\n listVisible: true,\r\n label: \"َشعبه\",\r\n order: 1,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"WarehouseTitle\",\r\n modelName: \"Warehouse.Title\",\r\n listVisible: true,\r\n label: \"َانبار\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"GoodsCode\",\r\n modelName: \"Goods.Code\",\r\n listVisible: true,\r\n label: \"َکدکالا\",\r\n order: 3,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"GoodsTitle\",\r\n modelName: \"Goods.Title\",\r\n listVisible: true,\r\n label: \"َکالا\",\r\n order: 4,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"GoodsMainUnitTitle\",\r\n modelName: \"GoodsMainUnit.Title\",\r\n listVisible: true,\r\n label: \"واحد سنجش\",\r\n order: 5,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"ShamsiVoucherDate\",\r\n modelName: \"ShamsiVoucherDate\",\r\n listVisible: true,\r\n label: \"تاریخ سند\",\r\n order: 5,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"Comment\",\r\n modelName: \"Comment\",\r\n listVisible: true,\r\n label: \"شرح\",\r\n order: 6,\r\n textType: \"text\",\r\n withComma: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"MainInputAmount\",\r\n modelName: \"MainInputAmount\",\r\n listVisible: true,\r\n label: \"مقدار وارده\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns.push({\r\n name: \"MainOutputAmount\",\r\n modelName: \"MainOutputAmount\",\r\n listVisible: true,\r\n label: \"مقدارصادره\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardAmountColumns = this.GetGoodsCardAmountColumns.sort((a, b) => a.order - b.order);\r\n\r\n this.GetGoodsCardPriceColumns = [];\r\n Object.assign(this.GetGoodsCardPriceColumns, this.GetGoodsCardAmountColumns);\r\n this.GetGoodsCardPriceColumns.push({\r\n name: \"InputPrice\",\r\n modelName: \"InputPrice\",\r\n listVisible: true,\r\n label: \"وارده ریالی\",\r\n order: 9,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardPriceColumns.push({\r\n name: \"OutputPrice\",\r\n modelName: \"OutputPrice\",\r\n listVisible: true,\r\n label: \"صادره ریالی\",\r\n order: 9,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetGoodsCardPriceColumns = this.GetGoodsCardPriceColumns.sort((a, b) => a.order - b.order);\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: any, onRowsSelected: any[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n ///نمایش سند حسابداری\r\n if (action.name === \"AccVoucherHeader\") {\r\n var datatrasfer: Datatransfer = {};\r\n onRowSelected.Id = onRowSelected.AccVoucherHeaderId;\r\n datatrasfer.apiName = action.apiName;\r\n datatrasfer.areaName = action.areaName;\r\n datatrasfer.currentrow = onRowSelected;\r\n action.Form_Component = AccVoucherFormComponent;\r\n datatrasfer.apiName = \"AccVoucherHeader\";\r\n datatrasfer.areaName = \"Accounting\";\r\n datatrasfer.label = \"سند حسابداری\";\r\n if (onRowSelected.AccVoucherHeaderId) this.showVoucher(datatrasfer, action);\r\n }\r\n\r\n ///سند مبنا\r\n if (action.name === \"BaseVoucher\") {\r\n var datatrasfer: Datatransfer = {};\r\n onRowSelected.Id = onRowSelected.VoucherHeaderId;\r\n datatrasfer.apiName = action.apiName;\r\n datatrasfer.areaName = action.areaName;\r\n datatrasfer.currentrow = onRowSelected;\r\n action.Form_Component = SellVoucherFormComponent;\r\n datatrasfer.apiName = action.apiName;\r\n datatrasfer.areaName = action.areaName;\r\n datatrasfer.label = \"سند فروش و مشتری\";\r\n if (onRowSelected.VoucherHeaderId) this.showVoucher(datatrasfer, action);\r\n }\r\n }\r\n showVoucher(datatrasfer: Datatransfer, action: any) {\r\n const menu = {\r\n title: datatrasfer.label,\r\n isCloseable: true,\r\n icon: action.iconName,\r\n active: true,\r\n responsive: true,\r\n componentType: action.Form_Component,\r\n data: [\r\n { provide: EntityBase, useValue: datatrasfer.currentrow },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: 0 } },\r\n ],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"AccVoucherHeader\",\r\n disabled: false,\r\n isModal: false,\r\n displayName: \"سند حسابداری\",\r\n iconName: \"icon-table_view-f\",\r\n Form_Component: AccVoucherFormComponent,\r\n apiName: \"AccVoucherHeader\",\r\n areaName: \"Accounting\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"BaseVoucher\",\r\n disabled: false,\r\n isModal: false,\r\n displayName: \"سند مبنا\",\r\n iconName: \"icon-folder-open-outline\",\r\n areaName: \"SellCustomer\",\r\n Form_Component: SellVoucherFormComponent,\r\n apiName: \"SellVoucherHeader\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"GetGoodsHistory\",\r\n disabled: false,\r\n displayName: \"تاریخچه\",\r\n iconName: \"icon-history-o\",\r\n areaName: \"SellCustomer\",\r\n Form_Component: SellVoucherFormComponent,\r\n apiName: \"SellCustomerReview/GetGoodsHistory\",\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n setSelectedFilter(filter: string) {\r\n if (this.selected === filter) this.selected = \"\";\r\n else this.selected = filter;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.SELL.SellCustomerReview.FilterInfo\" | translate }}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.SELL.StatusKind.StatusKindTitle\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.SELL.SellCustomerReview.Branch\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\r\n \"\r\n name=\"VoucherDetail\"\r\n [title]=\"'ClientApp.BackOffice.SELL.SellCustomerReview.VoucherDetail' | translate\"\r\n apiName=\"SellCustomerReview/GetVoucherDetail\"\r\n areaName=\"SellCustomer\"\r\n [columns]=\"GetVoucherDetailColumns\"\r\n [selective]=\"false\"\r\n [filtering]=\"true\"\r\n [isModal]=\"false\"\r\n pathPreFix=\"SELL\"\r\n [actionTregger]=\"onActionClick\"\r\n [actions]=\"actions\"\r\n key=\"VoucherDetailIds\">\r\n \r\n \r\n \r\n
\r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ReportReviewModule } from \"src/app/review/review.module\";\r\nimport { SellCustomerReviewComponent } from \"./sell-customer-review.component\";\r\n\r\nconst components = [SellCustomerReviewComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, ReportReviewModule],\r\n})\r\nexport class SellCustomerReviewModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SellCustomerGroup } from \"../../models/sell-customer-group.model\";\r\n\r\n@Component({\r\n selector: \"ngx-sell-customer-group-form\",\r\n templateUrl: \"./sell-customer-group-form.component.html\",\r\n styleUrls: [\"./sell-customer-group-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SellCustomerGroupFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"SellCustomerGroup\";\r\n this.label = \"گروهبندی مشتری\";\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (this.parentrow && !this.model.ParentId) {\r\n this.model.ParentId = this.parentrow.Id;\r\n this.setValue(\"ParentId\", this.model.ParentId);\r\n }\r\n if (!this.isNewRow && this.model.ParentId) {\r\n this.httpCommonService\r\n .getItem(this.apiName, this.model.ParentId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.parentrow = Object.assign({}, data as SellCustomerGroup);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n beforupdate() {\r\n if (this.parentrow && this.parentrow.TreeCode) {\r\n this.model.TreeCode =\r\n (!this.parentrow.TreeCode ? \"\" : this.parentrow.TreeCode) +\r\n (!this.formGroup.controls[\"Code\"].value ? \"\" : this.formGroup.controls[\"Code\"].value);\r\n this.model.TreePath =\r\n (!this.parentrow.TreePath ? \"\" : this.parentrow.TreePath) +\r\n \" \" +\r\n (!this.formGroup.controls[\"Title\"].value ? \"\" : this.formGroup.controls[\"Title\"].value);\r\n } else {\r\n this.model.TreeCode = this.formGroup.controls[\"Code\"].value;\r\n this.model.TreePath = this.formGroup.controls[\"Title\"].value;\r\n }\r\n this.setValue(\"TreeCode\", this.model.TreeCode);\r\n this.setValue(\"TreePath\", this.model.TreePath);\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SellCustomerGroupFormComponent } from \"../sell-customer-group-form/sell-customer-group-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-sell-customer-group-list\",\r\n templateUrl: \"./sell-customer-group-list.component.html\",\r\n styleUrls: [\"./sell-customer-group-list.component.scss\"],\r\n})\r\nexport class SellCustomerGroupListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = SellCustomerGroupFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"SellCustomerGroup\";\r\n this.areaName = \"SellCustomer\";\r\n this.label = \"گروهبندی مشتری\";\r\n }\r\n}\r\n","\r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SellCustomerGroupFormComponent } from \"./sell-customer-group-form/sell-customer-group-form.component\";\r\nimport { SellCustomerGroupListComponent } from \"./sell-customer-group-list/sell-customer-group-list.component\";\r\n\r\nconst components = [SellCustomerGroupFormComponent, SellCustomerGroupListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class SellCustomerGroupModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SellCustomer } from \"../../models/sell-customer.model\";\r\n\r\n@Component({\r\n selector: \"ngx-sell-customer-form\",\r\n templateUrl: \"./sell-customer-form.component.html\",\r\n styleUrls: [\"./sell-customer-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SellCustomerFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"SellCustomer\";\r\n this.label = \"مشتری\";\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (!this.model.StartDate) this.model.StartDate = new Date();\r\n if (this.model.BranchId === undefined) this.model.BranchId = this.accountService.authService.currentBranchId;\r\n if (this.model.Active === undefined) this.model.Active = true;\r\n if (this.model.IsPermanent === undefined) this.model.IsPermanent = true;\r\n if (this.model.IsBlacklist === undefined) this.model.IsBlacklist = false;\r\n if (this.model.ConsumedCredit === undefined) this.model.ConsumedCredit = 0;\r\n if (this.model.DocumentCredit === undefined) this.model.DocumentCredit = 0;\r\n }\r\n onChanged($event) {\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"PeopleInfo/GetPagining\")) {\r\n this.formGroup.controls[\"Number\"].setValue($event.data.Number);\r\n this.model.Number = $event.data.Number;\r\n }\r\n }\r\n addControl() {}\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SellCustomerFormComponent } from \"../sell-customer-form/sell-customer-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-sell-customer-list\",\r\n templateUrl: \"./sell-customer-list.component.html\",\r\n styleUrls: [\"./sell-customer-list.component.scss\"],\r\n})\r\nexport class SellCustomerListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = SellCustomerFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"SellCustomer\";\r\n this.areaName = \"SellCustomer\";\r\n this.label = \"فهرست مشتری\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SellCustomerFormComponent } from \"./sell-customer-form/sell-customer-form.component\";\r\nimport { SellCustomerListComponent } from \"./sell-customer-list/sell-customer-list.component\";\r\n\r\nconst components = [SellCustomerFormComponent, SellCustomerListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class SellCustomerModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SellKind } from \"../../models/sell-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-sell-kind-form\",\r\n templateUrl: \"./sell-kind-form.component.html\",\r\n styleUrls: [\"./sell-kind-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SellKindFormComponent extends BaseFormComponent {\r\n IsOk4Load: boolean = false;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"SellKind\";\r\n this.label = \"نوع فروش\";\r\n await super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (!this.model.BranchId) this.model.BranchId = this.accountService.authService.currentBranchId;\r\n if (!this.model.TimeOfReceipt) this.model.TimeOfReceipt = 0;\r\n this.cd.markForCheck();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n\r\n addControl() {\r\n setTimeout(() => {\r\n this.formGroup.markAllAsTouched();\r\n this.cd.markForCheck();\r\n }, 100);\r\n this.IsOk4Load = (this.isNewRow !== true && this.model?.Id > 0) || (this.isNewRow === true && this.model !== undefined);\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowAccessKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { GridFilter, LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { RowAccessComponent } from \"src/app/gnr/row-access/row-access.component\";\r\nimport { SellKind } from \"../../models/sell-kind.model\";\r\nimport { SellKindFormComponent } from \"../sell-kind-form/sell-kind-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-sell-kind-list\",\r\n templateUrl: \"./sell-kind-list.component.html\",\r\n styleUrls: [\"./sell-kind-list.component.scss\"],\r\n})\r\nexport class SellKindListComponent extends BaseListComponent {\r\n HasRowAccess: boolean;\r\n constructor(private lookupservice: LookupService, private missetup: MisSetupService) {\r\n super();\r\n this.inputEditorform = SellKindFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n if (this.HasRowAccess === undefined) {\r\n this.HasRowAccess = this.missetup.getboolean(\"GNR\", \"HasRowAccess\");\r\n }\r\n this.apiName = \"SellKind\";\r\n this.areaName = \"SellCustomer\";\r\n this.label = \"نوع فروش\";\r\n }\r\n setactions() {\r\n if (this.HasRowAccess === true)\r\n this.actions = [\r\n {\r\n name: \"RowAccess\",\r\n disabled: false,\r\n displayName: \"دسترسی در ردیف\",\r\n iconName: \"icon-users\",\r\n apiName: \"SellKind/RowAccess\",\r\n areaName: \"SellCustomer\",\r\n requireSelectedrows: true,\r\n Form_Component: RowAccessComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: SellKind, onRowsSelected: SellKind[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n if (action.name === \"RowAccess\") {\r\n let ids: number[] = [];\r\n if (onRowsSelected != null && onRowsSelected.length > 0) {\r\n onRowsSelected.forEach((x) => ids.push(x.Id));\r\n } else ids.push(onRowSelected.Id);\r\n this.lookupservice\r\n .getLookupbyCode(\"Security\", \"RowAccess\", RowAccessKind.SellKind)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n SelectedRows: ids,\r\n RowKindId: x.Id,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n },\r\n (error) => {}\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SellKindFormComponent } from \"./sell-kind-form/sell-kind-form.component\";\r\nimport { SellKindListComponent } from \"./sell-kind-list/sell-kind-list.component\";\r\n\r\nconst components = [SellKindFormComponent, SellKindListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class SellKindModule {}\r\n","import { Component, Type } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherDetailCommentComponent } from \"src/app/backoffice/acc/acc-voucher-detail-comment/acc-voucher-detail-comment.component\";\r\nimport { InvVoucherKindFormComponent } from \"src/app/backoffice/inv/inv-voucher-kind/inv-voucher-kind-form/inv-voucher-kind-form.component\";\r\nimport { InvVoucherKind } from \"src/app/backoffice/inv/models/inv-voucher-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-sell-voucher-kind-list\",\r\n templateUrl: \"./sell-voucher-kind-list.component.html\",\r\n styleUrls: [\"./sell-voucher-kind-list.component.scss\"],\r\n})\r\nexport class SellVoucherKindListComponent extends BaseListComponent {\r\n filterInfo: NameValue[] = [];\r\n actions: EntityListAction[];\r\n constructor(private selectorService: SelectorService) {\r\n super();\r\n this.inputEditorform = InvVoucherKindFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.selectorService.setHasDefaultValue(\"IsWarehouse\", false);\r\n this.apiName = \"InvVoucherKind\";\r\n this.label = this.translate(\"ClientApp.BackOffice.INV.InvVoucherKind.InvVoucherKindList\");\r\n this.areaName = \"Inventory\";\r\n this.filterInfo = [{ Name: \"IsWarehouse\", Value: false, Operator: \"eq\" }];\r\n this.setactions();\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: InvVoucherKind,\r\n onRowsSelected: InvVoucherKind[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n if (action.name === \"AccVoucherDetailComment\") {\r\n if (!onRowSelected || !onRowSelected.HasJournalVoucher) {\r\n this.sts.showDialog(\"هیچ نوع سندی انتخاب نشده یا با سیستم حسابداری مرتبط نیست\", \"خطا\");\r\n return;\r\n }\r\n let accVoucherDetailComment: Type = AccVoucherDetailCommentComponent;\r\n this.dialogService\r\n .open(\r\n accVoucherDetailComment,\r\n {\r\n VoucherKindTitle: onRowSelected.Title,\r\n InvVoucherKindId: onRowSelected.Id,\r\n IsWarehouse: false,\r\n },\r\n {\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {});\r\n }\r\n return;\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"AccVoucherDetailComment\",\r\n disabled: false,\r\n displayName: \"قالب شرح سند حسابداری\",\r\n iconName: \"icon-format_list_numbered_rtl-o\",\r\n apiName: \"AccVoucherDetailComment\",\r\n areaName: \"Accounting\",\r\n permission: Permission.managePermission,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SellVoucherKindListComponent } from \"./sell-voucher-kind-list/sell-voucher-kind-list.component\";\r\n\r\nconst components = [SellVoucherKindListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class SellVoucherKindModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostListener, Input, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, ValidatorFn, Validators } from \"@angular/forms\";\r\nimport { ColumnComponent, GridComponent, RowArgs, ScrollRequest } from \"@progress/kendo-angular-grid\";\r\nimport { isNullOrEmptyString } from \"@progress/kendo-angular-grid/dist/es2015/utils\";\r\nimport { orderBy, SortDescriptor, State } from \"@progress/kendo-data-query\";\r\nimport * as moment from \"jalali-moment\";\r\nimport { Moment } from \"jalali-moment\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { isNumber } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { GridColumnInfo, GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { GoodsUnit, RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport {\r\n AccountService,\r\n GridFilter,\r\n HttpCommonService,\r\n LookupService,\r\n PagingDataResult,\r\n ShowToastrService,\r\n} from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvSubledgerDetailLedgerFormComponent } from \"src/app/backoffice/inv/invvoucher/inv-subledger-detailLedger/inv-subledger-detailLedger-form.component\";\r\nimport { FormOperationKind } from \"src/app/backoffice/inv/models/form-operation-kind.enums\";\r\nimport { Goods } from \"src/app/backoffice/inv/models/goods.model\";\r\nimport { InvVoucherKind } from \"src/app/backoffice/inv/models/inv-voucher-kind.model\";\r\nimport { ReferenceVoucherByVoucherKindFilterInfo } from \"src/app/backoffice/inv/models/reference-voucher-byvoucher-kind-filter-info.model\";\r\nimport { SellVoucherDetail } from \"../../models/sell-voucher-detail.model\";\r\nexport function isNullOrUndefined(value: any) {\r\n return value === null || value === undefined;\r\n}\r\n\r\n@Component({\r\n selector: \"sellvoucher-detail\",\r\n templateUrl: \"./sell-voucher-detail.component.html\",\r\n styleUrls: [\"./sell-voucher-detail.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SellVoucherDetailComponent implements OnInit {\r\n LookupData: Dictionary = [];\r\n DefaultValues: Dictionary = [];\r\n isLoadingData: Dictionary = [];\r\n _GridColumnInfo: GridColumnInfo;\r\n isFirstLoad: boolean;\r\n @ViewChild(\"grid\") public grid: GridComponent;\r\n currentLookup: any;\r\n public isNew: boolean;\r\n rowseleted: boolean = false;\r\n isDisabled: boolean = false;\r\n public mySelection: number[] = [];\r\n isLoading: boolean = false;\r\n invReferenceVoucherLoded: boolean = false;\r\n ngUnsubscribe = new Subject();\r\n isLoadingLastUnitPrice: boolean = false;\r\n @Output() valueChanges = new EventEmitter();\r\n @Output() rowChanges = new EventEmitter();\r\n @Output() forGoodsGroupBy = new EventEmitter();\r\n @Input() RowNumberName: string;\r\n _columns: form_control[] = [];\r\n @Input() set columns(value: form_control[]) {\r\n this._columns = value;\r\n if (this._columns && this._columns.length > 0) {\r\n this.setColumns();\r\n this.setColumnWith();\r\n }\r\n }\r\n get columns(): form_control[] {\r\n return this._columns;\r\n }\r\n valueIsChanging: boolean = false;\r\n @Input() AccountRegistered: boolean;\r\n @Input() HasJournalVoucher: boolean;\r\n @Input() isAdd: boolean = true;\r\n @Input() isEdit: boolean = false;\r\n @Input() isDelete: boolean = true;\r\n @Input() isPriceable: boolean = false;\r\n @Input() hasDiscount: boolean = false;\r\n @Input() ReferenceVoucherChange: (entyity: any) => void;\r\n @Input() hasReference: boolean = false;\r\n @Input() hasReferenceRequired: boolean = false;\r\n @Input() IsPurchaseInvoice: boolean = false;\r\n @Input() detailLedgerLevel: number = 0;\r\n @Input() IsReturnPurchaseInvoice: boolean = false;\r\n _filterEntity: ReferenceVoucherByVoucherKindFilterInfo;\r\n @Input() get filterEntity(): ReferenceVoucherByVoucherKindFilterInfo {\r\n return this._filterEntity;\r\n }\r\n @Input() headerTitleToDetailTitle: string;\r\n set filterEntity(value: ReferenceVoucherByVoucherKindFilterInfo) {\r\n if (\r\n !this._filterEntity ||\r\n this._filterEntity.BranchId !== value.BranchId ||\r\n this._filterEntity.FiscalYearId !== value.FiscalYearId ||\r\n this._filterEntity.DetailLedgerId !== value.DetailLedgerId ||\r\n this._filterEntity.ReferencedVoucherKindId !== value.ReferencedVoucherKindId ||\r\n this._filterEntity.VoucherKindId !== value.VoucherKindId ||\r\n new Date(this._filterEntity.VoucherDate).setHours(0, 0, 0, 0) !== new Date(value.VoucherDate).setHours(0, 0, 0, 0) ||\r\n this._filterEntity.WarehouseId !== value.WarehouseId ||\r\n this._filterEntity.WarehouseTransferId !== value.WarehouseTransferId\r\n ) {\r\n this.invReferenceVoucherLoded = false;\r\n this._filterEntity = value;\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n if (this.CurrentReferenceVoucherKind) {\r\n if (this.CurrentReferenceVoucherKind?.IsWarehouse === true)\r\n this.setelementByVoucherKindList(\"InvVoucherHeader/GetReferenceVoucherByVoucherKind\");\r\n else this.setelementByVoucherKindList(\"SellVoucherHeader/GetReferenceVoucherByVoucherKind\");\r\n }\r\n }\r\n this._filterEntity = value;\r\n }\r\n public isRowSelected = (e: RowArgs) => this.mySelection.indexOf(e.dataItem.RowNumber) >= 0;\r\n\r\n _ReferenceVoucherKindId: number;\r\n @Input() get ReferenceVoucherKindId(): number {\r\n return this._ReferenceVoucherKindId;\r\n }\r\n set ReferenceVoucherKindId(value: number) {\r\n this._ReferenceVoucherKindId = value;\r\n this.cancelHandler();\r\n this.setColumns();\r\n if (value && value > 0) {\r\n this.invReferenceVoucherLoded = false;\r\n this.isLoading = false;\r\n this.fillCollectionsKind(this._ReferenceVoucherKindId);\r\n }\r\n setTimeout(() => {\r\n if (this.dataList?.length <= 0) this.addHandler();\r\n }, 300);\r\n }\r\n _CurrentVoucherKind: InvVoucherKind;\r\n @Input() set CurrentVoucherKind(value: InvVoucherKind) {\r\n this._CurrentVoucherKind = value;\r\n this.cancelHandler();\r\n if (this._CurrentVoucherKind) this.setColumns();\r\n setTimeout(() => {\r\n if (this.dataList?.length <= 0) this.addHandler();\r\n }, 300);\r\n }\r\n get CurrentVoucherKind(): InvVoucherKind {\r\n return this._CurrentVoucherKind;\r\n }\r\n _CurrentWarehouseId: number;\r\n @Input() set CurrentWarehouseId(value: number) {\r\n this._CurrentWarehouseId = value;\r\n }\r\n get CurrentWarehouseId(): number {\r\n return this._CurrentWarehouseId;\r\n }\r\n formGroup: UntypedFormGroup;\r\n loadingData: boolean = false;\r\n _dataList: SellVoucherDetail[];\r\n @Input() set dataList(value: SellVoucherDetail[]) {\r\n this._dataList = value;\r\n if (this._dataList) {\r\n let filterddata = this._dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n }\r\n }\r\n get dataList(): SellVoucherDetail[] {\r\n return this._dataList;\r\n }\r\n gridData: SellVoucherDetail[];\r\n rowIsEditing: boolean = false;\r\n CurrentReferenceVoucherKind: InvVoucherKind;\r\n editedRow: any;\r\n editedRowIndex: number = 0;\r\n groupsName = \"VoucherNo\";\r\n isLoadingReferenceVoucherKind: boolean = false;\r\n public state: State = {\r\n skip: 0,\r\n take: 5,\r\n filter: {\r\n logic: \"and\",\r\n filters: [],\r\n },\r\n group: [],\r\n };\r\n get getHasTaxDuty(): boolean {\r\n return this.missetup.getboolean(\"GNR\", \"HasTaxDuty\");\r\n }\r\n get getTaxRate(): number {\r\n return this.missetup.getnumber(\"GNR\", \"TaxRate\") / 100;\r\n }\r\n\r\n get hasTaxDuty(): boolean {\r\n return this.CurrentVoucherKind && this.CurrentVoucherKind.HasTaxDuty;\r\n }\r\n\r\n getGridCell(index) {\r\n return this.grid?.columns?.toArray()[index];\r\n }\r\n getColumnIndex(colIndex: number) {\r\n if (!this.grid) return;\r\n let index: number = -1;\r\n let ColumnName: string;\r\n this.grid.columns\r\n .toArray()\r\n .filter((x) => x.isVisible)\r\n .forEach((x) => {\r\n index = index + 1;\r\n if (index == colIndex) ColumnName = x[\"field\"];\r\n });\r\n return ColumnName;\r\n }\r\n DetailControlModels: Dictionary;\r\n @HostListener(\"window:keydown\", [\"$event\"])\r\n cArrowDown(e: KeyboardEvent) {\r\n if (document.hidden) return;\r\n\r\n if (e.altKey && e.shiftKey && (e.key === \"n\" || e.key === \"N\" || e.key === \"أ\")) {\r\n e.preventDefault();\r\n this.addHandler();\r\n }\r\n if (e.ctrlKey && e.altKey && (e.key === \"s\" || e.key === \"S\" || e.key === \"س\")) {\r\n e.preventDefault();\r\n this.saveCurrent();\r\n }\r\n if (e.ctrlKey && (e.key === \"c\" || e.key === \"C\" || e.key === \"ز\")) {\r\n e.preventDefault();\r\n this.copyHandler();\r\n }\r\n if (e.ctrlKey && (e.key === \"v\" || e.key === \"V\" || e.key === \"ر\")) {\r\n e.preventDefault();\r\n this.pasetHandler();\r\n }\r\n if (e.key === \"Tab\" && !e.shiftKey) {\r\n if (this.formGroup) {\r\n if (this.formGroup?.valid && this.getColumnIndex(this.grid?.activeCell?.colIndex) === \"Comment\") {\r\n this.saveCurrent();\r\n e.preventDefault();\r\n if (this.grid?.activeCell?.rowIndex < this.dataList?.length) {\r\n this.editedRowIndex = this.grid?.activeCell?.rowIndex;\r\n this.cd.markForCheck();\r\n if (this.editedRowIndex < this.dataList?.length) this.setFormGroup(this.dataList[this.editedRowIndex]);\r\n else this.setFormGroup(this.dataList[this.dataList?.length - 1]);\r\n if (this.grid) {\r\n this.grid.editRow(this.editedRowIndex, this.formGroup);\r\n }\r\n } else\r\n setTimeout(() => {\r\n this.addHandler();\r\n }, 200);\r\n }\r\n }\r\n }\r\n if (e.key.toUpperCase() === \"F4\") {\r\n e.preventDefault();\r\n if (this.dataList?.length > 1 && this.formGroup?.controls[\"RowNumber\"]?.value > 1) {\r\n let ColumnName = this.getColumnIndex(this.grid.activeCell.colIndex);\r\n if (ColumnName.includes(\"SubLedger\") || ColumnName.includes(\"DetailLedger\") || ColumnName.includes(\"Concern\")) {\r\n let PrevValue = this.dataList[this.formGroup?.controls[\"RowNumber\"]?.value - 2][ColumnName];\r\n this.formGroup.controls[ColumnName].setValue(PrevValue);\r\n PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][ColumnName.replace(\"Id\", \"Code\")];\r\n this.formGroup.controls[ColumnName.replace(\"Id\", \"Code\")].setValue(PrevValue);\r\n PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][ColumnName.replace(\"Id\", \"Title\")];\r\n this.formGroup.controls[ColumnName.replace(\"Id\", \"Title\")].setValue(PrevValue);\r\n } else {\r\n let PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][ColumnName];\r\n this.formGroup.controls[ColumnName].setValue(PrevValue);\r\n if (this.grid?.activeRow?.dataItem) this.grid.activeRow.dataItem[ColumnName] = PrevValue;\r\n }\r\n this.selectorService.onSubmited.next(true);\r\n this.cd.markForCheck();\r\n }\r\n }\r\n if (e.key.toUpperCase() === \"F5\") {\r\n e.preventDefault();\r\n if (!this.formGroup || !this.gridData || this.gridData.length < 2) return;\r\n Object.keys(this.dataList[0])\r\n .filter((x) => x !== \"RowNumber\" && x !== \"Id\" && x !== \"State\")\r\n .forEach((key) => {\r\n if (key && this.formGroup.controls[key]) {\r\n let PrevValue = this.gridData[this.formGroup.controls[\"RowNumber\"].value - 2][key];\r\n this.formGroup.controls[key].setValue(PrevValue);\r\n if (this.grid?.activeRow?.dataItem) this.grid.activeRow.dataItem[key] = PrevValue;\r\n }\r\n });\r\n this.cd.markForCheck();\r\n }\r\n if (this.formGroup && e.ctrlKey && e.key.toUpperCase() === \"DELETE\") {\r\n e.preventDefault();\r\n this.removeHandler({ sender: this.grid, dataItem: this.formGroup.value });\r\n }\r\n }\r\n constructor(\r\n private lookupservice: LookupService,\r\n private sts: ShowToastrService,\r\n public cd: ChangeDetectorRef,\r\n private dialogService: SimpleModalService,\r\n private missetup: MisSetupService,\r\n private selectorService: SelectorService,\r\n private accountService: AccountService,\r\n private _httpCommonService: HttpCommonService\r\n ) {\r\n this.onDataStateChange = this.onDataStateChange.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.DefaultValues[\"SellVoucherHeaderId\"] = 0;\r\n this.DefaultValues[\"BaseAmount\"] = 0;\r\n this.DefaultValues[\"PreRemainAmount\"] = 0;\r\n this.DefaultValues[\"RemainAmount\"] = 0;\r\n this.DefaultValues[\"DiscountRate\"] = 0;\r\n this.DefaultValues[\"DiscountAmount\"] = 0;\r\n this.DefaultValues[\"GoodsUnitRatio\"] = 1;\r\n this.DefaultValues[\"PriceUnitRatio\"] = 0;\r\n this.DefaultValues[\"MainAmount\"] = 0;\r\n this.DefaultValues[\"UnitPrice\"] = 0;\r\n this.DefaultValues[\"Price\"] = 0;\r\n this.DefaultValues[\"TotalPrice\"] = 0;\r\n\r\n if (!this.dataList) this.dataList = [];\r\n\r\n this.columns.forEach((x) => {\r\n if (x.listVisible && x.apiName) this.setDropdownlist(x.apiName, x.systemName, x.category);\r\n });\r\n\r\n if (\r\n !this.ReferenceVoucherKindId &&\r\n this.CurrentVoucherKind &&\r\n this.CurrentVoucherKind?.ReferenceVoucherKinds &&\r\n this.CurrentVoucherKind?.ReferenceVoucherKinds?.length > 0\r\n ) {\r\n let vk = this.CurrentVoucherKind?.ReferenceVoucherKinds.find((vk) => vk.IsDefault);\r\n if (vk) this.ReferenceVoucherKindId = vk.ReferenceVoucherKindId;\r\n }\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n\r\n setTimeout(() => {\r\n if (this.dataList?.length <= 0) this.addHandler();\r\n }, 300);\r\n }\r\n setColumns() {\r\n this.columns.forEach((x) => {\r\n if (x.name === \"Amount\")\r\n x.disabled =\r\n this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId) && this.CurrentReferenceVoucherKind?.CanChangeRefereAmount === false;\r\n if (x.name === \"MainAmount\")\r\n x.disabled =\r\n this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId) && this.CurrentReferenceVoucherKind?.CanChangeRefereAmount === false;\r\n if (x.name === \"UnitPrice\") {\r\n x.listVisible = this.isPriceable || this.CurrentVoucherKind?.Priceable;\r\n x.disabled =\r\n this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId) && this.CurrentReferenceVoucherKind?.CanChangeReferePrice === false;\r\n }\r\n if (x.name === \"Price\") x.listVisible = this.isPriceable || this.CurrentVoucherKind?.Priceable;\r\n if (x.name === \"Surplusage\") {\r\n x.listVisible = this.isPriceable || this.CurrentVoucherKind?.Priceable;\r\n x.disabled =\r\n this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId) && this.CurrentReferenceVoucherKind?.CanChangeReferePrice === false;\r\n }\r\n if (x.name === \"Deduction\") {\r\n x.listVisible = this.isPriceable || this.CurrentVoucherKind?.Priceable;\r\n x.disabled =\r\n this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId) && this.CurrentReferenceVoucherKind?.CanChangeReferePrice === false;\r\n }\r\n if (x.name === \"DiscountRate\") {\r\n x.listVisible = this.hasDiscount || this.CurrentVoucherKind?.HasDiscount;\r\n x.disabled =\r\n this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId) && this.CurrentReferenceVoucherKind?.CanChangeReferePrice === false;\r\n }\r\n if (x.name === \"DiscountAmount\") x.listVisible = this.hasDiscount || this.CurrentVoucherKind?.HasDiscount;\r\n if (x.name === \"Tax\") {\r\n x.listVisible = this.isPriceable && this.hasTaxDuty;\r\n x.disabled =\r\n this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId) && this.CurrentReferenceVoucherKind?.CanChangeReferePrice === false;\r\n }\r\n if (x.name === \"TotalPrice\") x.listVisible = this.isPriceable || this.CurrentVoucherKind?.Priceable;\r\n if (x.name === \"GoodsId\") x.disabled = this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId);\r\n // if (x.name === \"GoodsTitle\")\r\n // x.disabled = this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId);\r\n\r\n if (x.name === \"WarehouseId\") x.listVisible = this.CurrentVoucherKind?.ShowWarehouse && !this.CurrentVoucherKind?.WarehouseIsInHeader;\r\n\r\n if (x.name === \"ReferenceId\") {\r\n x.listVisible = this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId);\r\n x.required = this.hasReference && this.hasReferenceRequired && !isNullOrUndefined(this.ReferenceVoucherKindId);\r\n }\r\n });\r\n }\r\n setFormGroup(entity: any = null) {\r\n let group: any = {};\r\n this.columns.forEach((question) => {\r\n switch (question.textType) {\r\n case \"text\":\r\n {\r\n let validator: ValidatorFn[] = [];\r\n if (question.required) validator.push(Validators.required);\r\n if (question.minLength && question.minLength > 0) validator.push(Validators.minLength(question.minLength));\r\n if (question.maxLength && question.maxLength > 0) validator.push(Validators.maxLength(question.maxLength));\r\n if (question.max && question.max > 0) validator.push(Validators.max(question.max));\r\n if (question.min && question.min > 0) validator.push(Validators.min(question.min));\r\n\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? null : entity[question.name] || null, validator)\r\n : new UntypedFormControl(!entity ? null : entity[question.name] || null);\r\n }\r\n break;\r\n case \"checkbox\":\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? false : entity[question.name] || false, Validators.required)\r\n : new UntypedFormControl(!entity ? false : entity[question.name] || false);\r\n break;\r\n case \"number\":\r\n {\r\n let validator: ValidatorFn[] = [];\r\n if (question.required) validator.push(Validators.required);\r\n if (question.max && question.max > 0) validator.push(Validators.max(question.max));\r\n if (question.min && question.min > 0) validator.push(Validators.min(question.min));\r\n\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? null : entity[question.name] || this.DefaultValues[question.name], validator)\r\n : new UntypedFormControl(!entity ? this.DefaultValues[question.name] : entity[question.name] ?? this.DefaultValues[question.name]);\r\n }\r\n break;\r\n case \"date\":\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? new Date() : entity[question.name] || new Date(), Validators.required)\r\n : new UntypedFormControl(!entity ? new Date() : entity[question.name] || new Date());\r\n break;\r\n default:\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? null : entity[question.name] || null, Validators.required)\r\n : new UntypedFormControl(!entity ? null : entity[question.name] || null);\r\n break;\r\n }\r\n });\r\n\r\n group[\"SellVoucherHeaderId\"] = new UntypedFormControl(!entity ? 0 : entity[\"SellVoucherHeaderId\"] || 0);\r\n group[\"State\"] = new UntypedFormControl(!entity ? RowState.New : entity[\"State\"] || RowState.NoChange);\r\n group[\"Id\"] = new UntypedFormControl(!entity ? 0 : entity[\"Id\"] || 0);\r\n group[\"RowVersion\"] = new UntypedFormControl(!entity ? \"\" : entity[\"RowVersion\"] || \"\");\r\n\r\n if (this.RowNumberName) group[this.RowNumberName] = new UntypedFormControl(!entity ? this.gridData.length + 1 : entity[this.RowNumberName] || 0);\r\n this.formGroup = new UntypedFormGroup(group);\r\n this.setChanges();\r\n }\r\n setColumnWith() {\r\n this.columns.forEach((x) => {\r\n if (\r\n x.textType === \"number\" &&\r\n x.withComma &&\r\n !x.name.toUpperCase().includes(\"NUMBER\") &&\r\n !x.name.toUpperCase().includes(\"CODE\") &&\r\n !x.name.toUpperCase().includes(\".ID\")\r\n )\r\n x.format = \"#,#.#####\";\r\n else x.format = \"\";\r\n if (!x.columnWidth || x.columnWidth < 50) {\r\n if (x.textType === \"text\") x.columnWidth = 200;\r\n else x.columnWidth = 50;\r\n }\r\n if (x.name === \"BranchTitle\") x.disabled = true;\r\n });\r\n }\r\n public addHandler() {\r\n this.closeEditor();\r\n this.isNew = true;\r\n if (!this.dataList) this.dataList = [];\r\n if (this.CurrentReferenceVoucherKind) {\r\n if (this.CurrentReferenceVoucherKind?.IsWarehouse === true)\r\n this.setelementByVoucherKindList(\"InvVoucherHeader/GetReferenceVoucherByVoucherKind\");\r\n else this.setelementByVoucherKindList(\"SellVoucherHeader/GetReferenceVoucherByVoucherKind\");\r\n }\r\n this.rowIsEditing = true;\r\n let _comment: string = \"\";\r\n if (this.headerTitleToDetailTitle) _comment = this.headerTitleToDetailTitle;\r\n const temp = {\r\n Id: -1,\r\n RowNumber:\r\n this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).length > 0\r\n ? this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).length + 1\r\n : 1,\r\n State: RowState.New,\r\n Comment: _comment,\r\n };\r\n this.dataList.push(temp);\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.editedRowIndex = this.gridData.length - 1;\r\n this.cd.markForCheck();\r\n this.setFormGroup(temp);\r\n if (this.grid) {\r\n this.grid.editRow(this.editedRowIndex, this.formGroup);\r\n }\r\n const keyboardEvent = new KeyboardEvent(\"keydown\", {\r\n code: \"Tab\",\r\n key: \"Tab\",\r\n keyCode: 9,\r\n view: window,\r\n bubbles: true,\r\n });\r\n }\r\n setLastUnitPrice() {\r\n if (!this.isLoadingLastUnitPrice && this.CurrentVoucherKind.ShowLastUnitPrice == true && this.filterEntity.DetailLedgerId && this.formGroup) {\r\n let GoodsId = this.formGroup.get(\"GoodsId\").value;\r\n let GoodsUnitRatio = this.formGroup.get(\"GoodsUnitRatio\").value ?? 1;\r\n if (!GoodsId || this.formGroup.get(\"UnitPrice\")?.value) return;\r\n this.isLoadingLastUnitPrice = true;\r\n this._httpCommonService\r\n .get(\r\n `InvVoucherHeader/GetPriceUnitChangeSetByGoodsId/${this.filterEntity.FiscalYearId}/${GoodsId}/${GoodsUnitRatio}/${this.filterEntity.DetailLedgerId}`\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.isLoadingLastUnitPrice = false;\r\n if (data) {\r\n this.formGroup.get(\"UnitPrice\").setValue(data[\"LastUnitPrice\"]);\r\n }\r\n },\r\n (errore) => {\r\n this.isLoadingReferenceVoucherKind = false;\r\n this.isLoadingLastUnitPrice = false;\r\n }\r\n );\r\n }\r\n }\r\n isvalid(entity: SellVoucherDetail) {\r\n if (entity.Tax && entity.Tax < 0) {\r\n this.sts.showDialog(`مالیات نمی تواند منفی باشد.`, \"خطا\", DialogType.alert);\r\n return false;\r\n }\r\n if (entity.UnitPrice && entity.UnitPrice < 0) {\r\n this.sts.showDialog(`فی نمی تواند منفی باشد.`, \"خطا\", DialogType.alert);\r\n return false;\r\n }\r\n\r\n if (entity.Surplusage && entity.Surplusage < 0) {\r\n this.sts.showDialog(`اضافات نمی تواند منفی باشد.`, \"خطا\", DialogType.alert);\r\n return false;\r\n }\r\n if (entity.Deduction && entity.Deduction < 0) {\r\n this.sts.showDialog(`کسور نمی تواند منفی باشد.`, \"خطا\", DialogType.alert);\r\n return false;\r\n }\r\n return true;\r\n }\r\n hasdatForPaset() {\r\n return this.selectorService.getDataList(\"SellVoucherDetail\") !== undefined && (this.isAdd || this.isEdit);\r\n }\r\n copyHandler() {\r\n if (this.mySelection && this.mySelection.length > 0)\r\n this.selectorService.setDataList(\r\n \"SellVoucherDetail\",\r\n this.dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached && this.mySelection.some((s) => s === x.RowNumber))\r\n );\r\n else\r\n this.selectorService.setDataList(\r\n \"SellVoucherDetail\",\r\n this.dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached && x.RowNumber === this.editedRow.RowNumber)\r\n );\r\n }\r\n copyAll() {\r\n this.selectorService.setDataList(\r\n \"SellVoucherDetail\",\r\n this.dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached)\r\n );\r\n }\r\n pasetHandler() {\r\n this.cancelHandler();\r\n if (this.selectorService.getDataList(\"SellVoucherDetail\") !== undefined) {\r\n this.selectorService.getDataList(\"SellVoucherDetail\").forEach((element) => {\r\n const entity = Object.assign({}, element as SellVoucherDetail);\r\n entity.RowNumber = this.dataList?.length + 1;\r\n entity.Id = 0;\r\n entity.State = RowState.New;\r\n this.dataList.push(entity);\r\n });\r\n this.setRowNumber();\r\n this.selectorService.setDataList(\"SellVoucherDetail\", undefined);\r\n }\r\n }\r\n public cancelHandler() {\r\n this.closeEditor();\r\n }\r\n _setChanges(x: SellVoucherDetail) {\r\n if (x && this.valueIsChanging != true) {\r\n this.valueIsChanging = true;\r\n let Price: number = 0;\r\n let UnitPrice: number = 0;\r\n let DiscountAmount: number = 0;\r\n let Tax: number = 0;\r\n if (!x[\"MainAmount\"] || x[\"MainAmount\"] !== x[\"Amount\"] * (!x[\"GoodsUnitRatio\"] ? 1 : x[\"GoodsUnitRatio\"])) {\r\n x[\"MainAmount\"] = x[\"Amount\"] * (!x[\"GoodsUnitRatio\"] ? 1 : x[\"GoodsUnitRatio\"]);\r\n if (this.formGroup?.controls[\"MainAmount\"]) this.formGroup.controls[\"MainAmount\"].setValue(x[\"MainAmount\"]);\r\n if (this.grid?.activeRow?.dataItem && this.grid?.activeRow?.dataItem[\"RowNumber\"] === x[\"RowNumber\"])\r\n this.grid.activeRow.dataItem[\"MainAmount\"] = x[\"MainAmount\"];\r\n }\r\n if (this.isPriceable) {\r\n if (this.grid && this.grid.activeCell && this.getColumnIndex(this.grid.activeCell.colIndex) === \"Price\") {\r\n UnitPrice = x[\"Price\"] / x[\"Amount\"];\r\n if (x[\"UnitPrice\"] !== UnitPrice) {\r\n x[\"UnitPrice\"] = UnitPrice;\r\n if (this.formGroup?.controls[\"UnitPrice\"]) this.formGroup.controls[\"UnitPrice\"].setValue(UnitPrice);\r\n }\r\n }\r\n Price = x[\"UnitPrice\"] * x[\"Amount\"];\r\n Price = isNaN(Price) ? 0 : Price;\r\n if (x[\"Price\"] !== Price) {\r\n x[\"Price\"] = Price;\r\n\r\n if (this.formGroup?.controls[\"Price\"]) this.formGroup.controls[\"Price\"].setValue(Price);\r\n }\r\n if (this.grid?.activeRow?.dataItem && this.grid?.activeRow?.dataItem[\"RowNumber\"] === x[\"RowNumber\"])\r\n this.grid.activeRow.dataItem[\"Price\"] = Price;\r\n } else {\r\n x[\"Price\"] = 0;\r\n if (this.formGroup?.controls[\"Price\"]) this.formGroup.controls[\"Price\"].setValue(0);\r\n if (this.grid?.activeRow?.dataItem && this.grid?.activeRow?.dataItem[\"RowNumber\"] === x[\"RowNumber\"])\r\n this.grid.activeRow.dataItem[\"Price\"] = 0;\r\n }\r\n if (this.hasDiscount) {\r\n if (x[\"DiscountRate\"]) {\r\n DiscountAmount = (Price * x[\"DiscountRate\"]) / 100;\r\n if (x[\"DiscountAmount\"] !== DiscountAmount) {\r\n x[\"DiscountAmount\"] = DiscountAmount;\r\n if (this.formGroup?.controls[\"DiscountAmount\"]) this.formGroup.controls[\"DiscountAmount\"].setValue(DiscountAmount);\r\n }\r\n }\r\n }\r\n if (this.hasTaxDuty && this.getHasTaxDuty && x[\"HasTaxDuty\"] && (x[\"TaxRate\"] !== undefined || this.getTaxRate > 0)) {\r\n let TotalPrice = Price - DiscountAmount + (x[\"Surplusage\"] ?? 0) - (x[\"Deduction\"] ?? 0);\r\n Tax = TotalPrice * (x[\"TaxRate\"] !== undefined && x[\"TaxRate\"] !== null ? x[\"TaxRate\"] / 100 : this.getTaxRate);\r\n if (x[\"Tax\"] !== Tax) {\r\n x[\"Tax\"] = Tax;\r\n if (this.formGroup?.controls[\"Tax\"]) this.formGroup.controls[\"Tax\"].setValue(Tax);\r\n if (this.grid?.activeRow?.dataItem && this.grid?.activeRow?.dataItem[\"RowNumber\"] === x[\"RowNumber\"])\r\n this.grid.activeRow.dataItem[\"Tax\"] = Tax;\r\n }\r\n } else {\r\n x[\"Tax\"] = 0;\r\n if (this.formGroup?.controls[\"Tax\"]) this.formGroup.controls[\"Tax\"].setValue(0);\r\n if (this.grid?.activeRow?.dataItem && this.grid?.activeRow?.dataItem[\"RowNumber\"] === x[\"RowNumber\"]) this.grid.activeRow.dataItem[\"Tax\"] = 0;\r\n }\r\n\r\n if (this.isPriceable) {\r\n let TotalPrice = Price + Tax - DiscountAmount + (x[\"Surplusage\"] ?? 0) - (x[\"Deduction\"] ?? 0);\r\n if (x[\"TotalPrice\"] !== TotalPrice) {\r\n x[\"TotalPrice\"] = TotalPrice;\r\n if (this.formGroup?.controls[\"TotalPrice\"]) this.formGroup.controls[\"TotalPrice\"].setValue(TotalPrice);\r\n if (this.grid?.activeRow?.dataItem && this.grid?.activeRow?.dataItem[\"RowNumber\"] === x[\"RowNumber\"])\r\n this.grid.activeRow.dataItem[\"TotalPrice\"] = TotalPrice;\r\n }\r\n } else {\r\n x[\"TotalPrice\"] = 0;\r\n if (this.formGroup?.controls[\"TotalPrice\"]) this.formGroup.controls[\"TotalPrice\"].setValue(0);\r\n if (this.grid?.activeRow?.dataItem && this.grid?.activeRow?.dataItem[\"RowNumber\"] === x[\"RowNumber\"])\r\n this.grid.activeRow.dataItem[\"TotalPrice\"] = 0;\r\n }\r\n this.valueIsChanging = false;\r\n //this.valueChanges.emit(x);\r\n }\r\n }\r\n setChanges() {\r\n if (this.formGroup)\r\n this.formGroup.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n setTimeout(() => (this.valueIsChanging = false), 100);\r\n this._setChanges(x);\r\n });\r\n this.fitColumns();\r\n }\r\n public saveHandler(rowIndex, formGroup): void {\r\n if (this.formGroup && this.formGroup?.valid && this.isvalid(this.formGroup.value)) {\r\n var entity = this.formGroup.value;\r\n this._setChanges(entity);\r\n Object.keys(this.DefaultValues).forEach((key) => {\r\n if (!entity[key]) entity[key] = this.DefaultValues[key];\r\n });\r\n if (entity.State === undefined || (entity.State === RowState.New && rowIndex === -1)) {\r\n entity.State = RowState.New;\r\n if (!this.gridData.some((x) => x.RowNumber === entity.RowNumber)) this.dataList.push(entity);\r\n } else if (rowIndex >= 0) {\r\n if (!entity.State) entity.State = this.dataList[rowIndex].State;\r\n\r\n if (entity.State != RowState.New) (entity as SellVoucherDetail).State = RowState.Modify;\r\n if (entity.Id > 0 && this.dataList.some((x) => x.Id === entity.Id)) {\r\n this.dataList.forEach((m) => {\r\n if (m.Id === entity.Id) {\r\n Object.assign(m, entity);\r\n }\r\n });\r\n } else {\r\n this.dataList.forEach((m) => {\r\n if (m.RowNumber === entity.RowNumber && m.Id === entity.Id && m.State === entity.State) {\r\n if (entity.Id == -1) entity.Id = 0;\r\n Object.assign(m, entity);\r\n }\r\n });\r\n }\r\n }\r\n this.rowIsEditing = false;\r\n this.valueChanges.emit(entity);\r\n this.closeEditor();\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.cd.markForCheck();\r\n } else this.sts.showDialog(`اطلاعات وارده صحیح نیست.`, \"خطا\", DialogType.alert);\r\n this.cd.markForCheck();\r\n }\r\n deleteFormHelper(dataItem: any) {\r\n this.dataList.forEach((x) => {\r\n if ((dataItem.Id > 0 && x.Id === dataItem.Id) || x === dataItem) {\r\n if (x.State === RowState.New) x.State = RowState.Detached;\r\n else x.State = RowState.Delete;\r\n this.valueChanges.emit(x);\r\n }\r\n });\r\n this.setRowNumber();\r\n }\r\n setRowNumber() {\r\n let index: number = 0;\r\n this.gridData\r\n .filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached)\r\n .sort((a, b) => a.RowNumber - b.RowNumber)\r\n .forEach((x) => {\r\n index += 1;\r\n x.RowNumber = index;\r\n });\r\n this.valueChanges.emit(this.gridData[this.gridData.length - 1]);\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n }\r\n public removeHandler({ sender, dataItem }): void {\r\n this.sts.showDialog(`آیا از حذف اطلاعات اطمینان دارید؟`, \"حذف اطلاعات\", DialogType.confirm, () => this.deleteFormHelper(dataItem));\r\n sender.cancelCell();\r\n }\r\n\r\n private closeEditor() {\r\n this.editedRow = undefined;\r\n if (this.grid) this.grid.closeRow(this.editedRowIndex);\r\n this.rowIsEditing = false;\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n if (this.dataList) {\r\n this.dataList = this.dataList.filter((x) => x.Id >= 0);\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached && x.Id >= 0);\r\n this.gridData = filterddata?.sort((a, b) => a.RowNumber - b.RowNumber);\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n private isReadOnly(field: string, dataItem: any): boolean {\r\n let col = this.columns.find((x) => x.name === field);\r\n return col && col.disabled;\r\n }\r\n public saveCurrent(): void {\r\n if (this.formGroup) {\r\n this.saveHandler(this.editedRowIndex, this.formGroup);\r\n }\r\n }\r\n\r\n hasMultiColumns(ColumnsName: string) {\r\n if (!ColumnsName) return false;\r\n var columns = ColumnsName.split(\",\");\r\n return columns.length > 1;\r\n }\r\n fillCollectionsKind(ReferenceVoucherKindId: number) {\r\n if (!this.isLoadingReferenceVoucherKind) {\r\n this.filterEntity.ReferencedVoucherKindId = ReferenceVoucherKindId;\r\n this.isLoadingReferenceVoucherKind = true;\r\n this._httpCommonService\r\n .getItem(\"InvVoucherKind\", ReferenceVoucherKindId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.isLoadingReferenceVoucherKind = false;\r\n this.CurrentReferenceVoucherKind = Object.assign({}, data as InvVoucherKind);\r\n if (this.CurrentReferenceVoucherKind)\r\n if (this.CurrentReferenceVoucherKind?.IsWarehouse === true)\r\n this.setelementByVoucherKindList(\"InvVoucherHeader/GetReferenceVoucherByVoucherKind\");\r\n else this.setelementByVoucherKindList(\"SellVoucherHeader/GetReferenceVoucherByVoucherKind\");\r\n if (\r\n this.CurrentReferenceVoucherKind?.IsWarehouse !== true &&\r\n this.columns?.find((x) => x.apiName === \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\")?.apiName\r\n )\r\n this.columns.find((x) => x.apiName === \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\").apiName =\r\n \"SellVoucherHeader/GetReferenceVoucherByVoucherKind\";\r\n }\r\n },\r\n (errore) => (this.isLoadingReferenceVoucherKind = false)\r\n );\r\n }\r\n }\r\n onRowsSelected($event, apiName: string, key: string) {\r\n let hasNewRecord: Boolean = false;\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n\r\n if (\r\n $event &&\r\n apiName !== \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\" &&\r\n apiName !== \"SellVoucherHeader/GetReferenceVoucherByVoucherKind\"\r\n ) {\r\n if ($event.length > 1) {\r\n $event.forEach((x) => {\r\n let entity = {};\r\n entity.RowNumber =\r\n this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached && x.Id >= 0).length > 0\r\n ? this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached && x.Id >= 0).length + 1\r\n : 1;\r\n entity[key] = x[\"Id\"];\r\n entity.GoodsTitle = x[\"Title\"];\r\n entity.GoodsCode = x[\"Code\"];\r\n entity.MainUnitId = x[\"UnitId\"];\r\n entity.GoodsMainUnitCode = x[\"UnitCode\"];\r\n entity.GoodsMainUnitTitle = x[\"UnitTitle\"];\r\n entity.PriceUnitId = x[\"DefaultUnitId\"];\r\n entity.GoodsUnitTitle = x[\"DefaultUnitTitle\"];\r\n entity.GoodsUnitId = x[\"DefaultUnitId\"];\r\n entity.GoodsKindCode = x[\"GoodsKindCode\"];\r\n entity.HasTaxDuty = x[\"HasTaxDuty\"];\r\n entity.State = RowState.New;\r\n entity.Id = 0;\r\n if (!this.dataList.some((f) => f[key] === x[\"Id\"] && f[\"State\"] !== RowState.Detached && f[\"State\"] !== RowState.Delete)) {\r\n this.dataList.push(entity);\r\n hasNewRecord = true;\r\n }\r\n });\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n if (hasNewRecord) this.closeEditor();\r\n }\r\n }\r\n if (\r\n $event &&\r\n (apiName === \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\" || apiName === \"SellVoucherHeader/GetReferenceVoucherByVoucherKind\")\r\n ) {\r\n if (this.ReferenceVoucherChange) this.ReferenceVoucherChange($event[0]);\r\n $event.forEach((element) => {\r\n if (element && !this.gridData.some((x) => x.ReferenceId === element.Id)) {\r\n let entity: SellVoucherDetail = {};\r\n entity.Id = 0;\r\n entity.State = RowState.New;\r\n entity.RowNumber =\r\n this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached && x.Id >= 0).length > 0\r\n ? this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached && x.Id >= 0).length + 1\r\n : 1;\r\n if (element.BaseRemainAmount) entity.BaseAmount = element.BaseRemainAmount;\r\n else entity.BaseAmount = element.RemainAmount;\r\n if (entity.BaseAmount <= 0 && element.RemainMainAmount > 0)\r\n entity.BaseAmount = element.RemainMainAmount /= element.GoodsUnitRatio <= 0 ? 1 : element.GoodsUnitRatio;\r\n entity.Amount = element.RemainAmount;\r\n\r\n if (element.PreRemainAmount !== null && element.PreRemainAmount !== undefined && element.PreRemainAmount !== 0)\r\n entity.PreRemainAmount = element.PreRemainAmount;\r\n else entity.PreRemainAmount = element.RemainAmount;\r\n entity.ExpiryDate = element.ExpiryDate;\r\n entity.RemainAmount = element.RemainAmount;\r\n if (element.Amount === entity.BaseAmount) entity.Amount = element.Amount;\r\n else entity.Amount = entity.BaseAmount;\r\n entity.MainAmount = (element.GoodsUnitRatio <= 0 ? 1 : element.GoodsUnitRatio) * entity.Amount;\r\n entity.Comment = element.Comment;\r\n\r\n entity.GoodsCode = element.GoodsCode;\r\n entity.GoodsId = element.GoodsId;\r\n entity.GoodsTitle = element.GoodsTitle;\r\n entity.GoodsUnitId = element.GoodsUnitId;\r\n entity.GoodsMainUnitTitle = element.MainUnitTitle;\r\n entity.GoodsUnitTitle = element.GoodsUnitTitle;\r\n entity.GoodsUnitRatio = element.GoodsUnitRatio;\r\n entity.GoodsKindCode = element.GoodsKindCode;\r\n entity.HasTaxDuty = element.HasTaxDuty;\r\n entity.TaxRate = element.TaxRate;\r\n\r\n entity.DetailLedgerId = element.DetailLedgerId;\r\n entity.DetailLedgerCode = element.DetailLedgerCode;\r\n entity.DetailLedgerTitle = element.DetailLedgerTitle;\r\n entity.DetailLedgerLatinTitle = element.DetailLedgerLatinTitle;\r\n entity.DetailLedger2Id = element.DetailLedger2Id;\r\n entity.DetailLedger2Code = element.DetailLedger2Code;\r\n entity.DetailLedger2Title = element.DetailLedger2Title;\r\n entity.DetailLedger2LatinTitle = element.DetailLedger2LatinTitle;\r\n entity.DetailLedger3Id = element.DetailLedger3Id;\r\n entity.DetailLedger3Code = element.DetailLedger3Code;\r\n entity.DetailLedger3Title = element.DetailLedger3Title;\r\n entity.DetailLedger3LatinTitle = element.DetailLedger3LatinTitle;\r\n entity.DetailLedger4Id = element.DetailLedger4Id;\r\n entity.DetailLedger4Code = element.DetailLedger4Code;\r\n entity.DetailLedger4Title = element.DetailLedger4Title;\r\n entity.DetailLedger4LatinTitle = element.DetailLedger4LatinTitle;\r\n entity.DetailLedger5Id = element.DetailLedger5Id;\r\n entity.DetailLedger5Code = element.DetailLedger5Code;\r\n entity.DetailLedger5Title = element.DetailLedger5Title;\r\n entity.DetailLedger5LatinTitle = element.DetailLedger5LatinTitle;\r\n\r\n entity.DiscountAmount = element.DiscountAmount ?? 0;\r\n entity.DiscountRate = element.DiscountRate ?? 0;\r\n entity.Surplusage = element.Surplusage ?? 0;\r\n entity.Deduction = element.Deduction ?? 0;\r\n entity.Tax = element.Tax ?? 0;\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n if (this.CurrentReferenceVoucherKind !== null) {\r\n if (this.CurrentReferenceVoucherKind && this.CurrentReferenceVoucherKind?.IsWarehouse == true) entity.InvReferenceId = element.Id;\r\n }\r\n entity.ReferenceId = element.Id;\r\n entity.ReferenceCode = element.VoucherNo;\r\n\r\n entity.TeloranceAmount = element.TeloranceAmount;\r\n entity.TraceElement = element.TraceElement;\r\n // if ((this.CurrentReferenceVoucherKind !== null && this.CurrentReferenceVoucherKind?.IsWarehouse) && this.CurrentVoucherKind.IncrementalKindCode !== 2)\r\n entity.UnitPrice = element.UnitPrice ?? 0;\r\n if (!entity.UnitPrice) entity.UnitPrice = 0;\r\n entity.Price = element.Price;\r\n entity.Price = Math.round(entity.UnitPrice * entity.Amount);\r\n entity.PriceUnitId = element.PriceUnitId;\r\n entity.TotalPrice =\r\n entity.Amount * (entity.UnitPrice ?? 0) +\r\n (entity.Tax ? entity.Tax : 0) -\r\n (entity.DiscountAmount ? entity.DiscountAmount : 0) +\r\n (entity.Surplusage ? entity.Surplusage : 0) -\r\n (entity.Deduction ? entity.Deduction : 0);\r\n if (\r\n !this.dataList.some(\r\n (f) => (f.ReferenceId === element.Id || f.InvReferenceId === element.Id) && f.State !== RowState.Delete && f.State !== RowState.Detached\r\n )\r\n ) {\r\n this.dataList.push(entity);\r\n hasNewRecord = true;\r\n }\r\n }\r\n });\r\n if (this.dataList?.length > 0) this.valueChanges.emit(this.dataList[this.dataList?.length - 1]);\r\n let filterddata = this.dataList.filter((x) => x.Id >= 0 && x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n if (hasNewRecord) this.closeEditor();\r\n this.cd.markForCheck();\r\n }\r\n this.valueChanges.emit(this.dataList[0]);\r\n }\r\n\r\n setelementByVoucherKindList(apiName: string) {\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n\r\n if (!this.isLoading && !this.invReferenceVoucherLoded && this.filterEntity.VoucherDate) {\r\n this.isLoading = true;\r\n let model = Object.assign({}, this.filterEntity);\r\n if (this.CurrentVoucherKind?.HasWarehouseTransfer) {\r\n model.WarehouseTransferId = this.filterEntity.WarehouseId;\r\n model.WarehouseId = this.filterEntity.WarehouseTransferId;\r\n }\r\n this._httpCommonService\r\n .create(apiName, model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.isLoading = false;\r\n if (apiName === \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\" || \"SellVoucherHeader/GetReferenceVoucherByVoucherKind\") {\r\n this.selectorService.setDataList(\"ReferenceId\", x as []);\r\n if (x && (x as []).length > 0) this.invReferenceVoucherLoded = true;\r\n } else this.LookupData[apiName] = x;\r\n },\r\n (error) => (this.isLoading = false)\r\n );\r\n }\r\n }\r\n setDropdownlist(apiName: string, systemName: string, category: string) {\r\n if (\r\n (apiName === \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\" || apiName === \"SellVoucherHeader/GetReferenceVoucherByVoucherKind\") &&\r\n this.ReferenceVoucherKindId &&\r\n this.ReferenceVoucherKindId > 0\r\n ) {\r\n this.setelementByVoucherKindList(apiName);\r\n }\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n\r\n if (apiName === \"Goods/ReadGoodsUnitLookUp\") return;\r\n if (systemName && category && !this.loadingData) {\r\n this.lookupservice\r\n .getLookupbyCategory(systemName, category)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.LookupData[apiName] = x;\r\n });\r\n } else\r\n this._httpCommonService\r\n .getList(apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.LookupData[apiName] = x;\r\n });\r\n }\r\n getItemDisplayById(apiName: string, systemName: string, id: number, displayMember, valueMember: string, dataItem: any, columnName: string) {\r\n if (!id) return \"\";\r\n if (apiName === \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\" || apiName === \"SellVoucherHeader/GetReferenceVoucherByVoucherKind\") {\r\n if (dataItem[\"ReferenceCode\"]) return dataItem[\"ReferenceCode\"];\r\n else return \"\";\r\n }\r\n\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n\r\n if (apiName.includes(\"Goods\") && dataItem[`Goods${displayMember}`]) return dataItem[`Goods${displayMember}`];\r\n else return dataItem[`${columnName.replace(\"Id\", displayMember)}`];\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.selectorService.setDataList(\"SellVoucherDetail\", undefined);\r\n this.selectorService.setDataList(\"ReferenceId\", undefined);\r\n //window.removeEventListener('keydown', this.cArrowDown.bind(this), false);\r\n this.saveGridColumnInfo();\r\n this.LookupData = undefined;\r\n this.DefaultValues = undefined;\r\n this.isLoadingData = undefined;\r\n this.grid = undefined;\r\n this.currentLookup = undefined;\r\n this.mySelection = undefined;\r\n this.columns = undefined;\r\n this._filterEntity = undefined;\r\n this.CurrentVoucherKind = undefined;\r\n this.formGroup = undefined;\r\n this._dataList = undefined;\r\n this.gridData = undefined;\r\n this.CurrentReferenceVoucherKind = undefined;\r\n this.editedRow = undefined;\r\n }\r\n setValue(key: string, value: any) {\r\n if (!this.formGroup?.controls[key]) this.formGroup.addControl(key, new UntypedFormControl(value));\r\n else if (this.formGroup) this.formGroup.controls[key].setValue(value);\r\n }\r\n setGoods(event: any) {\r\n this.setValue(\"GoodsTitle\", event.Title);\r\n this.setValue(\"GoodsCode\", event.Code);\r\n this.setValue(\"MainUnitId\", event.UnitId);\r\n this.setValue(\"GoodsMainUnitCode\", event.UnitCode);\r\n this.setValue(\"GoodsMainUnitTitle\", event.UnitTitle);\r\n this.setValue(\"PriceUnitId\", this.formGroup?.get(\"PriceUnitId\")?.value ?? event.DefaultUnitId);\r\n this.setValue(\"GoodsUnitId\", this.formGroup?.get(\"GoodsUnitId\")?.value ?? event.DefaultUnitId);\r\n this.setValue(\"GoodsUnitTitle\", this.formGroup?.get(\"GoodsUnitTitle\")?.value ?? event.DefaultUnitTitle ?? event.UnitTitle);\r\n this.setValue(\"GoodsKindCode\", event.GoodsKindCode);\r\n this.setValue(\"HasTaxDuty\", event.HasTaxDuty);\r\n this.setValue(\"TaxRate\", event.TaxRate);\r\n if (event.DetailLedgerId) {\r\n this.setValue(\"GoodsDetailLedgerId\", event.DetailLedgerId);\r\n this.setValue(\"GoodsDetailLedgerCode\", event.DetailLedgerCode);\r\n this.setValue(\"GoodsDetailLedgerTitle\", event.DetailLedgerTitle);\r\n }\r\n if (\r\n event.CostSubLedgerId &&\r\n ((this.CurrentVoucherKind.FormOperationKindCode === FormOperationKind.IsPurchaseService) === true ||\r\n (this.CurrentVoucherKind.FormOperationKindCode === FormOperationKind.IsConsumptionVoucher) === true)\r\n ) {\r\n this.setValue(\"CostSubLedgerId\", event.CostSubLedgerId);\r\n this.setValue(\"CostSubLedgerCode\", event.CostSubLedgerCode);\r\n this.setValue(\"CostSubLedgerTitle\", event.CostSubLedgerTitle);\r\n }\r\n if (event.GoodsGroupDetailLedgerId) {\r\n this.setValue(\"GoodsGroupDetailLedgerId\", event.GoodsGroupDetailLedgerId);\r\n this.setValue(\"GoodsGroupDetailLedgerCode\", event.GoodsGroupDetailLedgerCode);\r\n this.setValue(\"GoodsGroupDetailLedgerTitle\", event.GoodsGroupDetailLedgerTitle);\r\n }\r\n this.rowChanges.emit(this.formGroup?.value);\r\n setTimeout(() => {\r\n if (this.grid?.activeRow?.dataItem) {\r\n this.grid.activeRow.dataItem[\"GoodsTitle\"] = event.Title;\r\n this.grid.activeRow.dataItem[\"GoodsUnitTitle\"] = this.formGroup?.get(\"GoodsUnitTitle\")?.value ?? event.DefaultUnitTitle;\r\n }\r\n this.formGroup.updateValueAndValidity();\r\n this.cd.markForCheck();\r\n }, 300);\r\n }\r\n removeGoods() {\r\n this.setValue(\"GoodsId\", undefined);\r\n this.setValue(\"GoodsTitle\", undefined);\r\n this.setValue(\"GoodsCode\", undefined);\r\n this.setValue(\"MainUnitId\", undefined);\r\n this.setValue(\"GoodsMainUnitCode\", undefined);\r\n this.setValue(\"GoodsMainUnitTitle\", undefined);\r\n this.setValue(\"PriceUnitId\", undefined);\r\n this.setValue(\"GoodsUnitId\", undefined);\r\n this.setValue(\"GoodsUnitTitle\", undefined);\r\n this.setValue(\"GoodsKindCode\", undefined);\r\n this.setValue(\"HasTaxDuty\", undefined);\r\n this.setValue(\"TaxRate\", undefined);\r\n this.rowChanges.emit(this.formGroup?.value);\r\n setTimeout(() => {\r\n if (this.grid?.activeRow?.dataItem) this.grid.activeRow.dataItem[\"GoodsTitle\"] = undefined;\r\n this.formGroup.updateValueAndValidity();\r\n this.cd.markForCheck();\r\n }, 300);\r\n }\r\n selectionChange(event: any, apiName: string, columnName: string) {\r\n this.currentLookup = event;\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n\r\n if (apiName === \"InvVoucherHeader/GetReferenceVoucherByVoucherKind\" || apiName === \"SellVoucherHeader/GetReferenceVoucherByVoucherKind\") {\r\n if (event && !this.CurrentVoucherKind.BasedOnBOM) this.onRowsSelected([event], apiName, \"\");\r\n return;\r\n }\r\n this.valueChanges.emit(event);\r\n if (event && event.DefaultUnitId) {\r\n if (this.formGroup) {\r\n if (this.isNew) {\r\n if (this.dataList.some((s) => s.GoodsId === event.Id && s.State !== RowState.Delete && s.State !== RowState.Detached)) {\r\n this.sts.showDialog(\r\n \"این کالا قبلا انتخاب شده تکراری است. آیا تایید می کنید.\",\r\n \"حذف اطلاعات\",\r\n DialogType.confirm,\r\n () => {\r\n this.setGoods(event);\r\n },\r\n () => {\r\n this.removeGoods();\r\n }\r\n );\r\n } else this.setGoods(event);\r\n } else this.setGoods(event);\r\n }\r\n this.setGoodUnitList(event);\r\n this.setLastUnitPrice();\r\n }\r\n if (event && event.UnitId && this.formGroup && event.GoodsId && event.Ratio) {\r\n this.setValue(\"GoodsUnitTitle\", event.UnitTitle);\r\n this.setValue(\"GoodsMainUnitTitle\", event.UnitTitle);\r\n this.setValue(\"GoodsUnitCode\", event.UnitCode);\r\n this.setValue(\"PriceUnitId\", event.UnitId);\r\n this.setValue(\"GoodsUnitRatio\", !event.Ratio ? 1 : event.Ratio);\r\n\r\n this.setLastUnitPrice();\r\n } else if (event.Code) {\r\n this.setValue(`${columnName.replace(\"Id\", \"Title\")}`, event.Title);\r\n this.setValue(`${columnName.replace(\"Id\", \"Code\")}`, event.Code);\r\n }\r\n }\r\n setGoodUnitList(goods: Goods) {\r\n this._httpCommonService\r\n .getList(\"Goods/ReadGoodsUnitLookUp/\" + goods.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x: any[]) => {\r\n //x.push({ GoodsId: null, Ratio: null, UnitId: null, UnitTitle: 'تهی کردن اطلاعات', UnitCode: null });\r\n if (x.length === 0 && !x.some((u) => u.UnitId === goods.DefaultUnitId))\r\n x.push(({\r\n GoodsId: goods.Id,\r\n Ratio: 1,\r\n UnitId: goods.DefaultUnitId,\r\n UnitTitle: goods.DefaultUnitTitle,\r\n UnitCode: goods.DefaultUnitCode,\r\n }));\r\n if (!x.some((u) => u.UnitId === goods.UnitId))\r\n x.push(({ GoodsId: goods.Id, Ratio: 1, UnitId: goods.UnitId, UnitTitle: goods.UnitTitle, UnitCode: goods.UnitCode }));\r\n if (this.formGroup) {\r\n let du = x.find((d) => d.UnitId === (this.formGroup?.get(\"GoodsUnitId\")?.value ?? goods.DefaultUnitId));\r\n if (du) {\r\n this.setValue(\"GoodsUnitRatio\", !du.Ratio ? 1 : du.Ratio);\r\n } else {\r\n this.setValue(\"GoodsUnitRatio\", 1);\r\n }\r\n }\r\n this.LookupData[\"Goods/ReadGoodsUnitLookUp\"] = x;\r\n },\r\n (error) => {}\r\n );\r\n }\r\n getDateValue(date: Date) {\r\n let m: Moment = moment(date.toString()).locale(\"fa\");\r\n return m.format(\"YYYY/MM/DD\");\r\n }\r\n getFilters(columnsName: string, searchValue: string, skip: number, take: number) {\r\n var filters: GridFilter[] = [];\r\n const columns = columnsName.split(\",\");\r\n if (isNullOrEmptyString(searchValue)) return filters;\r\n columns.forEach((x) => {\r\n {\r\n if (x !== \"Id\")\r\n filters.push({ Filed: x, Operator: \"contains\", Type: \"F\", Skip: skip, Take: take, Value: searchValue.toString(), Logic: \"or\" });\r\n else if (isNumber(searchValue))\r\n filters.push({ Filed: x, Operator: \"eq\", Type: \"F\", Skip: skip, Take: take, Value: Number(searchValue), Logic: \"or\" });\r\n }\r\n });\r\n return filters;\r\n }\r\n onDataStateChange(columnName: string, searchValue: string, skip: number, take: number): Observable> {\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n\r\n var abs = new BehaviorSubject>(null);\r\n const GoodsGroupIds: number[] = [];\r\n let apiName: string = \"Goods/GoodsByGoodsGroupIds\";\r\n const filter = this.getFilters(\"Id,Code,Title,Unit.Title,GoodsKind.Title\", searchValue, skip, take);\r\n if (this.CurrentVoucherKind.FormOperationKindCode === FormOperationKind.IsPurchaseService) {\r\n filter.push({ Filed: \"IsGoods\", Operator: \"eq\", Value: false, Type: \"F\", Skip: skip, Take: take, Logic: \"and\" });\r\n }\r\n if (this.CurrentVoucherKind.VoucherKindGoodss && this.CurrentVoucherKind.VoucherKindGoodss.length > 0) {\r\n this.CurrentVoucherKind.VoucherKindGoodss.forEach((x) => GoodsGroupIds.push(x.GoodsGroupId));\r\n }\r\n if (!filter.some((x) => x.Filed === \"WarehouseId\"))\r\n filter.push({ Filed: \"WarehouseId\", Operator: \"eq\", Value: this.CurrentWarehouseId, Type: \"F\", Skip: skip, Take: take, Logic: \"and\" });\r\n if (GoodsGroupIds && GoodsGroupIds.length > 0)\r\n filter.push({ Filed: \"GoodsGroupIds\", Operator: \"eq\", Value: GoodsGroupIds, Type: \"F\", Skip: skip, Take: take, Logic: \"and\" });\r\n if (!this.isLoadingData[apiName]) {\r\n this.isLoadingData[apiName] = true;\r\n if (filter.length <= 0) filter.push({ Filed: \"Code\", Type: \"S\", Skip: skip, Take: take, Value: \"0\", Operator: \"asc\" });\r\n this._httpCommonService\r\n .GetFilterGrid>(apiName, filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x: PagingDataResult) => {\r\n if (x) abs.next(x);\r\n this.isLoadingData[apiName] = false;\r\n },\r\n (error) => (this.isLoadingData[apiName] = false)\r\n );\r\n }\r\n return abs.asObservable();\r\n }\r\n setColumnInfo(columnInfos: GridColumnInfoDetail[]) {\r\n if (!this.grid)\r\n setTimeout(() => {\r\n this.setColumnInfo(columnInfos);\r\n }, 50);\r\n\r\n if (this.grid?.columns) {\r\n if (this.grid.columns.length <= 1) {\r\n setTimeout(() => this.setColumnInfo(columnInfos), 200);\r\n }\r\n }\r\n if (this.grid?.columns) {\r\n this.grid.columns.forEach((x: ColumnComponent) => {\r\n const column = columnInfos.find((c) => c.name === (x.field ?? x.title));\r\n if (column) {\r\n x.leafIndex = column.leaftindex;\r\n x.orderIndex = column.orderindex;\r\n x.minResizableWidth = column.minResizableWidth;\r\n x.width = column.width;\r\n x.hidden = column.hidden;\r\n }\r\n });\r\n }\r\n this.isFirstLoad = true;\r\n this.cd.detectChanges();\r\n setTimeout(() => {\r\n const firstCol: ScrollRequest = {};\r\n firstCol.column = 0;\r\n if (this.grid && firstCol) this.grid?.scrollTo(firstCol);\r\n }, 110);\r\n }\r\n setDefaultColumnInfo() {\r\n this.grid?.columns?.forEach((x: ColumnComponent) => {\r\n if (x.title === \"عملیات\") {\r\n x.width = 70;\r\n x.minResizableWidth = 60;\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n if (!x.title && !x.field) {\r\n x.width = x.width;\r\n x.minResizableWidth = x.minResizableWidth;\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n const column = this.columns.find((c) => c.name === (x.field ?? x.title));\r\n if (column) {\r\n x.width = column.columnWidth;\r\n x.minResizableWidth = x.minResizableWidth;\r\n x.hidden = !column.listVisible;\r\n\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n });\r\n this.cd.markForCheck();\r\n }\r\n async saveGridColumnInfo() {\r\n const list: GridColumnInfoDetail[] = [];\r\n if (this.grid && this.grid.columns) {\r\n this.grid.columns.forEach((x: ColumnComponent) => {\r\n if (x) {\r\n const column = new GridColumnInfoDetail();\r\n column.leaftindex = x.leafIndex;\r\n column.orderindex = x.orderIndex;\r\n column.hidden = x.hidden;\r\n column.name = x.field ?? x.title;\r\n column.width = x.width;\r\n column.minResizableWidth = x.minResizableWidth;\r\n column.title = x.title;\r\n list.push(column);\r\n }\r\n });\r\n if (!this._GridColumnInfo) this._GridColumnInfo = new GridColumnInfo();\r\n this._GridColumnInfo.Key = this.CurrentVoucherKind?.Id ? `SellVoucherDetail_${this.CurrentVoucherKind?.Id}` : \"SellVoucherDetail\";\r\n this._GridColumnInfo.ColumnInfo = JSON.stringify(list);\r\n this._GridColumnInfo.CreatedUserId = this.accountService.authService.currentUser.Id;\r\n if (this.state.group && this.state.group.length > 0) this._GridColumnInfo.Group = JSON.stringify(this.state.group);\r\n else this._GridColumnInfo.Group = undefined;\r\n await this._httpCommonService.updateItem(\"MisSetUp/UpdateGridColumnInfo\", this._GridColumnInfo).pipe(takeUntil(this.ngUnsubscribe)).toPromise();\r\n }\r\n }\r\n async fitColumns() {\r\n if (!this.isFirstLoad) {\r\n if (this._GridColumnInfo) {\r\n let columnInfos: GridColumnInfoDetail[] = JSON.parse(this._GridColumnInfo.ColumnInfo);\r\n this.setColumnInfo(columnInfos);\r\n } else {\r\n const x = await this._httpCommonService\r\n .get(\r\n \"MisSetUp/GetGridColumnInfo/?key=\" +\r\n (this.CurrentVoucherKind?.Id ? `SellVoucherDetail_${this.CurrentVoucherKind.Id}` : \"SellVoucherDetail\") +\r\n `&CreatedUserId=${this.accountService.authService.currentUser.Id}`\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise();\r\n if (x) {\r\n this._GridColumnInfo = x as GridColumnInfo;\r\n this.setColumnInfo(JSON.parse(x[\"ColumnInfo\"]));\r\n if (this._GridColumnInfo.Group) {\r\n this.state.group = JSON.parse(x[\"Group\"]);\r\n }\r\n } else this.setDefaultColumnInfo();\r\n\r\n this.isFirstLoad = true;\r\n }\r\n }\r\n setTimeout(\r\n () => {\r\n this.cd.detectChanges();\r\n this.cd.markForCheck();\r\n },\r\n this.isFirstLoad ? 500 : 200\r\n );\r\n\r\n this.cd.markForCheck();\r\n }\r\n public cellCloseHandler(args: any) {\r\n const { formGroup, dataItem } = args;\r\n if (!formGroup.valid) {\r\n return;\r\n } else if (formGroup.dirty) {\r\n this.saveCurrent();\r\n } else this.closeEditor();\r\n }\r\n public editHandler({ sender, rowIndex, dataItem }) {\r\n this.editedRow = undefined;\r\n if (this.editedRowIndex !== undefined && this.editedRowIndex >= 0 && this.editedRowIndex !== rowIndex)\r\n this.cellCloseHandler({ formGroup: this.formGroup, dataItem: dataItem });\r\n if (this.rowIsEditing) return;\r\n if (dataItem) this.valueChanges.emit(dataItem);\r\n if (!this.isAdd && !this.isEdit) {\r\n this.valueChanges.emit(dataItem);\r\n return;\r\n }\r\n this.setFormGroup(dataItem);\r\n\r\n this.rowIsEditing = true;\r\n this.editedRowIndex = rowIndex;\r\n this.valueChanges.emit(dataItem);\r\n this.grid.editRow(rowIndex, this.formGroup);\r\n setTimeout(() => {\r\n if (this.grid) this.grid.focus();\r\n this.cd.markForCheck();\r\n if (this.formGroup) this.formGroup.updateValueAndValidity();\r\n }, 500);\r\n if (this.formGroup?.value?.GoodsId > 0) this.setGoodsUnitLookUp();\r\n }\r\n setGoodsUnitLookUp() {\r\n this._httpCommonService\r\n .getItem(\"Goods\", this.formGroup.value.GoodsId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.setGoodUnitList(x as Goods);\r\n },\r\n (error) => {}\r\n );\r\n }\r\n public onUserRowSelect({ sender, column, rowIndex, columnIndex, dataItem }): void {\r\n this.editedRow = dataItem;\r\n this.valueChanges.emit(this.editedRow);\r\n }\r\n public doubleclic(args: any) {\r\n this.editedRow = undefined;\r\n if (this.editedRowIndex !== undefined && this.editedRowIndex >= 0 && this.editedRowIndex !== this.grid.activeRow.index - 1)\r\n this.cellCloseHandler({ formGroup: this.formGroup, dataItem: this.grid.activeRow.dataItem });\r\n this.editHandler({ sender: this.grid, rowIndex: this.grid.activeRow.index - 1, dataItem: this.grid.activeRow.dataItem });\r\n }\r\n\r\n onKeyup($event) {\r\n if ($event.key === \"Escape\") {\r\n this.cd.markForCheck();\r\n if (this.formGroup) this.formGroup.updateValueAndValidity();\r\n if (!(this.formGroup && (this.formGroup.touched || this.formGroup.dirty))) this.cancelHandler();\r\n }\r\n }\r\n sortChange(sort: SortDescriptor[]) {\r\n this.state.sort = sort;\r\n this.gridData = orderBy(this.gridData, sort);\r\n }\r\n editSubledgerDetailLedger() {\r\n this.dialogService\r\n .open(\r\n InvSubledgerDetailLedgerFormComponent,\r\n {\r\n label: \"اصلاح معین و تفصیلی\",\r\n currentrow: this.editedRow,\r\n Columns: this.columns,\r\n CurrentVoucherKind: this.CurrentVoucherKind,\r\n detailLedgerLevel: this.detailLedgerLevel,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (model) => {\r\n if (model) {\r\n if (model.Id > 0 && this.dataList.some((x) => x.Id === model.Id)) {\r\n this.dataList.forEach((m) => {\r\n if (m.Id === model.Id) {\r\n if (m !== model) model.State = RowState.Modify;\r\n Object.assign(m, model);\r\n }\r\n });\r\n } else {\r\n this.dataList.forEach((m) => {\r\n if (m.RowNumber === model.RowNumber && m.Id === model.Id && m.State === model.State) {\r\n if (model.Id == -1) model.Id = 0;\r\n if (m !== model) m.State = RowState.Modify;\r\n Object.assign(m, model);\r\n }\r\n });\r\n }\r\n this.valueChanges.emit(model);\r\n this.closeEditor();\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{\r\n getItemDisplayById(\r\n column.apiName,\r\n column.systemName,\r\n dataItem[column.name],\r\n column.displayMember,\r\n column.valueMember,\r\n dataItem,\r\n column.name\r\n )\r\n }}\r\n \r\n \r\n {{ getDateValue(dataItem[column.name]) }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ column.label }} الزامی است\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {{ value }}\r\n \r\n \r\n \r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostListener, Type, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormControl } from \"@angular/forms\";\r\nimport { isNullOrUndefined } from \"projects/persian-date-picker/src/public-api\";\r\nimport { ReportKindInfo } from \"projects/sepidz-web-framework-data-grid/src/lib/report-kind\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { SplashScreenService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/SplashScreenService\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { form_control, SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { IncrementalKind, InvStatusKind, RowState, SellStatusKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { PeopleInfo } from \"projects/sepidz-web-framework/src/lib/models/peopleInfo.model\";\r\nimport { GridFilter, isNumber, LookupService, PagingDataResult, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherFormComponent } from \"src/app/backoffice/acc/accvoucher/accvoucher-form/accvoucher-form.component\";\r\nimport { FormOperationKind } from \"src/app/backoffice/inv/models/form-operation-kind.enums\";\r\nimport { InvVoucherDetail } from \"src/app/backoffice/inv/models/inv-voucher-detail.model\";\r\nimport { InvVoucherHeader } from \"src/app/backoffice/inv/models/inv-voucher-header.model\";\r\nimport { InvVoucherKind, ReferenceVoucherKind } from \"src/app/backoffice/inv/models/inv-voucher-kind.model\";\r\nimport { ReferenceVoucherByVoucherKindFilterInfo } from \"src/app/backoffice/inv/models/reference-voucher-byvoucher-kind-filter-info.model\";\r\nimport { StockInfo } from \"src/app/backoffice/inv/models/stock-info.model\";\r\nimport { CreditFunctionKind } from \"../../models/credit-function-kind.enums\";\r\nimport { PriceListDetail } from \"../../models/price-list-detail.model\";\r\nimport { SellVoucherDetail } from \"../../models/sell-voucher-detail.model\";\r\nimport { SellVoucherHeader } from \"../../models/sell-voucher-header.model\";\r\nimport { SellVoucherDetailComponent } from \"../sell-voucher-detail/sell-voucher-detail.component\";\r\nimport { SellVoucherModalListComponent } from \"../sell-voucher-modal-list/sell-voucher-modal-list.component\";\r\n\r\n@Component({\r\n selector: \"ngx-sell-voucher-form\",\r\n templateUrl: \"./sell-voucher-form.component.html\",\r\n styleUrls: [\"./sell-voucher-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SellVoucherFormComponent extends BaseFormComponent {\r\n @ViewChild(\"detail\") public detail: SellVoucherDetailComponent;\r\n inputEditorform: Type;\r\n currentVoucherKind: InvVoucherKind;\r\n isCheckingCredit: boolean = false;\r\n valueIsSetting: boolean = false;\r\n HasPricelist: boolean = false;\r\n isCreatingAccVoucher: boolean = false;\r\n CreatingAccVoucherHasError: boolean = false;\r\n CreatedVoucherKindReferencedToHasError: boolean = false;\r\n CreatedVoucherKindReferencedTo: boolean = false;\r\n StockInfoColumns: form_control[];\r\n CustomerVouchers: SellVoucherHeader[] = [];\r\n DetailLedgerColumnDetailLedger: form_control[];\r\n CustomerColumns: form_control[];\r\n CustomerVoucherColumns: form_control[];\r\n DetailLedgerColumnSellDetailLedger: form_control[];\r\n SellVoucherDetailColumns: form_control[];\r\n DiscountColumns: form_control[];\r\n dataList: StockInfo[] = [];\r\n ReferenceToVoucherKinds: InvVoucherKind[];\r\n CurrentReferenceToVoucherKindId: number;\r\n filterdDataList: StockInfo[] = [];\r\n activeTabTitle: string;\r\n InvBalanceColumnswidth: number = 100;\r\n isValidating: boolean = false;\r\n isOkForLoad: boolean = false;\r\n hasPriceRefresh: boolean = false;\r\n isNewVoucher: boolean = false;\r\n erroremessage: string;\r\n isloading: boolean = false;\r\n goodsError: boolean = false;\r\n maxCodeLoading: boolean = false;\r\n confirmLabel: string;\r\n accVoucherCaption: string;\r\n currentReport: string = \"print\";\r\n reportList: SaveReportFile[];\r\n isRefreshingData: boolean = false;\r\n reportKinds = ReportKindInfo.reportKinds;\r\n isFristReplaceGoodsSimilar: boolean = true;\r\n @ViewChild(SellVoucherDetailComponent) SellVoucherDetailComponent: SellVoucherDetailComponent;\r\n @HostListener(\"window:keydown\", [\"$event\"])\r\n cs(e: KeyboardEvent) {\r\n if (document.hidden) return;\r\n if (e.ctrlKey && e.shiftKey && !e.altKey && (e.key.toUpperCase() === \"P\" || e.key === \"ح\" || e.key === \"\\\\\")) {\r\n e.preventDefault();\r\n this.currentReport = \"preview\";\r\n this.changeReport(\"preview\");\r\n }\r\n if (e.ctrlKey && e.altKey && !e.shiftKey && (e.key.toUpperCase() === \"P\" || e.key === \"ح\")) {\r\n e.preventDefault();\r\n this.currentReport = \"editReport\";\r\n this.changeReport(\"editReport\");\r\n }\r\n if (e.ctrlKey && !e.altKey && !e.shiftKey && (e.key.toUpperCase() === \"P\" || e.key === \"ح\")) {\r\n e.preventDefault();\r\n this.currentReport = \"print\";\r\n this.changeReport(\"print\");\r\n }\r\n if (e.ctrlKey && (e.key.toUpperCase() === \"N\" || e.key === \"د\")) {\r\n e.preventDefault();\r\n this.newVoucher();\r\n }\r\n if (e.ctrlKey && (e.key.toUpperCase() === \"D\" || e.key === \"ی\" || e.key === \"ی\")) {\r\n e.preventDefault();\r\n this.deleteVoucher();\r\n }\r\n if (e.ctrlKey && e.shiftKey && (e.key.toUpperCase() === \"S\" || e.key === \"س\")) {\r\n e.preventDefault();\r\n this.voucherConfirm();\r\n }\r\n if (e.ctrlKey && (e.key.toUpperCase() === \"R\" || e.key === \"ق\")) {\r\n e.preventDefault();\r\n this.ngOnInit().then();\r\n }\r\n }\r\n footerColumns: form_control[];\r\n transportColumns: form_control[];\r\n\r\n constructor(\r\n private lookupservice: LookupService,\r\n private splashScreenService: SplashScreenService,\r\n private splashFormService: SplashFormService,\r\n private missetup: MisSetupService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected cd: ChangeDetectorRef,\r\n private datatransfer: Datatransfer,\r\n protected selectorService: SelectorService,\r\n _VoucherKindInfo: VoucherKindInfo\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.currentrow = this.datatransfer?.currentrow;\r\n if (this.datatransfer?.apiName) this.apiName = this.datatransfer?.apiName;\r\n if (this.datatransfer?.areaName) this.areaName = this.datatransfer?.areaName;\r\n this.VoucherKind = _VoucherKindInfo;\r\n this.tabsservice = _tabsservice;\r\n this.currentFiscalYear;\r\n }\r\n get filterEntity() {\r\n let entity: ReferenceVoucherByVoucherKindFilterInfo = {};\r\n entity.FiscalYearId = this.currentFiscalYear.Id;\r\n entity.DetailLedgerId = this.formGroup.controls[\"DetailLedgerId\"] ? this.formGroup.controls[\"DetailLedgerId\"].value : null;\r\n entity.WarehouseId = this.formGroup?.controls[\"WarehouseId\"] ? this.formGroup?.controls[\"WarehouseId\"]?.value : null;\r\n entity.ReferencedVoucherKindId = this.formGroup?.controls[\"ReferenceVoucherKindId\"]\r\n ? this.formGroup?.controls[\"ReferenceVoucherKindId\"]?.value\r\n : null;\r\n entity.VoucherDate = this.formGroup?.controls[\"VoucherDate\"] ? this.formGroup?.controls[\"VoucherDate\"]?.value : null;\r\n entity.VoucherKindId = this.formGroup?.controls[\"VoucherKindId\"] ? this.formGroup?.controls[\"VoucherKindId\"]?.value : null;\r\n entity.WarehouseTransferId = this.formGroup?.controls[\"WarehouseTransferId\"] ? this.formGroup?.controls[\"WarehouseTransferId\"]?.value : null;\r\n return entity;\r\n }\r\n get ReferenceVoucherKindId() {\r\n if (this.formGroup && this.formGroup?.controls[\"ReferenceVoucherKindId\"]) return this.formGroup?.controls[\"ReferenceVoucherKindId\"]?.value;\r\n return undefined;\r\n }\r\n get detailLedgerLevel(): number {\r\n return this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n }\r\n get hasReference() {\r\n return (\r\n this.currentVoucherKind !== undefined &&\r\n this.currentVoucherKind.ReferenceVoucherKinds !== undefined &&\r\n this.currentVoucherKind.ReferenceVoucherKinds.length > 0\r\n );\r\n }\r\n get hasReferenceRequired() {\r\n return (\r\n this.currentVoucherKind !== undefined &&\r\n this.currentVoucherKind.ReferenceVoucherKinds !== undefined &&\r\n this.currentVoucherKind.ReferenceVoucherKindIsRequired\r\n );\r\n }\r\n get currentFiscalYear() {\r\n return this.accountService.authService.currentFiscalYear;\r\n }\r\n get hasTaxDuty() {\r\n return this.currentVoucherKind && this.currentVoucherKind?.HasTaxDuty;\r\n }\r\n get hasDiscount() {\r\n return this.currentVoucherKind && this.currentVoucherKind?.HasDiscount;\r\n }\r\n get Priceable() {\r\n return this.currentVoucherKind && this.currentVoucherKind?.Priceable;\r\n }\r\n get ShowStockAmount() {\r\n this.InvBalanceColumnswidth = 70 + (!this.HasTransportInterface ? 15 : 0) + (!this.Priceable ? 15 : 0);\r\n return this.currentVoucherKind && this.currentVoucherKind?.ShowStockAmount;\r\n }\r\n\r\n get HasJournalVoucher() {\r\n return this.currentVoucherKind?.HasJournalVoucher;\r\n }\r\n get HasTransportInterface() {\r\n return this.currentVoucherKind && this.currentVoucherKind?.HasTransportInterface;\r\n }\r\n\r\n setLoaclColumns() {\r\n var col = this.orignalColumns.filter((f) => f.formVisible && f.areaName === \"Transport\");\r\n this.transportColumns = col.sort((a, b) => a.order - b.order);\r\n\r\n var col = this.orignalColumns.filter((f) => f.formVisible && f.areaName === \"Footer\");\r\n this.footerColumns = col.sort((a, b) => a.order - b.order);\r\n this.getDetailLedgerColumn(\"DetailLedger\");\r\n this.getDetailLedgerColumn(\"SellDetailLedger\");\r\n\r\n this.CustomerColumns = [];\r\n this.CustomerColumns.push({\r\n label: \"اعتبارنقدی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ConsumedCredit\",\r\n disabled: true,\r\n name: \"ConsumedCredit\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerColumns.push({\r\n label: \"اعتباراسنادي\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DocumentCredit\",\r\n disabled: true,\r\n name: \"DocumentCredit\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerColumns.push({\r\n label: \"مانده نقدی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ConsumedCreditRemain\",\r\n disabled: true,\r\n name: \"ConsumedCreditRemain\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerColumns.push({\r\n label: \"مانده اسنادي\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DocumentCreditRemain\",\r\n disabled: true,\r\n name: \"DocumentCreditRemain\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerColumns.push({\r\n label: \"مانده حساب\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"CustomerRemain\",\r\n disabled: true,\r\n name: \"CustomerRemain\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: true,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n\r\n this.CustomerVoucherColumns = [];\r\n this.CustomerVoucherColumns.push({\r\n label: \"نوع سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"VoucherKind.Title\",\r\n disabled: true,\r\n name: \"VoucherKindTitle\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerVoucherColumns.push({\r\n label: \"شماره سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"VoucherNo\",\r\n disabled: true,\r\n name: \"VoucherNo\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerVoucherColumns.push({\r\n label: \"شماره پیگیری\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SlaveNo\",\r\n disabled: true,\r\n name: \"SlaveNo\",\r\n order: 2,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerVoucherColumns.push({\r\n label: \"تاریخ سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"VoucherDate\",\r\n disabled: true,\r\n name: \"ShamsiVoucherDate\",\r\n order: 3,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerVoucherColumns.push({\r\n label: \"سند مبنا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ReferenceVoucherKind.Title\",\r\n disabled: true,\r\n name: \"ReferenceVoucherKindTitle\",\r\n order: 4,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerVoucherColumns.push({\r\n label: \"مالیات و عوارض\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Tax\",\r\n disabled: true,\r\n name: \"Tax\",\r\n order: 5,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerVoucherColumns.push({\r\n label: \"تخفیف\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DiscountAmount\",\r\n disabled: true,\r\n name: \"DiscountAmount\",\r\n order: 6,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerVoucherColumns.push({\r\n label: \"جمع خالص\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"TotalPrice\",\r\n disabled: true,\r\n name: \"TotalPrice\",\r\n order: 7,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerVoucherColumns.push({\r\n label: \"تسویه شده\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"PaymentValue\",\r\n disabled: true,\r\n name: \"PaymentValue\",\r\n order: 8,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerVoucherColumns.push({\r\n label: \"مانده\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"RemainValue\",\r\n disabled: true,\r\n name: \"RemainValue\",\r\n order: 9,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerVoucherColumns.push({\r\n label: \"سند حسابداری\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"AccVoucherNo\",\r\n disabled: true,\r\n name: \"AccVoucherNo\",\r\n order: 10,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerVoucherColumns.push({\r\n label: \"شماره معطوف\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ReferenceToVoucherNo\",\r\n disabled: true,\r\n name: \"ReferenceToVoucherNo\",\r\n order: 11,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerVoucherColumns.push({\r\n label: \"تاریخ وصول\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ShamsiReceiptDate\",\r\n disabled: true,\r\n name: \"ShamsiReceiptDate\",\r\n order: 12,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.CustomerVoucherColumns.push({\r\n label: \"توضیحات\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Comment\",\r\n disabled: true,\r\n name: \"Comment\",\r\n order: 13,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n }\r\n getcolumns(key: string, columnnumber: number = 4) {\r\n let col: form_control[] = [];\r\n\r\n if (key === \"columns\")\r\n col = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n else col = this.orignalColumns.filter((f) => f.areaName === key && f.formVisible);\r\n this.setColumnNumber(col, columnnumber);\r\n return col.sort((a, b) => a.order - b.order);\r\n }\r\n getDetailLedgerColumn(key: string) {\r\n this.setDetaiLedgerVisble();\r\n if (key === \"DetailLedger\") this.DetailLedgerColumnDetailLedger = this.getcolumns(key, 6);\r\n else this.DetailLedgerColumnSellDetailLedger = this.getcolumns(key, 6);\r\n }\r\n setReferenceVoucherColumn() {\r\n this.httpCommonService\r\n .get(\"SellVoucherHeader/GetReferenceVoucherInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: form_control[]) => {\r\n this.selectorService.setColumns(\"ReferenceId\", data);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.StockInfoColumns = undefined;\r\n this.SellVoucherDetailColumns = undefined;\r\n this.DiscountColumns = undefined;\r\n this.dataList = undefined;\r\n this.filterdDataList = undefined;\r\n }\r\n async ngOnInit() {\r\n if (this.currentFiscalYear) {\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n }\r\n });\r\n this.SetHasPricelist();\r\n this.selectorService.setDataList(\"DeliveryPlaceId\", []);\r\n this.isNewVoucher = false;\r\n if (this.detail !== undefined)\r\n setTimeout(() => {\r\n this.detail.setColumns();\r\n }, 100);\r\n if (this.SellVoucherDetailComponent !== undefined) setTimeout(() => this.SellVoucherDetailComponent.setColumns(), 300);\r\n this.apiName = \"SellVoucherHeader\";\r\n if (!this.areaName) this.areaName = \"SellCustomer\";\r\n if (this.currentrow && (this.currentrow as SellVoucherHeader).VoucherKindTitle) {\r\n this.label = (this.currentrow as SellVoucherHeader).VoucherKindTitle + `(${(this.currentrow as SellVoucherHeader).VoucherNo})`;\r\n this.tabsservice.setTabTitle(this._id.metadata.id, this.getFormTitle());\r\n }\r\n if (this.ShowStockAmount) this.setStockInfoColumns();\r\n\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.pathPreFix = \"SELL\";\r\n this.reportName = \"SellCustomerDocument\";\r\n await super.ngOnInit();\r\n this.setCurrentVoucherKind();\r\n this.loadReports();\r\n this.selectorService.submitted$.next(false);\r\n this.setReferenceVoucherColumn();\r\n if (this.detail) {\r\n this.detail.dataList = this.model?.SellVoucherDetailList ?? [];\r\n this.detail.ngOnInit();\r\n }\r\n }\r\n loadVoucherList() {\r\n this.inputEditorform = SellVoucherModalListComponent;\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n label: this.label,\r\n currentVoucherKindId: this.currentVoucherKind.Id,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (model) => {\r\n if (model) {\r\n if (this.detail) this.detail.cancelHandler();\r\n this.currentrow = model;\r\n this.id = this.currentrow.Id;\r\n await this.ngOnInit();\r\n }\r\n });\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n if ($event.tabTitle === \"اطلاعات مشتری\") {\r\n this.setCustomerInfo();\r\n }\r\n }\r\n private CheckCredit() {\r\n if (this.formGroup.get(\"SubLedgerId\").value) this.setCustomerInfo().then();\r\n if (this.isCheckingCredit) return false;\r\n this.isCheckingCredit = true;\r\n let CustomerRemain =\r\n (this.model?.Customer?.ConsumedCreditRemain ?? 0) -\r\n this.model?.SellVoucherDetailList?.getSumWithKey(\"TotalPrice\") +\r\n (this.model?.TotalPrice ? this.model?.TotalPrice : 0);\r\n let DocumentCreditRemain =\r\n (this.model?.Customer?.DocumentCreditRemain ?? 0) -\r\n this.model.SellVoucherDetailList.getSumWithKey(\"TotalPrice\") +\r\n (this.model?.TotalPrice ? this.model?.TotalPrice : 0);\r\n if (DocumentCreditRemain < 0 && (this.model?.Customer?.DocumentCredit ?? 0) > 0 && this.model?.Customer?.BasedReputationCode > 1) {\r\n if (this.currentVoucherKind.CreditFunctionKindCode === CreditFunctionKind.Stop) {\r\n this.sts.showDialog(\r\n `اعتبار اسنادي ${this.model?.Customer?.CustomerTitle} ${this.model?.Customer?.CustomerDisplayName} به مبلغ ${\r\n DocumentCreditRemain ? DocumentCreditRemain : 0\r\n } كسري دارد.`,\r\n \"هشدار\"\r\n );\r\n this.isCheckingCredit = false;\r\n return false;\r\n } else {\r\n this.sts.showDialog(\r\n `اعتبار اسنادي ${this.model?.Customer?.CustomerTitle} ${this.model?.Customer?.CustomerDisplayName} به مبلغ ${\r\n DocumentCreditRemain ? DocumentCreditRemain : 0\r\n } كسري دارد. آيا از تائيد اطلاعات مطمئن هستيد؟`,\r\n \"هشدار\",\r\n DialogType.confirm,\r\n () => {\r\n if (CustomerRemain < 0 && this.model?.Customer?.ConsumedCredit > 0 && this.model?.Customer?.BasedReputationCode == 1) {\r\n if (this.currentVoucherKind.CreditFunctionKindCode === CreditFunctionKind.Stop) {\r\n this.sts.showDialog(\r\n `اعتبار نقدی ${this.model?.Customer?.CustomerTitle} ${this.model?.Customer?.CustomerDisplayName} به مبلغ ${\r\n CustomerRemain ? CustomerRemain : 0\r\n } كسري دارد.`,\r\n \"هشدار\"\r\n );\r\n this.isCheckingCredit = false;\r\n return false;\r\n } else {\r\n this.sts.showDialog(\r\n `اعتبار نقدی ${this.model?.Customer?.CustomerTitle} ${this.model?.Customer?.CustomerDisplayName} به مبلغ ${\r\n CustomerRemain ? CustomerRemain : 0\r\n } كسري دارد. آيا از تائيد اطلاعات مطمئن هستيد؟`,\r\n \"هشدار\",\r\n DialogType.confirm,\r\n () => {\r\n this.erroremessage = \"اعتبار نقدی کسری دارد.\";\r\n }\r\n );\r\n this.isCheckingCredit = false;\r\n return false;\r\n }\r\n }\r\n },\r\n () => {\r\n this.isCheckingCredit = false;\r\n }\r\n );\r\n }\r\n }\r\n this.isCheckingCredit = false;\r\n return true;\r\n }\r\n async getCustomerRemain() {\r\n var temp = this.currentFiscalYear;\r\n if (!this.formGroup.get(\"SubLedgerId\").value) return;\r\n let filter: GridFilter[] = [];\r\n filter.push({ Type: \"F\", Filed: \"FiscalYearId\", Value: this.currentFiscalYear?.Id, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"BranchId\",\r\n Value: this.accountService.authService.currentBranchId,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n if (this.formGroup?.get(\"CustomerId\")?.value)\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"CustomerId\",\r\n Value: this.formGroup?.get(\"CustomerId\")?.value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({ Type: \"F\", Filed: \"ReceiptDate\", Value: this.formGroup.get(\"VoucherDate\").value, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"CheckCredit\", Value: this.currentVoucherKind.HasCredit, Logic: \"and\", Operator: \"neq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"SubLedgerId\", Value: this.formGroup.get(\"SubLedgerId\").value, Logic: \"and\", Operator: \"neq\", Skip: 0, Take: 0 });\r\n await this.httpCommonService\r\n .GetFilterGrid(\"SellCustomer/GetCustomerRemain\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x) => {\r\n this.model.Customer = x;\r\n this.setValue(\"ConsumedCredit\", this.model?.Customer?.ConsumedCredit);\r\n this.setValue(\"DocumentCredit\", this.model?.Customer?.DocumentCredit);\r\n this.setValue(\"ConsumedCreditRemain\", this.model?.Customer?.ConsumedCreditRemain);\r\n this.setValue(\"DocumentCreditRemain\", this.model?.Customer?.DocumentCreditRemain);\r\n this.setValue(\"CustomerRemain\", this.model?.Customer?.CustomerRemain);\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در بارگذاری اطلاعات\");\r\n }\r\n );\r\n }\r\n async setCustomerInfo() {\r\n this.cd.markForCheck();\r\n if (!this.formGroup?.get(\"CustomerId\")?.value) return;\r\n await this.getCustomerRemain();\r\n let filter: GridFilter[] = [];\r\n filter.push({ Type: \"F\", Filed: \"FiscalYearId\", Value: this.currentFiscalYear?.Id, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"BranchId\",\r\n Value: this.accountService.authService.currentBranchId,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n if (this.formGroup?.get(\"CustomerId\")?.value)\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"CustomerId\",\r\n Value: this.formGroup?.get(\"CustomerId\")?.value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({ Type: \"F\", Filed: \"StatusKindCode\", Value: 5, Logic: \"and\", Operator: \"neq\", Skip: 0, Take: 0 });\r\n filter.push({ Type: \"F\", Filed: \"RemainValue\", Value: 0, Logic: \"and\", Operator: \"neq\", Skip: 0, Take: 0 });\r\n if (this.model.Id) filter.push({ Type: \"F\", Filed: \"Id\", Value: this.model.Id, Logic: \"and\", Operator: \"neq\", Skip: 0, Take: 0 });\r\n await this.httpCommonService\r\n .GetFilterGrid(\"SellVoucherHeader/GetWithCustomFilter\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x: PagingDataResult) => {\r\n this.CustomerVouchers = ((x?.Data ?? x) as any[]) || [];\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در بارگذاری اطلاعات\");\r\n }\r\n );\r\n }\r\n setStatusKind() {\r\n if (!this.model.StatusKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"SELL\", \"StatusKind\", SellStatusKind.Registered)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", this.model.StatusKindId);\r\n this.setValue(\"StatusKindCode\", this.model.StatusKindCode);\r\n this.setValue(\"StatusKindTitle\", this.model.StatusKindTitle);\r\n }\r\n });\r\n }\r\n }\r\n setConfirmStatusKind() {\r\n this.lookupservice\r\n .getLookupbyCode(\"SELL\", \"StatusKind\", SellStatusKind.Confirmed)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x && x.Id) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", this.model.StatusKindId);\r\n this.setValue(\"StatusKindCode\", this.model.StatusKindCode);\r\n this.setValue(\"StatusKindTitle\", this.model.StatusKindTitle);\r\n }\r\n });\r\n }\r\n setdefault() {\r\n if (this.model.CustomerId) this.SetDeliveryPlace(this.model.CustomerId);\r\n if (this.model.ReserveBalance === undefined) this.model.ReserveBalance = false;\r\n if (this.model.VoucherKindId) {\r\n this.VoucherKind = new VoucherKindInfo();\r\n this.VoucherKind.VoucherKindId = this.model.VoucherKindId;\r\n this.setCurrentVoucherKind();\r\n }\r\n if (!this.model.Invoicecredit) this.model.Invoicecredit = 0;\r\n if (!this.model.VoucherDate && this.currentVoucherKind && this.currentVoucherKind.ToDayDate) this.model.VoucherDate = new Date();\r\n if (!this.model.SellVoucherDetailList) this.model.SellVoucherDetailList = [];\r\n\r\n if (!this.model.FiscalYearId && this.currentFiscalYear) {\r\n this.model.FiscalYearId = this.currentFiscalYear.Id;\r\n this.model.Year = this.currentFiscalYear.Year;\r\n } else if (!this.model.FiscalYearId) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n this.model.Year = x.Year;\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n this.setValue(\"Year\", x.Year);\r\n }\r\n });\r\n }\r\n if (!this.model.StatusKindId) {\r\n this.setStatusKind();\r\n this.confirmLabel = \"تایید سند\";\r\n }\r\n if (this.model.StatusKindCode >= SellStatusKind.Confirmed) this.confirmLabel = \"برگشت از تایید\";\r\n else this.confirmLabel = \"تایید\";\r\n\r\n if (!this.model.VoucherKindId && this.currentVoucherKind) {\r\n this.model.VoucherKindId = this.currentVoucherKind.Id;\r\n this.model.VoucherKindCode = this.currentVoucherKind.Code;\r\n this.model.VoucherKindTitle = this.currentVoucherKind.Title;\r\n } else if (!this.model.VoucherKindId && this.VoucherKind.VoucherKindId) {\r\n this.model.VoucherKindId = this.VoucherKind.VoucherKindId;\r\n }\r\n if (!this.model.BranchId) {\r\n this.model.BranchId = this.accountService.authService.currentBranchId;\r\n }\r\n if (!this.model.SlaveNo) this.model.SlaveNo = 0;\r\n if (!this.model.SumDeduction) this.model.SumDeduction = 0;\r\n if (!this.model.SumPrice) this.model.SumPrice = 0;\r\n if (!this.model.SumSurplusage) this.model.SumSurplusage = 0;\r\n if (!this.model.TotalPrice) this.model.TotalPrice = 0;\r\n if (!this.model.TotalDeduction) this.model.TotalDeduction = 0;\r\n if (!this.model.TotalSurplusage) this.model.TotalSurplusage = 0;\r\n if (!this.model.DiscountAmount) this.model.DiscountAmount = 0;\r\n if (!this.model.Tax) this.model.Tax = 0;\r\n if (!this.model.TotalDeduction) this.model.TotalDeduction = 0;\r\n if (this.model.StatusKindCode === SellStatusKind.AccountRegistered) this.accVoucherCaption = \"حذف سند حسابداری\";\r\n else this.accVoucherCaption = \"سند حسابداری\";\r\n this.setDefaultValues();\r\n if (this.model?.SellVoucherDetailList.length > 0) this.setValue(\"WarehouseId\", this.model.SellVoucherDetailList[0].WarehouseId);\r\n if (this.detail && this.model && this.model?.SellVoucherDetailList && this.model?.SellVoucherDetailList?.length > 0) {\r\n this.model.SellVoucherDetailList.forEach((x) => (x.State = RowState.NoChange));\r\n this.detail.dataList = this.model.SellVoucherDetailList;\r\n this.cd.markForCheck();\r\n this.detail.cd.markForCheck();\r\n }\r\n if (this.detail && !this.isNewRow) this.detail.cancelHandler();\r\n\r\n this.setColumnAttribute();\r\n if (!this.isNewRow && this.model?.VoucherKindId > 0) this.setReferenceToVoucherKind();\r\n\r\n if (this.detail) {\r\n this.detail.dataList = this.model?.SellVoucherDetailList ?? [];\r\n this.detail.ngOnInit();\r\n }\r\n setTimeout(() => {\r\n if (this.detail) {\r\n this.detail.dataList.forEach((x) => {\r\n if (x.Id > 0) x.State = RowState.NoChange;\r\n });\r\n }\r\n this.setAllUnTouched();\r\n }, 100);\r\n }\r\n setMaxCode() {\r\n if (!this.isNewRow || this.maxCodeLoading) return;\r\n\r\n this.maxCodeLoading = true;\r\n if (this.currentFiscalYear) {\r\n var fiscalYearId = this.currentFiscalYear.Id;\r\n this.httpCommonService\r\n .get(this.apiName + \"/\" + this.VoucherKind.VoucherKindId + \"/\" + fiscalYearId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (!this.model) this.model = {};\r\n if (data && data[\"VoucherNumber\"]) {\r\n this.model[\"VoucherNo\"] = data[\"VoucherNumber\"] as number;\r\n if (this.currentVoucherKind && this.currentVoucherKind.ToDayDate) {\r\n this.model[\"VoucherDate\"] = new Date();\r\n } else this.model[\"VoucherDate\"] = data[\"VoucherDate\"] as Date;\r\n if (!this.formGroup) {\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n } else {\r\n this.setValue(\"VoucherNo\", data[\"VoucherNumber\"] as number);\r\n this.setValue(\"VoucherDate\", this.model[\"VoucherDate\"]);\r\n }\r\n }\r\n this.maxCodeLoading = false;\r\n },\r\n (error) => (this.maxCodeLoading = false)\r\n );\r\n } else {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n var fiscalYearId = x.Id;\r\n this.httpCommonService\r\n .getMaxCodeWithParameter(this.apiName, this.VoucherKind.VoucherKindId, fiscalYearId, this.model.WarehouseId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data && data[\"VoucherNumber\"]) {\r\n this.model[\"VoucherNo\"] = data[\"VoucherNumber\"] as number;\r\n if (this.currentVoucherKind && this.currentVoucherKind.ToDayDate) this.model[\"VoucherDate\"] = new Date();\r\n else this.model[\"VoucherDate\"] = data[\"VoucherDate\"] as Date;\r\n if (!this.formGroup) {\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n } else {\r\n this.setValue(\"VoucherNo\", data[\"VoucherNumber\"] as number);\r\n this.setValue(\"VoucherDate\", data[\"VoucherDate\"] as Date);\r\n }\r\n }\r\n this.maxCodeLoading = false;\r\n },\r\n (error) => (this.maxCodeLoading = false)\r\n );\r\n }\r\n });\r\n }\r\n }\r\n onChange($event) {\r\n if ($event && $event?.name === \"VoucherDate\" && this.formGroup?.get(\"VoucherDate\")?.value) {\r\n if (\r\n this.formGroup?.get(\"SellkindId\")?.value &&\r\n this.formGroup?.get(\"CustomerId\")?.value &&\r\n new Date(this.formGroup?.get(\"VoucherDate\")?.value).getTime() != new Date(this.model.VoucherDate).getTime() &&\r\n this.model.SellVoucherDetailList.length > 1\r\n ) {\r\n if (this.HasPricelist === true && this.model.SellVoucherDetailList.some((x) => x.State !== RowState.Delete && x.State !== RowState.Detached))\r\n this.sts.showDialog(\"مايل به تغير قيمت هستيد؟ \", \"توجه\", DialogType.confirm, () => this.ResetPriceUnit());\r\n this.model.VoucherDate = this.formGroup?.get(\"VoucherDate\")?.value;\r\n }\r\n }\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Warehouse\")) {\r\n this.model.WarehouseId = $event.data.Id;\r\n this.model.WarehouseCode = $event.data.Code;\r\n this.model.WarehouseTitle = $event.data.Title;\r\n this.setValue(\"WarehouseId\", this.model.WarehouseId);\r\n this.setValue(\"WarehouseCode\", this.model.WarehouseCode);\r\n this.setValue(\"WarehouseTitle\", this.model.WarehouseTitle);\r\n }\r\n if ($event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"SellCustomer/GetPagining\")) {\r\n this.model.CustomerGroupId = $event.data.CustomerGroupId;\r\n this.setValue(\"CustomerGroupId\", this.model.CustomerGroupId);\r\n this.SetDeliveryPlace($event.data.CustomerId);\r\n if (\r\n this.formGroup?.get(\"SellkindId\")?.value &&\r\n this.formGroup?.get(\"CustomerId\")?.value != this.model.CustomerId &&\r\n this.formGroup?.get(\"VoucherDate\")?.value &&\r\n this.model.SellVoucherDetailList.length > 1\r\n ) {\r\n if (this.HasPricelist === true && this.model.SellVoucherDetailList.some((x) => x.State !== RowState.Delete && x.State !== RowState.Detached))\r\n this.sts.showDialog(\"مايل به تغير قيمت هستيد؟ \", \"توجه\", DialogType.confirm, () => this.ResetPriceUnit());\r\n this.model.CustomerId = this.formGroup?.get(\"CustomerId\")?.value;\r\n }\r\n }\r\n if (\r\n $event.apiName &&\r\n $event.data &&\r\n $event.data.Id &&\r\n $event.apiName.includes(\"SellKind\") &&\r\n this.formGroup?.get(\"CustomerId\")?.value != this.model.CustomerId &&\r\n this.formGroup?.get(\"VoucherDate\")?.value &&\r\n this.model.StatusKindCode <= SellStatusKind.Registered\r\n ) {\r\n if (this.formGroup?.get(\"SellkindId\")?.value !== this.model.SellkindId && this.model.SellVoucherDetailList.length > 1) {\r\n if (this.HasPricelist === true && this.model.SellVoucherDetailList.some((x) => x.State !== RowState.Delete && x.State !== RowState.Detached))\r\n this.sts.showDialog(\"مايل به تغير قيمت هستيد؟ \", \"توجه\", DialogType.confirm, () => this.ResetPriceUnit());\r\n }\r\n this.model.SellkindId = this.formGroup?.get(\"SellkindId\")?.value;\r\n }\r\n this.isValid();\r\n }\r\n\r\n setCurrentVoucherKind() {\r\n if (!this.VoucherKind?.VoucherKindId) return;\r\n this.httpCommonService\r\n .getItem(\"InvVoucherKind\", this.VoucherKind?.VoucherKindId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (this.VoucherKind?.VoucherKindId && !this.formGroup?.get(\"VoucherKindId\")!.value)\r\n this.setValue(\"VoucherKindId\", this.VoucherKind?.VoucherKindId);\r\n this.currentVoucherKind = Object.assign({}, data as InvVoucherKind);\r\n this.model.Invoicecredit = this.currentVoucherKind?.Invoicecredit;\r\n if (!this.formGroup?.get(\"Invoicecredit\")!.value) this.setValue(\"Invoicecredit\", this.currentVoucherKind?.Invoicecredit);\r\n this.model.VoucherKindId = this.currentVoucherKind?.Id;\r\n this.model.VoucherKindCode = this.currentVoucherKind?.Code;\r\n this.setValue(\"VoucherKindCode\", this.currentVoucherKind?.Code);\r\n if (this.currentVoucherKind?.DefaultSellKindId && !this.formGroup?.get(\"SellkindId\")!.value)\r\n this.setValue(\"SellkindId\", this.currentVoucherKind?.DefaultSellKindId);\r\n if (this.currentVoucherKind.DefaultWarehouseId && !this.formGroup?.get(\"WarehouseId\")!.value)\r\n this.setValue(\"WarehouseId\", this.currentVoucherKind?.DefaultWarehouseId);\r\n if (this._id && this.model.VoucherNo) {\r\n this.label = data.Title + `(${this.model.VoucherNo})`;\r\n this.tabsservice.setTabTitle(this._id.metadata.id, this.getFormTitle());\r\n }\r\n this.setValue(\"VoucherKindCode\", this.currentVoucherKind?.Code);\r\n if (this.ShowStockAmount) this.setStockInfoColumns();\r\n if (this.hasReference) this.setReferenceVoucherColumns();\r\n this.setMaxCode();\r\n this.setColumnAttribute();\r\n this.addControl();\r\n setTimeout(() => this.cd.markForCheck(), 50);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n isNoValidForEdit() {\r\n let StatusKindCode: number = SellStatusKind.Confirmed;\r\n return (!this.isNewRow && this.model && this.model?.StatusKindCode >= StatusKindCode) || this.model?.HasReferencedVoucherTo;\r\n }\r\n setDetaiLedgerVisble() {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"DetailLedger1Id\") x.formVisible = this.detailLedgerLevel >= 1;\r\n if (x.name === \"DetailLedger2Id\") x.formVisible = this.detailLedgerLevel >= 2;\r\n if (x.name === \"DetailLedger3Id\") x.formVisible = this.detailLedgerLevel >= 3;\r\n if (x.name === \"DetailLedger4Id\") x.formVisible = this.detailLedgerLevel >= 4;\r\n if (x.name === \"DetailLedger5Id\") x.formVisible = this.detailLedgerLevel >= 5;\r\n if (x.name === \"DetailLedger6Id\") x.formVisible = this.detailLedgerLevel >= 6;\r\n if (x.name === \"DetailLedger7Id\") x.formVisible = this.detailLedgerLevel >= 7;\r\n\r\n if (x.name === \"SellDetailLedger1Id\") x.formVisible = this.detailLedgerLevel >= 1;\r\n if (x.name === \"SellDetailLedger2Id\") x.formVisible = this.detailLedgerLevel >= 2;\r\n if (x.name === \"SellDetailLedger3Id\") x.formVisible = this.detailLedgerLevel >= 3;\r\n if (x.name === \"SellDetailLedger4Id\") x.formVisible = this.detailLedgerLevel >= 4;\r\n if (x.name === \"SellDetailLedger5Id\") x.formVisible = this.detailLedgerLevel >= 5;\r\n if (x.name === \"SellDetailLedger6Id\") x.formVisible = this.detailLedgerLevel >= 6;\r\n if (x.name === \"SellDetailLedger7Id\") x.formVisible = this.detailLedgerLevel >= 7;\r\n });\r\n }\r\n setColumnAttribute() {\r\n try {\r\n this.setLoaclColumns();\r\n this.setDetaiLedgerVisble();\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"WarehouseTransferId\") {\r\n if (this.currentVoucherKind && this.currentVoucherKind.HasWarehouseTransfer) {\r\n x.disabled = !this.currentVoucherKind.HasWarehouseTransfer;\r\n if (this.currentVoucherKind.HasWarehouseTransfer) x.required = this.currentVoucherKind.HasWarehouseTransfer;\r\n if (this.currentVoucherKind.OpositePartyWarehouseCaption) x.label = this.currentVoucherKind.OpositePartyWarehouseCaption;\r\n } else {\r\n x.disabled = true;\r\n x.required = false;\r\n }\r\n }\r\n if (x.name === \"VoucherDate\") {\r\n if (this.currentVoucherKind) {\r\n x.disabled = this.currentVoucherKind.HasCheckVoucherDate;\r\n if (this.formGroup && this.formGroup.get(x.name)) {\r\n if (x.disabled) this.formGroup.get(x.name).disable();\r\n else this.formGroup.get(x.name).enable();\r\n this.formGroup.get(x.name).updateValueAndValidity();\r\n }\r\n }\r\n }\r\n if (x.name === \"WarehouseId\") {\r\n if (this.currentVoucherKind) {\r\n x.disabled = !(this.currentVoucherKind.ShowWarehouse && this.currentVoucherKind.WarehouseIsInHeader);\r\n if (this.currentVoucherKind.ShowWarehouse && this.currentVoucherKind.WarehouseIsInHeader)\r\n x.required = this.currentVoucherKind.ShowWarehouse;\r\n if (this.currentVoucherKind.WarehouseCaption) x.label = this.currentVoucherKind.WarehouseCaption;\r\n } else {\r\n x.disabled = true;\r\n x.required = false;\r\n }\r\n }\r\n if (x.name === \"SubLedgerId\") {\r\n if (this.currentVoucherKind) {\r\n x.disabled = !this.currentVoucherKind.HasSubledger;\r\n } else x.disabled = true;\r\n }\r\n if (x.name === \"CustomerId\") {\r\n if (this.currentVoucherKind) {\r\n x.disabled = !this.currentVoucherKind.HasOpositeParty;\r\n if (this.currentVoucherKind?.HasOpositeParty) x.label = this.currentVoucherKind.OpositePartyCaption;\r\n x.required = this.currentVoucherKind.HasOpositeParty;\r\n } else {\r\n x.disabled = true;\r\n x.required = false;\r\n }\r\n }\r\n if (x.name === \"ReceiptDate\" || x.name === \"ReceiptDays\") {\r\n if (this.currentVoucherKind) x.disabled = !this.currentVoucherKind.HasReceiptDate;\r\n else x.disabled = true;\r\n }\r\n if (x.name === \"Invoicecredit\") {\r\n if (this.currentVoucherKind) x.disabled = !this.currentVoucherKind.HasChangeInvoicecredit;\r\n else x.disabled = true;\r\n }\r\n if (x.name === \"ReferenceVoucherKindId\") {\r\n if (this.hasReference) {\r\n x.disabled = !this.hasReference;\r\n if (this.hasReference) x.required = this.hasReferenceRequired;\r\n if (this.hasReference) {\r\n this.setReferenceVoucherKind();\r\n let vk = this.currentVoucherKind.ReferenceVoucherKinds.find((vk) => vk.IsDefault);\r\n if (vk) {\r\n this.model.ReferenceVoucherKindId = vk.ReferenceVoucherKindId;\r\n this.setValue(\"ReferenceVoucherKindId\", vk.ReferenceVoucherKindId);\r\n }\r\n }\r\n } else {\r\n x.disabled = true;\r\n x.required = false;\r\n }\r\n }\r\n if (x.name === \"SlaveNo\") {\r\n if (this.currentVoucherKind) {\r\n x.disabled = !this.currentVoucherKind.HasSlaveNo;\r\n if (this.currentVoucherKind.SlaveNoCaption) x.label = this.currentVoucherKind.SlaveNoCaption;\r\n } else x.disabled = true;\r\n }\r\n });\r\n if (this.isNoValidForEdit()) {\r\n this.orignalColumns.forEach((x) => {\r\n if (\r\n (!x.name.includes(\"DetailLedger1\") &&\r\n !x.name.includes(\"DetailLedger2\") &&\r\n !x.name.includes(\"DetailLedger3\") &&\r\n !x.name.includes(\"SubLedger\") &&\r\n !x.name.includes(\"DetailLedger4\") &&\r\n !x.name.includes(\"DetailLedger5\")) ||\r\n this.model.StatusKindCode === InvStatusKind.AccountRegistered\r\n )\r\n x.disabled = true;\r\n else x.disabled = false;\r\n if (this.formGroup && this.formGroup.get(x.name)) {\r\n if (x.disabled) this.formGroup.get(x.name).disable();\r\n else this.formGroup.get(x.name).enable();\r\n this.formGroup.get(x.name).updateValueAndValidity();\r\n }\r\n });\r\n } else {\r\n this.orignalColumns.forEach((x) => {\r\n if (this.formGroup && this.formGroup.get(x.name)) {\r\n if (x.disabled) this.formGroup.get(x.name).disable();\r\n else this.formGroup.get(x.name).enable();\r\n this.formGroup.get(x.name).updateValueAndValidity();\r\n }\r\n });\r\n }\r\n if (this.formGroup) this.formGroup.updateValueAndValidity();\r\n if (this.currentVoucherKind && this.model) {\r\n this.label = this.currentVoucherKind.Title + `(${this.model?.VoucherNo})`;\r\n if (this._id) this.tabsservice.setTabTitle(this._id.metadata.id, this.getFormTitle());\r\n }\r\n if (this.formGroup) this.formGroup.updateValueAndValidity();\r\n this.cd.markForCheck();\r\n this.SellVoucherDetailColumns = this.getDetailControlModels(\"SellVoucherDetailList\");\r\n this.DiscountColumns = this.getcolumns(\"Discount\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n setReferenceVoucherKind() {\r\n this.httpCommonService\r\n .get(\"InvVoucherKind/ReadLookUp\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n let vk = (data as InvVoucherKind[]).filter((x) =>\r\n this.currentVoucherKind.ReferenceVoucherKinds.some((vk) => vk.ReferenceVoucherKindId === x.Id)\r\n );\r\n this.selectorService.setDataList(\"ReferenceVoucherKindId\", vk);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n async changeReferenceToVoucherKind(id: number) {\r\n let vk = this.ReferenceToVoucherKinds.find((x) => x.Id === id);\r\n if (!vk) return;\r\n let rvk: ReferenceVoucherKind = { InvVoucherKindId: vk.Id };\r\n if (!this.model.HasReferencedVoucherTo && vk) await this.CreateVoucherKindReferencedTo(rvk);\r\n else this.erroremessage = \"برای این سند قبلا معطوف صادر شده است.\";\r\n }\r\n setReferenceToVoucherKind() {\r\n this.httpCommonService\r\n .get(\"InvVoucherKind/GetReferenceVoucherKind/?id=\" + this.currentVoucherKind?.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: InvVoucherKind[]) => {\r\n if (data && data.length > 0) {\r\n this.ReferenceToVoucherKinds = data;\r\n this.CurrentReferenceToVoucherKindId = data[0].Id;\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n\r\n setDefaultValues() {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.controlType === FormControlTypes.checkbox && this.model[x.name] === undefined) this.model[x.name] = false;\r\n if (x.name === \"VoucherDate\") x.disabled = this.currentVoucherKind && this.currentVoucherKind.HasCheckVoucherDate;\r\n });\r\n }\r\n addControl() {\r\n this.isOkForLoad = false;\r\n this.selectorService.setIsFloat(\"TotalDiscount\", true);\r\n if (this.formGroup) this.setSummery();\r\n if (this.currentVoucherKind?.HasSubledger && this.currentVoucherKind?.DefaultSubLedgerId && !this.model?.SubLedgerId)\r\n this.setValue(\"SubLedgerId\", this.currentVoucherKind?.DefaultSubLedgerId);\r\n\r\n if (!this.model.VoucherDate && this.currentVoucherKind && this.currentVoucherKind.ToDayDate) this.model.VoucherDate = new Date();\r\n\r\n if (this.currentVoucherKind !== undefined) this.isOkForLoad = true;\r\n if (this.formGroup.controls[\"VoucherDate\"]) this.formGroup.controls[\"VoucherDate\"].valueChanges.subscribe((x) => this.isValid());\r\n if (this.model?.SellVoucherDetailList && this.model?.SellVoucherDetailList?.length > 0) {\r\n this.setValue(\"WarehouseId\", this.model.SellVoucherDetailList[0].WarehouseId);\r\n }\r\n\r\n this.hasPriceRefresh =\r\n this.currentVoucherKind?.HasPriceRefresh &&\r\n (this.isNewRow || this.model.StatusKindCode == SellStatusKind.Registered) &&\r\n !this.missetup.getboolean(\"INV\", \"CostBasedPricing\");\r\n this.setValue(\"ConsumedCredit\", this.model?.Customer?.ConsumedCredit);\r\n this.setValue(\"DocumentCredit\", this.model?.Customer?.DocumentCredit);\r\n this.setValue(\"ConsumedCreditRemain\", this.model?.Customer?.ConsumedCreditRemain);\r\n this.setValue(\"DocumentCreditRemain\", this.model?.Customer?.DocumentCreditRemain);\r\n this.setValue(\"CustomerRemain\", this.model?.Customer?.CustomerRemain);\r\n this.cd.markForCheck();\r\n if (this.formGroup) {\r\n this.formGroup.get(\"ReceiptDays\").valueChanges.subscribe((x) => {\r\n if (this.valueIsSetting !== true && this.formGroup?.get(\"SellkindId\")?.value && this.formGroup?.get(\"VoucherDate\")?.value) {\r\n this.valueIsSetting = true;\r\n this.model.ReceiptDate = new Date(this.formGroup?.get(\"VoucherDate\")?.value);\r\n this.setValue(\"ReceiptDate\", new Date(this.model.ReceiptDate.setDate(this.formGroup?.get(\"VoucherDate\")?.value.getDate() + (x ?? 0))));\r\n this.cd.markForCheck();\r\n this.valueIsSetting = false;\r\n }\r\n });\r\n this.formGroup.get(\"ReceiptDate\").valueChanges.subscribe((x) => {\r\n if (this.valueIsSetting !== true && this.formGroup?.get(\"SellkindId\")?.value && this.formGroup?.get(\"VoucherDate\")?.value) {\r\n this.valueIsSetting = true;\r\n this.model.ReceiptDate = x ?? new Date(this.formGroup?.get(\"VoucherDate\")?.value);\r\n this.model.VoucherDate = new Date(this.formGroup?.get(\"VoucherDate\")?.value);\r\n this.model.ReceiptDays = Math.floor(\r\n (Date.UTC(this.model.ReceiptDate.getFullYear(), this.model.ReceiptDate.getMonth(), this.model.ReceiptDate.getDate()) -\r\n Date.UTC(this.model.VoucherDate.getFullYear(), this.model.VoucherDate.getMonth(), this.model.VoucherDate.getDate())) /\r\n (1000 * 60 * 60 * 24)\r\n );\r\n this.setValue(\"ReceiptDays\", this.model.ReceiptDays);\r\n this.cd.markForCheck();\r\n this.valueIsSetting = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n async onValueChanges($event) {\r\n if (this.detail && this.detail?.dataList) this.model.SellVoucherDetailList = this.detail?.dataList;\r\n if (!this.isloading && this.ShowStockAmount && $event && ($event.UnitId || $event.GoodsId)) {\r\n this.isloading = true;\r\n let goodsId: number = $event.GoodsId ? $event.GoodsId : $event.Id;\r\n var filters: GridFilter[] = [];\r\n\r\n if (this.dataList && this.dataList.length > 0) this.filterdDataList = this.dataList.filter((f) => f.GoodsId === goodsId);\r\n filters.push({ Filed: \"FiscalYearId\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: this.model.FiscalYearId, Logic: \"and\" });\r\n let voucherdate: Date = this.formGroup.value.VoucherDate;\r\n if (isNullOrUndefined(voucherdate)) {\r\n if (!this.model.VoucherDate) voucherdate = new Date();\r\n else voucherdate = this.model.VoucherDate;\r\n }\r\n filters.push({ Filed: \"VoucherDate\", Operator: \"lte\", Type: \"F\", Skip: 0, Take: 20, Value: voucherdate, Logic: \"and\" });\r\n var GoodsIds: number[] = [];\r\n this.model.SellVoucherDetailList.forEach((x) => {\r\n if (!GoodsIds.some((g) => g === x.GoodsId)) GoodsIds.push(x.GoodsId);\r\n });\r\n if (goodsId && !GoodsIds.some((g) => g === goodsId)) GoodsIds.push(goodsId);\r\n filters.push({ Filed: \"GoodsIds\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: GoodsIds, Logic: \"and\" });\r\n await this.httpCommonService\r\n .create(`InvVoucherHeader/GetCaredx`, filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x: PagingDataResult) => {\r\n this.isloading = false;\r\n this.dataList = x.Data as [];\r\n this.filterdDataList = this.dataList.filter((f) => f.GoodsId === goodsId);\r\n },\r\n (error) => {\r\n this.isloading = false;\r\n }\r\n );\r\n }\r\n\r\n this.setSummery();\r\n if (this.model.StatusKindCode >= SellStatusKind.Confirmed) return;\r\n if (this.ShowStockAmount && $event && $event.GoodsId) {\r\n this.setGoodsValidation($event);\r\n }\r\n if ($event.GoodsId) this.ResetPriceUnit();\r\n else await this.SetPriceUnit(false, undefined);\r\n if (!this.isValidating) this.isValid();\r\n }\r\n SetDeliveryPlace(CustomerId: number) {\r\n this.httpCommonService\r\n .getItem(`PeopleInfo/GetPeopleInfoDetails`, CustomerId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x: PeopleInfo) => {\r\n if (x && x.PeopleInfoAddresss) {\r\n if (x.PeopleInfoAddresss?.length == 1) {\r\n this.model.DeliveryPlaceId = x.PeopleInfoAddresss[0].Id;\r\n this.model.DeliveryPlaceTitle = x.PeopleInfoAddresss[0].Address;\r\n this.setValue(\"DeliveryPlaceId\", this.model.DeliveryPlaceId);\r\n }\r\n this.selectorService.setDataList(\"DeliveryPlaceId\", x.PeopleInfoAddresss);\r\n }\r\n },\r\n (error) => {\r\n this.isloading = false;\r\n this.getFailedHelper(error);\r\n }\r\n );\r\n }\r\n onValueChangeByApiName($event) {\r\n if ($event && $event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"Warehouse\")) {\r\n this.model.WarehouseTitle = $event.data.Title;\r\n this.model.WarehouseCode = $event.data.Code;\r\n this.setValue(\"WarehouseTitle\", $event.data.Title);\r\n this.setValue(\"WarehouseCode\", $event.data.Code);\r\n }\r\n this.model.SellVoucherDetailList.filter(\r\n (x) => x.State !== RowState.Delete && x.State !== RowState.Detached && x.State !== RowState.SoftDelete\r\n ).forEach((x) => {\r\n this.onValueChanges(x);\r\n });\r\n if (!this.isValidating) this.isValid();\r\n else if ($event && $event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"DetailLedger\")) {\r\n this.isValid();\r\n }\r\n this.isValidating = false;\r\n }\r\n setGoodsValidation(event: SellVoucherDetail) {\r\n this.goodsError = false;\r\n if (event.ReferenceId && event.ReferenceId > 0 && event.BaseAmount > 0) {\r\n if (event.Amount > event.BaseAmount && !this.currentVoucherKind?.BasedOnBOM) {\r\n this.goodsError = true;\r\n this.erroremessage = `برای کالای ${event.GoodsTitle} با کد(${event.GoodsCode}) در انبار ${event.WarehouseTitle} مقدار نمی تواند از مقدارمبنا بیشتر باشد.`;\r\n }\r\n }\r\n if (this.formGroup.value.WarehouseId) {\r\n if (this.currentVoucherKind && this.currentVoucherKind.IncrementalKindCode === IncrementalKind.Decrement && event.MainAmount) {\r\n let stockinfo = this.dataList.find((x) => x.WarehouseId === this.formGroup.value.WarehouseId && x.GoodsId === event.GoodsId);\r\n if (\r\n this.currentVoucherKind.IncrementalKindCode === IncrementalKind.Decrement &&\r\n (!stockinfo || stockinfo.StockAmount + event.OrignalMainAmount - event.MainAmount < 0)\r\n ) {\r\n this.goodsError = true;\r\n event.HasError = true;\r\n this.erroremessage = `برای کالای ${event.GoodsTitle} با کد(${event.GoodsCode}) در انبار ${event.WarehouseTitle} موجودی کافی وجود ندارد.`;\r\n }\r\n }\r\n }\r\n }\r\n setSummery() {\r\n this.cd.markForCheck();\r\n if (this.model === undefined || this.model.SellVoucherDetailList === undefined) return;\r\n if (!this.formGroup.controls[\"TotalPrice\"])\r\n this.formGroup.addControl(\"TotalPrice\", new UntypedFormControl(this.model.SellVoucherDetailList?.getSumWithKey(\"Price\")));\r\n else this.formGroup.controls[\"TotalPrice\"].setValue(this.model.SellVoucherDetailList?.getSumWithKey(\"Price\"));\r\n\r\n if (!this.formGroup.controls[\"SumPrice\"])\r\n this.formGroup.addControl(\r\n \"SumPrice\",\r\n new UntypedFormControl(\r\n this.model.SellVoucherDetailList?.getSumWithKey(\"TotalPrice\") -\r\n (this.formGroup?.get(\"TotalDeduction\")?.value ?? 0) +\r\n (this.formGroup?.get(\"TotalSurplusage\")?.value ?? 0)\r\n )\r\n );\r\n else\r\n this.formGroup.controls[\"SumPrice\"].setValue(\r\n this.model.SellVoucherDetailList?.getSumWithKey(\"TotalPrice\") -\r\n (this.formGroup?.get(\"TotalDeduction\")?.value ?? 0) +\r\n (this.formGroup?.get(\"TotalSurplusage\")?.value ?? 0)\r\n );\r\n\r\n if (this.hasDiscount) {\r\n if (!this.formGroup.controls[\"DiscountAmount\"])\r\n this.formGroup.addControl(\"DiscountAmount\", new UntypedFormControl(this.model.SellVoucherDetailList?.getSumWithKey(\"DiscountAmount\")));\r\n else this.formGroup.controls[\"DiscountAmount\"].setValue(this.model.SellVoucherDetailList?.getSumWithKey(\"DiscountAmount\"));\r\n\r\n if (!this.formGroup.controls[\"SumDeduction\"])\r\n this.formGroup.addControl(\r\n \"SumDeduction\",\r\n new UntypedFormControl(this.model.SellVoucherDetailList?.getSumWithKey(\"Deduction\") + (this.formGroup?.get(\"TotalDeduction\")?.value ?? 0))\r\n );\r\n else\r\n this.formGroup.controls[\"SumDeduction\"].setValue(\r\n this.model.SellVoucherDetailList?.getSumWithKey(\"Deduction\") + (this.formGroup?.get(\"TotalDeduction\")?.value ?? 0)\r\n );\r\n }\r\n if (this.hasTaxDuty) {\r\n if (!this.formGroup.controls[\"Tax\"])\r\n this.formGroup.addControl(\"Tax\", new UntypedFormControl(this.model.SellVoucherDetailList?.getSumWithKey(\"Tax\")));\r\n else this.formGroup.controls[\"Tax\"].setValue(this.model.SellVoucherDetailList?.getSumWithKey(\"Tax\"));\r\n }\r\n\r\n if (!this.formGroup.controls[\"SumSurplusage\"])\r\n this.formGroup.addControl(\r\n \"SumSurplusage\",\r\n new UntypedFormControl(this.model.SellVoucherDetailList?.getSumWithKey(\"Surplusage\") + (this.formGroup?.get(\"TotalSurplusage\")?.value ?? 0))\r\n );\r\n else\r\n this.formGroup.controls[\"SumSurplusage\"].setValue(\r\n this.model.SellVoucherDetailList?.getSumWithKey(\"Surplusage\") + (this.formGroup?.get(\"TotalSurplusage\")?.value ?? 0)\r\n );\r\n if (!this.formGroup.controls[\"PaymentValue\"]) this.formGroup.addControl(\"PaymentValue\", new UntypedFormControl(0));\r\n else this.formGroup.controls[\"PaymentValue\"].setValue(0);\r\n if (!this.formGroup.controls[\"RemainValue\"]) this.formGroup.addControl(\"RemainValue\", new UntypedFormControl(0));\r\n else this.formGroup.controls[\"RemainValue\"].setValue(0);\r\n this.formGroup.markAllAsTouched();\r\n this.cd.markForCheck();\r\n }\r\n isValueValid() {\r\n if (\r\n this.formGroup.controls[\"TransportPrice\"] &&\r\n this.formGroup.controls[\"TransportPrice\"].value &&\r\n this.formGroup.controls[\"TransportPrice\"].value < 0\r\n ) {\r\n this.erroremessage = `کرایه نمی تواند منفی باشد.`;\r\n }\r\n if (\r\n this.formGroup.controls[\"TransportTax\"] &&\r\n this.formGroup.controls[\"TransportTax\"].value &&\r\n this.formGroup.controls[\"TransportTax\"].value < 0\r\n ) {\r\n this.erroremessage = `مالیات کرایه نمی تواند منفی باشد.`;\r\n }\r\n }\r\n isValid() {\r\n let flag: boolean = true;\r\n if (this.isValidating) return;\r\n if (!this.formGroup?.valid && !this.formGroup.value.StatusKindId) this.setStatusKind();\r\n if (!this.goodsError) this.erroremessage = undefined;\r\n else flag = false;\r\n if (flag && this.currentVoucherKind?.HasCredit === true && !this.CheckCredit()) flag = false;\r\n if (flag) this.isValueValid();\r\n if (\r\n (flag &&\r\n new Date(this.formGroup.controls[\"VoucherDate\"].value).setHours(0, 0, 0, 0) <\r\n new Date(this.accountService.authService.currentFiscalYear.StartDate).setHours(0, 0, 0, 0)) ||\r\n new Date(this.formGroup.controls[\"VoucherDate\"].value).setHours(0, 0, 0, 0) >\r\n new Date(this.accountService.authService.currentFiscalYear.EndDate).setHours(0, 0, 0, 0)\r\n ) {\r\n this.erroremessage = \"تاریخ سند باید در محدوده سال مالی باشد.\";\r\n return false;\r\n }\r\n if (flag && this.currentVoucherKind && this.currentVoucherKind.HasCheckVoucherDate && this.isNewRow) {\r\n if (new Date(this.formGroup.controls[\"VoucherDate\"].value).setHours(0, 0, 0, 0) < new Date().setHours(0, 0, 0, 0)) {\r\n this.erroremessage = \"تاریخ سند نمی تواند کوچکتر از تاریخ جاری باشد.\";\r\n flag = false;\r\n }\r\n }\r\n\r\n if (flag && !this.formGroup.controls[\"FiscalYearId\"].value && !this.accountService.authService.currentFiscalYear) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) this.setValue(\"FiscalYearId\", x.Id);\r\n });\r\n }\r\n if (this.currentVoucherKind && this.currentVoucherKind?.HasOpositeParty && flag) {\r\n if (!this.formGroup?.controls[\"CustomerId\"]?.value) {\r\n this.erroremessage = `انتخاب ${this.getColumnCaption(\"CustomerId\")} الزامی است.`;\r\n flag = false;\r\n }\r\n }\r\n if (this.erroremessage && flag) flag = false;\r\n if (flag) {\r\n if (\r\n this.model.SellVoucherDetailList &&\r\n this.model.SellVoucherDetailList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).length > 0\r\n ) {\r\n if (!this.formGroup?.valid) {\r\n let list = this.setFormGroupErrors();\r\n }\r\n flag = this.formGroup?.valid || this.formGroup.status === \"DISABLED\";\r\n } else {\r\n this.erroremessage = \"برای سند هیچ قلمی وارد نشده است.\";\r\n flag = false;\r\n }\r\n\r\n if (\r\n (flag && this.currentVoucherKind?.AutoFocusedDocumentIssuance && this.currentVoucherKind?.AutoCreateVoucherKindId !== undefined) ||\r\n this.currentVoucherKind?.HasAutoConfirm\r\n ) {\r\n if (\r\n this.currentVoucherKind?.HasWarehouseTransfer &&\r\n this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseInvoice &&\r\n this.currentVoucherKind?.IncrementalKindCode === 1 &&\r\n this.model.SellVoucherDetailList.some((x) => x.State !== RowState.Detached && x.State !== RowState.Delete && x.UnitPrice === 0)\r\n ) {\r\n this.erroremessage = \"بعلت اقلام بدون قیمت سند قابل تائید نیست.\";\r\n flag = false;\r\n }\r\n }\r\n if (flag) {\r\n if (\r\n this.model.SellVoucherDetailList.some((x) => x.State !== RowState.Detached && x.State !== RowState.Delete && (!x.Amount || x.Amount <= 0))\r\n ) {\r\n this.erroremessage = \"مقدار نمی تواند خالی باشد.\";\r\n flag = false;\r\n }\r\n }\r\n if (\r\n flag &&\r\n this.currentVoucherKind?.FormOperationKindCode === FormOperationKind.IsPurchaseInvoice &&\r\n this.model?.SellVoucherDetailList &&\r\n this.model.SellVoucherDetailList.some((x) => !x.UnitPrice || x.UnitPrice <= 0)\r\n ) {\r\n this.erroremessage = \"تکمیل فی اقلام الزامی است.\";\r\n flag = false;\r\n }\r\n if (flag) {\r\n this.isValidating = true;\r\n this.onValueChangeByApiName(null);\r\n this.isValidating = false;\r\n flag = !this.erroremessage;\r\n }\r\n }\r\n return flag;\r\n }\r\n getFilters(columnsName: string, searchValue: string, skip: number, take: number) {\r\n var filters: GridFilter[] = [];\r\n const columns = columnsName.split(\",\");\r\n columns.forEach((x) => {\r\n {\r\n if (x !== \"Id\")\r\n filters.push({ Filed: x, Operator: \"contains\", Type: \"F\", Skip: skip, Take: take, Value: searchValue.toString(), Logic: \"or\" });\r\n else if (isNumber(searchValue))\r\n filters.push({ Filed: x, Operator: \"eq\", Type: \"F\", Skip: skip, Take: take, Value: Number(searchValue), Logic: \"or\" });\r\n }\r\n });\r\n return filters;\r\n }\r\n\r\n beforupdate() {\r\n this.CreatedVoucherKindReferencedToHasError = false;\r\n this.CreatingAccVoucherHasError = false;\r\n if (this.detail) {\r\n if (this.detail.formGroup && this.detail?.formGroup?.valid) this.detail.saveCurrent();\r\n else this.detail.cancelHandler();\r\n }\r\n if (this.model.AccVoucherFixNumber > 0) return;\r\n\r\n if (this.currentVoucherKind.ShowWarehouse && this.currentVoucherKind.WarehouseIsInHeader) {\r\n this.model.SellVoucherDetailList.forEach((x) => {\r\n if (x.WarehouseId !== this.model.WarehouseId) {\r\n x.WarehouseId = this.model.WarehouseId;\r\n x.WarehouseCode = this.model.WarehouseCode;\r\n x.WarehouseTitle = this.model.WarehouseTitle;\r\n if (x.State !== RowState.Delete && x.State !== RowState.Detached) x.State = RowState.Modify;\r\n }\r\n });\r\n }\r\n if (this.model.SellVoucherDetailList !== undefined && this.model.SellVoucherDetailList.length > 0) {\r\n this.model.SellVoucherDetailList.forEach((x) => {\r\n if (x.State !== RowState.Detached && x.State !== RowState.Delete) this.setGoodsValidation(x);\r\n });\r\n }\r\n\r\n if (\r\n (this.currentVoucherKind.HasAutoConfirm ||\r\n this.currentVoucherKind.HasJournalVoucherAuto ||\r\n this.currentVoucherKind.AutoFocusedDocumentIssuance) &&\r\n this.model.StatusKindCode != InvStatusKind.Confirmed\r\n ) {\r\n this.lookupservice\r\n .getLookupbyCode(\"INV\", \"StatusKind\", InvStatusKind.Confirmed)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", x.Id);\r\n this.setValue(\"StatusKindCode\", x.Code);\r\n this.setValue(\"StatusKindTitle\", x.Title);\r\n\r\n if (this.model.StatusKindCode === InvStatusKind.Confirmed) this.confirmLabel = \"برگشت از تایید\";\r\n else this.confirmLabel = \"تایید سند\";\r\n }\r\n });\r\n }\r\n this.model.SellVoucherDetailList = this.model?.SellVoucherDetailList?.filter((x) => x.State !== RowState.Detached);\r\n if (this.model.SellVoucherDetailList && this.model.SellVoucherDetailList.length > 0) {\r\n this.model.SellVoucherDetailList.forEach((x) => {\r\n if (x.InvReferenceId > 0) x.ReferenceId = undefined;\r\n });\r\n if (!this.formGroup.controls[\"SellVoucherDetailList\"])\r\n this.formGroup.addControl(\"SellVoucherDetailList\", new UntypedFormControl(this.model.SellVoucherDetailList));\r\n else this.formGroup.controls[\"SellVoucherDetailList\"].setValue(this.model.SellVoucherDetailList);\r\n } else this.erroremessage = \"برای سند هیچ قلمی وارد نشده است.\";\r\n\r\n if (\r\n (this.currentVoucherKind.AutoFocusedDocumentIssuance && this.currentVoucherKind.AutoCreateVoucherKindId !== undefined) ||\r\n this.currentVoucherKind?.HasAutoConfirm\r\n ) {\r\n if (this.model.StatusKindCode <= InvStatusKind.Registered) this.setConfirmStatusKind();\r\n }\r\n }\r\n\r\n setReferenceVoucherColumns() {\r\n this.httpCommonService\r\n .get(\"InvVoucherHeader/GetReferenceVoucherInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.selectorService.setColumns(\"ReferenceId\", data as []);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n setStockInfoColumns() {\r\n this.httpCommonService\r\n .get(\"InvVoucherHeader/GetStockInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.StockInfoColumns = (data as form_control[]).filter((f) => (!f.areaName || f.areaName === \"default\") && f.listVisible);\r\n this.StockInfoColumns = this.StockInfoColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n GetVoucherKind(InvVoucherKindId: number) {\r\n return {};\r\n }\r\n async CreateVoucherKindReferencedTo(rvk: ReferenceVoucherKind) {\r\n if (rvk === null || rvk === undefined) {\r\n if (this.currentVoucherKind.AutoCreateVoucherKindId !== undefined) {\r\n await this.httpCommonService\r\n .getItem(\"InvVoucherKind\", this.currentVoucherKind.AutoCreateVoucherKindId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (data) => {\r\n if (data !== null) await this.CreateInvVoucherReferencedTo(data);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n if (rvk !== null && rvk !== undefined) {\r\n await this.httpCommonService\r\n .getItem(\"InvVoucherKind\", rvk.InvVoucherKindId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (data) => {\r\n if (data !== null && data.IsWarehouse) await this.CreateInvVoucherReferencedTo(data);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n async saveReferenceVoucher(model: any) {\r\n if (this.CreatedVoucherKindReferencedTo === true) return;\r\n this.CreatedVoucherKindReferencedTo = true;\r\n if (!this.model.HasReferencedVoucherTo) {\r\n this.splashFormService.openDialog(\"\", \"در حال صدور سند معطوف\");\r\n let apiName = this.apiName;\r\n if (model.InvVoucherDetailList && model.InvVoucherDetailList.length > 0) apiName = \"InvVoucherHeader\";\r\n\r\n await this.httpCommonService\r\n .create(apiName, model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (row) => {\r\n this.splashFormService.closeLoading();\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n await this.ngOnInit();\r\n this.isRefreshingData = false;\r\n this.CreatedVoucherKindReferencedTo = false;\r\n this.sts.showToast(\"primary\", \"\", \"صند معطوف با موفقیت صادر شد.\");\r\n },\r\n async (error) => {\r\n await this.ngOnInit();\r\n this.isRefreshingData = false;\r\n this.CreatedVoucherKindReferencedTo = false;\r\n this.currentVoucherKind.AutoFocusedDocumentIssuance = false;\r\n this.CreatedVoucherKindReferencedToHasError = true;\r\n //this.saveFailedHelper(error);\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(` خطا در صدور سند معطوف ${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n }\r\n async CreateInvVoucherReferencedTo(vk: InvVoucherKind) {\r\n let flag: boolean = true;\r\n var refVoucher: any;\r\n\r\n if (vk.IsWarehouse === true) refVoucher = {};\r\n else refVoucher = {};\r\n\r\n Object.keys(this.model).forEach((key) => {\r\n refVoucher[key] = this.model[key];\r\n });\r\n this.lookupservice\r\n .getLookupbyCode(vk.IsWarehouse === true ? \"INV\" : \"SELL\", \"StatusKind\", InvStatusKind.Confirmed)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n refVoucher.StatusKindId = x.Id;\r\n refVoucher.StatusKindCode = x.Code;\r\n refVoucher.StatusKindTitle = x.Title;\r\n }\r\n });\r\n if (vk.HasSubledger && vk.DefaultSubLedgerId) refVoucher.SubLedgerId = vk.DefaultSubLedgerId;\r\n refVoucher.WarehouseId = this.model?.SellVoucherDetailList[0]?.WarehouseId;\r\n refVoucher.State = RowState.New;\r\n refVoucher.FiscalYearId = this.model.FiscalYearId;\r\n refVoucher.Id = 0;\r\n if (vk.IsWarehouse === true) refVoucher.SellReferenceVoucherId = this.model.Id;\r\n else refVoucher.ReferenceVoucherId = this.model.Id;\r\n if (vk.IncrementalKindCode !== IncrementalKind.Decrement) {\r\n refVoucher.TotalPrice = this.model.TotalPrice;\r\n refVoucher.TotalDeduction = this.model.TotalDeduction;\r\n refVoucher.TotalSurplusage = this.model.TotalSurplusage;\r\n }\r\n refVoucher.VoucherKindId = vk.Id;\r\n refVoucher.VoucherKindCode = vk.Code;\r\n refVoucher.VoucherKindTitle = vk.Title;\r\n refVoucher.ReceiptDate = this.model.ReceiptDate;\r\n refVoucher.ReceiptDays = this.model.ReceiptDays;\r\n refVoucher.ReferenceVoucherKindId = this.currentVoucherKind.Id;\r\n refVoucher.ReferenceVoucherKindCode = this.currentVoucherKind.Code;\r\n refVoucher.ReferenceVoucherKindTitle = this.currentVoucherKind.Title;\r\n refVoucher.VoucherDate = this.model.VoucherDate;\r\n if (vk.IsWarehouse === true) refVoucher.InvVoucherDetailList = [];\r\n else refVoucher.SellVoucherDetailList = [];\r\n\r\n this.model.SellVoucherDetailList.forEach((x) => {\r\n var vd: any;\r\n\r\n if (vk.IsWarehouse === true) vd = {};\r\n else vd = {};\r\n Object.keys(x).forEach((key) => {\r\n vd[key] = x[key];\r\n });\r\n vd.State = RowState.New;\r\n vd.Id = 0;\r\n if (vk.IsWarehouse === true) vd.SellReferenceId = x.Id;\r\n else vd.ReferenceId = x.Id;\r\n vd.ReferenceCode = this.model.VoucherNo;\r\n if (vk.IncrementalKindCode === IncrementalKind.Decrement) vd.UnitPrice = 0;\r\n if (\r\n (vk.IncrementalKindCode === IncrementalKind.Decrement || vk.ReserveBalance || vk.HasInventoryControl) &&\r\n this.missetup.getnumber(\"INV\", \"NegativeBalance\")\r\n ) {\r\n let SaleAvailable: boolean = true;\r\n }\r\n if (!(vk.FormOperationKindCode || vk.FormOperationKindCode === FormOperationKind.IsReturnPurchaseInvoice)) {\r\n vd.DiscountAmount = 0;\r\n vd.DiscountRate = 0;\r\n vd.Surplusage = 0;\r\n vd.Deduction = 0;\r\n vd.Tax = 0;\r\n }\r\n if (vk.IsWarehouse === true) refVoucher.InvVoucherDetailList.push(vd);\r\n else refVoucher.SellVoucherDetailList.push(vd);\r\n });\r\n if (!flag) {\r\n this.sts.showDialog(\r\n \"خطا در صدور سند معطوف.\",\r\n \"هشدار\",\r\n DialogType.confirm,\r\n () => this.closeForm(true),\r\n () => this.closeForm(false)\r\n );\r\n } else await this.saveReferenceVoucher(refVoucher);\r\n }\r\n\r\n afterupdate() {\r\n super.afterupdate();\r\n this.afterDataLoaded.pipe(takeUntil(this.ngUnsubscribe)).subscribe(async (x) => {\r\n if (this.model.AccVoucherFixNumber > 0) return;\r\n if (x === true && this.isRefreshingData !== true) {\r\n this.isRefreshingData = true;\r\n if (this.currentVoucherKind.AutoFocusedDocumentIssuance && this.currentVoucherKind.AutoCreateVoucherKindId !== undefined) {\r\n if (\r\n !this.model.HasReferencedVoucherTo &&\r\n this.CreatedVoucherKindReferencedTo === false &&\r\n this.CreatedVoucherKindReferencedToHasError !== true\r\n )\r\n await this.CreateVoucherKindReferencedTo(null);\r\n else this.erroremessage = \"برای این سند قبلا معطوف صادر شده است.\";\r\n }\r\n\r\n if (this.currentVoucherKind.HasJournalVoucher === true && this.currentVoucherKind.HasJournalVoucherAuto === true) {\r\n if (this.model.StatusKindCode !== InvStatusKind.Confirmed) {\r\n this.lookupservice\r\n .getLookupbyCode(\"SELL\", \"StatusKind\", InvStatusKind.Confirmed)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n if (this.model.StatusKindCode === InvStatusKind.Confirmed) this.confirmLabel = \"برگشت از تایید\";\r\n else this.confirmLabel = \"تایید سند\";\r\n }\r\n });\r\n }\r\n let gridFilter: GridFilter[] = [];\r\n let SellVoucherHeaderIds: number[] = [];\r\n SellVoucherHeaderIds.push(this.model.Id);\r\n let filter: GridFilter = {\r\n Type: \"F\",\r\n Filed: \"SellVoucherHeaderIds\",\r\n Value: SellVoucherHeaderIds,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n };\r\n gridFilter.push(filter);\r\n if (this.CreatingAccVoucherHasError !== true) await this.createAccVoucher(gridFilter);\r\n }\r\n }\r\n });\r\n }\r\n async closeForm(flag: boolean = false) {\r\n if (flag && !this.isNewVoucher) {\r\n if (this._id?.metadata?.id) {\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.tabsservice.tabItemOnCanClosing.next(this._id?.metadata?.id);\r\n }\r\n this.close();\r\n }\r\n if (!flag) {\r\n if (this._id?.metadata?.id) {\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.tabsservice.tabItemOnCanClosing.next(this._id?.metadata?.id);\r\n }\r\n this.close();\r\n }\r\n if (flag && this.isNewVoucher) {\r\n this.selectorService.submitted$.next(false);\r\n this.model = undefined;\r\n this.currentrow = undefined;\r\n await this.ngOnInit();\r\n }\r\n this.isClosing = false;\r\n }\r\n isCloseable() {\r\n this.selectorService.submitted$.next(false);\r\n this.formGroup?.markAsUntouched();\r\n this.currentrow = this.model;\r\n return false;\r\n }\r\n canDeactivate(): boolean | Observable {\r\n if (\r\n !(\r\n (this.formGroup && this.formGroup.touched && this.formGroup.dirty) ||\r\n (this.model?.SellVoucherDetailList?.length > 0 &&\r\n this.model?.SellVoucherDetailList?.some((x) => x.State === RowState.New || x.State === RowState.Modify))\r\n )\r\n )\r\n return true;\r\n this.sts.showDialog(\r\n \"شما اطلاعات ذخیره نشده دارید! در صورت خروج اطلاعات از دست خواهد رفت.\",\r\n \"هشدار\",\r\n DialogType.confirm,\r\n () => this.closeForm(true),\r\n () => this.closeForm(false)\r\n );\r\n return false;\r\n }\r\n\r\n submitButtonDisabled() {\r\n return this.model !== undefined && this.model.HasReferencedVoucherTo && !(this.formGroup.touched && this.formGroup.valid);\r\n }\r\n voucherConfirm() {\r\n if (\r\n this.isValid() &&\r\n (this.formGroup.controls[\"StatusKindCode\"].value === InvStatusKind.Registered ||\r\n this.formGroup.controls[\"StatusKindCode\"].value === InvStatusKind.Confirmed)\r\n ) {\r\n this.lookupservice\r\n .getLookupbyCode(\r\n \"SELL\",\r\n \"StatusKind\",\r\n this.model.StatusKindCode === InvStatusKind.Confirmed ? InvStatusKind.Registered : InvStatusKind.Confirmed\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n if (this.formGroup.controls[\"StatusKindCode\"].value === InvStatusKind.Confirmed) {\r\n this.currentVoucherKind.HasAutoConfirm = false;\r\n this.currentVoucherKind.HasJournalVoucherAuto = false;\r\n this.currentVoucherKind.AutoFocusedDocumentIssuance = false;\r\n }\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", x.Id);\r\n this.setValue(\"StatusKindCode\", x.Code);\r\n this.setValue(\"StatusKindTitle\", x.Title);\r\n if (this.model.StatusKindCode === InvStatusKind.Confirmed) this.confirmLabel = \"برگشت از تایید\";\r\n else this.confirmLabel = \"تایید سند\";\r\n\r\n this.save();\r\n }\r\n });\r\n }\r\n }\r\n delete_Voucher() {\r\n this.sts.showToast(\"primary\", \"\", \"در حال حذف...\");\r\n this.httpCommonService\r\n .delete(this.apiName, this.model.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت حذف شد.\");\r\n this.model = undefined;\r\n this.currentrow = undefined;\r\n await this.ngOnInit();\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف اطلاعات\");\r\n }\r\n );\r\n }\r\n deleteVoucher() {\r\n this.sts.showDialog(`آیا از حذف سند اطمینان دارید؟`, \"حذف سند\", DialogType.confirm, () => this.delete_Voucher());\r\n }\r\n async newVoucher() {\r\n this.isNewVoucher = true;\r\n if (this.canDeactivate()) {\r\n this.isClosing = false;\r\n this.selectorService.submitted$.next(false);\r\n this.model = undefined;\r\n this.currentrow = undefined;\r\n await this.ngOnInit();\r\n }\r\n }\r\n\r\n async voucherRefrenceTo() {\r\n if (!this.model.HasReferencedVoucherTo) await this.CreateVoucherKindReferencedTo(null);\r\n else this.erroremessage = \"برای این سند قبلا معطوف صادر شده است.\";\r\n }\r\n async accountAccVoucher(create: boolean = true) {\r\n if (create && this.model.StatusKindCode < SellStatusKind.Confirmed) {\r\n this.sts.showDialog(`سند تایید نشده است.`, \"خطا\");\r\n return;\r\n }\r\n if (this.canDeactivate()) {\r\n let gridFilter: GridFilter[] = [];\r\n let SellVoucherHeaderIds: number[] = [];\r\n SellVoucherHeaderIds.push(this.model.Id);\r\n let filter: GridFilter = {\r\n Type: \"F\",\r\n Filed: \"SellVoucherHeaderIds\",\r\n Value: SellVoucherHeaderIds,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n };\r\n gridFilter.push(filter);\r\n if (this.model.AccVoucherFixNumber !== undefined && this.model.AccVoucherFixNumber > 0 && !create) await this.deleteAccVoucher(gridFilter);\r\n else if (create && this.model.StatusKindCode === SellStatusKind.Confirmed) await this.createAccVoucher(gridFilter);\r\n }\r\n }\r\n async createAccVoucher(gridFilter: GridFilter[]) {\r\n if (this.isCreatingAccVoucher === true) return;\r\n if (this.model.SellVoucherDetailList.some((x) => !x.UnitPrice)) {\r\n this.CreatingAccVoucherHasError = true;\r\n this.sts.showDialog(`به علت نداشتن فی بعضی از اقلام امکان صدور سند حسابداری وجود نداره.`, \"خطا\");\r\n return;\r\n }\r\n this.isCreatingAccVoucher = true;\r\n this.splashFormService.openDialog(\"\", \"در حال صدور سند حسابداری\");\r\n await this.httpCommonService\r\n .create(this.apiName + \"/CreateAccVoucher\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (x) => {\r\n if (x) {\r\n this.splashFormService.closeLoading();\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"سند با موفقیت صادر شد.\", \"\");\r\n this.accVoucherCaption = \"حذف سند حسابداری\";\r\n await this.ngOnInit();\r\n this.isRefreshingData = false;\r\n this.isCreatingAccVoucher = false;\r\n }\r\n },\r\n async (error) => {\r\n this.CreatingAccVoucherHasError = true;\r\n this.isRefreshingData = false;\r\n await this.ngOnInit();\r\n this.currentVoucherKind.HasJournalVoucherAuto = false;\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(` خطا در صدور اسناد ${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n this.isCreatingAccVoucher = false;\r\n }\r\n );\r\n }\r\n async deleteAccVoucher(gridFilter: GridFilter[]) {\r\n this.splashFormService.openDialog(\"\", \"در حال حذف سند حسابداری\");\r\n this.currentVoucherKind.HasJournalVoucherAuto = false;\r\n await this.httpCommonService\r\n .create(this.apiName.split(\"/\")[0] + \"/DeleteAccVoucher\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (x) => {\r\n if (x) {\r\n this.splashFormService.closeLoading();\r\n await this.ngOnInit();\r\n this.currentVoucherKind.HasJournalVoucherAuto = false;\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"سند با موفقیت حذف شد.\", \"\");\r\n this.accVoucherCaption = \"سند حسابداری\";\r\n }\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(` خطا در حذف اسناد ${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n viewAccVoucher() {\r\n this.httpCommonService\r\n .getItem(this.apiName + \"/ViewAccVoucher\", this.model.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n var datatrasfer: Datatransfer = {};\r\n datatrasfer.apiName = this.apiName;\r\n datatrasfer.label = \"سند حسابداری\";\r\n datatrasfer.areaName = \"Accounting\";\r\n datatrasfer.currentrow = x;\r\n const menu = {\r\n title: `سند حسابداری-(نمایش)`,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: AccVoucherFormComponent,\r\n // modulePath: this.tabsservice.getActiveTab().modulePath,\r\n data: [\r\n { provide: EntityBase, useValue: x },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: x[\"\"] } },\r\n ],\r\n };\r\n this.tabsservice.open(menu);\r\n },\r\n (error) => this.sts.showDialog(` خطا در نمایش سند: ${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n\r\n private async SetPriceUnit(IsOverWriteable: boolean, data: SellVoucherDetail = undefined) {\r\n if (\r\n !this.formGroup?.get(\"SellkindId\")?.value ||\r\n this.formGroup?.get(\"StatusKindCode\")?.value > 1 ||\r\n (!this.currentVoucherKind.CanChangeReferePrice &&\r\n (this.formGroup?.get(\"ReferenceVoucherKindId\")?.value ||\r\n (this.currentVoucherKind.ReferenceVoucherKinds != null && this.currentVoucherKind.ReferenceVoucherKinds.length > 0)) &&\r\n (this.model.SellVoucherDetailList == null || (this.model.SellVoucherDetailList.length <= 0 && !this.detail?.formGroup && !data)))\r\n )\r\n return;\r\n if (!this.formGroup?.get(\"CustomerGroupId\")?.value || !this.formGroup?.get(\"SellkindId\")?.value) return;\r\n if (\r\n (!this.detail || !this.detail?.formGroup || !this.detail?.formGroup?.get(\"GoodsId\")?.value) &&\r\n (!this.model!.SellVoucherDetailList || !this.model.SellVoucherDetailList.some((x) => x.GoodsId)) &&\r\n !data &&\r\n !data?.GoodsId\r\n )\r\n return;\r\n var filters: GridFilter[] = [];\r\n filters.push({ Type: \"F\", Filed: \"CurrentBranchId\", Value: this.model.BranchId, Operator: \"eq\", Skip: 0, Take: 0 });\r\n filters.push({ Type: \"F\", Filed: \"FiscalYearId\", Value: this.model.FiscalYearId, Operator: \"eq\", Skip: 0, Take: 0 });\r\n if (this.formGroup?.get(\"VoucherDate\")?.value)\r\n filters.push({\r\n Type: \"F\",\r\n Filed: \"PriceListDate\",\r\n Value: this.formGroup?.get(\"VoucherDate\")?.value,\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n if (this.formGroup?.get(\"CustomerGroupId\")?.value)\r\n filters.push({\r\n Type: \"F\",\r\n Filed: \"CustomerGroupId\",\r\n Value: this.formGroup?.get(\"CustomerGroupId\")?.value,\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filters.push({ Type: \"F\", Filed: \"SellKindId\", Value: this.formGroup?.get(\"SellkindId\")?.value, Operator: \"eq\", Skip: 0, Take: 0 });\r\n filters.push({\r\n Type: \"F\",\r\n Filed: \"GoodsId\",\r\n Value: data?.GoodsId ?? (!IsOverWriteable ? this.detail?.formGroup?.get(\"GoodsId\")?.value ?? 0 : 0),\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filters.push({\r\n Type: \"F\",\r\n Filed: \"GoodsUnitId\",\r\n Value: data?.GoodsUnitId ?? (!IsOverWriteable ? this.detail?.formGroup?.get(\"GoodsUnitId\")?.value ?? 0 : 0),\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n\r\n await this.httpCommonService\r\n .GetFilterGrid(\"PriceListHeader/GetByPriceListDetail\", filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (CurrentPriceList) => {\r\n if (CurrentPriceList && CurrentPriceList?.length > 0) {\r\n if (!CurrentPriceList && IsOverWriteable === true && this.currentVoucherKind.IncrementalKindCode !== 1) {\r\n if (data) {\r\n data.UnitPrice = 0;\r\n data.DiscountRate = 0;\r\n } else {\r\n this.detail?.formGroup?.get(\"UnitPrice\")?.setValue(0);\r\n this.detail?.formGroup?.get(\"DiscountRate\")?.setValue(0);\r\n }\r\n } else if (CurrentPriceList && this.currentVoucherKind.IncrementalKindCode !== 1) {\r\n if (data) {\r\n if (!data.UnitPrice || (IsOverWriteable === true && CurrentPriceList[0].IsFinal) || !data?.UnitPrice)\r\n data.UnitPrice = CurrentPriceList[0].UnitPrice;\r\n\r\n if ((IsOverWriteable === true && CurrentPriceList[0].DiscountIsFinal) || !data?.DiscountRate || data?.DiscountRate == 0)\r\n data.DiscountRate = CurrentPriceList[0].DiscountRate;\r\n this.detail?._setChanges(data);\r\n this.detail?.cd?.markForCheck();\r\n } else {\r\n if (\r\n !this.detail?.formGroup?.get(\"UnitPrice\")?.value ||\r\n IsOverWriteable === true ||\r\n this.detail?.formGroup?.get(\"UnitPrice\")?.value === 0\r\n )\r\n this.detail?.formGroup?.get(\"UnitPrice\")?.setValue(CurrentPriceList[0].UnitPrice);\r\n\r\n if (\r\n IsOverWriteable === true ||\r\n !this.detail?.formGroup?.get(\"DiscountRate\")?.value ||\r\n this.detail?.formGroup?.get(\"DiscountRate\")?.value == 0\r\n )\r\n this.detail?.formGroup?.get(\"DiscountRate\").setValue(CurrentPriceList[0].DiscountRate);\r\n }\r\n if (this.detail?.formGroup && CurrentPriceList[0].IsFinal) {\r\n if (this.detail.formGroup.get(\"GoodsId\")?.value === CurrentPriceList[0].GoodsId) this.detail.formGroup.get(\"UnitPrice\")?.disable();\r\n } else if (this.detail?.formGroup && this.detail.formGroup.get(\"GoodsId\")?.value === CurrentPriceList[0].GoodsId) {\r\n this.detail.formGroup.get(\"UnitPrice\").enable();\r\n this.detail.columns.find((c) => c.name == \"UnitPrice\").disabled = false;\r\n }\r\n if (this.detail && CurrentPriceList[0].DiscountIsFinal) {\r\n if (this.detail.formGroup?.get(\"GoodsId\")?.value === CurrentPriceList[0].GoodsId) {\r\n this.detail.formGroup?.get(\"DiscountRate\")?.disable();\r\n this.detail.formGroup?.get(\"DiscountAmount\")?.disable();\r\n }\r\n } else if (this.detail && this.detail.formGroup.get(\"GoodsId\")?.value === CurrentPriceList[0].GoodsId) {\r\n this.detail.columns.find((c) => c.name == \"DiscountRate\").disabled = false;\r\n this.detail.columns.find((c) => c.name == \"DiscountAmount\").disabled = false;\r\n this.detail?.formGroup?.get(\"DiscountRate\")?.enable();\r\n this.detail?.formGroup?.get(\"DiscountAmount\")?.enable();\r\n }\r\n } else if (this.detail) {\r\n this.detail.columns.find((c) => c.name == \"DiscountRate\").disabled = false;\r\n this.detail.columns.find((c) => c.name == \"DiscountAmount\").disabled = false;\r\n this.detail.columns.find((c) => c.name == \"UnitPrice\").disabled = false;\r\n this.detail?.formGroup?.get(\"UnitPrice\")?.enable();\r\n this.detail?.formGroup?.get(\"DiscountRate\")?.enable();\r\n this.detail?.formGroup?.get(\"DiscountAmount\")?.enable();\r\n this.detail?.formGroup?.get(\"Price\")?.enable();\r\n }\r\n }\r\n this.cd.markForCheck();\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n SetHasPricelist() {\r\n this.httpCommonService\r\n .getList(\"PriceListHeader/HasAnyRecord\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: boolean) => {\r\n this.HasPricelist = data;\r\n },\r\n (err) => {\r\n this.sts.showDialog(\"اشکال در ارتباط با سرویس\", \"توجه\");\r\n console.log(err);\r\n }\r\n );\r\n }\r\n ResetPriceUnit() {\r\n if (!this.Priceable || this.model.StatusKindCode > SellStatusKind.Registered) return;\r\n if (\r\n (!this.currentVoucherKind.CanChangeReferePrice || !this.Priceable) &&\r\n (this.formGroup?.get(\"ReferenceVoucherKindId\")?.value ||\r\n (this.currentVoucherKind.ReferenceVoucherKinds != null && this.currentVoucherKind.ReferenceVoucherKinds.length > 0)) &&\r\n (!this.model.SellVoucherDetailList || this.model.SellVoucherDetailList.length <= 0)\r\n )\r\n return;\r\n let IsOverWriteable = false;\r\n if (this.HasPricelist === true && this.model.SellVoucherDetailList.some((x) => x.State !== RowState.Delete && x.State !== RowState.Detached)) {\r\n this.model.SellVoucherDetailList.forEach(async (data) => {\r\n await this.SetPriceUnit(true, data);\r\n });\r\n if (this.detail) this.detail.dataList = this.model.SellVoucherDetailList;\r\n this.cd.markForCheck();\r\n } else {\r\n return;\r\n }\r\n }\r\n onvalueChangeWithName($event) {\r\n if ($event && $event?.name === \"TotalDiscount\" && $event.value) {\r\n this.model.SellVoucherDetailList.forEach((x) => {\r\n x.DiscountRate = $event.value;\r\n this.detail?._setChanges(x);\r\n });\r\n }\r\n this.setSummery();\r\n this.cd.markForCheck();\r\n }\r\n async changeReport(reprtName: string) {\r\n if (!this.formGroup?.get(\"CustomerId\")?.value) return;\r\n await this.getCustomerRemain();\r\n super.changeReport(reprtName);\r\n }\r\n}\r\n"," 0\"\r\n [apiName]=\"apiName\"\r\n [group]=\"formGroup\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [model]=\"model\"\r\n [columns]=\"columns\"\r\n [defaultHeight]=\"25\"\r\n [isShowModal]=\"false\"\r\n [submitButtonDisabled]=\"submitButtonDisabled()\"\r\n [erroremessage]=\"erroremessage\"\r\n [hasDefault]=\"false\"\r\n (valueChangeByApiName)=\"onChange($event)\"\r\n (valueChangeWithName)=\"onChange($event)\"\r\n (cancelChange)=\"cancel()\"\r\n (submitChange)=\"save()\">\r\n \r\n \r\n \r\n
0\">\r\n \r\n \r\n
\r\n
\r\n
\r\n 0\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [columns]=\"StockInfoColumns\"\r\n [(dataList)]=\"filterdDataList\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [groupable]=\"false\"\r\n [filtering]=\"false\"\r\n [noToolBar]=\"true\">\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n 0\"\r\n [defaultHeight]=\"25\"\r\n [columns]=\"CustomerColumns\"\r\n [group]=\"formGroup\"\r\n [model]=\"model?.Customer\">\r\n \r\n
\r\n
\r\n سررسید بدهیها\r\n 0\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [columns]=\"CustomerVoucherColumns\"\r\n [dataList]=\"CustomerVouchers\"\r\n [isModal]=\"false\"\r\n [isMulti]=\"false\"\r\n pathPreFix=\"SELL\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\">\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n 0\"\r\n [defaultHeight]=\"25\"\r\n [columns]=\"DetailLedgerColumnDetailLedger\"\r\n [group]=\"formGroup\"\r\n [model]=\"model\"\r\n (valueChangeByApiName)=\"onValueChangeByApiName($event)\">\r\n \r\n
\r\n
\r\n 0\"\r\n [defaultHeight]=\"25\"\r\n [columns]=\"DetailLedgerColumnSellDetailLedger\"\r\n [group]=\"formGroup\"\r\n [model]=\"model\"\r\n (valueChangeByApiName)=\"onValueChangeByApiName($event)\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n = 2 || isNewRow\"\r\n appearance=\"flat\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 2 || isNewRow\"\r\n size=\"medium\"\r\n appearance=\"flat\">\r\n \r\n\r\n = 0 && !isNewRow\"\r\n icon=\"icon-content_copy-o\"\r\n class=\"btnstyle\"\r\n tooltip=\"معطوف\">\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport * as moment from \"jalali-moment\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { SellStatusKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvVoucherKind } from \"src/app/backoffice/inv/models/inv-voucher-kind.model\";\r\nimport { SellKind } from \"../../models/sell-kind.model\";\r\nimport { SellVoucherDetail } from \"../../models/sell-voucher-detail.model\";\r\nimport { SellVoucherHeader } from \"../../models/sell-voucher-header.model\";\r\n@Component({\r\n selector: \"sell-voucher-header-import-excel-form\",\r\n templateUrl: \"./Sell-voucher-header-import-excel-form.component.html\",\r\n styleUrls: [\"./sell-voucher-header-import-excel-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SellVoucherHeaderImportExcelFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n gridInfo: GridColumnInfoDetail[];\r\n VoucherState: string;\r\n SellKindList: SellKind[];\r\n InvVoucherKindList: InvVoucherKind[];\r\n public hColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n let BranchId = this.accountService.authService.currentBranchId;\r\n this.apiName = \"SellVoucherHeader\";\r\n this.label = \"دریافت فایل اکسل\";\r\n super.ngOnInit();\r\n await this.setInvVoucherKind();\r\n await this.setData();\r\n }\r\n async setColumns() {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns.push({\r\n label: \"ردیف اول عنون ستونهاست.\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"isFirstRowColumnsName\",\r\n disabled: false,\r\n name: \"isFirstRowColumnsName\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.hColumns = this.hColumns;\r\n }\r\n async setData() {\r\n if (!this.model.FiscalYearId && this.accountService.authService.currentFiscalYear) {\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.model.Year = this.accountService.authService.currentFiscalYear.Year;\r\n } else if (!this.model.FiscalYearId) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n this.model.FiscalYearId = x.Id;\r\n this.model.Year = x.Year;\r\n });\r\n }\r\n if (!this.model.StatusKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"SELL\", \"StatusKind\", SellStatusKind.Registered)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n });\r\n }\r\n\r\n await this.httpCommonService\r\n .getList(\"SellKind\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.SellKindList = data as SellKind[];\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n alert(\"انتخاب بیش از یک فایل مجاز نیست.\");\r\n return;\r\n } else {\r\n const result = await this.parseExcelDoc(target.files[0]).catch((err) => console.error(err));\r\n this.SetSellVoucherHeaderInfo(result);\r\n }\r\n }\r\n getDate(newValue: any) {\r\n var _dateValue = moment.from(newValue, \"fa\", \"YYYY/MM/DD HH:mm:ss\").format(\"YYYY/MM/DD HH:mm:ss\") as any;\r\n return new Date(_dateValue);\r\n }\r\n SetSellVoucherHeaderInfo(excelData: any[]) {\r\n let ColumnsName = [];\r\n let VoucherNo = 0;\r\n let VoucherKindCode = 0;\r\n let VoucherHeader: SellVoucherHeader = {};\r\n VoucherHeader.SellVoucherDetailList = [];\r\n let VoucherDetail: SellVoucherDetail = {};\r\n let ErroeMessage: string = \"\";\r\n if (this.formGroup.get(\"isFirstRowColumnsName\")?.value === true) {\r\n ColumnsName = excelData[0] as any[];\r\n } else ColumnsName = this.gridInfo.filter((c) => c.name != null && c.title != \"عملیات\" && !c.hidden) as any[];\r\n let isFirtsRow: boolean = true;\r\n for (var i = 0; i < excelData.length; i++) {\r\n var x = excelData[i];\r\n let index: number = 0;\r\n if (this.formGroup.get(\"isFirstRowColumnsName\").value === true && isFirtsRow === true) {\r\n } else {\r\n VoucherDetail = {};\r\n ColumnsName.forEach(async (c) => {\r\n let key: string;\r\n if (c.name) key = c.name;\r\n else {\r\n if (this.gridInfo.some((g) => g.title === c || g.name == c)) {\r\n key = this.gridInfo.find((g) => g.title === c || g.name == c).name;\r\n }\r\n }\r\n if (key.trim() === \"VoucherNo\" && VoucherNo !== Number(x[index])) {\r\n if (!ErroeMessage && VoucherHeader.SellVoucherDetailList.length > 0) {\r\n this.saveVoucher(VoucherHeader);\r\n }\r\n VoucherHeader = {};\r\n VoucherHeader.SellVoucherDetailList = [];\r\n VoucherHeader.BranchId = this.accountService.authService.currentBranchId;\r\n VoucherHeader.VoucherKindId = this.model.VoucherKindId;\r\n VoucherHeader.SellkindId = this.model.SellkindId;\r\n VoucherHeader.StatusKindId = this.model.StatusKindId;\r\n VoucherHeader.FiscalYearId = this.model.FiscalYearId;\r\n VoucherHeader.VoucherNo = 0;\r\n VoucherHeader.TotalPrice = 0;\r\n }\r\n\r\n if (key.trim() === \"VoucherKindCode\") {\r\n VoucherHeader[key.trim()] = x[index];\r\n VoucherHeader.VoucherKindId = this.InvVoucherKindList.find((gg) => gg.Code === VoucherHeader.VoucherKindCode)?.Id;\r\n VoucherKindCode = VoucherHeader.VoucherKindCode;\r\n if (!VoucherHeader.VoucherKindId) {\r\n (ErroeMessage += `برای سند ${VoucherHeader.VoucherNo} نوع سند ' ${VoucherHeader.SubLedgerCode} پیدا نشد.`), \"دریافت سند \" + \",\";\r\n }\r\n }\r\n if (key.trim() === \"SellKindCode\") {\r\n VoucherHeader[key.trim()] = x[index];\r\n VoucherHeader.SellkindId = this.SellKindList.find((gg) => gg.Code === VoucherHeader.SellKindCode)?.Id;\r\n if (!VoucherHeader.SellkindId) {\r\n (ErroeMessage += `برای سند ${VoucherHeader.VoucherNo} نوع فروش ' ${VoucherHeader.SellKindCode} پیدا نشد.`), \"دریافت سند \" + \",\";\r\n }\r\n }\r\n if (\r\n key.trim() === \"VoucherNo\" ||\r\n key.trim() === \"ShamsiVoucherDate\" ||\r\n key.trim() === \"BranchCode\" ||\r\n key.trim() === \"HeaderComment\" ||\r\n key.trim() === \"CustomerCode\"\r\n ) {\r\n VoucherHeader[key.trim()] = x[index];\r\n if (key.trim() === \"ShamsiVoucherDate\") VoucherHeader.VoucherDate = this.getDate(VoucherHeader.ShamsiVoucherDate);\r\n VoucherNo = VoucherHeader.VoucherNo;\r\n } else {\r\n VoucherDetail[key.trim()] = x[index];\r\n VoucherDetail.SellVoucherHeaderId = 0;\r\n }\r\n\r\n index++;\r\n });\r\n this.VoucherState = `در حال ذخیره سند شماره ${VoucherHeader.VoucherNo} تاریخ ${VoucherHeader.ShamsiVoucherDate}`;\r\n this.cd.markForCheck();\r\n if (!VoucherHeader.SellVoucherDetailList.some((g) => g.RowNumber === VoucherDetail.RowNumber)) {\r\n VoucherHeader.SellVoucherDetailList.push(VoucherDetail);\r\n } else {\r\n console.log(VoucherHeader);\r\n }\r\n }\r\n if (isFirtsRow === true) isFirtsRow = false;\r\n if (ErroeMessage) break;\r\n }\r\n if (!ErroeMessage && VoucherHeader.SellVoucherDetailList.length > 0) {\r\n this.saveVoucher(VoucherHeader);\r\n } else this.sts.showDialog(ErroeMessage, \"خطا در دریافت کالا\");\r\n }\r\n public cancel() {\r\n this.close();\r\n }\r\n saveVoucher(entity) {\r\n this.VoucherState = `در حال ذخیره سند شماره ${entity.VoucherNo} تاریخ ${entity.ShamsiVoucherDate}`;\r\n this.cd.markForCheck();\r\n entity.VoucherNo = 0;\r\n entity.FixNo = 0;\r\n entity.DailyNo = 0;\r\n this.httpCommonService\r\n .create(this.apiName, entity)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => {\r\n this.cd.markForCheck();\r\n },\r\n (error) => this.sts.showDialog(`خطای ذخیره تغییرات: ${Utilities.getHttpResponseMessage(error)}`, \"پیغام خطا\")\r\n );\r\n }\r\n async setInvVoucherKind() {\r\n await this.httpCommonService\r\n .get(\"InvVoucherKind/GetSellActiveVoucherKind\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data: InvVoucherKind[]) => {\r\n if (data) {\r\n this.InvVoucherKindList = data as InvVoucherKind[];\r\n }\r\n },\r\n (error) => {}\r\n );\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { EntityBase, GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { IncrementalKind, SellStatusKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherFormComponent } from \"src/app/backoffice/acc/accvoucher/accvoucher-form/accvoucher-form.component\";\r\nimport { InvVoucherDetailFilterComponent } from \"src/app/backoffice/inv/invvoucher/inv-voucher-detail-filter/inv-voucher-detail-filter.component\";\r\nimport { ReferenceVoucherListComponent } from \"src/app/backoffice/inv/invvoucher/reference-voucher-list/reference-voucher-list.component\";\r\nimport { SellVoucherHeader } from \"../../models/sell-voucher-header.model\";\r\nimport { SellVoucherFormComponent } from \"../sell-voucher-form/sell-voucher-form.component\";\r\nimport { SellVoucherHeaderImportExcelFormComponent } from \"../sell-voucher-header-import-excel/sell-voucher-header-import-excel-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-sell-voucher-list\",\r\n templateUrl: \"./sell-voucher-list.component.html\",\r\n styleUrls: [\"./sell-voucher-list.component.scss\"],\r\n})\r\nexport class SellVoucherListComponent extends BaseListComponent {\r\n filterInfo: NameValue[] = [];\r\n filters: GridFilter[];\r\n actions: EntityListAction[];\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n unSortableFilterable: string[] = [];\r\n constructor(private lookupservice: LookupService, private _tabsservice: TabularService, private splashFormService: SplashFormService) {\r\n super();\r\n this.inputEditorform = SellVoucherFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n get currentFiscalYear() {\r\n return this.accountService.authService.currentFiscalYear;\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.filterInfo = undefined;\r\n this.actions = undefined;\r\n }\r\n ngOnInit() {\r\n this.unSortableFilterable.push(\"RemainValue\");\r\n this.apiName = \"SellVoucherHeader/GetWithCustomFilter\";\r\n this.label = \"فهرست اسناد سند فروش\";\r\n this.areaName = \"SellCustomer\";\r\n this.setactions();\r\n if (this.currentFiscalYear) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: this.currentFiscalYear?.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: x.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n }\r\n });\r\n }\r\n createAccVoucher(gridFilter: GridFilter[]) {\r\n this.splashFormService.openDialog(\"\", \"در حال صدور سند حسابداری\");\r\n this.httpCommonService\r\n .create(\"SellVoucherHeader/CreateAccVoucher\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"اسناد با موفقیت صادر شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در صدور اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n deleteAccVoucher(gridFilter: GridFilter[]) {\r\n this.splashFormService.openDialog(\"\", \"در حال حذف سند حسابداری\");\r\n this.httpCommonService\r\n .create(this.apiName.split(\"/\")[0] + \"/DeleteAccVoucher\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"اسناد با موفقیت حذف شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در حذف اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: SellVoucherHeader,\r\n onRowsSelected: SellVoucherHeader[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n if (onRowSelected && (!onRowsSelected || onRowsSelected.length <= 0)) onRowsSelected = [onRowSelected];\r\n let SellVoucherHeaderIds: number[];\r\n ///نمایش سند حسابداری\r\n if (action.name === \"ViewAccVoucher\") {\r\n if (onRowSelected) {\r\n if (!onRowSelected.AccVoucherFixNumber) {\r\n this.sts.showDialog(\"سندحسابداری صادر نشده است.\", \"خطا\");\r\n return;\r\n }\r\n this.httpCommonService\r\n .getItem(\"SellVoucherHeader/ViewAccVoucher\", onRowsSelected.length > 0 ? onRowsSelected[0].Id : onRowSelected.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n var datatrasfer: Datatransfer = {};\r\n datatrasfer.apiName = \"AccVoucherHeader\";\r\n datatrasfer.label = \"صدور سند حسابداری\";\r\n datatrasfer.areaName = \"Accounting\";\r\n datatrasfer.currentrow = x;\r\n const menu = {\r\n title: `سند حسابداری-(نمایش)`,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: AccVoucherFormComponent,\r\n data: [\r\n { provide: EntityBase, useValue: x },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: x[\"\"] } },\r\n ],\r\n };\r\n this._tabsservice.open(menu);\r\n },\r\n (error) => this.sts.showDialog(`خطا در نمایش سند:${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n }\r\n ///سند حسابداری\r\n if (action.name === \"CreateAccVoucher\" || action.name === \"DeleteAccVoucher\") {\r\n if (\r\n onRowSelected &&\r\n onRowSelected.HasJournalVoucher &&\r\n (onRowSelected.IncrementalKindCode === IncrementalKind.Decrement ||\r\n (onRowSelected.IncrementalKindCode !== IncrementalKind.Neutral && onRowSelected.StatusKindCode === SellStatusKind.Confirmed))\r\n ) {\r\n if (!SellVoucherHeaderIds) SellVoucherHeaderIds = [];\r\n SellVoucherHeaderIds.push(onRowSelected.Id);\r\n }\r\n if (onRowsSelected && onRowsSelected.length > 0) {\r\n onRowsSelected.forEach((x) => {\r\n if (x) {\r\n if (!SellVoucherHeaderIds) SellVoucherHeaderIds = [];\r\n if (\r\n !SellVoucherHeaderIds.some((id) => id === x.Id) &&\r\n x.HasJournalVoucher &&\r\n ((action.name === \"CreateAccVoucher\" &&\r\n (x.IncrementalKindCode === IncrementalKind.Decrement ||\r\n (x.IncrementalKindCode !== IncrementalKind.Neutral && x.StatusKindCode === SellStatusKind.Confirmed))) ||\r\n (action.name === \"DeleteAccVoucher\" && x.StatusKindCode === SellStatusKind.AccountRegistered))\r\n )\r\n SellVoucherHeaderIds.push(x.Id);\r\n }\r\n });\r\n }\r\n if (!isAllSelected && !SellVoucherHeaderIds.some((x) => 1 === 1)) {\r\n this.sts.showDialog(\"اسناد تائید نشده است.\", \"\");\r\n return;\r\n }\r\n let filter: GridFilter = {\r\n Type: \"F\",\r\n Filed: \"SellVoucherHeaderIds\",\r\n Value: SellVoucherHeaderIds,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n };\r\n if (SellVoucherHeaderIds && SellVoucherHeaderIds.length > 0) gridFilter.push(filter);\r\n\r\n if (action.name === \"CreateAccVoucher\") {\r\n if (gridFilter.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا اسناد انتخاب شده قابل صدور سند حسابداری نیست\", \"خطا\");\r\n return;\r\n }\r\n this.sts.showDialog(\"آیا از صدور سند حسابداری اطمینان دارید؟\", \"صدور سند\", DialogType.confirm, () => this.createAccVoucher(gridFilter));\r\n }\r\n if (action.name === \"DeleteAccVoucher\") {\r\n if (gridFilter.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا اسناد انتخاب شده قابل حذف نیست\", \"خطا\");\r\n return;\r\n }\r\n this.sts.showDialog(\"آیا از حذف سند حسابداری اطمینان دارید؟\", \"حذف سند\", DialogType.confirm, () => this.deleteAccVoucher(gridFilter));\r\n }\r\n }\r\n ///تایید اسناد\r\n if (action.name === \"VoucherConFirmed\" && onRowsSelected.length > 0) {\r\n onRowsSelected = onRowsSelected.filter((x) => x.StatusKindCode === SellStatusKind.Registered);\r\n if (!onRowsSelected || onRowsSelected.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا اسناد انتخاب شده قابل تایید نیست\", \"خطا\");\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"SELL\", \"StatusKind\", SellStatusKind.Confirmed)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((sk) => {\r\n if (sk) {\r\n onRowsSelected.forEach((x) => {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n });\r\n this.splashFormService.openDialog(\"\", \"در حال تایید اسناد\");\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName.split(\"/\")[0], onRowsSelected)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"اسناد با موفقیت تایید شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در تایید اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n ///برگشت از تایید اسناد\r\n if (action.name === \"VoucherDeConfirm\" && onRowsSelected.length > 0) {\r\n onRowsSelected = onRowsSelected.filter((x) => x.StatusKindCode === SellStatusKind.Confirmed && !x.HasReferencedVoucherTo);\r\n if (!onRowsSelected || onRowsSelected.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا وضعیت اسناد انتخاب شده تایید نیست\", \"خطا\");\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"SELL\", \"StatusKind\", SellStatusKind.Registered)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((sk) => {\r\n if (sk) {\r\n onRowsSelected.forEach((x) => {\r\n if (!x.HasReferencedVoucherTo) {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n }\r\n });\r\n this.splashFormService.openDialog(\"\", \"در حال برگشت از تایید اسناد\");\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName.split(\"/\")[0], onRowsSelected)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\"اسناد با موفقیت برگشت از تایید شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در برگشت از تایید اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n ///اختتام اسناد\r\n if (action.name === \"VoucherClosing\" && onRowsSelected.length > 0) {\r\n let isCancelled: boolean = false;\r\n let onRowsSelected1 = onRowsSelected.filter((x) => x.StatusKindCode === SellStatusKind.Closing);\r\n if (!onRowsSelected1 || onRowsSelected1.length <= 0) {\r\n onRowsSelected1 = onRowsSelected.filter((x) => x.StatusKindCode === SellStatusKind.Registered);\r\n isCancelled = onRowsSelected1 && onRowsSelected1.length > 0;\r\n }\r\n if (!onRowsSelected1 || onRowsSelected1.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا اسناد انتخاب شده قابل اختتام نیست\", \"خطا\");\r\n return;\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"SELL\", \"StatusKind\", !isCancelled ? SellStatusKind.Registered : SellStatusKind.Closing)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((sk) => {\r\n if (sk) {\r\n onRowsSelected1.forEach((x) => {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n });\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName.split(\"/\")[0], onRowsSelected1)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n if (isCancelled) this.sts.showDialog(\"اسناد با موفقیت مختومه شد.\", \"\");\r\n else this.sts.showDialog(\"اسناد با موفقیت برشگت از مختومه شد.\", \"\");\r\n },\r\n (error) => this.sts.showDialog(`خطا در اختتام اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n });\r\n }\r\n\r\n ///ابطال /برگشت از ابطال\r\n if (action.name === \"VoucherCancelled\" && onRowsSelected.length > 0) {\r\n let isCancelled: boolean = false;\r\n let onRowsSelected1 = onRowsSelected.filter((x) => x.StatusKindCode === SellStatusKind.Registered);\r\n if (!onRowsSelected1 || onRowsSelected1.length <= 0) {\r\n onRowsSelected1 = onRowsSelected.filter((x) => x.StatusKindCode === SellStatusKind.Cancelled);\r\n isCancelled = onRowsSelected1 && onRowsSelected1.length > 0;\r\n }\r\n if (!onRowsSelected1 || onRowsSelected1.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا وضعیت اسناد انتخاب شده تایید نیست\", \"خطا\");\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"SELL\", \"StatusKind\", isCancelled ? SellStatusKind.Registered : SellStatusKind.Cancelled)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((sk) => {\r\n if (sk) {\r\n onRowsSelected1.forEach((x) => {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n });\r\n this.httpCommonService\r\n .bulkUpdate(this.apiName.split(\"/\")[0], onRowsSelected1)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n if (isCancelled) this.sts.showDialog(\"اسناد با موفقیت برگشت از ابطال شد.\", \"\");\r\n else this.sts.showDialog(\"اسناد با موفقیت ابطال شد.\", \"\");\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n },\r\n (error) => this.sts.showDialog(`خطا در ابطال اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n });\r\n }\r\n if (!onRowSelected && onRowsSelected && onRowsSelected.length > 0) onRowSelected = onRowsSelected[0];\r\n ///سند مبنا\r\n if (action.name === \"SellVoucherBase\" && onRowSelected != null) {\r\n this.dialogService\r\n .open(\r\n ReferenceVoucherListComponent,\r\n {\r\n VoucherId: onRowsSelected.length > 0 ? onRowsSelected[0].Id : onRowSelected.Id,\r\n apiName: action.apiName,\r\n areaName: action.areaName,\r\n label: \"سند مبنا\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {});\r\n }\r\n ///سند معطوف\r\n if (action.name === \"SellRefrenceTo\" && onRowSelected != null) {\r\n this.dialogService\r\n .open(\r\n ReferenceVoucherListComponent,\r\n {\r\n VoucherId: onRowsSelected.length > 0 ? onRowsSelected[0].Id : onRowSelected.Id,\r\n apiName: action.apiName,\r\n areaName: action.areaName,\r\n label: \"سند معطوف\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {});\r\n }\r\n ///فیلتر اقلام سند\r\n if (action.name === \"InvVoucherDetailFilter\") {\r\n this.dialogService\r\n .open(\r\n InvVoucherDetailFilterComponent,\r\n {\r\n currentrow: null,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {\r\n if (model && model.length > 0) this.filters = model;\r\n });\r\n }\r\n ///حذف فیلتر افلام\r\n if (action.name === \"InvVoucherDetailFilterRemove\") {\r\n this.filters = [];\r\n }\r\n\r\n ///دریافت از اکسل\r\n if (action.name === \"ImportFromExcel\") {\r\n var gridInfo = this.getGridInfo();\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n gridInfo: gridInfo,\r\n label: action.displayName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n });\r\n }\r\n\r\n return;\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"CreateAccVoucher\",\r\n disabled: false,\r\n displayName: \"صدور سند حسابداری\",\r\n iconName: \"icon-create_new_folder-o\",\r\n apiName: \"SellVoucherHeader/CreateAccVoucher\",\r\n areaName: \"SellCustomer\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"DeleteAccVoucher\",\r\n disabled: false,\r\n displayName: \"حذف سند حسابداری\",\r\n iconName: \"icon-delete-sweep-outline\",\r\n apiName: \"SellVoucherHeader/DeleteAccVoucher\",\r\n areaName: \"SellCustomer\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"ViewAccVoucher\",\r\n disabled: false,\r\n displayName: \"نمایش سند حسابداری\",\r\n iconName: \"icon-table_view-f\",\r\n apiName: \"InvVoucherHeader/ViewAccVoucher\",\r\n areaName: \"Inventory\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherCancelled\",\r\n disabled: false,\r\n displayName: \"ابطال/برگشت از ابطال \",\r\n iconName: \"icon-blocked\",\r\n apiName: \"SellVoucherHeader/VoucherCancelled\",\r\n areaName: \"SellCustomer\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherConFirmed\",\r\n disabled: false,\r\n displayName: \"تائید سند\",\r\n iconName: \"icon-folder-open-outline\",\r\n apiName: \"SellVoucherHeader/VoucherConFirmed\",\r\n areaName: \"SellCustomer\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherDeConfirm\",\r\n disabled: false,\r\n displayName: \"برگشت از تائید\",\r\n iconName: \"icon-folder-open\",\r\n apiName: \"SellVoucherHeader/VoucherDeConfirm\",\r\n areaName: \"SellCustomer\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherClosing\",\r\n disabled: false,\r\n displayName: \"اختتام/برگشت از اختتام\",\r\n iconName: \"icon-package-variant-closed\",\r\n apiName: \"SellVoucherHeader/VoucherClosing\",\r\n areaName: \"SellCustomer\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"SellReportPrint\",\r\n disabled: false,\r\n displayName: \"چاپ سند\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"SellVoucherHeader/SellReportPrint\",\r\n areaName: \"SellCustomer\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"SellRefrenceTo\",\r\n disabled: false,\r\n displayName: \"سند معطوف\",\r\n iconName: \"icon-file-document-multiple-outline\",\r\n apiName: \"SellVoucherHeader/GetSellReferenceToVouchersByVoucherId\",\r\n areaName: \"SellCustomer\",\r\n permission: Permission.samePermission,\r\n },\r\n ,\r\n {\r\n name: \"SellVoucherBase\",\r\n disabled: false,\r\n displayName: \"سند مبنا\",\r\n iconName: \"icon-folder-open-outline\",\r\n apiName: \"SellVoucherHeader/GetSellReferenceVouchersByVoucherId\",\r\n areaName: \"SellCustomer\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"SellVoucherDetailFilter\",\r\n disabled: false,\r\n displayName: \"فیلتر اقلام\",\r\n iconName: \"icon-filter-variant-plus\",\r\n apiName: \"SellVoucherHeader\",\r\n areaName: \"SellCustomer\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"SellVoucherDetailFilterRemove\",\r\n disabled: false,\r\n displayName: \"حذف فیلتر اقلام\",\r\n iconName: \"icon-filter-variant-minus\",\r\n apiName: \"SellVoucherHeader\",\r\n areaName: \"SellCustomer\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"ImportFromExcel\",\r\n disabled: false,\r\n displayName: \"ورودی اکسل\",\r\n iconName: \"icon-file-excel-o\",\r\n apiName: \"SellVoucherHeader/ImportExcel\",\r\n areaName: \"SellCustomer\",\r\n Form_Component: SellVoucherHeaderImportExcelFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n let Ids: number[] = [];\r\n\r\n this.grid.selectedRows.forEach((x) => Ids.push(x.Id));\r\n let filter = this.grid.getGridFilter();\r\n if (Ids.length > 0)\r\n filter.push({\r\n Filed: \"Ids\",\r\n Value: Ids,\r\n Operator: filter[0].Operator,\r\n Skip: filter[0].Skip,\r\n Take: filter[0].Take,\r\n Type: \"F\",\r\n Logic: filter[0].Logic,\r\n });\r\n return new Promise((resolve, reject) => {\r\n resolve({ GridInfo: this.getGridInfo(), Filters: filter });\r\n });\r\n }\r\n\r\n getGridInfo(): GridColumnInfoDetail[] {\r\n let columns: GridColumnInfoDetail[] = [];\r\n columns.push({ hidden: false, name: \"VoucherNo\", orderindex: 0, title: \"شماره سند\" });\r\n columns.push({ hidden: false, name: \"ShamsiVoucherDate\", orderindex: 1, title: \"تاریخ سند\" });\r\n columns.push({ hidden: false, name: \"VoucherKindCode\", orderindex: 2, title: \"کد نوع سند\" });\r\n columns.push({ hidden: false, name: \"SellKindCode\", orderindex: 3, title: \"کد نوع فروش\" });\r\n columns.push({ hidden: false, name: \"CustomerCode\", orderindex: 4, title: \"شماره مشتری\" });\r\n columns.push({ hidden: false, name: \"RowNumber\", orderindex: 5, title: \"ردیف\" });\r\n columns.push({ hidden: false, name: \"Comment\", orderindex: 6, title: \"شرح قلم\" });\r\n columns.push({ hidden: false, name: \"GoodsCode\", orderindex: 7, title: \"کد کالا\" });\r\n columns.push({ hidden: false, name: \"GoodsUnitCode\", orderindex: 8, title: \"کد واحد سنجش\" });\r\n columns.push({ hidden: false, name: \"WarehouseCode\", orderindex: 9, title: \"کد انبار\" });\r\n columns.push({ hidden: false, name: \"Amount\", orderindex: 10, title: \"مقدار\" });\r\n columns.push({ hidden: false, name: \"MainAmount\", orderindex: 11, title: \"مقدار اصلی\" });\r\n columns.push({ hidden: false, name: \"UnitPrice\", orderindex: 12, title: \"نرخ\" });\r\n columns.push({ hidden: false, name: \"GoodsUnitRatio\", orderindex: 13, title: \"نسبت به واحد اصلی واحد شنجش\" });\r\n columns.push({ hidden: false, name: \"Surplusage\", orderindex: 14, title: \"اضافات\" });\r\n columns.push({ hidden: false, name: \"Deduction\", orderindex: 15, title: \"کسور\" });\r\n columns.push({ hidden: false, name: \"DiscountRate\", orderindex: 16, title: \"درصد تخفیف\" });\r\n columns.push({ hidden: false, name: \"DiscountAmount\", orderindex: 17, title: \"مبلغ تخفیف\" });\r\n columns.push({ hidden: false, name: \"Tax\", orderindex: 18, title: \"مالیات\" });\r\n\r\n return columns;\r\n }\r\n}\r\n","
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [VoucherKindIdName]=\"'VoucherKindId'\"\r\n [isModal]=\"false\"\r\n [isMulti]=\"true\"\r\n [isMultiDelete]=\"true\"\r\n [actions]=\"actions\"\r\n [actionTregger]=\"onActionClick\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n reportName=\"SellCustomerList\"\r\n pathPreFix=\"SELL\"\r\n [filters]=\"filters\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n [isAdd]=\"false\"\r\n [inputEditorform]=\"inputEditorform\"\r\n [customExportExcelUrl]=\"'SellVoucherHeader/ExportExcel'\"\r\n [getParamsForExportExcelWithPostMethod]=\"getParamsForExportExcelWithPostMethod.bind(this)\">\r\n \r\n
\r\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { FormCanDeactivate } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/form-can-deactivate\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { AuthService, LookupService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SellVoucherHeader } from \"../../models/sell-voucher-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-sell-voucher-modal-list\",\r\n templateUrl: \"./sell-voucher-modal-list.component.html\",\r\n styleUrls: [\"./sell-voucher-modal-list.component.scss\"],\r\n})\r\nexport class SellVoucherModalListComponent extends FormCanDeactivate implements OnInit, OnDestroy {\r\n filterInfo: NameValue[] = [];\r\n ngUnsubscribe = new Subject();\r\n apiName: string;\r\n areaName: string;\r\n label: string;\r\n currentVoucher: SellVoucherHeader;\r\n @Input() currentVoucherKindId: number;\r\n @Input() dataList: SellVoucherHeader[];\r\n constructor(\r\n private authService: AuthService,\r\n protected translateText: TranslateService,\r\n private sts: ShowToastrService,\r\n private lookupservice: LookupService\r\n ) {\r\n super();\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.filterInfo = undefined;\r\n this.currentVoucher = undefined;\r\n }\r\n get currentFiscalYear() {\r\n return this.authService.currentFiscalYear;\r\n }\r\n ngOnInit() {\r\n this.lookupservice.getall();\r\n this.apiName = \"SellVoucherHeader\";\r\n this.areaName = \"SellCustomer\";\r\n this.label = \"فهرست اسناد\";\r\n if (this.currentVoucherKindId) this.filterInfo.push({ Name: \"VoucherKindId\", Value: this.currentVoucherKindId, Operator: \"eq\" });\r\n if (this.currentFiscalYear) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: this.currentFiscalYear?.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.authService.currentBranchId, Operator: \"eq\" });\r\n } else\r\n this.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: x.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.authService.currentBranchId, Operator: \"eq\" });\r\n }\r\n });\r\n }\r\n\r\n onDoubleClick(voucher?: SellVoucherHeader) {\r\n this.result = voucher;\r\n this.closeModal();\r\n }\r\n cancel() {\r\n this.result = undefined;\r\n this.closeModal();\r\n }\r\n onRowSelected($event) {\r\n if ($event) {\r\n this.currentVoucher = $event;\r\n }\r\n }\r\n submit() {\r\n if (!this.currentVoucher) this.sts.showDialog(\"هیچ سندی انتخاب نشده است.\", \"انتخاب سند\");\r\n else this.onDoubleClick(this.currentVoucher);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n {{ label }}\r\n
\r\n
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [dataList]=\"dataList\"\r\n [isMulti]=\"false\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [isModal]=\"false\"\r\n reportName=\"SellCustomerList\"\r\n pathPreFix=\"INV\"\r\n [disableOnDoubleClick]=\"true\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n (onRowSelected)=\"onRowSelected($event)\"\r\n (onDoubleClick)=\"onDoubleClick($event)\">\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { DropDownListModule } from \"@progress/kendo-angular-dropdowns\";\r\nimport { PopupModule } from \"@progress/kendo-angular-popup\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { ThemeModule } from \"projects/sepidz-web-framework-shell/src/lib/@theme/theme.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { TabularModule } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.module\";\r\nimport { SellVoucherDetailComponent } from \"./sell-voucher-detail/sell-voucher-detail.component\";\r\nimport { SellVoucherFormComponent } from \"./sell-voucher-form/sell-voucher-form.component\";\r\nimport { SellVoucherHeaderImportExcelFormComponent } from \"./sell-voucher-header-import-excel/sell-voucher-header-import-excel-form.component\";\r\nimport { SellVoucherListComponent } from \"./sell-voucher-list/sell-voucher-list.component\";\r\nimport { SellVoucherModalListComponent } from \"./sell-voucher-modal-list/sell-voucher-modal-list.component\";\r\n\r\nconst components = [\r\n SellVoucherListComponent,\r\n SellVoucherFormComponent,\r\n SellVoucherDetailComponent,\r\n SellVoucherModalListComponent,\r\n SellVoucherHeaderImportExcelFormComponent,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, ThemeModule, TabularModule, SharedModule.forRoot(), SepidzGridModule, DropDownListModule, PopupModule],\r\n})\r\nexport class SellVoucherModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { BankAccount } from \"../../models/bank-account.model\";\r\n\r\n@Component({\r\n selector: \"ngx-bank-account-form\",\r\n templateUrl: \"./bank-account-form.component.html\",\r\n styleUrls: [\"./bank-account-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BankAccountFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"BankAccount\";\r\n this.label = \"حساب بانکی\";\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (this.model.Active === undefined) this.model.Active = true;\r\n if (this.model.StartDate === undefined) this.model.StartDate = new Date();\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { BankAccountFormComponent } from \"../bank-account-form/bank-account-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-bank-account-list\",\r\n templateUrl: \"./bank-account-list.component.html\",\r\n styleUrls: [\"./bank-account-list.component.scss\"],\r\n})\r\nexport class BankAccountListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = BankAccountFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"BankAccount\";\r\n this.areaName = \"Treasury\";\r\n this.label = \"حساب بانکی\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { BankAccountFormComponent } from \"./bank-account-form/bank-account-form.component\";\r\nimport { BankAccountListComponent } from \"./bank-account-list/bank-account-list.component\";\r\n\r\nconst components = [BankAccountListComponent, BankAccountFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class BankAccountModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { BankBranch } from \"../../models/bank-branch.model\";\r\n\r\n@Component({\r\n selector: \"ngx-bank-branch-form\",\r\n templateUrl: \"./bank-branch-form.component.html\",\r\n styleUrls: [\"./bank-branch-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BankBranchFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"BankBranch\";\r\n this.label = \"شعبه\";\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { BankBranchFormComponent } from \"../bank-branch-form/bank-branch-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-bank-branch-list\",\r\n templateUrl: \"./bank-branch-list.component.html\",\r\n styleUrls: [\"./bank-branch-list.component.scss\"],\r\n})\r\nexport class BankBranchListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = BankBranchFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"BankBranch\";\r\n this.areaName = \"Treasury\";\r\n this.label = \"شعبه\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { BankBranchFormComponent } from \"./bank-branch-form/bank-branch-form.component\";\r\nimport { BankBranchListComponent } from \"./bank-branch-list/bank-branch-list.component\";\r\n\r\nconst components = [BankBranchFormComponent, BankBranchListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class BankBranchModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { Bank } from \"projects/sepidz-web-framework/src/lib/models/bank.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n@Component({\r\n selector: \"ngx-bank-form\",\r\n templateUrl: \"./bank-form.component.html\",\r\n styleUrls: [\"./bank-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BankFormComponent extends BaseFormComponent {\r\n constructor(_tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n }\r\n async ngOnInit() {\r\n let fiscalYear = this.accountService.authService.currentFiscalYear;\r\n this.apiName = \"Bank\";\r\n this.label = this.translate(\"ClientApp.GNR.Bank.Bank\");\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (this.model.Active === undefined) this.model.Active = true;\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { BankFormComponent } from \"../bank-form/bank-form.component\";\r\n@Component({\r\n selector: \"ngx-bank-list\",\r\n templateUrl: \"bank-list.component.html\",\r\n styleUrls: [\"bank-list.component.scss\"],\r\n})\r\nexport class BankListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = BankFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Bank\";\r\n this.areaName = \"Treasury\";\r\n this.label = this.translate(\"ClientApp.GNR.Bank.BankList\");\r\n let fiscalYear = this.accountService.authService.currentFiscalYear;\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { BankFormComponent } from \"./bank-form/bank-form.component\";\r\nimport { BankListComponent } from \"./bank-list/bank-list.component\";\r\nconst components = [BankListComponent, BankFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class BankModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Cash } from \"../../models/cash.model\";\r\n\r\n@Component({\r\n selector: \"ngx-cash-form\",\r\n templateUrl: \"./cash-form.component.html\",\r\n styleUrls: [\"./cash-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CashFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Cash\";\r\n this.label = \"صندوق\";\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (!this.model.StartDate) this.model.StartDate = new Date();\r\n if (this.model.Active === undefined) this.model.Active = true;\r\n }\r\n\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { CashFormComponent } from \"../cash-form/cash-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-cash-list\",\r\n templateUrl: \"./cash-list.component.html\",\r\n styleUrls: [\"./cash-list.component.scss\"],\r\n})\r\nexport class CashListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = CashFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Cash\";\r\n this.areaName = \"Treasury\";\r\n this.label = \"صندوق\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { CashFormComponent } from \"./cash-form/cash-form.component\";\r\nimport { CashListComponent } from \"./cash-list/cash-list.component\";\r\n\r\nconst components = [CashFormComponent, CashListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class CashModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { EditableGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ChequeBookDetail, ChequeBookHeader } from \"../../models/cheque-book-Header.model\";\r\nimport { ChequeStatusKind } from \"../../models/tresury.enums\";\r\n\r\n@Component({\r\n selector: \"ngx-cheque-book-form\",\r\n templateUrl: \"./cheque-book-form.component.html\",\r\n styleUrls: [\"./cheque-book-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChequeBookFormComponent extends BaseFormComponent {\r\n DefaultValues: Dictionary = [];\r\n ChequeBookDetails: form_control[];\r\n @ViewChild(\"chequeBook\") public chequeBook: EditableGridComponent;\r\n erroremessage: string;\r\n _selectedChequeBookRow: ChequeBookDetail;\r\n constructor(private lookupservice: LookupService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.DefaultValues[\"ChequeBookHeaderId\"] = 0;\r\n this.apiName = \"ChequeBookHeader\";\r\n this.label = \"دسته چک\";\r\n super.ngOnInit();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.ChequeBookDetails = undefined;\r\n }\r\n setColumnAttribute() {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name.includes(\"Password\")) x.textType = \"password\";\r\n if (!x.disabled && (x.name === \"DocumentNo\" || x.name === \"TotalSheet\")) {\r\n x.disabled = this.model?.ChequeBookDetails?.length > 0;\r\n if (!this.isNewRow && this.formGroup && this.formGroup.controls[x.name]) this.formGroup.get(x.name).disable();\r\n }\r\n });\r\n if (this.formGroup) this.formGroup.updateValueAndValidity();\r\n this.ChequeBookDetails = this.getDetailControlModels(\"ChequeBookDetails\");\r\n this.chequeBook?.setColumnWith();\r\n\r\n this.columns.forEach((x) => ((x.isFloat = null), (x.userClass = null)));\r\n this.cd.markForCheck();\r\n }\r\n isCreatable(): boolean {\r\n return (\r\n this.model?.ChequeBookDetails?.length > 0 ||\r\n !this.formGroup ||\r\n !this.formGroup.controls[\"DocumentNo\"].value ||\r\n !this.formGroup.controls[\"TotalSheet\"].value\r\n );\r\n }\r\n setdefault() {\r\n if (!this.model.ChequeBookDetails) this.model.ChequeBookDetails = [];\r\n if (!this.model.ReceiptDate) this.model.ReceiptDate = new Date();\r\n this.model.ChequeBookDetails = this.model.ChequeBookDetails.sort((a, b) => a.DocumentNo - b.DocumentNo);\r\n this.setColumnAttribute();\r\n }\r\n cancelChequeBook() {\r\n if (this._selectedChequeBookRow) {\r\n this.lookupservice\r\n .getLookupbyCode(\"TRS\", \"ChequeStatusKind\", ChequeStatusKind.Canceled)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n if (this.chequeBook?.formGroup) {\r\n this.chequeBook.formGroup.controls[\"StatusKindId\"].setValue(x.Id);\r\n this.chequeBook.formGroup.controls[\"StatusKindCode\"].setValue(x.Code);\r\n this.chequeBook.formGroup.controls[\"StatusKindTitle\"].setValue(x.Title);\r\n }\r\n this.model.ChequeBookDetails.find((x) => x.DocumentNo === this._selectedChequeBookRow.DocumentNo).StatusKindId = x.Id;\r\n this.model.ChequeBookDetails.find((x) => x.DocumentNo === this._selectedChequeBookRow.DocumentNo).StatusKindCode = x.Code;\r\n this.model.ChequeBookDetails.find((x) => x.DocumentNo === this._selectedChequeBookRow.DocumentNo).StatusKindTitle = x.Title;\r\n if (this.model.ChequeBookDetails.find((x) => x.DocumentNo === this._selectedChequeBookRow.DocumentNo).State === RowState.NoChange)\r\n this.model.ChequeBookDetails.find((x) => x.DocumentNo === this._selectedChequeBookRow.DocumentNo).State = RowState.Modify;\r\n this.setColumnAttribute();\r\n }\r\n });\r\n } else this.erroremessage = \"هیچ چکی انتخاب نشده است.\";\r\n }\r\n returnCancelChequeBook() {\r\n if (this._selectedChequeBookRow) {\r\n this.lookupservice\r\n .getLookupbyCode(\"TRS\", \"ChequeStatusKind\", ChequeStatusKind.NotUsed)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n if (this.chequeBook?.formGroup) {\r\n this.chequeBook.formGroup.controls[\"StatusKindId\"].setValue(x.Id);\r\n this.chequeBook.formGroup.controls[\"StatusKindCode\"].setValue(x.Code);\r\n this.chequeBook.formGroup.controls[\"StatusKindTitle\"].setValue(x.Title);\r\n }\r\n this.model.ChequeBookDetails.find((x) => x.DocumentNo === this._selectedChequeBookRow.DocumentNo).StatusKindId = x.Id;\r\n this.model.ChequeBookDetails.find((x) => x.DocumentNo === this._selectedChequeBookRow.DocumentNo).StatusKindCode = x.Code;\r\n this.model.ChequeBookDetails.find((x) => x.DocumentNo === this._selectedChequeBookRow.DocumentNo).StatusKindTitle = x.Title;\r\n if (this.model.ChequeBookDetails.find((x) => x.DocumentNo === this._selectedChequeBookRow.DocumentNo).State === RowState.NoChange)\r\n this.model.ChequeBookDetails.find((x) => x.DocumentNo === this._selectedChequeBookRow.DocumentNo).State = RowState.Modify;\r\n }\r\n });\r\n } else this.erroremessage = \"هیچ چکی انتخاب نشده است.\";\r\n }\r\n createChequeBook() {\r\n if (!this.isCreatable()) {\r\n this.model.ChequeBookDetails = [];\r\n this.lookupservice\r\n .getLookupbyCode(\"TRS\", \"ChequeStatusKind\", ChequeStatusKind.NotUsed)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n for (let i = 0; i < this.formGroup.controls[\"TotalSheet\"].value; i++) {\r\n let entity: ChequeBookDetail = {};\r\n entity.DocumentNo = Number(this.formGroup.controls[\"DocumentNo\"].value) + i;\r\n entity.Active = true;\r\n entity.ChequeBookHeaderId = this.model.Id;\r\n entity.State = RowState.New;\r\n entity.StatusKindId = x.Id;\r\n entity.StatusKindCode = x.Code;\r\n entity.StatusKindTitle = x.Title;\r\n this.model.ChequeBookDetails.push(entity);\r\n this.setColumnAttribute();\r\n }\r\n }\r\n });\r\n }\r\n }\r\n selectedChequeBookRow($event) {\r\n this._selectedChequeBookRow = $event;\r\n }\r\n isValid() {\r\n this.erroremessage = undefined;\r\n if (!this.model.ChequeBookDetails || this.model.ChequeBookDetails.length <= 0) {\r\n this.erroremessage = \"هیچ قلمی برای دسته چک ایجاد نشده است.\";\r\n }\r\n return !this.erroremessage;\r\n }\r\n}\r\n","\r\n \r\n
\r\n 0\"\r\n #chequeBook\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\"\r\n [isEdit]=\"true\"\r\n [height]=\"40\"\r\n (onRowSelected)=\"selectedChequeBookRow($event)\"\r\n [columns]=\"ChequeBookDetails\"\r\n [(dataList)]=\"model.ChequeBookDetails\"\r\n [DefaultValues]=\"DefaultValues\">\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { ChequeBookFormComponent } from \"../cheque-book-form/cheque-book-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-cheque-book-list\",\r\n templateUrl: \"./cheque-book-list.component.html\",\r\n styleUrls: [\"./cheque-book-list.component.scss\"],\r\n})\r\nexport class ChequeBookListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = ChequeBookFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"ChequeBookHeader\";\r\n this.areaName = \"Treasury\";\r\n this.label = \"دسته چک\";\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ChequeBookFormComponent } from \"./cheque-book-form/cheque-book-form.component\";\r\nimport { ChequeBookListComponent } from \"./cheque-book-list/cheque-book-list.component\";\r\n\r\nconst components = [ChequeBookFormComponent, ChequeBookListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class ChequeBookModule {}\r\n","///مدت\r\nexport enum DurationKind {\r\n /// روز\r\n Day = 1,\r\n /// کوتاه مدت\r\n ShortTerm = 2,\r\n ///بلند مدت\r\n LongTerm = 3,\r\n}\r\nexport enum ChequeStatusKind {\r\n ///استفاده شده\r\n IsUsed = 1,\r\n ///استفاده نشده\r\n NotUsed = 2,\r\n ///ابطال شده\r\n Canceled = 3,\r\n}\r\nexport enum TrsStatusKind {\r\n /// \r\n /// ثبت اولیه\r\n /// \r\n Registered = 1,\r\n /// \r\n /// تایید\r\n /// \r\n Confirmed = 2,\r\n /// \r\n /// ثبت حسابداری\r\n /// \r\n AccountRegistered = 3,\r\n /// \r\n /// ابطال\r\n /// \r\n Cancelled = 4,\r\n /// \r\n /// استقراری\r\n /// \r\n Establishment = 5,\r\n}\r\n","export class TrsReferenceVoucherByVoucherKindFilterInfo {\r\n public Id?: number;\r\n public ReferencedVoucherKindId?: number;\r\n public VoucherKindId: number;\r\n public DetailLedgerId?: number;\r\n public DurationKindCode?: number;\r\n public TreasuryDetailLedgerId?: number;\r\n public VoucherDate: Date;\r\n public BranchId?: number;\r\n public FiscalYearId: number;\r\n public ConcernId?: number;\r\n public ConcernCode?: number;\r\n public ConcernTitle: string;\r\n public InvVoucherKindId?: number;\r\n public IsWarehouse?: boolean;\r\n}\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { TrsReferenceVoucherKind } from \"./trs-reference-voucher-kind.model\";\r\nimport { TrsVoucherKindConcern } from \"./trs-voucher-kind-concern.model\";\r\nimport { TrsVoucherKindDetailLedgerKind } from \"./trs-voucher-kind-detail-ledger-kind.model\";\r\nimport { TrsVoucherKindTreasuryDetailLedgerKind } from \"./trs-voucher-kind-treasury-detail-ledger-kind.model\";\r\n\r\nexport class TrsVoucherKind extends EntityBase {\r\n public Code: number;\r\n\r\n public Active: boolean;\r\n\r\n public SubledgerInHeader: boolean;\r\n\r\n public TreasuryDetailLedgerInHeader: boolean;\r\n\r\n public DetailLedgerInHeader: boolean;\r\n\r\n public Title: string;\r\n\r\n public LatinTitle: string;\r\n\r\n public DetailLedgerCaption: string;\r\n\r\n public RequireDetailLedger: boolean;\r\n\r\n public IsCheckBook: boolean;\r\n public Guarantee: boolean;\r\n\r\n public IsEstablishment: boolean;\r\n\r\n public DocumentKindId: number;\r\n\r\n public DocumentKindCode?: number;\r\n\r\n public DocumentKindTitle: string;\r\n\r\n public ShowTreasuryRemainPrice: boolean;\r\n\r\n public HasDeliverDate: boolean;\r\n\r\n public ConcernInHeader: boolean;\r\n\r\n public EffectKindId: number;\r\n\r\n public EffectKindCode?: number;\r\n\r\n public EffectKindTitle: string;\r\n\r\n public OrderByNumber: number;\r\n\r\n public HasRelatedRestaurantSell: boolean;\r\n\r\n public OperationKindId: number;\r\n public OperationKindCode?: number;\r\n\r\n public OperationKindTitle: string;\r\n\r\n public ReferenceVoucherKindIsRequired: boolean;\r\n\r\n public HasJournalVoucher: boolean;\r\n\r\n public HasJournalVoucherAuto: boolean;\r\n\r\n public HasCheckPrint: boolean;\r\n\r\n public HasCheckVoucherDate: boolean;\r\n\r\n public ToDayDate: boolean;\r\n\r\n public HasAutoConfirm: boolean;\r\n\r\n public ShowSubLedger: boolean;\r\n\r\n public DefaultSubLedgerId?: number;\r\n\r\n public DefaultSubLedgerCode?: number;\r\n\r\n public DefaultSubLedgerTitle: string;\r\n\r\n public HasSMS: boolean;\r\n\r\n public CompanyNameInSMS: boolean;\r\n\r\n public ShowDocumentNo: boolean;\r\n\r\n public DocumentNoCaption: string;\r\n\r\n public DocumentDateCaption: string;\r\n\r\n public RequireDocumentNo: boolean;\r\n\r\n public ShowBank: boolean;\r\n\r\n public BankCaption: string;\r\n\r\n public RequireBank: boolean;\r\n\r\n public ShowTreasuryDetailLedger: boolean;\r\n\r\n public TreasuryDetailLedgerCaption: string;\r\n\r\n public RequireTreasuryDetailLedger: boolean;\r\n\r\n public Comment: string;\r\n\r\n public LatinComment: string;\r\n\r\n public DefaultOppositSubLedgerId: number;\r\n\r\n public DefaultOppositSubLedgerCode: number;\r\n\r\n public DefaultOppositSubLedgerTitle: string;\r\n\r\n public ShowBranchCode: boolean;\r\n\r\n public BranchCodeCaption: string;\r\n\r\n public BranchTitleCaption: string;\r\n\r\n public RequireBranchCode: boolean;\r\n\r\n public ShowTag1: boolean;\r\n\r\n public TagCaption1: string;\r\n\r\n public RequireTag1: boolean;\r\n\r\n public ShowTag2: boolean;\r\n\r\n public TagCaption2: string;\r\n\r\n public RequireTag2: boolean;\r\n\r\n public ShowTag3: boolean;\r\n\r\n public TagCaption3: string;\r\n\r\n public RequireTag3: boolean;\r\n\r\n public ShowTag4: boolean;\r\n\r\n public TagCaption4: string;\r\n\r\n public RequireTag4: boolean;\r\n\r\n public ShowTag5: boolean;\r\n\r\n public TagCaption5: string;\r\n\r\n public RequireTag5: boolean;\r\n\r\n public ShowTag6: boolean;\r\n\r\n public TagCaption6: string;\r\n\r\n public RequireTag6: boolean;\r\n\r\n // public TreasuryDetailLedgerInLevelId?: number;\r\n\r\n public DetailLedgerInLevelId?: number;\r\n\r\n public IsBasedVerifiedDocuments: boolean;\r\n public TrsReferenceVoucherKinds: TrsReferenceVoucherKind[];\r\n public TrsVoucherKindConcerns: TrsVoucherKindConcern[];\r\n public TrsVoucherKindDetailLedgerKinds: TrsVoucherKindDetailLedgerKind[];\r\n public TrsVoucherKindTreasuryDetailLedgerKinds: TrsVoucherKindTreasuryDetailLedgerKind[];\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, SaveReportFile, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"check-book\",\r\n templateUrl: \"check-book.component.html\",\r\n styleUrls: [\"check-book.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CheckBookComponent extends BaseFormComponent {\r\n public apiName: string = \"AccountReview\";\r\n public label: string = \"گزارش دفتر چک\";\r\n public entitys: any[];\r\n public actions: EntityListAction[] = [];\r\n public gridColumns: form_control[] = [];\r\n constructor(\r\n private missetup: MisSetupService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"CheckBook\";\r\n this.pathPreFix = \"TRS\";\r\n this.apiName = \"TreasuryReview\";\r\n this.areaName = \"Treasury\";\r\n this.loadReports();\r\n this.setactions();\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"از تاریخ سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ShamsiVoucherDate\",\r\n disabled: false,\r\n name: \"ShamsiVoucherDate\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ShamsiVoucherDate\",\r\n disabled: false,\r\n name: \"ShamsiVoucherDate\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شعبه\",\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n\r\n this.gridColumns.push({\r\n label: \"طرف حساب\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"text\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"بانک\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"تاریخ سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"تاریخ رسید\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"تاریخ عملیات\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"سریال چک\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مبلغ\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"نوع عملیات\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"دریافت کننده\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"وضعیت چک\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.gridColumns.push({\r\n label: \"مانده تا روز\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"\",\r\n disabled: false,\r\n name: \"\",\r\n order: 0,\r\n textType: \"number\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n dataList: null,\r\n apiName: \"\",\r\n valueMember: \"Key\",\r\n displayMember: \"Title\",\r\n });\r\n this.orignalColumns = this.columns;\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"Print\",\r\n disabled: false,\r\n displayName: \"\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n children: [\r\n {\r\n name: \"print\",\r\n disabled: false,\r\n displayName: \"چاپ\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"preview\",\r\n disabled: false,\r\n displayName: \"پیش نمایش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"editReport\",\r\n disabled: false,\r\n displayName: \"اصلاح گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"copyReport\",\r\n disabled: false,\r\n displayName: \"تکثیر گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n {\r\n name: \"deleteReport\",\r\n disabled: false,\r\n displayName: \"حذف گزارش\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ],\r\n },\r\n {\r\n name: \"isRefreshing\",\r\n disabled: false,\r\n displayName: \"بازخوانی اطلاعات\",\r\n iconName: \"icon-refresh-o\",\r\n apiName: \"InventoryReview\",\r\n areaName: this.areaName,\r\n permission: \"CustomPrintGrid\",\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction) {\r\n if (\r\n action.name === \"print\" ||\r\n action.name === \"preview\" ||\r\n action.name === \"editReport\" ||\r\n action.name === \"copyReport\" ||\r\n action.name === \"deleteReport\"\r\n ) {\r\n this.changeReport(action.name);\r\n }\r\n if (action.name === \"isRefreshing\") {\r\n this.loadData();\r\n }\r\n }\r\n\r\n onFormChange() {\r\n this.loadData();\r\n }\r\n\r\n addControl(): void {\r\n if (this.accountService.authService.currentFiscalYear) {\r\n this.setValue(\"StartVoucherDate\", this.accountService.authService.currentFiscalYear.StartDate);\r\n this.setValue(\"EndVoucherDate\", this.accountService.authService.currentFiscalYear.EndDate);\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.setValue(\"StartVoucherDate\", x.StartDate);\r\n this.setValue(\"EndVoucherDate\", x.EndDate);\r\n }\r\n });\r\n }\r\n changeReport(reprtName: string): void {\r\n if (!this.apiName) return;\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = this.reportName;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.FileName = `${this.reportName}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.SystemKindName = this.pathPreFix;\r\n if (this.VoucherKind?.VoucherKindId) saveReportFile.SystemKindName = `${this.pathPreFix}_${this.VoucherKind?.VoucherKindId}`;\r\n\r\n saveReportFile.CategoryName = this.apiName.replace(\"/\", \"_\");\r\n if (this.reportList && this.reportList.length > 1) {\r\n this.dialogService\r\n .open(\r\n this.ReportSelectorForm,\r\n { dataList: this.reportList, currentrow: null, apiName: this.apiName, areaName: this.areaName, label: \"انتخاب گزارش\" },\r\n { autoFocus: true, closeOnEscape: false, closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) {\r\n saveReportFile = model;\r\n this.loadData();\r\n }\r\n });\r\n this.currentReport = \"print\";\r\n return;\r\n }\r\n if (this.reportList && this.reportList.length === 1) {\r\n saveReportFile = this.reportList[0];\r\n } else {\r\n this.reportList = [];\r\n this.reportList.push(saveReportFile);\r\n }\r\n this.loadData();\r\n }\r\n loadData() {\r\n let filter: GridFilter[] = [];\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"StartVoucherDate\",\r\n Value: this.formGroup.get(\"StartVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n filter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"EndVoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n this.httpCommonService\r\n .GetFilterGrid(\"TreasuryReview/GetCheckBook\", filter)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: any[]) => {\r\n this.entitys = data;\r\n });\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup } from \"@angular/forms\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, FiscalYear, form_control, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherFormComponent } from \"src/app/backoffice/acc/accvoucher/accvoucher-form/accvoucher-form.component\";\r\nimport { ReviewFilterItem } from \"src/app/review/models/review-filter-item\";\r\nimport { ReviewService } from \"src/app/review/review.service\";\r\nimport { TrsVoucherFormComponent } from \"../../trs-voucher/trs-voucher-form/trs-voucher-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-treasury-review\",\r\n templateUrl: \"./treasury-review.component.html\",\r\n styleUrls: [\"./treasury-review.component.scss\"],\r\n providers: [ReviewService],\r\n})\r\nexport class TreasuryReviewComponent extends BaseListComponent {\r\n formGroup: UntypedFormGroup;\r\n actions: EntityListAction[];\r\n GetTrsVoucherKindColumns: form_control[] = [];\r\n GetDetailLedgerColumns: form_control[] = [];\r\n GetCashColumns: form_control[] = [];\r\n GetTreasuryDetailLedgerColumns: form_control[] = [];\r\n GetVoucherHeaderColumns: form_control[] = [];\r\n GetVoucherDetailColumns: form_control[] = [];\r\n GetTreasuryHistoryColumns: form_control[] = [];\r\n TrsVoucherKindIds: number[] = [];\r\n StatusKindIds: number[] = [];\r\n DetailLedgerIds: number[] = [];\r\n BankAccountIds: number[] = [];\r\n BranchIds: number[] = [];\r\n TrsConcernIds: number[] = [];\r\n VoucherHeaderIds: number[] = [];\r\n OperationKindIds: number[] = [];\r\n DocumentKindIds: number[] = [];\r\n CashIds: number[] = [];\r\n activeTabTitle: string;\r\n selected: string = \"\";\r\n constructor(private service: ReviewService, private tabsservice: TabularService, private fb: UntypedFormBuilder) {\r\n super();\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.formGroup = undefined;\r\n this.actions = undefined;\r\n this.GetTrsVoucherKindColumns = undefined;\r\n this.GetDetailLedgerColumns = undefined;\r\n this.GetCashColumns = undefined;\r\n this.GetTreasuryDetailLedgerColumns = undefined;\r\n this.GetVoucherHeaderColumns = undefined;\r\n this.GetVoucherDetailColumns = undefined;\r\n this.GetTreasuryHistoryColumns = undefined;\r\n this.TrsVoucherKindIds = undefined;\r\n this.StatusKindIds = undefined;\r\n this.DetailLedgerIds = undefined;\r\n this.BankAccountIds = undefined;\r\n this.BranchIds = undefined;\r\n this.TrsConcernIds = undefined;\r\n this.VoucherHeaderIds = undefined;\r\n this.OperationKindIds = undefined;\r\n this.DocumentKindIds = undefined;\r\n this.CashIds = undefined;\r\n }\r\n ngOnInit(): void {\r\n //this.service.startDate = new Date();\r\n //this.service.endDate = new Date();\r\n this.setactions();\r\n\r\n let currentFiscalYear = this.accountService.authService.currentFiscalYear;\r\n if (currentFiscalYear) {\r\n this.service.startDate.setDate(this.service.startDate.getDate() - 30);\r\n this.service.startDate$.next(this.service.startDate);\r\n if (currentFiscalYear && currentFiscalYear.StartDate) {\r\n let fystartDate = new Date(currentFiscalYear.StartDate);\r\n if (fystartDate.setHours(0, 0, 0, 0) > this.service.startDate.setHours(0, 0, 0, 0))\r\n this.service.startDate = this.accountService.authService.currentFiscalYear.StartDate;\r\n else if (fystartDate.setHours(0, 0, 0, 0) < this.service.startDate.setHours(0, 0, 0, 0)) {\r\n this.service.startDate = currentFiscalYear.StartDate;\r\n this.service.endDate = currentFiscalYear.EndDate;\r\n this.service.startDate$.next(currentFiscalYear.StartDate);\r\n this.service.endDate$.next(currentFiscalYear.EndDate);\r\n }\r\n }\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x: FiscalYear) => {\r\n if (x && x.StartDate) {\r\n this.service.startDate.setDate(this.service.startDate.getDate() - 30);\r\n let fystartDate = new Date(x.StartDate);\r\n if (fystartDate.setHours(0, 0, 0, 0) > this.service.startDate.setHours(0, 0, 0, 0)) this.service.startDate = x.StartDate;\r\n else if (fystartDate.setHours(0, 0, 0, 0) < this.service.startDate.setHours(0, 0, 0, 0)) {\r\n this.service.startDate = x.StartDate;\r\n this.service.endDate = x.EndDate;\r\n this.service.startDate$.next(currentFiscalYear.StartDate);\r\n this.service.endDate$.next(currentFiscalYear.EndDate);\r\n }\r\n }\r\n });\r\n this.BranchIds.push(this.accountService.authService.currentBranchId);\r\n this.service.addFilter(this.accountService.authService.currentBranch.Title, [\r\n {\r\n key: \"BranchIds\",\r\n value: this.accountService.authService.currentBranchId,\r\n title: this.accountService.authService.currentBranch.Title,\r\n persianKey: this.accountService.authService.currentBranch.Title,\r\n },\r\n ]);\r\n this.formGroup = this.fb.group({\r\n TrsVoucherKindIds: this.TrsVoucherKindIds,\r\n StatusKindIds: this.StatusKindIds,\r\n BranchIds: this.BranchIds,\r\n TrsConcernIds: this.TrsConcernIds,\r\n ShowRunningTotal: false,\r\n DocumentKindIds: this.DocumentKindIds,\r\n OperationKindIds: this.OperationKindIds,\r\n DetailLedgerIds: this.DetailLedgerIds,\r\n BankAccountIds: this.BankAccountIds,\r\n CashIds: this.CashIds,\r\n SlaveNo: undefined,\r\n ShowBeginingOfTheCoursResidue: false,\r\n IsEstablishment: false,\r\n VoucherHeaderIds: this.VoucherHeaderIds,\r\n });\r\n this.populateGridColumns();\r\n this.setColumns();\r\n }\r\n setColumns() {\r\n this.httpCommonService\r\n .get(\"TreasuryReview/GetTreasuryReviewInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetVoucherDetailColumns = data as form_control[];\r\n this.GetVoucherDetailColumns = this.GetVoucherDetailColumns.sort((a, b) => a.order - b.order);\r\n this.setColumnVisiblty();\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n setColumnVisiblty() {}\r\n populateGridColumns(): any {\r\n var col: form_control[] = [];\r\n col = [\r\n {\r\n name: \"Id\",\r\n modelName: \"Id\",\r\n listVisible: false,\r\n label: \"سریال\",\r\n order: 0,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n // { name: 'BankBranchTitle', modelName: 'BankBranchTitle', listVisible: true, label: 'شعبه', order: 13, textType: 'text', withComma: true, isDecimal: true, formVisible: false, disabled: false, areaName: null, systemName: undefined, category: undefined, DetailControlModels: undefined },\r\n // { name: 'BankAccountNo', modelName: 'BankAccountNo', listVisible: true, label: 'شعبه', order: 14, textType: 'text', withComma: true, isDecimal: true, formVisible: false, disabled: false, areaName: null, systemName: undefined, category: undefined, DetailControlModels: undefined },\r\n {\r\n name: \"ReceptionAmount\",\r\n modelName: \"ReceptionAmount\",\r\n listVisible: true,\r\n label: \"دریافت\",\r\n order: 15,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"NetReceptionAmount\",\r\n modelName: \"NetReceptionAmount\",\r\n listVisible: false,\r\n label: \"دریافت نقد\",\r\n order: 16,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"PaymentAmount\",\r\n modelName: \"PaymentAmount\",\r\n listVisible: true,\r\n label: \"پرداخت\",\r\n order: 17,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"NetPaymentAmount\",\r\n modelName: \"NetPaymentAmount\",\r\n listVisible: false,\r\n label: \"پرداخت نقد\",\r\n order: 18,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"RemainAmount\",\r\n modelName: \"RemainAmount\",\r\n listVisible: true,\r\n label: \"مانده\",\r\n order: 19,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"PayableDocumentAmount\",\r\n modelName: \"PayableDocumentAmount\",\r\n listVisible: true,\r\n label: \"اسناد پرداختنی\",\r\n order: 20,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"ReceptionDocumentAmount\",\r\n modelName: \"ReceptionDocumentAmount\",\r\n listVisible: true,\r\n label: \"اسناد دریافتنی\",\r\n order: 21,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n\r\n Object.assign(this.GetTrsVoucherKindColumns, col);\r\n this.GetTrsVoucherKindColumns.push({\r\n name: \"VoucherKindCode\",\r\n modelName: \"VoucherKindCode\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetTrsVoucherKindColumns.push({\r\n name: \"VoucherKindTitle\",\r\n modelName: \"VoucherKindTitle\",\r\n listVisible: true,\r\n label: \"عنوان\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetTrsVoucherKindColumns = this.GetTrsVoucherKindColumns.sort((a, b) => a.order - b.order);\r\n\r\n Object.assign(this.GetDetailLedgerColumns, col);\r\n this.GetDetailLedgerColumns.push({\r\n name: \"DetailLedgerCode\",\r\n modelName: \"DetailLedgerCode\",\r\n listVisible: true,\r\n label: \"کد\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedgerColumns.push({\r\n name: \"DetailLedgerTitle\",\r\n modelName: \"DetailLedgerTitle\",\r\n listVisible: true,\r\n label: \"عنوان\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetDetailLedgerColumns = this.GetDetailLedgerColumns.sort((a, b) => a.order - b.order);\r\n\r\n Object.assign(this.GetTreasuryDetailLedgerColumns, col);\r\n this.GetTreasuryDetailLedgerColumns.push({\r\n name: \"BankTitle\",\r\n modelName: \"BankTitle\",\r\n listVisible: true,\r\n label: \"بانک\",\r\n order: 1,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetTreasuryDetailLedgerColumns.push({\r\n name: \"BankBranchTitle\",\r\n modelName: \"BankBranchTitle\",\r\n listVisible: true,\r\n label: \"شعبه\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetTreasuryDetailLedgerColumns.push({\r\n name: \"BankAccountNo\",\r\n modelName: \"BankAccountNo\",\r\n listVisible: true,\r\n label: \"حساب بانکی\",\r\n order: 3,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetTreasuryDetailLedgerColumns.push({\r\n name: \"TreasuryDetailLedgerTitle\",\r\n modelName: \"TreasuryDetailLedgerTitle\",\r\n listVisible: true,\r\n label: \"تفصیلی حساب بانکی\",\r\n order: 4,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n\r\n this.GetTreasuryDetailLedgerColumns = this.GetTreasuryDetailLedgerColumns.sort((a, b) => a.order - b.order);\r\n\r\n Object.assign(this.GetCashColumns, col);\r\n this.GetCashColumns.push({\r\n name: \"CashTitle\",\r\n modelName: \"CashTitle\",\r\n listVisible: true,\r\n label: \"عنوان\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetCashColumns = this.GetCashColumns.sort((a, b) => a.order - b.order);\r\n\r\n Object.assign(this.GetVoucherHeaderColumns, col);\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"VoucherKindTitle\",\r\n modelName: \"VoucherKindTitle\",\r\n listVisible: true,\r\n label: \"نوع سند\",\r\n order: 1,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"VoucherNo\",\r\n modelName: \"VoucherNo\",\r\n listVisible: true,\r\n label: \"شماره سند\",\r\n order: 2,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"ShamsiVoucherDate\",\r\n modelName: \"ShamsiVoucherDate\",\r\n listVisible: true,\r\n label: \"تاریخ سند\",\r\n order: 3,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"ShamsiDocumentDate\",\r\n modelName: \"ShamsiDocumentDate\",\r\n listVisible: true,\r\n label: \"تاریخ سررسید\",\r\n order: 4,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"SlaveNo\",\r\n modelName: \"SlaveNo\",\r\n listVisible: true,\r\n label: \"َشماره پیگیری\",\r\n order: 6,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"DetailLedgerCode\",\r\n modelName: \"DetailLedgerCode\",\r\n listVisible: true,\r\n label: \"کد طرف مقابل\",\r\n order: 7,\r\n textType: \"number\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns.push({\r\n name: \"DetailLedgerTitle\",\r\n modelName: \"DetailLedgerTitle\",\r\n listVisible: true,\r\n label: \"طرف مقابل\",\r\n order: 8,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: false,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n });\r\n this.GetVoucherHeaderColumns = this.GetVoucherHeaderColumns.sort((a, b) => a.order - b.order);\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: any, onRowsSelected: any[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n var datatrasfer: Datatransfer = {};\r\n datatrasfer.apiName = action.apiName;\r\n datatrasfer.label = this.label;\r\n datatrasfer.areaName = action.areaName;\r\n datatrasfer.currentrow = onRowSelected;\r\n\r\n ///سند حسابداری\r\n if (action.name === \"AccVoucherHeader\") {\r\n if (!onRowSelected[\"AccVoucherHeaderId\"]) {\r\n this.sts.showDialog(\"سند حسابداری صادر نشده است.\", \"\");\r\n return;\r\n }\r\n const menu = {\r\n title: `مرور دریافت و پردخت (${onRowSelected[\"VoucherKindTitle\"]})`,\r\n isCloseable: true,\r\n icon: action.iconName,\r\n active: true,\r\n responsive: true,\r\n componentType: action.Form_Component,\r\n modulePath: this.tabsservice.getActiveTab().modulePath,\r\n data: [\r\n { provide: EntityBase, useValue: onRowSelected },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: onRowSelected[\"\"] } },\r\n ],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n /// سند مبنا\r\n if (action.name === \"BaseVoucher\") {\r\n const menu = {\r\n title: `مرور دریافت و پردخت (${onRowSelected[\"VoucherKindTitle\"]})`,\r\n isCloseable: true,\r\n icon: action.iconName,\r\n active: true,\r\n responsive: true,\r\n componentType: action.Form_Component,\r\n modulePath: this.tabsservice.getActiveTab().modulePath,\r\n data: [\r\n { provide: EntityBase, useValue: onRowSelected },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: onRowSelected[\"TrsVoucherKindId\"] } },\r\n ],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"AccVoucherHeader\",\r\n disabled: false,\r\n isModal: true,\r\n displayName: \"نمایش سند حسابداری\",\r\n iconName: \"icon-table_view-f\",\r\n Form_Component: AccVoucherFormComponent,\r\n apiName: \"AccVoucherHeader\",\r\n areaName: \"Accounting\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"BaseVoucher\",\r\n disabled: false,\r\n isModal: true,\r\n displayName: \"سند مبنا گزارش\",\r\n iconName: \"icon-folder-open-outline\",\r\n areaName: \"Treasury\",\r\n Form_Component: TrsVoucherFormComponent,\r\n apiName: \"TrsVoucherHeader\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"GetTreasuryHistory\",\r\n disabled: false,\r\n displayName: \"تاریخچه\",\r\n iconName: \"icon-history-o\",\r\n areaName: \"Inventory\",\r\n Form_Component: TrsVoucherFormComponent,\r\n apiName: \"TreasuryReview/GetTreasuryHistory\",\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n setSelectedFilter(filter: string) {\r\n if (this.selected === filter) this.selected = \"\";\r\n else this.selected = filter;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.TRS.TreasuryReview.FilterInfo\" | translate }}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.TRS.StatusKind.StatusKindTitle\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.TRS.TreasuryReview.Branch\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.TRS.TreasuryReview.TrsConcern\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.TRS.TreasuryReview.OperationKind\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.BackOffice.TRS.TreasuryReview.DocumentKind\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\r\n \"\r\n name=\"VoucherDetail\"\r\n [title]=\"'ClientApp.BackOffice.TRS.TreasuryReview.VoucherDetail' | translate\"\r\n apiName=\"TreasuryReview/GetVoucherDetail\"\r\n areaName=\"Treasury\"\r\n [columns]=\"GetVoucherDetailColumns\"\r\n [selective]=\"true\"\r\n [filtering]=\"true\"\r\n [isModal]=\"false\"\r\n pathPreFix=\"TRS\"\r\n [actionTregger]=\"onActionClick\"\r\n [actions]=\"actions\"\r\n displayNameColumn=\"VoucherNo\"\r\n key=\"VoucherDetailIds\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n 0\r\n \"\r\n name=\"TreasuryHistoryId\"\r\n [title]=\"'ClientApp.BackOffice.TRS.TreasuryReview.TreasuryHistory' | translate\"\r\n apiName=\"TreasuryReview/GetTreasuryHistory\"\r\n areaName=\"Treasury\"\r\n [columns]=\"GetVoucherDetailColumns\"\r\n [selective]=\"false\"\r\n [filtering]=\"true\"\r\n [isModal]=\"false\"\r\n pathPreFix=\"TRS\"\r\n [actionTregger]=\"onActionClick\"\r\n [actions]=\"actions\">\r\n \r\n \r\n \r\n
\r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { ReportReviewModule } from \"src/app/review/review.module\";\r\nimport { CheckBookComponent } from \"../check-book/check-book.component\";\r\nimport { TreasuryReviewComponent } from \"./treasury-review.component\";\r\n\r\nconst components = [TreasuryReviewComponent, CheckBookComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, ReportReviewModule],\r\n})\r\nexport class TreasuryReviewModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { DurationKind } from \"../../models/tresury.enums\";\r\nimport { TrsConcern } from \"../../models/trs-concern.model\";\r\n\r\n@Component({\r\n selector: \"ngx-trs-concern-form\",\r\n templateUrl: \"./trs-concern-form.component.html\",\r\n styleUrls: [\"./trs-concern-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TrsConcernFormComponent extends BaseFormComponent {\r\n constructor(private lookupservice: LookupService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"TrsConcern\";\r\n this.label = \"بابت\";\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (this.model.Active === undefined) this.model.Active = true;\r\n if (this.model.IsCost === undefined) this.model.IsCost = false;\r\n if (!this.model.DurationKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"TRS\", \"DurationKind\", DurationKind.Day)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.DurationKindId = x.Id;\r\n this.model.DurationKindCode = x.Code;\r\n this.model.DurationKindTitle = x.Title;\r\n this.setValue(\"DurationKindId\", x.Id);\r\n this.setValue(\"DurationKindCode\", x.Code);\r\n this.setValue(\"DurationKindTitle\", x.Title);\r\n });\r\n }\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { TrsConcern } from \"../../models/trs-concern.model\";\r\n\r\n@Component({\r\n selector: \"trs-concern-import-excel-form\",\r\n templateUrl: \"./trs-concern-import-excel-form.component.html\",\r\n styleUrls: [\"./trs-concern-import-excel-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TrsConcernImportExcelFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n gridInfo: GridColumnInfoDetail[];\r\n TrsConcernLiist: TrsConcern[] = [];\r\n public hColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"TrsConcern\";\r\n this.label = \"دریافت فایل اکسل\";\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns.push({\r\n label: \"ردیف اول عنون ستونهاست.\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"isFirstRowColumnsName\",\r\n disabled: false,\r\n name: \"isFirstRowColumnsName\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.hColumns = this.hColumns;\r\n }\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n alert(\"انتخاب بیش از یک فایل مجاز نیست.\");\r\n return;\r\n } else {\r\n const result = await this.parseExcelDoc(target.files[0]).catch((err) => console.error(err));\r\n await this.SetDetailLedgerInfo(result);\r\n }\r\n }\r\n async SetDetailLedgerInfo(excelData: any[]) {\r\n let ColumnsName = [];\r\n let ErroeMessage: string = \"\";\r\n if (this.formGroup.get(\"isFirstRowColumnsName\")?.value === true) {\r\n ColumnsName = excelData[0] as any[];\r\n } else ColumnsName = this.gridInfo.filter((c) => c.name != null && c.title != \"عملیات\" && !c.hidden) as any[];\r\n let isFirtsRow: boolean = true;\r\n for (var i = 0; i < excelData.length; i++) {\r\n var x = excelData[i];\r\n if (this.formGroup.get(\"isFirstRowColumnsName\").value === true && isFirtsRow === true) {\r\n } else {\r\n let row: TrsConcern = {};\r\n let index: number = 0;\r\n ColumnsName.forEach((c) => {\r\n let key: string;\r\n if (c.name) key = c.name;\r\n else {\r\n if (this.orignalColumns.some((g) => g.label === c || g.name == c)) {\r\n key = this.orignalColumns.find((g) => g.label === c || g.name == c).name;\r\n }\r\n }\r\n row[key] = x[index];\r\n index++;\r\n });\r\n if (!this.TrsConcernLiist.some((g) => g.Code === row.Code || g.Title?.trim() === row.Title?.trim())) {\r\n this.TrsConcernLiist.push(row);\r\n } else {\r\n console.log(row);\r\n }\r\n }\r\n if (isFirtsRow === true) isFirtsRow = false;\r\n if (ErroeMessage) break;\r\n }\r\n if (!ErroeMessage) {\r\n await this.httpCommonService\r\n .bulkInsert(this.apiName, this.TrsConcernLiist)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت ذخیره شد.\");\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در ذخیره اطلاعات\");\r\n }\r\n );\r\n } else this.sts.showDialog(ErroeMessage, \"خطا در دریافت بابت\");\r\n }\r\n public cancel() {\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { ColumnBase } from \"@progress/kendo-angular-grid\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { TrsConcern } from \"../../models/trs-concern.model\";\r\nimport { TrsConcernFormComponent } from \"../trs-concern-form/trs-concern-form.component\";\r\nimport { TrsConcernImportExcelFormComponent } from \"../trs-concern-import-excel/trs-concern-import-excel-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-trs-concern-list\",\r\n templateUrl: \"./trs-concern-list.component.html\",\r\n styleUrls: [\"./trs-concern-list.component.scss\"],\r\n})\r\nexport class TrsConcernListComponent extends BaseListComponent {\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n constructor() {\r\n super();\r\n this.inputEditorform = TrsConcernFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"TrsConcern\";\r\n this.areaName = \"Treasury\";\r\n this.label = \"فهرست بابت\";\r\n this.setactions();\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"ImportFromExcel\",\r\n disabled: false,\r\n displayName: \"ورودی اکسل\",\r\n iconName: \"icon-file-excel-o\",\r\n apiName: \"TrsConcern/ImportExcel\",\r\n areaName: \"Treasury\",\r\n Form_Component: TrsConcernImportExcelFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: TrsConcern, onRowsSelected: TrsConcern[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n if (action.name === \"ImportFromExcel\") {\r\n var gridInfo = this.getGridInfo(this.grid.grid.columns.toArray());\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n gridInfo: gridInfo,\r\n label: action.displayName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n }\r\n }\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.getGridInfo(this.grid.grid.columns.toArray()));\r\n });\r\n }\r\n\r\n getGridInfo(columns: ColumnBase[]): GridColumnInfoDetail[] {\r\n return columns\r\n .filter((x) => !x.hidden)\r\n .map((x) => {\r\n const info = new GridColumnInfoDetail();\r\n info.name = x[\"field\"];\r\n info.hidden = x.hidden;\r\n info.orderindex = x.orderIndex;\r\n info.title = x.title;\r\n return info;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { TrsConcernFormComponent } from \"./trs-concern-form/trs-concern-form.component\";\r\nimport { TrsConcernImportExcelFormComponent } from \"./trs-concern-import-excel/trs-concern-import-excel-form.component\";\r\nimport { TrsConcernListComponent } from \"./trs-concern-list/trs-concern-list.component\";\r\nconst components = [TrsConcernListComponent, TrsConcernFormComponent, TrsConcernImportExcelFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class TrsConcernModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { EditableGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { DetailLedgerKind, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter, PagingDataResult, isNumber } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { TrsVoucherKind } from \"../../models/trs-voucher-kind.model\";\r\n\r\n@Component({\r\n selector: \"ngx-trs-voucher-kind-form\",\r\n templateUrl: \"./trs-voucher-kind-form.component.html\",\r\n styleUrls: [\"./trs-voucher-kind-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TrsVoucherKindFormComponent extends BaseFormComponent {\r\n activeTabTitle: string;\r\n DefaultValues: Dictionary = [];\r\n invColumns: form_control[];\r\n sellColumns: form_control[];\r\n detailsColumns: form_control[];\r\n TrsVoucherKindConcerns: form_control[];\r\n TrsReferenceVoucherKinds: form_control[];\r\n TrsVoucherKindDetailLedgerKinds: form_control[];\r\n TrsVoucherKindTreasuryDetailLedgerKinds: form_control[];\r\n public FormControlTypes = FormControlTypes;\r\n @ViewChild(\"Concern\") public Concern: EditableGridComponent;\r\n @ViewChild(\"ReferenceVoucherKind\") public ReferenceVoucherKind: EditableGridComponent;\r\n @ViewChild(\"VoucherKindDetailLedgerKind\") public VoucherKindDetailLedgerKind: EditableGridComponent;\r\n @ViewChild(\"VoucherKindTreasuryDetailLedgerKind\") public VoucherKindTreasuryDetailLedgerKind: EditableGridComponent;\r\n constructor(\r\n private datatransfer: Datatransfer,\r\n __id: FormContainerModel,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n _tabsservice: TabularService\r\n ) {\r\n super(selectorService, cd);\r\n this.currentrow = this.datatransfer?.currentrow;\r\n this.apiName = this.datatransfer?.apiName;\r\n this.label = this.datatransfer?.label;\r\n this.areaName = this.datatransfer?.areaName;\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n this.onDataStateChange = this.onDataStateChange.bind(this);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"TrsVoucherKind\";\r\n this.label = \"انواع سند\";\r\n super.ngOnInit();\r\n this.canDeactivate = this.canDeactivate.bind(this);\r\n }\r\n setdefault() {\r\n this.selectorService.setDataStateChange(\"DetailLedgerKindId\", this.onDataStateChange);\r\n if (this.model && this.model.Title) {\r\n this.label = this.model.Title + `(${this.model.Code ?? 0})`;\r\n this.tabsservice.setTabTitle(this._id.metadata.id, this.getFormTitle());\r\n }\r\n\r\n this.DefaultValues[\"TrsVoucherKindId\"] = 0;\r\n this.DefaultValues[\"TrsVoucherKindId\"] = 0;\r\n if (this.model.Active === undefined) this.model.Active = true;\r\n\r\n if (!this.model.OrderByNumber) this.model.OrderByNumber = 1;\r\n if (!this.model.TrsReferenceVoucherKinds) this.model.TrsReferenceVoucherKinds = [];\r\n if (!this.model.TrsVoucherKindDetailLedgerKinds) this.model.TrsVoucherKindDetailLedgerKinds = [];\r\n if (!this.model.TrsVoucherKindTreasuryDetailLedgerKinds) this.model.TrsVoucherKindTreasuryDetailLedgerKinds = [];\r\n if (!this.model.TrsVoucherKindConcerns) this.model.TrsVoucherKindConcerns = [];\r\n this.setDefaultValues();\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.DefaultValues = undefined;\r\n this.invColumns = undefined;\r\n this.sellColumns = undefined;\r\n this.detailsColumns = undefined;\r\n this.TrsVoucherKindConcerns = undefined;\r\n this.TrsReferenceVoucherKinds = undefined;\r\n this.TrsVoucherKindDetailLedgerKinds = undefined;\r\n this.TrsVoucherKindTreasuryDetailLedgerKinds = undefined;\r\n this.FormControlTypes = undefined;\r\n this.Concern = undefined;\r\n this.ReferenceVoucherKind = undefined;\r\n this.VoucherKindDetailLedgerKind = undefined;\r\n this.VoucherKindTreasuryDetailLedgerKind = undefined;\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n setDefaultValues() {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.controlType === FormControlTypes.checkbox && this.model[x.name] === undefined) this.model[x.name] = false;\r\n });\r\n }\r\n\r\n async setColumns() {\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (data) {\r\n this.orignalColumns = data as form_control[];\r\n this.columns = (data as form_control[]).filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnNumber(this.columns, 6);\r\n this.detailsColumns = (data as form_control[]).filter(\r\n (f) => ((!f.areaName || f.areaName === \"details\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.detailsColumns = this.detailsColumns.sort((a, b) => a.order - b.order);\r\n this.setColumnNumber(this.detailsColumns, 6);\r\n this.TrsVoucherKindConcerns = this.getDetailControlModels(\"TrsVoucherKindConcerns\");\r\n this.TrsReferenceVoucherKinds = this.getDetailControlModels(\"TrsReferenceVoucherKinds\");\r\n this.TrsVoucherKindDetailLedgerKinds = this.getDetailControlModels(\"TrsVoucherKindDetailLedgerKinds\");\r\n this.TrsVoucherKindTreasuryDetailLedgerKinds = this.getDetailControlModels(\"TrsVoucherKindTreasuryDetailLedgerKinds\");\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n }\r\n });\r\n this.columns.forEach((x) => (x.isFloat = null));\r\n this.cd.markForCheck();\r\n }\r\n\r\n beforupdate() {\r\n if (this.Concern) this.Concern.saveCurrent();\r\n if (this.ReferenceVoucherKind) this.ReferenceVoucherKind.saveCurrent();\r\n if (this.VoucherKindDetailLedgerKind) this.VoucherKindDetailLedgerKind.saveCurrent();\r\n if (this.VoucherKindTreasuryDetailLedgerKind) this.VoucherKindTreasuryDetailLedgerKind.saveCurrent();\r\n\r\n if (this.model.TrsReferenceVoucherKinds && this.model.TrsReferenceVoucherKinds.length <= 0) this.model.TrsReferenceVoucherKinds = null;\r\n else this.setValue(\"TrsReferenceVoucherKinds\", this.model.TrsReferenceVoucherKinds);\r\n\r\n if (this.model.TrsVoucherKindConcerns && this.model.TrsVoucherKindConcerns.length <= 0) this.model.TrsVoucherKindConcerns = null;\r\n else this.setValue(\"TrsVoucherKindConcerns\", this.model.TrsVoucherKindConcerns);\r\n if (this.model.TrsVoucherKindDetailLedgerKinds && this.model.TrsVoucherKindDetailLedgerKinds.length <= 0)\r\n this.model.TrsVoucherKindDetailLedgerKinds = null;\r\n else this.setValue(\"TrsVoucherKindDetailLedgerKinds\", this.model.TrsVoucherKindDetailLedgerKinds);\r\n if (this.model.TrsVoucherKindTreasuryDetailLedgerKinds && this.model.TrsVoucherKindTreasuryDetailLedgerKinds.length <= 0)\r\n this.model.TrsVoucherKindTreasuryDetailLedgerKinds = null;\r\n else this.setValue(\"TrsVoucherKindTreasuryDetailLedgerKinds\", this.model.TrsVoucherKindTreasuryDetailLedgerKinds);\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.saveDetailInfo();\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n saveDetailInfo() {\r\n if (this.Concern) this.Concern.saveCurrent();\r\n if (this.ReferenceVoucherKind) this.ReferenceVoucherKind.saveCurrent();\r\n if (this.VoucherKindDetailLedgerKind) this.VoucherKindDetailLedgerKind.saveCurrent();\r\n if (this.VoucherKindTreasuryDetailLedgerKind) this.VoucherKindTreasuryDetailLedgerKind.saveCurrent();\r\n }\r\n getDetailControlModels(keyName: string) {\r\n let columns = this.orignalColumns.find((x) => x.name === keyName).DetailControlModels[keyName];\r\n for (var i = 0; i < columns.length; i++) {\r\n if (columns[i][\"apiName\"]) columns[i][\"isMulti\"] = true;\r\n }\r\n return columns;\r\n }\r\n close() {\r\n this.accountService.authService.getMvcController();\r\n super.close();\r\n }\r\n\r\n getFilters(columnsName: string, searchValue: string, skip: number, take: number) {\r\n var filters: GridFilter[] = [];\r\n const columns = columnsName.split(\",\");\r\n columns.forEach((x) => {\r\n {\r\n if (x !== \"Id\")\r\n filters.push({ Filed: x, Operator: \"contains\", Type: \"F\", Skip: skip, Take: take, Value: searchValue.toString(), Logic: \"or\" });\r\n else if (isNumber(searchValue))\r\n filters.push({ Filed: x, Operator: \"eq\", Type: \"F\", Skip: skip, Take: take, Value: Number(searchValue), Logic: \"or\" });\r\n }\r\n });\r\n return filters;\r\n }\r\n onDataStateChange(columnName: string, searchValue: string, skip: number, take: number): Observable> {\r\n var abs = new BehaviorSubject>(undefined);\r\n const DetailLedgerKindIds: number[] = [];\r\n let apiName: string = \"DetailLedgerKind/GetDetailLedgerKindById\";\r\n if (columnName === \"DetailLedgerKindId\" && this.VoucherKindDetailLedgerKind?.formGroup) {\r\n this.model.TrsVoucherKindDetailLedgerKinds.forEach((x) => {\r\n if (x.State !== RowState.Delete && x.State !== RowState.Detached) DetailLedgerKindIds.push(x.DetailLedgerKindId);\r\n });\r\n }\r\n if (columnName === \"DetailLedgerKindId\" && this.VoucherKindTreasuryDetailLedgerKind?.formGroup) {\r\n this.model.TrsVoucherKindTreasuryDetailLedgerKinds.forEach((x) => {\r\n if (x.State !== RowState.Delete && x.State !== RowState.Detached) DetailLedgerKindIds.push(x.DetailLedgerKindId);\r\n });\r\n }\r\n const filter = this.getFilters(\"Id,Code,Title\", searchValue, skip, take);\r\n if (DetailLedgerKindIds && DetailLedgerKindIds.length > 0)\r\n filter.push({ Filed: \"DetailLedgerKindIds\", Operator: \"eq\", Value: DetailLedgerKindIds, Type: \"F\", Skip: skip, Take: take, Logic: \"and\" });\r\n this.httpCommonService\r\n .GetFilterGrid>(apiName, filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x: PagingDataResult) => {\r\n if (x) abs.next(x);\r\n });\r\n return abs.asObservable();\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { TrsVoucherKind } from \"../../models/trs-voucher-kind.model\";\r\n\r\n@Component({\r\n selector: \"trs-voucher-kind-import-export-form\",\r\n templateUrl: \"./trs-voucher-kind-import-export-form.component.html\",\r\n styleUrls: [\"./trs-voucher-kind-import-export-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TrsVoucherKindImportExportFormComponent extends BaseFormComponent {\r\n isloading: boolean = false;\r\n gridInfo: GridColumnInfoDetail[];\r\n TrsVoucherKindList: TrsVoucherKind[] = [];\r\n public hColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"TrsVoucherKind\";\r\n this.label = \"استخراج و دریافت\";\r\n super.ngOnInit();\r\n //await this.setData();\r\n }\r\n async setColumns() {\r\n await super.setColumns();\r\n this.hColumns = [];\r\n this.hColumns = this.hColumns;\r\n }\r\n addControl(): void {\r\n this.setValue(\"isFirstRowColumnsName\", true);\r\n }\r\n async onFileChange(evt: any) {\r\n const target: DataTransfer = evt.target;\r\n if (target.files.length > 1) {\r\n alert(\"انتخاب بیش از یک فایل مجاز نیست.\");\r\n return;\r\n } else {\r\n var file = target.files[0] as File;\r\n let fileReader: FileReader = new FileReader();\r\n fileReader.onloadend = () => {\r\n var fileContent = fileReader.result.toString();\r\n this.TrsVoucherKindList = JSON.parse(fileContent);\r\n this.saveData().then();\r\n };\r\n fileReader.readAsText(file);\r\n }\r\n }\r\n async saveData() {\r\n await this.httpCommonService\r\n .createlist(\"TrsVoucherKind/ImportExport\", this.TrsVoucherKindList)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت ذخیره شد.\");\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n saveText(text, filename) {\r\n var a = document.createElement(\"a\");\r\n a.setAttribute(\"href\", \"data:text/plain;charset=utf-u,\" + encodeURIComponent(text));\r\n a.setAttribute(\"download\", filename);\r\n a.click();\r\n }\r\n async exportData() {\r\n await this.httpCommonService\r\n .getList(\"TrsVoucherKind\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.TrsVoucherKindList = data as TrsVoucherKind[];\r\n this.saveText(JSON.stringify(this.TrsVoucherKindList), \"TrsVoucherKind.json\");\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n public cancel() {\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n","import { Component, Type, ViewChild } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\n\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\n\r\nimport { ColumnBase } from \"@progress/kendo-angular-grid\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherDetailCommentComponent } from \"src/app/backoffice/acc/acc-voucher-detail-comment/acc-voucher-detail-comment.component\";\r\nimport { TrsVoucherKind } from \"../../models/trs-voucher-kind.model\";\r\nimport { TrsVoucherKindFormComponent } from \"../trs-voucher-kind-form/trs-voucher-kind-form.component\";\r\nimport { TrsVoucherKindImportExportFormComponent } from \"../trs-voucher-kind-import-export/trs-voucher-kind-import-export-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-trs-voucher-kind-list\",\r\n templateUrl: \"./trs-voucher-kind-list.component.html\",\r\n styleUrls: [\"./trs-voucher-kind-list.component.scss\"],\r\n})\r\nexport class TrsVoucherKindListComponent extends BaseListComponent {\r\n actions: EntityListAction[];\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n constructor(public dialogService: SimpleModalService) {\r\n super();\r\n this.inputEditorform = TrsVoucherKindFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"TrsVoucherKind\";\r\n this.areaName = \"Treasury\";\r\n this.label = \"انواع سند\";\r\n this.setactions();\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: TrsVoucherKind,\r\n onRowsSelected: TrsVoucherKind[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n if (action.name === \"AccVoucherDetailComment\") {\r\n if (!onRowSelected || !onRowSelected.HasJournalVoucher) {\r\n this.sts.showDialog(\"هیچ نوع سندی انتخاب نشده یا با سیستم حسابداری مرتبط نیست\", \"خطا\");\r\n return;\r\n }\r\n let accVoucherDetailComment: Type = AccVoucherDetailCommentComponent;\r\n this.dialogService\r\n .open(\r\n accVoucherDetailComment,\r\n {\r\n VoucherKindTitle: onRowSelected.Title,\r\n TrsVoucherKindId: onRowSelected.Id,\r\n },\r\n {\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {});\r\n }\r\n if (action.name === \"ImportFromExcel\" || action.name === \"ImportExport\") {\r\n var gridInfo = this.getGridInfo(this.grid.grid.columns.toArray());\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n gridInfo: gridInfo,\r\n label: action.displayName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n }\r\n return;\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"AccVoucherDetailComment\",\r\n disabled: false,\r\n displayName: \"قالب شرح سند حسابداری\",\r\n iconName: \"icon-format_list_numbered_rtl-o\",\r\n apiName: \"AccVoucherDetailComment\",\r\n areaName: \"Accounting\",\r\n permission: Permission.managePermission,\r\n },\r\n {\r\n name: \"ImportExport\",\r\n disabled: false,\r\n displayName: \"استخراج و دریافت\",\r\n iconName: \"icon-import_export-o\",\r\n apiName: \"TrsVoucherKind/ImportExport\",\r\n areaName: \"Treasury\",\r\n Form_Component: TrsVoucherKindImportExportFormComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n getGridInfo(columns: ColumnBase[]): GridColumnInfoDetail[] {\r\n return columns\r\n .filter((x) => !x.hidden)\r\n .map((x) => {\r\n const info = new GridColumnInfoDetail();\r\n info.name = x[\"field\"];\r\n info.hidden = x.hidden;\r\n info.orderindex = x.orderIndex;\r\n info.title = x.title;\r\n return info;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { TrsVoucherKindFormComponent } from \"./trs-voucher-kind-form/trs-voucher-kind-form.component\";\r\nimport { TrsVoucherKindImportExportFormComponent } from \"./trs-voucher-kind-import-export/trs-voucher-kind-import-export-form.component\";\r\nimport { TrsVoucherKindListComponent } from \"./trs-voucher-kind-list/trs-voucher-kind-list.component\";\r\nconst components = [TrsVoucherKindFormComponent, TrsVoucherKindListComponent, TrsVoucherKindImportExportFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class TrsVoucherKindModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\n@Component({\r\n selector: \"ngx-cheque-book-info-form\",\r\n templateUrl: \"./cheque-book-info-form.component.html\",\r\n styleUrls: [\"./cheque-book-info-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ChequeBookInfoFormComponent extends BaseFormComponent {\r\n @Input() ChequeBookDescription: string;\r\n constructor(_tabsservice: TabularService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n }\r\n async ngOnInit() {\r\n this.label = \"چاپ چک\";\r\n this.setdefault();\r\n }\r\n setdefault() {\r\n this.model = {};\r\n this.model[\"HasDateToLeter\"] = true;\r\n this.model[\"HasRemitted\"] = false;\r\n this.model[\"HasAdditionalDescription\"] = false;\r\n this.model[\"ChequeBookDescription\"] = this.ChequeBookDescription;\r\n this.model[\"AdditionalDescription\"] = \"بدون خط خوردگی\";\r\n this.orignalColumns = [];\r\n this.orignalColumns.push({\r\n label: \"تاریخ به حروف\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"HasDateToLeter\",\r\n disabled: false,\r\n name: \"HasDateToLeter\",\r\n order: 0,\r\n textType: \"text\",\r\n userClass: \"select-shr\",\r\n columnNumber: 1,\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.orignalColumns.push({\r\n label: \"حواله کرد\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"HasRemitted\",\r\n disabled: false,\r\n name: \"HasRemitted\",\r\n order: 1,\r\n textType: \"text\",\r\n userClass: \"select-shr\",\r\n columnNumber: 1,\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.orignalColumns.push({\r\n label: \"شرح تکمیلی\",\r\n controlType: FormControlTypes.checkbox,\r\n modelName: \"HasAdditionalDescription\",\r\n disabled: false,\r\n name: \"HasAdditionalDescription\",\r\n order: 2,\r\n textType: \"text\",\r\n columnNumber: 1,\r\n userClass: \"select-shr\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.orignalColumns.push({\r\n label: \"شرح چک\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ChequeBookDescription\",\r\n disabled: false,\r\n name: \"ChequeBookDescription\",\r\n order: 3,\r\n textType: \"text\",\r\n userClass: \"select-md\",\r\n columnNumber: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.orignalColumns.push({\r\n label: \"شرح تکمیلی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"AdditionalDescription\",\r\n disabled: false,\r\n name: \"AdditionalDescription\",\r\n order: 4,\r\n textType: \"text\",\r\n userClass: \"select-md\",\r\n columnNumber: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns = this.orignalColumns;\r\n this.setFormGroup(this.model);\r\n }\r\n public async save() {\r\n this.result = this.getDataFromFormGroup();\r\n this.close();\r\n }\r\n}\r\n","\r\n\r\n","import { ChangeDetectorRef, Component, Input } from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { Observable } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { TrsVoucherHeader } from \"../../models/trs-voucher-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-trs-reference-voucher-list\",\r\n templateUrl: \"./trs-reference-voucher-list.component.html\",\r\n styleUrls: [\"./trs-reference-voucher-list.component.scss\"],\r\n})\r\nexport class TrsReferenceVoucherListComponent extends BaseFormComponent {\r\n @Input() VoucherId: number;\r\n dataList: any[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.getDataList();\r\n this.setColumns();\r\n this.formGroup = new UntypedFormGroup({});\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.dataList = undefined;\r\n }\r\n canDeactivate(): boolean | Observable {\r\n return true;\r\n }\r\n getDataList() {\r\n this.httpCommonService\r\n .get(this.apiName + \"/?id=\" + this.VoucherId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.dataList = data as [];\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n async setColumns() {\r\n this.orignalColumns = [];\r\n this.columns = [\r\n {\r\n name: \"RowNumber\",\r\n modelName: \"RowNumber\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"ردیف\",\r\n order: 1,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"VoucherKindCode\",\r\n modelName: \"VoucherKindCode\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"کد نوع سند\",\r\n order: 2,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"VoucherKindTitle\",\r\n modelName: \"VoucherKindTitle\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"نوع سند\",\r\n order: 3,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"VoucherNo\",\r\n modelName: \"VoucherNo\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"شماره سند\",\r\n order: 4,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"ShamsiVoucherDate\",\r\n modelName: \"ShamsiVoucherDate\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"تاریخ سند\",\r\n order: 5,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"ConcernCode\",\r\n modelName: \"ConcernCode\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"َکد بابت\",\r\n order: 6,\r\n textType: \"text\",\r\n withComma: false,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"ConcernTitle\",\r\n modelName: \"ConcernTitle\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"بابت\",\r\n order: 7,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"SubLedgerCode\",\r\n modelName: \"SubLedgerCode\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: false,\r\n label: \"کد معین\",\r\n order: 8,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"SubLedgerTitle\",\r\n modelName: \"SubLedgerTitle\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"معین\",\r\n order: 9,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedgerCode\",\r\n modelName: \"DetailLedgerCode\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: false,\r\n label: \"کد تفصیلی\",\r\n order: 10,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailLedgerTitle\",\r\n modelName: \"DetailLedgerTitle\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"تفصیلی طرف مقابل\",\r\n order: 11,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"TreasuryDetailLedgerCode\",\r\n modelName: \"TreasuryDetailLedgerCode\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"کد تفصیلی خزانه\",\r\n order: 12,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"TreasuryDetailLedgerTitle\",\r\n modelName: \"TreasuryDetailLedgerTitle\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"تفصیلی خزانه\",\r\n order: 13,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"BankTitle\",\r\n modelName: \"BankTitle\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"بانک\",\r\n order: 14,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"BankAccountNo\",\r\n modelName: \"BankAccountNo\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"حساب بانکی\",\r\n order: 125,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"BankBranchTitle\",\r\n modelName: \"BankBranchTitle\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"شعبه\",\r\n order: 16,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DocumentNo\",\r\n modelName: \"DocumentNo\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"شماره مدرک\",\r\n order: 17,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"ShamsiDocumentDate\",\r\n modelName: \"ShamsiDocumentDate\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"تاریخ مدرک\",\r\n order: 18,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"Price\",\r\n modelName: \"Price\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"مبلغ\",\r\n order: 19,\r\n textType: \"number\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n {\r\n name: \"DetailComment\",\r\n modelName: \"DetailComment\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: \"شرح\",\r\n order: 20,\r\n textType: \"text\",\r\n withComma: true,\r\n isDecimal: true,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: null,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { TrsVoucherDetail } from \"../../models/trs-voucher-detail.model\";\r\n\r\n@Component({\r\n selector: \"ngx-trs-voucher-detail-filter\",\r\n templateUrl: \"./trs-voucher-detail-filter.component.html\",\r\n styleUrls: [\"./trs-voucher-detail-filter.component.scss\"],\r\n})\r\nexport class TrsVoucherDetailFilterComponent extends BaseFormComponent {\r\n filterList: GridFilter[];\r\n formGroupIsOk: boolean = false;\r\n ConcernIds: number[] = [];\r\n TreasuryDetailLedgerIds: number[] = [];\r\n PayerDetailLedgerIds: number[] = [];\r\n DetailLedgerIds: number[] = [];\r\n BankIds: number[] = [];\r\n BankAccountIds: number[] = [];\r\n ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this.filterList = undefined;\r\n this.ConcernIds = undefined;\r\n this.TreasuryDetailLedgerIds = undefined;\r\n this.PayerDetailLedgerIds = undefined;\r\n this.DetailLedgerIds = undefined;\r\n this.BankIds = undefined;\r\n this.BankAccountIds = undefined;\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: \"از شماره مدرک\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"StartDocumentNo\",\r\n disabled: false,\r\n name: \"StartDocumentNo\",\r\n order: 0,\r\n textType: \"number\",\r\n columnNumber: 1,\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا شماره مدرک\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"EndDocumentNo\",\r\n disabled: false,\r\n name: \"EndDocumentNo\",\r\n order: 1,\r\n textType: \"number\",\r\n columnNumber: 1,\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"از تاریخ مدرک\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"StartDocumentDate\",\r\n disabled: false,\r\n name: \"StartDocumentDate\",\r\n order: 2,\r\n textType: \"text\",\r\n columnNumber: 1,\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا تاریخ مدرک\",\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EndDocumentDate\",\r\n disabled: false,\r\n name: \"EndDocumentDate\",\r\n order: 3,\r\n textType: \"text\",\r\n columnNumber: 1,\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"از مبلغ\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"StartPrice\",\r\n disabled: false,\r\n name: \"StartPrice\",\r\n order: 4,\r\n textType: \"number\",\r\n columnNumber: 1,\r\n userClass: \"select-shr\",\r\n isFloat: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"تا مبلغ\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"EndPrice\",\r\n disabled: false,\r\n name: \"EndPrice\",\r\n order: 5,\r\n textType: \"number\",\r\n columnNumber: 1,\r\n userClass: \"select-shr\",\r\n formVisible: true,\r\n isFloat: 1,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: \"شرح قلم (شامل)\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DetailComment\",\r\n disabled: false,\r\n name: \"DetailComment\",\r\n order: 6,\r\n textType: \"text\",\r\n columnNumber: 1,\r\n userClass: \"select-sm\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.orignalColumns = this.columns;\r\n this.setFormGroup(this.model);\r\n }\r\n async save() {\r\n let entity = this.formGroup.value;\r\n let filters: GridFilter[] = [];\r\n Object.keys(this.formGroup.controls).forEach((key) => {\r\n this.model[key] = this.formGroup.controls[key].value;\r\n if (this.formGroup.controls[key].value && (!key.includes(\"Ids\") || this.formGroup.controls[key].value.length > 0))\r\n filters.push({ Filed: key, Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: this.formGroup.controls[key].value, Logic: \"and\" });\r\n });\r\n this.result = filters;\r\n this.closeModal();\r\n }\r\n addControl(): void {\r\n this.formGroupIsOk = false;\r\n this.setValue(\"ConcernIds\", this.ConcernIds);\r\n this.setValue(\"TreasuryDetailLedgerIds\", this.TreasuryDetailLedgerIds);\r\n this.setValue(\"PayerDetailLedgerIds\", this.PayerDetailLedgerIds);\r\n this.setValue(\"DetailLedgerIds\", this.DetailLedgerIds);\r\n this.setValue(\"BankIds\", this.BankIds);\r\n this.setValue(\"BankAccountIds\", this.BankAccountIds);\r\n this.formGroupIsOk = true;\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostListener, Input, OnInit, Output, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, ValidatorFn, Validators } from \"@angular/forms\";\r\nimport { ColumnComponent, GridComponent, RowArgs, ScrollRequest } from \"@progress/kendo-angular-grid\";\r\nimport { State } from \"@progress/kendo-data-query/dist/npm/state\";\r\nimport { Moment } from \"jalali-moment\";\r\n\r\nimport * as moment from \"jalali-moment\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { DetailLedger, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { GridColumnInfo, GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport {\r\n AccountService,\r\n GridFilter,\r\n HttpCommonService,\r\n isNullOrUndefined,\r\n isNumber,\r\n LookupService,\r\n PagingDataResult,\r\n ShowToastrService,\r\n} from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { BehaviorSubject, Observable, Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ChequeBookDetail } from \"../../models/cheque-book-Header.model\";\r\nimport { TrsReferenceVoucherByVoucherKindFilterInfo } from \"../../models/trs-reference-voucher-byvoucher-kindfilterinfo\";\r\nimport { TrsVoucherDetail } from \"../../models/trs-voucher-detail.model\";\r\nimport { TrsVoucherKind } from \"../../models/trs-voucher-kind.model\";\r\n\r\n@Component({\r\n selector: \"trs-voucher-detail\",\r\n templateUrl: \"./trs-voucher-detail.component.html\",\r\n styleUrls: [\"./trs-voucher-detail.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TrsVoucherDetailComponent implements OnInit {\r\n dataReadedColumns: string = \"\";\r\n LookupData: Dictionary = [];\r\n DefaultValues: Dictionary = [];\r\n _GridColumnInfo: GridColumnInfo;\r\n isFirstLoad: boolean;\r\n @ViewChild(\"grid\") public grid: GridComponent;\r\n currentLookup: any;\r\n public isNew: boolean;\r\n public mySelection: number[] = [];\r\n isDisabled: boolean = false;\r\n groupsName = \"VoucherNo\";\r\n isLOading: boolean = false;\r\n treferenceVoucherLoded: boolean = false;\r\n ngUnsubscribe = new Subject();\r\n @Input() headerTitleToDetailTitle: string;\r\n @Output() valueChanges = new EventEmitter();\r\n @Input() RowNumberName: string;\r\n @Input() columns: form_control[] = [];\r\n @Input() isAdd: boolean = true;\r\n @Input() isEdit: boolean = false;\r\n @Input() isDelete: boolean = true;\r\n @Input() isPriceable: boolean = false;\r\n @Input() hasDiscount: boolean = false;\r\n @Input() hasReference: boolean = false;\r\n @Input() hasReferenceRequired: boolean = false;\r\n @Input() IsPurchaseTrsoice: boolean = false;\r\n @Input() IsReturnPurchaseTrsoice: boolean = false;\r\n _filterEntity: TrsReferenceVoucherByVoucherKindFilterInfo;\r\n @Input() get filterEntity(): TrsReferenceVoucherByVoucherKindFilterInfo {\r\n return this._filterEntity;\r\n }\r\n get detailLedgerLevel(): number {\r\n return this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n }\r\n set filterEntity(value: TrsReferenceVoucherByVoucherKindFilterInfo) {\r\n if (\r\n !this._filterEntity ||\r\n this._filterEntity.BranchId !== value.BranchId ||\r\n this._filterEntity.FiscalYearId !== value.FiscalYearId ||\r\n this._filterEntity.DetailLedgerId !== value.DetailLedgerId ||\r\n this._filterEntity.ReferencedVoucherKindId !== value.ReferencedVoucherKindId ||\r\n this._filterEntity.VoucherKindId !== value.VoucherKindId ||\r\n new Date(this._filterEntity.VoucherDate).setHours(0, 0, 0, 0) !== new Date(value.VoucherDate).setHours(0, 0, 0, 0) ||\r\n this._filterEntity.TreasuryDetailLedgerId !== value.TreasuryDetailLedgerId ||\r\n this._filterEntity.DurationKindCode !== value.DurationKindCode\r\n ) {\r\n this.treferenceVoucherLoded = false;\r\n this._filterEntity = value;\r\n this.setreferenceVoucherByVoucherKindList(\"TrsVoucherHeader/GeTreferenceVoucherByVoucherKind\");\r\n }\r\n this._filterEntity = value;\r\n }\r\n public isRowSelected = (e: RowArgs) => this.mySelection.indexOf(e.dataItem.RowNumber) >= 0;\r\n\r\n _ReferenceVoucherKindId: number;\r\n @Input() get ReferenceVoucherKindId(): number {\r\n return this._ReferenceVoucherKindId;\r\n }\r\n set ReferenceVoucherKindId(value: number) {\r\n this._ReferenceVoucherKindId = value;\r\n this.setColumns();\r\n }\r\n @Input() CurrentVoucherKind: TrsVoucherKind;\r\n public formGroup: UntypedFormGroup;\r\n _dataList: TrsVoucherDetail[];\r\n loadingData: boolean = false;\r\n @Input()\r\n get dataList(): TrsVoucherDetail[] {\r\n return this._dataList;\r\n }\r\n set dataList(value: TrsVoucherDetail[]) {\r\n this._dataList = value;\r\n let filterddata = this._dataList?.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata?.sort((a, b) => a.RowNumber - b.RowNumber);\r\n }\r\n gridData: TrsVoucherDetail[];\r\n rowIsEditing: boolean = false;\r\n CurrentReferenceVoucherKind: TrsVoucherKind;\r\n editedRow: any;\r\n editedRowIndex: number = 0;\r\n public state: State = {\r\n skip: 0,\r\n take: 5,\r\n filter: {\r\n logic: \"and\",\r\n filters: [],\r\n },\r\n group: [],\r\n };\r\n\r\n getGridCell(index) {\r\n return this.grid.columns.toArray()[index];\r\n }\r\n getColumnIndex(colIndex: number) {\r\n let index: number = -1;\r\n let ColumnName: string;\r\n this.grid.columns\r\n .toArray()\r\n .filter((x) => x.isVisible)\r\n .forEach((x) => {\r\n index = index + 1;\r\n if (index == colIndex) ColumnName = x[\"field\"];\r\n });\r\n return ColumnName;\r\n }\r\n DetailControlModels: Dictionary;\r\n @HostListener(\"window:keydown\", [\"$event\"])\r\n cArrowDown(e: KeyboardEvent) {\r\n if (document.hidden) return;\r\n if (e.altKey && e.shiftKey && (e.key === \"n\" || e.key === \"N\" || e.key === \"أ\")) {\r\n e.preventDefault();\r\n this.addHandler();\r\n }\r\n if (e.ctrlKey && e.altKey && (e.key === \"s\" || e.key === \"S\" || e.key === \"س\")) {\r\n e.preventDefault();\r\n this.saveCurrent();\r\n }\r\n if (e.ctrlKey && (e.key === \"c\" || e.key === \"C\" || e.key === \"ز\")) {\r\n e.preventDefault();\r\n this.copyHandler();\r\n }\r\n if (e.ctrlKey && (e.key === \"v\" || e.key === \"V\" || e.key === \"ر\")) {\r\n e.preventDefault();\r\n this.pasetHandler();\r\n }\r\n if (e.key === \"Tab\" && !e.shiftKey) {\r\n if (this.formGroup && this.grid.activeCell) {\r\n if (this.formGroup?.valid && this.getColumnIndex(this.grid.activeCell.colIndex) === \"Comment\") {\r\n this.saveCurrent();\r\n e.preventDefault();\r\n if (this.grid.activeCell.rowIndex < this.dataList.length) {\r\n this.editedRowIndex = this.grid.activeCell.rowIndex;\r\n this.cd.markForCheck();\r\n if (this.editedRowIndex < this.dataList.length) this.setFormGroup(this.dataList[this.editedRowIndex]);\r\n else this.setFormGroup(this.dataList[this.dataList.length - 1]);\r\n if (this.grid) {\r\n this.grid.editRow(this.editedRowIndex, this.formGroup);\r\n }\r\n } else\r\n setTimeout(() => {\r\n this.addHandler();\r\n }, 200);\r\n }\r\n }\r\n }\r\n if (e.key.toUpperCase() === \"F4\") {\r\n e.preventDefault();\r\n if (this.dataList.length > 1 && this.formGroup.controls[\"RowNumber\"].value > 1) {\r\n let ColumnName = this.getColumnIndex(this.grid.activeCell.colIndex);\r\n if (ColumnName.includes(\"SubLedger\") || ColumnName.includes(\"DetailLedger\") || ColumnName.includes(\"Concern\")) {\r\n let PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][ColumnName];\r\n this.formGroup.controls[ColumnName].setValue(PrevValue);\r\n PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][ColumnName.replace(\"Id\", \"Code\")];\r\n this.formGroup.controls[ColumnName.replace(\"Id\", \"Code\")].setValue(PrevValue);\r\n PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][ColumnName.replace(\"Id\", \"Title\")];\r\n this.formGroup.controls[ColumnName.replace(\"Id\", \"Title\")].setValue(PrevValue);\r\n } else {\r\n let PrevValue = this.dataList[this.formGroup.controls[\"RowNumber\"].value - 2][ColumnName];\r\n this.formGroup.controls[ColumnName].setValue(PrevValue);\r\n if (this.grid.activeRow.dataItem) this.grid.activeRow.dataItem[ColumnName] = PrevValue;\r\n }\r\n this.selectorService.onSubmited.next(true);\r\n this.cd.markForCheck();\r\n }\r\n }\r\n if (e.key.toUpperCase() === \"F5\") {\r\n e.preventDefault();\r\n if (!this.formGroup || !this.gridData || this.gridData.length < 2) return;\r\n Object.keys(this.dataList[0])\r\n .filter((x) => x !== \"RowNumber\" && x !== \"Id\" && x !== \"State\")\r\n .forEach((key) => {\r\n if (key && this.formGroup.controls[key]) {\r\n let PrevValue = this.gridData[this.formGroup.controls[\"RowNumber\"].value - 2][key];\r\n this.formGroup.controls[key].setValue(PrevValue);\r\n if (this.grid.activeRow.dataItem) this.grid.activeRow.dataItem[key] = PrevValue;\r\n }\r\n });\r\n this.cd.markForCheck();\r\n }\r\n if (this.formGroup && e.ctrlKey && e.key.toUpperCase() === \"DELETE\") {\r\n e.preventDefault();\r\n this.removeHandler({ sender: this.grid, dataItem: this.formGroup.value });\r\n }\r\n }\r\n constructor(\r\n private lookupservice: LookupService,\r\n private sts: ShowToastrService,\r\n private cd: ChangeDetectorRef,\r\n private missetup: MisSetupService,\r\n protected selectorService: SelectorService,\r\n private accountService: AccountService,\r\n private _httpCommonService: HttpCommonService\r\n ) {\r\n this.onDataStateChange = this.onDataStateChange.bind(this);\r\n this.shouldBeChangedData = this.shouldBeChangedData.bind(this);\r\n }\r\n getColumns() {\r\n return this.selectorService.getColumns(\"ReferenceId\");\r\n }\r\n ngOnInit(): void {\r\n this.DefaultValues[\"Price\"] = 0;\r\n this.DefaultValues[\"DiscountRate\"] = 0;\r\n this.DefaultValues[\"DiscountAmount\"] = 0;\r\n this.DefaultValues[\"TrsVoucherHeaderId\"] = 0;\r\n if (!this.dataList) this.dataList = [];\r\n this.setColumns();\r\n\r\n if (\r\n !this.ReferenceVoucherKindId &&\r\n this.CurrentVoucherKind &&\r\n this.CurrentVoucherKind.TrsReferenceVoucherKinds &&\r\n this.CurrentVoucherKind.TrsReferenceVoucherKinds.length > 0\r\n ) {\r\n let vk = this.CurrentVoucherKind.TrsReferenceVoucherKinds.find((vk) => vk.IsDefault);\r\n if (vk) this.ReferenceVoucherKindId = vk.ReferenceVoucherKindId;\r\n }\r\n if (!this.CurrentReferenceVoucherKind && this.ReferenceVoucherKindId) this.fillCollectionsKind(this.ReferenceVoucherKindId);\r\n\r\n setTimeout(() => {\r\n if (this.dataList.length <= 0) this.addHandler();\r\n }, 50);\r\n }\r\n setColumns() {\r\n this.setColumnWith();\r\n if (this.CurrentVoucherKind) {\r\n this.columns.forEach((x) => {\r\n if (x.name === \"BankId\") {\r\n x.listVisible = this.CurrentVoucherKind.ShowBank || this.CurrentVoucherKind.DocumentKindCode === 1;\r\n x.required = x.listVisible && this.CurrentVoucherKind.RequireBank;\r\n if (!isNullOrUndefined(this.CurrentVoucherKind.BankCaption)) x.label = this.CurrentVoucherKind.BankCaption;\r\n }\r\n if (x.name === \"SubLedgerId\") x.listVisible = this.CurrentVoucherKind.ShowSubLedger && !this.CurrentVoucherKind.SubledgerInHeader;\r\n\r\n if (x.name === \"ConcernId\") {\r\n x.listVisible = !this.CurrentVoucherKind.ConcernInHeader;\r\n x.required = x.listVisible && x.listVisible;\r\n }\r\n\r\n if (x.name === \"DetailLedgerId\") {\r\n x.listVisible = !this.CurrentVoucherKind.DetailLedgerInHeader;\r\n x.required = x.listVisible && this.CurrentVoucherKind.RequireDetailLedger && !this.CurrentVoucherKind.DetailLedgerInHeader;\r\n if (!isNullOrUndefined(this.CurrentVoucherKind.DetailLedgerCaption)) x.label = this.CurrentVoucherKind.DetailLedgerCaption;\r\n }\r\n\r\n if (x.name === \"TreasuryDetailLedgerId\") {\r\n x.listVisible = !this.CurrentVoucherKind.TreasuryDetailLedgerInHeader && this.CurrentVoucherKind?.ShowTreasuryDetailLedger === true;\r\n x.required = x.listVisible && !this.CurrentVoucherKind.TreasuryDetailLedgerInHeader && this.CurrentVoucherKind.RequireTreasuryDetailLedger;\r\n if (!isNullOrUndefined(this.CurrentVoucherKind.TreasuryDetailLedgerCaption)) x.label = this.CurrentVoucherKind.TreasuryDetailLedgerCaption;\r\n }\r\n if (x.name.includes(\"DetailLedger1Id\")) {\r\n x.listVisible = this.detailLedgerLevel >= 1;\r\n }\r\n if (x.name.includes(\"DetailLedger2Id\")) {\r\n x.listVisible = this.detailLedgerLevel >= 2;\r\n }\r\n if (x.name.includes(\"DetailLedger3Id\")) {\r\n x.listVisible = this.detailLedgerLevel >= 3;\r\n }\r\n if (x.name.includes(\"DetailLedger4Id\")) {\r\n x.listVisible = this.detailLedgerLevel >= 4;\r\n }\r\n if (x.name.includes(\"DetailLedger5Id\")) {\r\n x.listVisible = this.detailLedgerLevel >= 5;\r\n }\r\n if (x.name.includes(\"DetailLedger6Id\")) {\r\n x.listVisible = this.detailLedgerLevel >= 6;\r\n }\r\n if (x.name.includes(\"DetailLedger7Id\")) {\r\n x.listVisible = this.detailLedgerLevel >= 7;\r\n }\r\n\r\n if (x.name.includes(\"TreasuryDetailLedger1Id\")) {\r\n x.listVisible = this.detailLedgerLevel >= 1;\r\n }\r\n if (x.name.includes(\"TreasuryDetailLedger2Id\")) {\r\n x.listVisible = this.detailLedgerLevel >= 2;\r\n }\r\n if (x.name.includes(\"TreasuryDetailLedger3Id\")) {\r\n x.listVisible = this.detailLedgerLevel >= 3;\r\n }\r\n if (x.name.includes(\"TreasuryDetailLedger4Id\")) {\r\n x.listVisible = this.detailLedgerLevel >= 4;\r\n }\r\n if (x.name.includes(\"TreasuryDetailLedger5Id\")) {\r\n x.listVisible = this.detailLedgerLevel >= 5;\r\n }\r\n if (x.name.includes(\"TreasuryDetailLedger6Id\")) {\r\n x.listVisible = this.detailLedgerLevel >= 6;\r\n }\r\n if (x.name.includes(\"TreasuryDetailLedger7Id\")) {\r\n x.listVisible = this.detailLedgerLevel >= 7;\r\n }\r\n\r\n if (x.name === \"BankAccountId\") {\r\n x.listVisible =\r\n ((this.CurrentVoucherKind?.DocumentKindCode === 1 || this.CurrentVoucherKind?.DocumentKindCode === 3) ||\r\n (this.CurrentVoucherKind?.OperationKindCode === 5 && this.CurrentVoucherKind?.EffectKindCode === 3) ||\r\n (this.CurrentVoucherKind?.OperationKindCode === 6 && (this.CurrentVoucherKind?.EffectKindCode === 2)) ||\r\n (this.CurrentVoucherKind?.OperationKindCode === 7 && this.CurrentVoucherKind?.EffectKindCode === 2));\r\n }\r\n if (x.name === \"ChequeId\") {\r\n if (\r\n this.CurrentVoucherKind.IsCheckBook &&\r\n this.CurrentVoucherKind.DocumentKindCode === 1 &&\r\n this.CurrentVoucherKind.ShowDocumentNo \r\n && !this.CurrentVoucherKind.Guarantee\r\n )\r\n x.listVisible = this.CurrentVoucherKind.IsCheckBook;\r\n\r\n if (!isNullOrUndefined(this.CurrentVoucherKind.DocumentNoCaption)) x.label = this.CurrentVoucherKind.DocumentNoCaption;\r\n x.required = x.listVisible && this.CurrentVoucherKind.RequireDocumentNo;\r\n }\r\n if (x.name === \"DocumentNo\") {\r\n x.listVisible = this.CurrentVoucherKind.ShowDocumentNo && !this.CurrentVoucherKind.IsCheckBook;\r\n if (!isNullOrUndefined(this.CurrentVoucherKind.DocumentNoCaption)) x.label = this.CurrentVoucherKind.DocumentNoCaption;\r\n x.required = x.listVisible && x.listVisible && this.CurrentVoucherKind.RequireDocumentNo;\r\n \r\n }\r\n if (x.name === \"DocumentDate\") {\r\n x.listVisible = this.CurrentVoucherKind.ShowDocumentNo;\r\n if (!isNullOrUndefined(this.CurrentVoucherKind.DocumentDateCaption)) x.label = this.CurrentVoucherKind.DocumentDateCaption;\r\n x.required = x.listVisible && x.listVisible && this.CurrentVoucherKind.RequireDocumentNo;\r\n }\r\n\r\n if (x.name === \"BankAccountNo\")\r\n x.listVisible =\r\n this.CurrentVoucherKind?.DocumentKindCode === 1 &&\r\n (this.CurrentVoucherKind?.OperationKindCode === 1 ||\r\n this.CurrentVoucherKind?.OperationKindCode === 3 ||\r\n this.CurrentVoucherKind?.OperationKindCode === 4 ||\r\n (this.CurrentVoucherKind?.OperationKindCode === 5 && this.CurrentVoucherKind?.EffectKindCode === 2) ||\r\n (this.CurrentVoucherKind?.OperationKindCode === 6 && this.CurrentVoucherKind?.EffectKindCode === 3) ||\r\n (this.CurrentVoucherKind?.OperationKindCode === 7 && this.CurrentVoucherKind?.EffectKindCode === 3));\r\n if (x.name === \"BankBranchCode\") {\r\n x.listVisible = this.CurrentVoucherKind.ShowBranchCode;\r\n if (!isNullOrUndefined(this.CurrentVoucherKind.BranchCodeCaption)) x.required = x.listVisible && this.CurrentVoucherKind.RequireBranchCode;\r\n else x.required = false;\r\n }\r\n if (x.name === \"BankBranchTitle\") {\r\n x.listVisible = this.CurrentVoucherKind.ShowBranchCode;\r\n if (!isNullOrUndefined(this.CurrentVoucherKind.BranchTitleCaption)) x.label = this.CurrentVoucherKind.BranchTitleCaption;\r\n x.required = x.listVisible && this.CurrentVoucherKind.RequireBranchCode;\r\n }\r\n if (x.name === \"Tag1\") {\r\n x.listVisible = this.CurrentVoucherKind.ShowTag1;\r\n if (!isNullOrUndefined(this.CurrentVoucherKind.TagCaption1)) x.label = this.CurrentVoucherKind.TagCaption1;\r\n x.required = x.listVisible && this.CurrentVoucherKind.RequireTag1;\r\n }\r\n if (x.name === \"Tag2\") {\r\n x.listVisible = this.CurrentVoucherKind.ShowTag2;\r\n if (!isNullOrUndefined(this.CurrentVoucherKind.TagCaption2)) x.label = this.CurrentVoucherKind.TagCaption2;\r\n x.required = x.listVisible && this.CurrentVoucherKind.RequireTag2;\r\n }\r\n if (x.name === \"Tag3\") {\r\n x.listVisible = this.CurrentVoucherKind.ShowTag3;\r\n if (!isNullOrUndefined(this.CurrentVoucherKind.TagCaption3)) x.label = this.CurrentVoucherKind.TagCaption3;\r\n x.required = x.listVisible && this.CurrentVoucherKind.RequireTag3;\r\n }\r\n if (x.name === \"Tag4\") {\r\n x.listVisible = this.CurrentVoucherKind.ShowTag4;\r\n if (!isNullOrUndefined(this.CurrentVoucherKind.TagCaption4)) x.label = this.CurrentVoucherKind.TagCaption4;\r\n x.required = x.listVisible && this.CurrentVoucherKind.RequireTag4;\r\n }\r\n if (x.name === \"Tag5\") {\r\n x.listVisible = this.CurrentVoucherKind.ShowTag5;\r\n if (!isNullOrUndefined(this.CurrentVoucherKind.TagCaption5)) x.label = this.CurrentVoucherKind.TagCaption5;\r\n x.required = x.listVisible && this.CurrentVoucherKind.RequireTag5;\r\n }\r\n if (x.name === \"Tag6\") {\r\n x.listVisible = this.CurrentVoucherKind.ShowTag6;\r\n if (!isNullOrUndefined(this.CurrentVoucherKind.TagCaption6)) x.label = this.CurrentVoucherKind.TagCaption6;\r\n x.required = x.listVisible && this.CurrentVoucherKind.RequireTag6;\r\n }\r\n if (x.name === \"ReferenceId\") {\r\n x.listVisible = this.hasReference && !isNullOrUndefined(this.ReferenceVoucherKindId);\r\n x.required = x.listVisible && this.hasReference && this.hasReferenceRequired && !isNullOrUndefined(this.ReferenceVoucherKindId);\r\n }\r\n });\r\n }\r\n if (this.CurrentVoucherKind) {\r\n this.columns.forEach((x) => {\r\n if (x.listVisible && x.apiName) {\r\n if (\r\n !(x.name === \"ConcernId\" && this.CurrentVoucherKind.ConcernInHeader) &&\r\n !(x.name === \"DetailLedgerId\" && this.CurrentVoucherKind.DetailLedgerInHeader) &&\r\n !(x.name === \"TreasuryDetailLedgerId\" && this.CurrentVoucherKind.TreasuryDetailLedgerInHeader) &&\r\n !(x.name === \"SubLedgerId\" && this.CurrentVoucherKind.SubledgerInHeader)\r\n )\r\n this.setDropdownlist(x.apiName, x.systemName, x.category);\r\n }\r\n });\r\n }\r\n }\r\n setFormGroup(entity: any = null) {\r\n let group: any = {};\r\n +\"\";\r\n this.columns.forEach((question) => {\r\n switch (question.textType) {\r\n case \"text\":\r\n {\r\n let validator: ValidatorFn[] = [];\r\n if (question.required) validator.push(Validators.required);\r\n if (question.minLength && question.minLength > 0) validator.push(Validators.minLength(question.minLength));\r\n if (question.maxLength && question.maxLength > 0) validator.push(Validators.maxLength(question.maxLength));\r\n if (question.max && question.max > 0) validator.push(Validators.max(question.max));\r\n if (question.min && question.min > 0) validator.push(Validators.min(question.min));\r\n\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? null : entity[question.name] || null, validator)\r\n : new UntypedFormControl(!entity ? null : entity[question.name] || null);\r\n }\r\n break;\r\n case \"checkbox\":\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? false : entity[question.name] || false, Validators.required)\r\n : new UntypedFormControl(!entity ? false : entity[question.name] || false);\r\n break;\r\n case \"number\":\r\n {\r\n let validator: ValidatorFn[] = [];\r\n if (question.required) validator.push(Validators.required);\r\n if (question.max && question.max > 0) validator.push(Validators.max(question.max));\r\n if (question.min && question.min > 0) validator.push(Validators.min(question.min));\r\n\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? null : entity[question.name] || null, validator)\r\n : new UntypedFormControl(!entity ? this.DefaultValues[question.name] : entity[question.name] || this.DefaultValues[question.name]);\r\n }\r\n break;\r\n case \"date\":\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity[question.name] && question.required ? new Date() : entity[question.name], Validators.required)\r\n : new UntypedFormControl(!entity[question.name] && question.required ? new Date() : entity[question.name]);\r\n break;\r\n default:\r\n group[question.name] = question.required\r\n ? new UntypedFormControl(!entity ? null : entity[question.name] || null, Validators.required)\r\n : new UntypedFormControl(!entity ? null : entity[question.name] || null);\r\n break;\r\n }\r\n });\r\n\r\n group[\"TrsVoucherHeaderId\"] = new UntypedFormControl(!entity ? 0 : entity[\"TrsVoucherHeaderId\"] || 0);\r\n group[\"State\"] = new UntypedFormControl(!entity ? RowState.New : entity[\"State\"] || RowState.NoChange);\r\n group[\"Id\"] = new UntypedFormControl(!entity ? 0 : entity[\"Id\"] || 0);\r\n group[\"RowVersion\"] = new UntypedFormControl(!entity ? \"\" : entity[\"RowVersion\"] || \"\");\r\n\r\n if (this.RowNumberName) group[this.RowNumberName] = new UntypedFormControl(!entity ? this.gridData.length + 1 : entity[this.RowNumberName] || 0);\r\n this.formGroup = new UntypedFormGroup(group);\r\n this.setChanges();\r\n }\r\n setColumnWith() {\r\n this.columns.forEach((x) => {\r\n if (\r\n x.textType === \"number\" &&\r\n x.withComma &&\r\n !x.name.toUpperCase().includes(\"NUMBER\") &&\r\n !x.name.toUpperCase().includes(\"CODE\") &&\r\n !x.name.toUpperCase().includes(\".ID\")\r\n )\r\n x.format = \"#,#.#####\";\r\n else x.format = x.textType === \"number\" ? \"#\" : \"\";\r\n if (!x.columnWidth || x.columnWidth < 100) {\r\n if (x.textType === \"text\") x.columnWidth = 200;\r\n else x.columnWidth = 100;\r\n }\r\n if (x.name === \"BranchTitle\") x.disabled = true;\r\n if (!x.name.includes(\"DetailLedger\") && x.name !== \"Comment\" && x.name !== \"SubLedgerId\" && this.hasReference && x.name !== \"ReferenceId\")\r\n x.disabled = true;\r\n });\r\n }\r\n\r\n public addHandler() {\r\n this.closeEditor();\r\n this.isNew = true;\r\n if (!this.dataList) this.dataList = [];\r\n this.treferenceVoucherLoded = false;\r\n this.setreferenceVoucherByVoucherKindList(\"TrsVoucherHeader/GeTreferenceVoucherByVoucherKind\");\r\n this.rowIsEditing = true;\r\n let _comment: string = \"\";\r\n if (this.headerTitleToDetailTitle) _comment = this.headerTitleToDetailTitle;\r\n const temp = {\r\n Id: -1,\r\n RowNumber:\r\n this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).length > 0\r\n ? this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).length + 1\r\n : 1,\r\n State: RowState.New,\r\n Comment: _comment,\r\n };\r\n if (this.CurrentVoucherKind.ConcernInHeader === true) {\r\n temp.ConcernId = this.filterEntity.ConcernId;\r\n temp.ConcernCode = this.filterEntity.ConcernCode;\r\n temp.ConcernTitle = this.filterEntity.ConcernTitle;\r\n temp.ConcernTitle = this.filterEntity.ConcernTitle;\r\n temp.InvVoucherKindId = this.filterEntity.InvVoucherKindId;\r\n temp.IsWarehouse = this.filterEntity.IsWarehouse;\r\n }\r\n this.dataList.push(temp);\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.editedRowIndex = this.gridData.length - 1;\r\n this.cd.markForCheck();\r\n this.setFormGroup(temp);\r\n if (this.grid && this.formGroup) {\r\n this.grid.editRow(this.editedRowIndex, this.formGroup);\r\n }\r\n const keyboardEvent = new KeyboardEvent(\"keydown\", {\r\n code: \"Tab\",\r\n key: \"Tab\",\r\n keyCode: 9,\r\n view: window,\r\n bubbles: true,\r\n });\r\n document.activeElement.dispatchEvent(keyboardEvent);\r\n }\r\n isvalid(entity: TrsVoucherDetail) {\r\n return true;\r\n }\r\n hasdatForPaset() {\r\n return this.selectorService.getDataList(\"TrsVoucherDetail\") !== undefined && (this.isAdd || this.isEdit);\r\n }\r\n copyHandler() {\r\n if (this.mySelection && this.mySelection.length > 0)\r\n this.selectorService.setDataList(\r\n \"TrsVoucherDetail\",\r\n this.dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached && this.mySelection.some((s) => s === x.RowNumber))\r\n );\r\n else\r\n this.selectorService.setDataList(\r\n \"TrsVoucherDetail\",\r\n this.dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached && x.RowNumber === this.editedRow.RowNumber)\r\n );\r\n }\r\n copyAll() {\r\n this.selectorService.setDataList(\r\n \"TrsVoucherDetail\",\r\n this.dataList.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached)\r\n );\r\n }\r\n pasetHandler() {\r\n this.cancelHandler();\r\n if (this.selectorService.getDataList(\"TrsVoucherDetail\") !== undefined) {\r\n this.selectorService.getDataList(\"TrsVoucherDetail\").forEach((element) => {\r\n const entity = Object.assign({}, element as TrsVoucherDetail);\r\n entity.RowNumber = this.dataList.length + 1;\r\n entity.Id = 0;\r\n entity.State = RowState.New;\r\n this.dataList.push(entity);\r\n });\r\n this.setRowNumber();\r\n this.selectorService.setDataList(\"TrsVoucherDetail\", undefined);\r\n }\r\n }\r\n public cancelHandler() {\r\n this.closeEditor();\r\n }\r\n setChanges() {\r\n this.formGroup.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.valueChanges.emit(x);\r\n }\r\n });\r\n this.fitColumns();\r\n }\r\n public saveHandler(rowIndex, formGroup): void {\r\n if (this.formGroup && this.formGroup?.valid && this.isvalid(this.formGroup.value)) {\r\n var entity = this.formGroup.value;\r\n\r\n if (entity.State === undefined || (entity.State === RowState.New && rowIndex === -1)) {\r\n entity.State = RowState.New;\r\n if (!this.gridData.some((x) => x.RowNumber === entity.RowNumber)) this.dataList.push(entity);\r\n } else if (rowIndex >= 0) {\r\n if (!entity.State) entity.State = this.dataList[rowIndex].State;\r\n\r\n if (entity.State != RowState.New) (entity as TrsVoucherDetail).State = RowState.Modify;\r\n if (entity.Id > 0 && this.dataList.some((x) => x.Id === entity.Id)) {\r\n this.dataList.forEach((m) => {\r\n if (m.Id === entity.Id) {\r\n Object.assign(m, entity);\r\n }\r\n });\r\n } else {\r\n this.dataList.forEach((m) => {\r\n if (m.RowNumber === entity.RowNumber && m.Id === entity.Id && m.State === entity.State) {\r\n if (entity.Id == -1) entity.Id = 0;\r\n Object.assign(m, entity);\r\n }\r\n });\r\n }\r\n }\r\n this.rowIsEditing = false;\r\n this.valueChanges.emit(entity);\r\n this.closeEditor();\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.cd.markForCheck();\r\n } else this.sts.showDialog(`اطلاعات وارده صحیح نیست.`, \"خطا\", DialogType.alert);\r\n }\r\n deleteFormHelper(dataItem: any) {\r\n this.dataList.forEach((x) => {\r\n if ((dataItem.Id > 0 && x.Id === dataItem.Id) || x === dataItem) {\r\n if (x.State === RowState.New) x.State = RowState.Detached;\r\n else x.State = RowState.Delete;\r\n }\r\n });\r\n this.setRowNumber();\r\n }\r\n private setRowNumber() {\r\n let index: number = 0;\r\n this.gridData\r\n .filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached)\r\n .sort((a, b) => a.RowNumber - b.RowNumber)\r\n .forEach((x) => {\r\n index += 1;\r\n x.RowNumber = index;\r\n });\r\n this.valueChanges.emit(this.gridData[this.gridData.length - 1]);\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n }\r\n public removeHandler({ sender, dataItem }): void {\r\n this.sts.showDialog(`آیا از حذف اطلاعات اطمینان دارید؟`, \"حذف اطلاعات\", DialogType.confirm, () => this.deleteFormHelper(dataItem));\r\n sender.cancelCell();\r\n }\r\n\r\n private closeEditor() {\r\n this.editedRow = undefined;\r\n this.grid.closeRow(this.editedRowIndex);\r\n this.rowIsEditing = false;\r\n this.isNew = false;\r\n this.editedRowIndex = undefined;\r\n this.formGroup = undefined;\r\n this.dataList = this.dataList.filter((x) => x.Id >= 0);\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached && x.Id >= 0);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.cd.markForCheck();\r\n }\r\n\r\n private isReadOnly(field: string, dataItem: any): boolean {\r\n let col = this.columns.find((x) => x.name === field);\r\n return col && col.disabled;\r\n }\r\n public saveCurrent(): void {\r\n if (this.formGroup) {\r\n this.saveHandler(this.editedRowIndex, this.formGroup);\r\n }\r\n }\r\n hasMultiColumns(ColumnsName: string) {\r\n if (\r\n this.ReferenceVoucherKindId &&\r\n this.ReferenceVoucherKindId > 0 &&\r\n (!this.LookupData[\"TrsVoucherHeader/GeTreferenceVoucherByVoucherKind\"] ||\r\n this.LookupData[\"TrsVoucherHeader/GeTreferenceVoucherByVoucherKind\"].length <= 0)\r\n )\r\n this.setreferenceVoucherByVoucherKindList(\"TrsVoucherHeader/GeTreferenceVoucherByVoucherKind\");\r\n if (!ColumnsName) return false;\r\n var columns = ColumnsName.split(\",\");\r\n return columns.length > 1;\r\n }\r\n fillCollectionsKind(ReferenceVoucherKindId: number) {\r\n this._httpCommonService\r\n .getItem(\"TrsVoucherKind\", ReferenceVoucherKindId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n this.CurrentReferenceVoucherKind = Object.assign({}, data as TrsVoucherKind);\r\n });\r\n }\r\n isMultiSelect(apiName: string) {\r\n return apiName === \"TrsVoucherHeader/GeTreferenceVoucherByVoucherKind\";\r\n }\r\n onRowsSelected($event, apiName: string, key: string) {\r\n let hasNewRecord: Boolean = false;\r\n if (this.grid) this.grid.focus();\r\n if ($event && apiName !== \"TrsVoucherHeader/GeTreferenceVoucherByVoucherKind\") {\r\n if ($event.length > 1) {\r\n $event.forEach((x) => {\r\n let entity = {};\r\n entity[\"State\"] = RowState.New;\r\n entity[key] = x[\"Id\"];\r\n entity.Id = 0;\r\n if (!this.dataList.some((f) => f[key] === x[\"Id\"] && f[\"State\"] !== RowState.Detached && f[\"State\"] !== RowState.Delete))\r\n this.dataList.push(entity);\r\n });\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n this.closeEditor();\r\n }\r\n }\r\n if ($event && apiName === \"TrsVoucherHeader/GeTreferenceVoucherByVoucherKind\") {\r\n $event.forEach((referenceVoucher) => {\r\n if (referenceVoucher && !this.gridData.some((x) => x.ReferenceId === referenceVoucher.Id)) {\r\n let voucherDetail: TrsVoucherDetail = {};\r\n voucherDetail.State = RowState.New;\r\n voucherDetail.RowNumber =\r\n this.dataList.filter((x) => x.Id >= 0 && x.State != RowState.Delete && x.State != RowState.Detached).length > 0\r\n ? this.dataList.filter((x) => x.Id >= 0 && x.State != RowState.Delete && x.State != RowState.Detached).length + 1\r\n : 1;\r\n //#region\r\n voucherDetail.Id = 0;\r\n voucherDetail.BankAccountId = referenceVoucher.BankAccountId;\r\n voucherDetail.BankAccountNo = referenceVoucher.BankAccountNo;\r\n voucherDetail.BankBranchTitle = referenceVoucher.BankBranchTitle;\r\n voucherDetail.Comment = referenceVoucher.Comment;\r\n voucherDetail.BankCode = referenceVoucher.BankCode;\r\n voucherDetail.BankId = referenceVoucher.BankId;\r\n voucherDetail.BankTitle = referenceVoucher.BankTitle;\r\n voucherDetail.BankBranchCode = referenceVoucher.BankBranchCode;\r\n voucherDetail.ChequeId = referenceVoucher.ChequeId;\r\n\r\n voucherDetail.ConcernId = referenceVoucher.ConcernId;\r\n voucherDetail.ConcernCode = referenceVoucher.ConcernCode;\r\n voucherDetail.ConcernTitle = referenceVoucher.ConcernTitle;\r\n voucherDetail.DetailLedgerCode = referenceVoucher.DetailLedgerCode;\r\n voucherDetail.DetailLedgerId = referenceVoucher.DetailLedgerId;\r\n voucherDetail.DetailLedgerTitle = referenceVoucher.DetailLedgerTitle;\r\n\r\n voucherDetail.PayerDetailLedgerId = referenceVoucher.DetailLedgerId;\r\n if (this.CurrentVoucherKind.OperationKindCode === 3 || this.CurrentVoucherKind.OperationKindCode === 4) {\r\n voucherDetail.TreasuryDetailLedger1Id = referenceVoucher.TreasuryDetailLedger1Id;\r\n voucherDetail.TreasuryDetailLedger2Id = referenceVoucher.TreasuryDetailLedger2Id;\r\n voucherDetail.TreasuryDetailLedger3Id = referenceVoucher.TreasuryDetailLedger3Id;\r\n voucherDetail.TreasuryDetailLedger4Id = referenceVoucher.TreasuryDetailLedger4Id;\r\n voucherDetail.TreasuryDetailLedger5Id = referenceVoucher.TreasuryDetailLedger5Id;\r\n voucherDetail.TreasuryDetailLedger6Id = referenceVoucher.TreasuryDetailLedger6Id;\r\n voucherDetail.TreasuryDetailLedger7Id = referenceVoucher.TreasuryDetailLedger7Id;\r\n } else if (this.CurrentVoucherKind.OperationKindCode === 7 && this.CurrentVoucherKind.EffectKindCode === 3) {\r\n voucherDetail.TreasuryDetailLedger1Id = referenceVoucher.DetailLedger1Id;\r\n voucherDetail.TreasuryDetailLedger2Id = referenceVoucher.DetailLedger2Id;\r\n voucherDetail.TreasuryDetailLedger3Id = referenceVoucher.DetailLedger3Id;\r\n voucherDetail.TreasuryDetailLedger4Id = referenceVoucher.DetailLedger4Id;\r\n voucherDetail.TreasuryDetailLedger5Id = referenceVoucher.DetailLedger5Id;\r\n voucherDetail.TreasuryDetailLedger6Id = referenceVoucher.DetailLedger6Id;\r\n voucherDetail.TreasuryDetailLedger7Id = referenceVoucher.DetailLedger7Id;\r\n } else if (\r\n (this.CurrentVoucherKind.OperationKindCode === 5 && this.CurrentVoucherKind.EffectKindCode === 2) ||\r\n this.CurrentVoucherKind.OperationKindCode === 6\r\n ) {\r\n voucherDetail.DetailLedger1Id = referenceVoucher.DetailLedger1Id;\r\n voucherDetail.DetailLedger2Id = referenceVoucher.DetailLedger2Id;\r\n voucherDetail.DetailLedger3Id = referenceVoucher.DetailLedger3Id;\r\n voucherDetail.DetailLedger4Id = referenceVoucher.DetailLedger4Id;\r\n voucherDetail.DetailLedger5Id = referenceVoucher.DetailLedger5Id;\r\n voucherDetail.DetailLedger6Id = referenceVoucher.DetailLedger6Id;\r\n voucherDetail.DetailLedger7Id = referenceVoucher.DetailLedger7Id;\r\n\r\n voucherDetail.TreasuryDetailLedger1Id = referenceVoucher.DetailLedger1Id;\r\n voucherDetail.TreasuryDetailLedger2Id = referenceVoucher.DetailLedger2Id;\r\n voucherDetail.TreasuryDetailLedger3Id = referenceVoucher.DetailLedger3Id;\r\n voucherDetail.TreasuryDetailLedger4Id = referenceVoucher.DetailLedger4Id;\r\n voucherDetail.TreasuryDetailLedger5Id = referenceVoucher.DetailLedger5Id;\r\n voucherDetail.TreasuryDetailLedger6Id = referenceVoucher.DetailLedger6Id;\r\n voucherDetail.TreasuryDetailLedger7Id = referenceVoucher.DetailLedger7Id;\r\n } else {\r\n voucherDetail.DetailLedger1Id = referenceVoucher.TreasuryDetailLedger1Id;\r\n voucherDetail.DetailLedger2Id = referenceVoucher.TreasuryDetailLedger2Id;\r\n voucherDetail.DetailLedger3Id = referenceVoucher.TreasuryDetailLedger3Id;\r\n voucherDetail.DetailLedger4Id = referenceVoucher.TreasuryDetailLedger4Id;\r\n voucherDetail.DetailLedger5Id = referenceVoucher.TreasuryDetailLedger5Id;\r\n voucherDetail.DetailLedger6Id = referenceVoucher.TreasuryDetailLedger6Id;\r\n voucherDetail.DetailLedger7Id = referenceVoucher.TreasuryDetailLedger7Id;\r\n\r\n voucherDetail.TreasuryDetailLedger1Id = referenceVoucher.DetailLedger1Id;\r\n if (!(this.CurrentVoucherKind.OperationKindCode === 5 && this.CurrentVoucherKind.EffectKindCode === 3)) {\r\n voucherDetail.TreasuryDetailLedger2Id = referenceVoucher.DetailLedger2Id;\r\n voucherDetail.TreasuryDetailLedger3Id = referenceVoucher.DetailLedger3Id;\r\n voucherDetail.TreasuryDetailLedger4Id = referenceVoucher.DetailLedger4Id;\r\n voucherDetail.TreasuryDetailLedger5Id = referenceVoucher.DetailLedger5Id;\r\n voucherDetail.TreasuryDetailLedger6Id = referenceVoucher.DetailLedger6Id;\r\n voucherDetail.TreasuryDetailLedger7Id = referenceVoucher.DetailLedger7Id;\r\n }\r\n }\r\n\r\n voucherDetail.ReferenceNo = referenceVoucher.VoucherNo;\r\n voucherDetail.DocumentDate = referenceVoucher.DocumentDate;\r\n voucherDetail.DocumentNo = referenceVoucher.DocumentNo;\r\n voucherDetail.Price = referenceVoucher.Price;\r\n voucherDetail.ReferenceId = referenceVoucher.Id;\r\n voucherDetail.Tag1 = referenceVoucher.Tag1;\r\n voucherDetail.Tag2 = referenceVoucher.Tag2;\r\n voucherDetail.Tag3 = referenceVoucher.Tag3;\r\n voucherDetail.Tag4 = referenceVoucher.Tag4;\r\n voucherDetail.Tag5 = referenceVoucher.Tag5;\r\n voucherDetail.Tag6 = referenceVoucher.Tag6;\r\n voucherDetail.TreasuryDetailLedgerId = referenceVoucher.DetailLedgerId;\r\n voucherDetail.TreasuryDetailLedgerCode = referenceVoucher.DetailLedgerCode;\r\n voucherDetail.TreasuryDetailLedgerTitle = referenceVoucher.DetailLedgerTitle;\r\n\r\n if (!voucherDetail.DiscountRate) voucherDetail.DiscountRate = this.DefaultValues[\"DiscountRate\"];\r\n if (!voucherDetail.DiscountAmount) voucherDetail.DiscountAmount = this.DefaultValues[\"DiscountAmount\"];\r\n //#endregion\r\n if (!this.dataList.some((f) => f[key] === referenceVoucher[\"Id\"] && f[\"State\"] !== RowState.Detached && f[\"State\"] !== RowState.Delete)) {\r\n this.dataList.push(voucherDetail);\r\n hasNewRecord = true;\r\n }\r\n }\r\n });\r\n if (this.dataList.length > 0) this.valueChanges.emit(this.dataList[this.dataList.length - 1]);\r\n let filterddata = this.dataList.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached);\r\n this.gridData = filterddata.sort((a, b) => a.RowNumber - b.RowNumber);\r\n if (hasNewRecord) this.closeEditor();\r\n }\r\n this.valueChanges.emit(this.dataList[0]);\r\n }\r\n\r\n setreferenceVoucherByVoucherKindList(apiName: string) {\r\n if (!this.isLOading && !this.treferenceVoucherLoded) {\r\n if (this.dataList && this.dataList.some((x) => x.Id > 0)) this.filterEntity.Id = this.dataList.find((x) => x.Id > 0).TrsVoucherHeaderId;\r\n this.isLOading = true;\r\n let VoucherKindIds: number[] = this.dataList\r\n ? this.dataList.filter((x) => x.ReferenceId && x.State !== RowState.Delete && x.State !== RowState.Detached).map((x) => x.ReferenceId)\r\n : [];\r\n\r\n this._httpCommonService\r\n .create(apiName, this.filterEntity)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.isLOading = false;\r\n x = (x as TrsVoucherDetail[]).filter((f) => !VoucherKindIds.some((r) => r === f.Id));\r\n if (apiName === \"TrsVoucherHeader/GeTreferenceVoucherByVoucherKind\") {\r\n this.selectorService.setDataList(\"ReferenceId\", x as []);\r\n this.treferenceVoucherLoded = true;\r\n } else this.LookupData[apiName] = x;\r\n },\r\n (error) => (this.isLOading = false)\r\n );\r\n }\r\n }\r\n setDropdownlist(apiName: string, systemName: string, category: string) {\r\n if (apiName === \"TrsVoucherHeader/GeTreferenceVoucherByVoucherKind\" && this.ReferenceVoucherKindId && this.ReferenceVoucherKindId > 0) {\r\n this.treferenceVoucherLoded = false;\r\n this.setreferenceVoucherByVoucherKindList(apiName);\r\n }\r\n\r\n if (systemName && category && !this.loadingData) {\r\n this.lookupservice\r\n .getLookupbyCategory(systemName, category)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.LookupData[apiName] = x;\r\n });\r\n } else\r\n this._httpCommonService\r\n .getList(apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n if (apiName.includes(\"Concern\")) {\r\n let vk = (x as any[]).filter((c) => this.CurrentVoucherKind.TrsVoucherKindConcerns.some((vk) => vk.TrsConcernId === c.Id));\r\n this.LookupData[apiName] = vk;\r\n } else this.LookupData[apiName] = x;\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n getItemDisplayById(apiName: string, systemName: string, id: number, displayMember, valueMember: string, dataItem: any, columnName: string) {\r\n if (!id) return \"\";\r\n if (apiName === \"TrsVoucherHeader/GeTreferenceVoucherByVoucherKind\") {\r\n if (dataItem[\"ReferenceNo\"]) return dataItem[\"ReferenceNo\"];\r\n else return \"\";\r\n }\r\n if (apiName.includes(\"Concern\")) return dataItem[`Concern${displayMember}`];\r\n if (apiName.includes(\"SubLedger\")) return dataItem[`SubLedger${displayMember}`];\r\n if (columnName == \"BankId\") return dataItem[`Bank${displayMember}`];\r\n if (columnName === \"BankAccountId\") return dataItem[`BankAccountNo`];\r\n if (columnName === \"ChequeId\") return dataItem[`DocumentNo`];\r\n if (columnName.includes(\"DetailLedger\")) {\r\n columnName = columnName.replace(\"Id\", \"\");\r\n return dataItem[`${columnName}${displayMember}`];\r\n }\r\n\r\n // if (dataItem[`Goods${displayMember}`])\r\n // return dataItem[`Goods${displayMember}`];\r\n // else\r\n return \"\";\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.selectorService.setDataList(\"TrsVoucherDetail\", undefined);\r\n this.selectorService.setDataList(\"ReferenceId\", undefined);\r\n this.selectorService.setDataList(\"BankAccountId\", undefined);\r\n this.saveGridColumnInfo();\r\n this.LookupData = undefined;\r\n this.DefaultValues = undefined;\r\n this.grid = undefined;\r\n this.currentLookup = undefined;\r\n this.mySelection = undefined;\r\n this.columns = undefined;\r\n this._filterEntity = undefined;\r\n this.CurrentVoucherKind = undefined;\r\n this.formGroup = undefined;\r\n this._dataList = undefined;\r\n this.gridData = undefined;\r\n this.CurrentReferenceVoucherKind = undefined;\r\n this.editedRow = undefined;\r\n }\r\n setValue(key: string, value: any) {\r\n if (!this.formGroup.controls[key]) this.formGroup.addControl(key, new UntypedFormControl(value));\r\n else this.formGroup.controls[key].setValue(value);\r\n }\r\n selectionChange(event: any, apiName: string, columnName: string) {\r\n if (this.grid) this.grid.focus();\r\n if (apiName === \"TrsVoucherHeader/GeTreferenceVoucherByVoucherKind\") {\r\n this.onRowsSelected([event], apiName, \"\");\r\n return;\r\n }\r\n this.currentLookup = event;\r\n if (this.formGroup) this.formGroup.updateValueAndValidity();\r\n\r\n this.valueChanges.emit(event);\r\n if (event && columnName === \"SubLedgerId\") {\r\n if (this.formGroup) {\r\n this.setValue(\"SubLedgerTitle\", event.Title);\r\n this.setValue(\"SubLedgerCode\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"DetailLedgerId\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedgerId\", event.Id);\r\n this.setValue(\"DetailLedgerTitle\", event.Title);\r\n this.setValue(\"DetailLedgerCode\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"DetailLedger1Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedger1Title\", event.Title);\r\n this.setValue(\"DetailLedger1Code\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"DetailLedger2Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedger2Title\", event.Title);\r\n this.setValue(\"DetailLedger2Code\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"DetailLedger3Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedger3Title\", event.Title);\r\n this.setValue(\"DetailLedger3Code\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"DetailLedger4Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedger4Title\", event.Title);\r\n this.setValue(\"DetailLedger4Code\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"DetailLedger5Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedger5Title\", event.Title);\r\n this.setValue(\"DetailLedger5Code\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"DetailLedger6Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedger6Title\", event.Title);\r\n this.setValue(\"DetailLedger6Code\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"DetailLedger7Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DetailLedger7Title\", event.Title);\r\n this.setValue(\"DetailLedger7Code\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"TreasuryDetailLedgerId\") {\r\n if (this.formGroup) {\r\n this.setValue(\"TreasuryDetailLedgerTitle\", event.Title);\r\n this.setValue(\"TreasuryDetailLedgerCode\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"TreasuryDetailLedger1Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"TreasuryDetailLedger1Title\", event.Title);\r\n this.setValue(\"TreasuryDetailLedger1Code\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"TreasuryDetailLedger2Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"TreasuryDetailLedger2Title\", event.Title);\r\n this.setValue(\"TreasuryDetailLedger2Code\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"TreasuryDetailLedger3Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"TreasuryDetailLedger3Title\", event.Title);\r\n this.setValue(\"TreasuryDetailLedger3Code\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"TreasuryDetailLedger4Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"TreasuryDetailLedger4Title\", event.Title);\r\n this.setValue(\"TreasuryDetailLedger4Code\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"TreasuryDetailLedger5Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"TreasuryDetailLedger5Title\", event.Title);\r\n this.setValue(\"TreasuryDetailLedger5Code\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"TreasuryDetailLedger6Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"TreasuryDetailLedger6Title\", event.Title);\r\n this.setValue(\"TreasuryDetailLedger6Code\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"TreasuryDetailLedger7Id\") {\r\n if (this.formGroup) {\r\n this.setValue(\"TreasuryDetailLedger7Title\", event.Title);\r\n this.setValue(\"TreasuryDetailLedger7Code\", event.Code);\r\n }\r\n }\r\n if (event && columnName === \"ConcernId\") {\r\n if (this.formGroup) {\r\n this.setValue(\"ConcernTitle\", event.Title);\r\n this.setValue(\"ConcernCode\", event.Code);\r\n this.setValue(\"InvVoucherId\", event.InvVoucherId);\r\n this.setValue(\"IsWarehouse\", event.IsWarehouse);\r\n }\r\n }\r\n if (event && columnName === \"BankId\") {\r\n if (this.formGroup) {\r\n // if (this.formGroup.get(\"BankCode\").value !== event.Code) {\r\n // this.setValue(\"BankAccountId\", undefined);\r\n // if (this.formGroup && this.CurrentVoucherKind.OperationKindCode === 2) {\r\n // this.setValue(\"BankAccountNo\", undefined);\r\n // // this.setValue(\"BankBranchCode\", undefined);\r\n // // this.setValue(\"BankBranchTitle\", undefined);\r\n // this.setValue(\"ChequeId\", undefined);\r\n // this.setValue(\"DocumentNo\", undefined);\r\n // }\r\n // }\r\n this.setValue(\"BankTitle\", event.Title);\r\n this.setValue(\"BankCode\", event.Code);\r\n this.setBankAccountDataList(event.Id);\r\n }\r\n this.dataReadedColumns = \"\";\r\n }\r\n if (event && columnName === \"BankAccountId\") {\r\n this.setChequeDataList(event.Id);\r\n if (this.formGroup && this.CurrentVoucherKind.OperationKindCode === 2) {\r\n this.setValue(\"BankAccountNo\", event.Code);\r\n this.setValue(\"BankBranchCode\", event.BankBranchCode);\r\n this.setValue(\"BankBranchTitle\", event.BankBranchTitle);\r\n }\r\n }\r\n if (event && columnName === \"ChequeId\") {\r\n if (this.formGroup) {\r\n this.setValue(\"DocumentNo\", event.DocumentNo);\r\n }\r\n }\r\n if (event && columnName === \"TreasuryDetailLedgerId\") {\r\n\r\n if (this.formGroup) {\r\n this._httpCommonService\r\n .getList(`BankAccount/ReadBankAccountLookUp`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x:any[]) => {\r\n const finditem = x.find(f=>f.DetailLedgerId === event.Id);\r\n this.setValue(\"BankAccountId\", finditem?.Id);\r\n this.setValue(\"BankAccountNo\", finditem?.Code);\r\n this.setValue(\"BankBranchCode\", finditem?.BankBranchCode);\r\n this.setValue(\"BankBranchTitle\", finditem?.BankBranchTitle);\r\n });\r\n\r\n }\r\n }\r\n if (this.formGroup) this.formGroup.updateValueAndValidity();\r\n }\r\n\r\n setBankAccountDataList(Id: number) {\r\n this._httpCommonService\r\n .getList(`BankAccount/ReadBankAccountLookUp/${Id}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.selectorService.setDataList(\"BankAccountId\", x as []);\r\n });\r\n }\r\n\r\n setChequeDataList(Id: number) {\r\n let ChequeId = this.formGroup && this.formGroup.get(\"ChequeId\").value ? this.formGroup.get(\"ChequeId\").value : 0;\r\n this._httpCommonService\r\n .getList(`ChequeBookHeader/GetByBankAccount/${Id}/${ChequeId}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n let cheqIds: number[] = [];\r\n let Id = this.formGroup && this.formGroup.get(\"Id\").value ? this.formGroup.get(\"Id\").value : -2;\r\n this.dataList\r\n .filter((ci) => ci.ChequeId && ci.Id !== Id)\r\n .forEach((ci) => {\r\n if (!cheqIds.some((chid) => chid === ci.ChequeId)) cheqIds.push(ci.ChequeId);\r\n });\r\n if (x) x = (x as ChequeBookDetail[]).filter((ci) => !cheqIds.some((cid) => cid === ci.Id));\r\n this.LookupData[\"ChequeBookHeader/GetByBankAccount\"] = (x as ChequeBookDetail[]).sort((a, b) => a.DocumentNo - b.DocumentNo);\r\n });\r\n }\r\n getDateValue(date: Date) {\r\n if (!date) return \"\";\r\n let m: Moment = moment(date.toString()).locale(\"fa\");\r\n return m.format(\"YYYY/MM/DD\");\r\n }\r\n getColumnSum(columnName: string) {\r\n return this.dataList?.getSumWithKey(columnName);\r\n }\r\n getFilters(columnsName: string, searchValue: string, skip: number, take: number) {\r\n var filters: GridFilter[] = [];\r\n const columns = columnsName.split(\",\");\r\n columns.forEach((x) => {\r\n {\r\n if (x === \"Id\" && isNumber(searchValue))\r\n filters.push({ Filed: x, Operator: \"eq\", Type: \"F\", Skip: skip, Take: take, Value: Number(searchValue), Logic: \"or\" });\r\n else filters.push({ Filed: x, Operator: \"contains\", Type: \"F\", Skip: skip, Take: take, Value: searchValue, Logic: \"or\" });\r\n }\r\n });\r\n return filters;\r\n }\r\n isDetailLedgerKind(columnName: string) {\r\n return columnName === \"DetailLedgerId\" || columnName === \"TreasuryDetailLedgerId\";\r\n }\r\n shouldBeChangedData(columnName: string): boolean {\r\n return !this.dataReadedColumns.includes(columnName);\r\n }\r\n onDataStateChange(columnName: string, searchValue: string, skip: number, take: number): Observable> {\r\n var abs = new BehaviorSubject>(null);\r\n const dLkids: number[] = [];\r\n if (\r\n columnName === \"DetailLedgerId\" &&\r\n this.CurrentVoucherKind.TrsVoucherKindDetailLedgerKinds &&\r\n this.CurrentVoucherKind.TrsVoucherKindDetailLedgerKinds.length > 0\r\n ) {\r\n this.CurrentVoucherKind.TrsVoucherKindDetailLedgerKinds.forEach((x) => dLkids.push(x.DetailLedgerKindId));\r\n }\r\n if (\r\n columnName === \"TreasuryDetailLedgerId\" &&\r\n this.CurrentVoucherKind.TrsVoucherKindTreasuryDetailLedgerKinds &&\r\n this.CurrentVoucherKind.TrsVoucherKindTreasuryDetailLedgerKinds.length > 0\r\n ) {\r\n this.CurrentVoucherKind.TrsVoucherKindTreasuryDetailLedgerKinds.forEach((x) => dLkids.push(x.DetailLedgerKindId));\r\n }\r\n let apiName: string = \"DetailLedger/DetailLedgerWithDetailLedgerKindIds\";\r\n const filter = this.getFilters(\"Id,Code,Title\", searchValue, skip, take);\r\n if (dLkids && dLkids.length > 0)\r\n filter.push({ Filed: \"dLkinds\", Operator: \"eq\", Value: dLkids, Type: \"F\", Skip: skip, Take: take, Logic: \"and\" });\r\n this._httpCommonService\r\n .GetFilterGrid>(apiName, filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x: PagingDataResult) => {\r\n if (x) abs.next(x);\r\n if (!this.dataReadedColumns.includes(columnName)) this.dataReadedColumns = this.dataReadedColumns + \",\" + columnName;\r\n });\r\n return abs.asObservable();\r\n }\r\n setColumnInfo(columnInfos: GridColumnInfoDetail[]) {\r\n if (!this.grid)\r\n setTimeout(() => {\r\n this.setColumnInfo(columnInfos);\r\n }, 50);\r\n\r\n if (this.grid?.columns) {\r\n if (this.grid.columns.length <= 1) {\r\n setTimeout(() => this.setColumnInfo(columnInfos), 200);\r\n }\r\n }\r\n if (this.grid?.columns) {\r\n this.grid.columns.forEach((x: ColumnComponent) => {\r\n const column = columnInfos.find((c) => c.name === (x.field ?? x.title));\r\n if (column) {\r\n x.leafIndex = column.leaftindex;\r\n x.orderIndex = column.orderindex;\r\n x.minResizableWidth = column.minResizableWidth;\r\n x.width = column.width;\r\n x.hidden = column.hidden;\r\n }\r\n });\r\n }\r\n this.isFirstLoad = true;\r\n this.cd.detectChanges();\r\n setTimeout(() => {\r\n const firstCol: ScrollRequest = {};\r\n firstCol.column = 0;\r\n if (this.grid && firstCol) this.grid?.scrollTo(firstCol);\r\n }, 110);\r\n }\r\n setDefaultColumnInfo() {\r\n this.grid?.columns?.forEach((x: ColumnComponent) => {\r\n if (x.title === \"عملیات\") {\r\n x.width = 70;\r\n x.minResizableWidth = 60;\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n if (!x.title && !x.field) {\r\n x.width = x.width;\r\n x.minResizableWidth = x.minResizableWidth;\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n const column = this.columns.find((c) => c.name === (x.field ?? x.title));\r\n if (column) {\r\n x.width = column.columnWidth;\r\n x.minResizableWidth = x.minResizableWidth;\r\n x.hidden = !column.listVisible;\r\n\r\n x.leafIndex = undefined;\r\n x.orderIndex = 0;\r\n }\r\n });\r\n this.cd.markForCheck();\r\n }\r\n async saveGridColumnInfo() {\r\n const list: GridColumnInfoDetail[] = [];\r\n if (this.grid && this.grid.columns) {\r\n this.grid.columns.forEach((x: ColumnComponent) => {\r\n if (x) {\r\n const column = new GridColumnInfoDetail();\r\n column.leaftindex = x.leafIndex;\r\n column.orderindex = x.orderIndex;\r\n column.hidden = x.hidden;\r\n column.name = x.field ?? x.title;\r\n column.width = x.width;\r\n column.minResizableWidth = x.minResizableWidth;\r\n column.title = x.title;\r\n list.push(column);\r\n }\r\n });\r\n if (!this._GridColumnInfo) this._GridColumnInfo = new GridColumnInfo();\r\n this._GridColumnInfo.Key = this.CurrentVoucherKind?.Id ? `TrsVoucherDetail_${this.CurrentVoucherKind?.Id}` : \"TrsVoucherDetail\";\r\n this._GridColumnInfo.ColumnInfo = JSON.stringify(list);\r\n this._GridColumnInfo.CreatedUserId = this.accountService.authService.currentUser.Id;\r\n if (this.state.group && this.state.group.length > 0) this._GridColumnInfo.Group = JSON.stringify(this.state.group);\r\n else this._GridColumnInfo.Group = undefined;\r\n await this._httpCommonService.updateItem(\"MisSetUp/UpdateGridColumnInfo\", this._GridColumnInfo).pipe(takeUntil(this.ngUnsubscribe)).toPromise();\r\n }\r\n }\r\n async fitColumns() {\r\n if (!this.isFirstLoad) {\r\n if (this._GridColumnInfo) {\r\n let columnInfos: GridColumnInfoDetail[] = JSON.parse(this._GridColumnInfo.ColumnInfo);\r\n this.setColumnInfo(columnInfos);\r\n } else {\r\n const x = await this._httpCommonService\r\n .get(\r\n \"MisSetUp/GetGridColumnInfo/?key=\" +\r\n (this.CurrentVoucherKind?.Id ? `TRsVoucherDetail_${this.CurrentVoucherKind.Id}` : \"TrsVoucherDetail\") +\r\n `&CreatedUserId=${this.accountService.authService.currentUser.Id}`\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise();\r\n if (x) {\r\n this._GridColumnInfo = x as GridColumnInfo;\r\n this.setColumnInfo(JSON.parse(x[\"ColumnInfo\"]));\r\n if (this._GridColumnInfo.Group) {\r\n this.state.group = JSON.parse(x[\"Group\"]);\r\n }\r\n } else this.setDefaultColumnInfo();\r\n\r\n this.isFirstLoad = true;\r\n }\r\n }\r\n setTimeout(\r\n () => {\r\n this.cd.detectChanges();\r\n this.cd.markForCheck();\r\n },\r\n this.isFirstLoad ? 500 : 200\r\n );\r\n\r\n this.cd.markForCheck();\r\n }\r\n public cellCloseHandler(args: any) {\r\n const { formGroup, dataItem } = args;\r\n if (formGroup && !formGroup.valid) {\r\n return;\r\n } else if (formGroup && formGroup.dirty) {\r\n this.saveCurrent();\r\n } else this.closeEditor();\r\n }\r\n public editHandler({ sender, rowIndex, dataItem }) {\r\n this.editedRow = undefined;\r\n if (this.editedRowIndex !== undefined && this.editedRowIndex >= 0 && this.editedRowIndex !== rowIndex)\r\n this.cellCloseHandler({ formGroup: this.formGroup, dataItem: dataItem });\r\n if (this.rowIsEditing) return;\r\n if (dataItem) this.valueChanges.emit(dataItem);\r\n if (!this.isAdd && !this.isEdit) {\r\n this.valueChanges.emit(dataItem);\r\n return;\r\n }\r\n this.setFormGroup(dataItem);\r\n\r\n this.rowIsEditing = true;\r\n this.editedRowIndex = rowIndex;\r\n this.valueChanges.emit(dataItem);\r\n if (this.grid) this.grid.editRow(rowIndex, this.formGroup);\r\n Object.keys(this.formGroup.controls).forEach((key) => {\r\n if (this.formGroup.controls[key].invalid) {\r\n console.log(key);\r\n this.setValue(key, 0);\r\n }\r\n });\r\n setTimeout(() => {\r\n if (this.grid) this.grid.focus();\r\n this.cd.markForCheck();\r\n if (this.formGroup) this.formGroup.updateValueAndValidity();\r\n }, 500);\r\n }\r\n public onUserRowSelect({ sender, column, rowIndex, columnIndex, dataItem }): void {\r\n this.editedRow = dataItem;\r\n this.valueChanges.emit(this.editedRow);\r\n }\r\n public doubleclic(args: any) {\r\n this.editedRow = undefined;\r\n if (this.editedRowIndex !== undefined && this.editedRowIndex >= 0 && this.editedRowIndex !== this.grid.activeRow.index - 1)\r\n this.cellCloseHandler({ formGroup: this.formGroup, dataItem: this.grid.activeRow.dataItem });\r\n this.editHandler({ sender: this.grid, rowIndex: this.grid.activeRow.index - 1, dataItem: this.grid.activeRow.dataItem });\r\n }\r\n onKeyup($event) {\r\n if ($event.key === \"Escape\") {\r\n this.cd.markForCheck();\r\n this.formGroup.updateValueAndValidity();\r\n if (!(this.formGroup && (this.formGroup.touched || this.formGroup.dirty))) this.cancelHandler();\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ getColumnSum(column.name) | number }}\r\n \r\n \r\n {{\r\n getItemDisplayById(column.apiName, column.systemName, dataItem[column.name], column.displayMember, column.valueMember, dataItem, column.name)\r\n }}\r\n \r\n \r\n {{ getDateValue(dataItem[column.name]) }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ column.label }} الزامی است\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {{ value }}\r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Type, ViewChild } from \"@angular/core\";\r\nimport { UntypedFormControl } from \"@angular/forms\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { ReportKindInfo } from \"projects/sepidz-web-framework-data-grid/src/lib/report-kind\";\r\nimport { ReportCopyComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-copy.component\";\r\nimport { ReportSelectorComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/report-selector/report-selector.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { SplashScreenService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/SplashScreenService\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport \"projects/sepidz-web-framework/src/lib/interceptors/extensions\";\r\nimport { DetailLedger, form_control, SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { ReportKind, RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { GridFilter, isNumber, LookupService, PagingDataResult, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ReportInfo, StimulSoftReportComponent } from \"src/app/stimul-soft-report/stimul-soft-report.component\";\r\nimport { AccVoucherFormComponent } from \"../../../acc/accvoucher/accvoucher-form/accvoucher-form.component\";\r\nimport { SettlementVoucher } from \"../../models/settlement-voucher.model\";\r\nimport { TrsStatusKind } from \"../../models/tresury.enums\";\r\nimport { TrsConcern } from \"../../models/trs-concern.model\";\r\nimport { TrsReferenceVoucherByVoucherKindFilterInfo } from \"../../models/trs-reference-voucher-byvoucher-kindfilterinfo\";\r\nimport { TrsSettlementVoucher } from \"../../models/trs-settlement-voucher.model\";\r\nimport { TrsVoucherDetail } from \"../../models/trs-voucher-detail.model\";\r\nimport { TrsVoucherHeader } from \"../../models/trs-voucher-header.model\";\r\nimport { TrsVoucherKind } from \"../../models/trs-voucher-kind.model\";\r\nimport { ChequeBookInfoFormComponent } from \"../cheque-book-info/cheque-book-info-form.component\";\r\nimport { TrsVoucherDetailComponent } from \"../trs-voucher-detail/trs-voucher-detail.component\";\r\nimport { TrsVoucherModalListComponent } from \"../trs-voucher-modal-list/trs-voucher-modal-list.component\";\r\n@Component({\r\n selector: \"ngx-trs-voucher-form\",\r\n templateUrl: \"./trs-voucher-form.component.html\",\r\n styleUrls: [\"./trs-voucher-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TrsVoucherFormComponent extends BaseFormComponent {\r\n TrsSettlementVoucherColumns: form_control[];\r\n @ViewChild(\"detail\") public detail: TrsVoucherDetailComponent;\r\n @ViewChild(\"grid\") public grid: KGridComponent;\r\n inputEditorform: Type;\r\n currentVoucherKind: TrsVoucherKind;\r\n currentSelectedRow: TrsVoucherDetail;\r\n _currentSettlementConcern: TrsConcern;\r\n set currentSettlementConcern(value: TrsConcern) {\r\n this._currentSettlementConcern = value;\r\n }\r\n get currentSettlementConcern(): TrsConcern {\r\n if (!this._currentSettlementConcern && this.model?.TrsVoucherDetails && this.model?.TrsVoucherDetails.length > 0) {\r\n this._currentSettlementConcern = {};\r\n this._currentSettlementConcern.Id = this.model.TrsVoucherDetails.find((x) => x.InvVoucherKindId)?.ConcernId;\r\n this._currentSettlementConcern.InvVoucherKindId = this.model.TrsVoucherDetails.find((x) => x.InvVoucherKindId)?.InvVoucherKindId;\r\n this._currentSettlementConcern.Code = this.model.TrsVoucherDetails.find((x) => x.InvVoucherKindId)?.ConcernCode;\r\n this._currentSettlementConcern.Title = this.model.TrsVoucherDetails.find((x) => x.InvVoucherKindId)?.ConcernTitle;\r\n this._currentSettlementConcern.IsWarehouse = this.model.TrsVoucherDetails.find((x) => x.InvVoucherKindId)?.IsWarehouse;\r\n }\r\n return this._currentSettlementConcern;\r\n }\r\n grdSettlementVoucher: SettlementVoucher[];\r\n isValidating: boolean = false;\r\n isOkForLoad: boolean = false;\r\n erroremessage: string;\r\n isloading: boolean = false;\r\n goodsError: boolean = false;\r\n maxCodeLoading: boolean = false;\r\n isNewVoucher: boolean = false;\r\n confirmLabel: string;\r\n isVoucherConfirmed: boolean = false;\r\n currentReport: string = \"print\";\r\n TrsVoucherDetailsColumns: form_control[];\r\n reportKinds = ReportKindInfo.reportKinds;\r\n activeTabTitle: string;\r\n SelectedSettlement: number[];\r\n constructor(\r\n private lookupservice: LookupService,\r\n protected cd: ChangeDetectorRef,\r\n protected selectorService: SelectorService,\r\n private missetup: MisSetupService,\r\n private splashScreenService: SplashScreenService,\r\n private splashFormService: SplashFormService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n private datatransfer: Datatransfer,\r\n _VoucherKindInfo: VoucherKindInfo\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.currentrow = this.datatransfer?.currentrow;\r\n if (this.datatransfer?.apiName) this.apiName = this.datatransfer?.apiName;\r\n if (this.datatransfer?.areaName) this.areaName = this.datatransfer?.areaName;\r\n this.VoucherKind = _VoucherKindInfo;\r\n this.tabsservice = _tabsservice;\r\n this.currentFiscalYear;\r\n this.onDataStateChange = this.onDataStateChange.bind(this);\r\n }\r\n _currentDetailLedger: DetailLedger;\r\n get currentDetailLedger(): DetailLedger {\r\n if (!this._currentDetailLedger || !this._currentDetailLedger.Id) {\r\n this._currentDetailLedger = {};\r\n if (this.currentVoucherKind.DetailLedgerInHeader === true) {\r\n this._currentDetailLedger.Id = this.formGroup?.get(\"DetailLedgerId\")?.value;\r\n this._currentDetailLedger.Code = this.formGroup?.get(\"DetailLedgerCode\")?.value;\r\n this._currentDetailLedger.Title = this.formGroup?.get(\"DetailLedgerTitle\")?.value;\r\n } else {\r\n this._currentDetailLedger.Id = this.model.TrsVoucherDetails[0].DetailLedgerId;\r\n this._currentDetailLedger.Code = this.model.TrsVoucherDetails[0].DetailLedgerCode;\r\n this._currentDetailLedger.Title = this.model.TrsVoucherDetails[0].DetailLedgerTitle;\r\n }\r\n }\r\n return this._currentDetailLedger;\r\n }\r\n get filterEntity() {\r\n let entity: TrsReferenceVoucherByVoucherKindFilterInfo = {};\r\n entity.FiscalYearId = this.currentFiscalYear.Id;\r\n if (!this.formGroup.controls[\"DetailLedgerId\"].disabled)\r\n entity.DetailLedgerId = this.formGroup.controls[\"DetailLedgerId\"] ? this.formGroup.controls[\"DetailLedgerId\"].value : undefined;\r\n entity.ReferencedVoucherKindId = this.formGroup.controls[\"ReferenceVoucherKindId\"]\r\n ? this.formGroup.controls[\"ReferenceVoucherKindId\"].value\r\n : undefined;\r\n entity.VoucherDate = this.formGroup.controls[\"VoucherDate\"] ? this.formGroup.controls[\"VoucherDate\"].value : undefined;\r\n entity.VoucherKindId = this.formGroup.controls[\"TrsVoucherKindId\"] ? this.formGroup.controls[\"TrsVoucherKindId\"].value : undefined;\r\n if (!this.formGroup.controls[\"TreasuryDetailLedgerId\"].disabled)\r\n entity.TreasuryDetailLedgerId = this.formGroup.controls[\"TreasuryDetailLedgerId\"]\r\n ? this.formGroup.controls[\"TreasuryDetailLedgerId\"].value\r\n : undefined;\r\n entity.ConcernId = this.currentSettlementConcern?.Id;\r\n entity.ConcernCode = this.currentSettlementConcern?.Code;\r\n entity.ConcernTitle = this.currentSettlementConcern?.Title;\r\n entity.InvVoucherKindId = this.currentSettlementConcern?.InvVoucherKindId;\r\n entity.IsWarehouse = this.currentSettlementConcern?.IsWarehouse;\r\n return entity;\r\n }\r\n get ReferenceVoucherKindId() {\r\n if (this.formGroup && this.formGroup.controls[\"ReferenceVoucherKindId\"]) return this.formGroup.controls[\"ReferenceVoucherKindId\"].value;\r\n return undefined;\r\n }\r\n\r\n get hasReference() {\r\n return (\r\n this.currentVoucherKind && this.currentVoucherKind?.TrsReferenceVoucherKinds && this.currentVoucherKind?.TrsReferenceVoucherKinds.length > 0\r\n );\r\n }\r\n get hasReferenceRequired() {\r\n return this.currentVoucherKind && this.currentVoucherKind?.TrsReferenceVoucherKinds && this.currentVoucherKind?.ReferenceVoucherKindIsRequired;\r\n }\r\n get currentFiscalYear() {\r\n return this.accountService.authService.currentFiscalYear;\r\n }\r\n get HasJournalVoucher() {\r\n return this.currentVoucherKind?.HasJournalVoucher;\r\n }\r\n get headerTitleToDetailTitle(): string {\r\n return this.formGroup.controls[\"Comment\"].value;\r\n }\r\n async ngOnInit() {\r\n this.setCurrentVoucherKind();\r\n if (this.currentrow && this.currentrow[\"VoucherHeaderId\"]) this.currentrow.Id = this.currentrow[\"VoucherHeaderId\"];\r\n this.isNewVoucher = false;\r\n this.isVoucherConfirmed = false;\r\n this.apiName = \"TrsVoucherHeader\";\r\n this.areaName = \"Treasury\";\r\n\r\n this.missetup.getnumber(\"ACC\", \"DLLEVEL\");\r\n this.ReportSelectorForm = ReportSelectorComponent;\r\n this.ReportCopyForm = ReportCopyComponent;\r\n this.reportName = \"TrsentoryDocument\";\r\n this.pathPreFix = \"TRS\";\r\n\r\n await super.ngOnInit();\r\n\r\n this.loadReports();\r\n if (this.detail) {\r\n this.detail.dataList = this.model?.TrsVoucherDetails ?? [];\r\n this.detail.ngOnInit();\r\n }\r\n this.setTrsVoucherDetailsColumns();\r\n }\r\n\r\n isNoValidForEdit() {\r\n let StatusKindCode: number = TrsStatusKind.Confirmed;\r\n return !this.isNewRow && this.model && this.model.StatusKindCode >= StatusKindCode;\r\n }\r\n\r\n setStatusKind() {\r\n if (this.model.TrsVoucherKindId && this.VoucherKind.VoucherKindId !== this.model.TrsVoucherKindId) {\r\n this.VoucherKind = new VoucherKindInfo();\r\n this.VoucherKind.VoucherKindId = this.model.TrsVoucherKindId;\r\n }\r\n if (!this.model.StatusKindId && this.formGroup && !this.formGroup?.controls[\"StatusKindId\"]?.value) {\r\n this.lookupservice\r\n .getLookupbyCode(\"TRS\", \"StatusKind\", TrsStatusKind.Registered)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", this.model.StatusKindId);\r\n this.setValue(\"StatusKindCode\", this.model.StatusKindCode);\r\n this.setValue(\"StatusKindTitle\", this.model.StatusKindTitle);\r\n this.confirmLabel = \"تایید سند\";\r\n }\r\n });\r\n }\r\n if (this.model.StatusKindCode >= TrsStatusKind.Confirmed) this.confirmLabel = \"برگشت از تایید\";\r\n else this.confirmLabel = \"تایید\";\r\n }\r\n afterupdate() {\r\n if (this.model.AccVoucherFixNumber > 0) return;\r\n super.afterupdate();\r\n setTimeout(() => {\r\n if (\r\n !this.isVoucherConfirmed &&\r\n this.model?.StatusKindCode === TrsStatusKind?.Confirmed &&\r\n this.currentVoucherKind?.HasJournalVoucher &&\r\n this.currentVoucherKind?.HasJournalVoucherAuto\r\n ) {\r\n let gridFilter: GridFilter[] = [];\r\n let TrsVoucherHeaderIds: number[] = [];\r\n TrsVoucherHeaderIds.push(this.model.Id);\r\n let filter: GridFilter = {\r\n Type: \"F\",\r\n Filed: \"TrsVoucherHeaderIds\",\r\n Value: TrsVoucherHeaderIds,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n };\r\n gridFilter.push(filter);\r\n this.createAccVoucher(gridFilter);\r\n }\r\n }, 200);\r\n }\r\n closeForm(flag: boolean = false) {\r\n if (flag && !this.isNewVoucher) {\r\n if (this._id?.metadata?.id) {\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.tabsservice.tabItemOnCanClosing.next(this._id?.metadata?.id);\r\n }\r\n this.close();\r\n }\r\n if (this.isNewVoucher && flag) {\r\n this.selectorService.submitted$.next(false);\r\n this.model = undefined;\r\n this.currentrow = undefined;\r\n this.ngOnInit().then();\r\n }\r\n this.isClosing = false;\r\n }\r\n isCloseable() {\r\n this.selectorService.submitted$.next(false);\r\n this.formGroup?.markAsUntouched();\r\n this.currentrow = this.model;\r\n this.ngOnInit().then();\r\n return false;\r\n }\r\n canDeactivate() {\r\n if (\r\n !(\r\n (this.formGroup && this.formGroup.dirty && this.formGroup.touched) ||\r\n (this.model?.TrsVoucherDetails?.length > 0 &&\r\n this.model?.TrsVoucherDetails?.some((x) => x.State === RowState.New || x.State === RowState.Modify))\r\n )\r\n )\r\n return true;\r\n this.sts.showDialog(\r\n \"شما اطلاعات ذخیره نشده دارید! در صورت خروج اطلاعات از دست خواهد رفت.\",\r\n \"هشدار\",\r\n DialogType.confirm,\r\n () => this.closeForm(true),\r\n () => this.closeForm(false)\r\n );\r\n return false;\r\n }\r\n setdefault() {\r\n if (this.model && this.model.TrsVoucherKindTitle) {\r\n this.label = this.model.TrsVoucherKindTitle + `(${this.model.VoucherNo ?? 0})`;\r\n this.tabsservice.setTabTitle(this._id.metadata.id, this.getFormTitle());\r\n }\r\n this.setStatusKind();\r\n if (!this.model.VoucherDate && this.currentVoucherKind && this.currentVoucherKind?.ToDayDate) this.model.VoucherDate = new Date();\r\n\r\n if (!this.model.TrsVoucherDetails) this.model.TrsVoucherDetails = [];\r\n else this.VoucherSelectionChanged();\r\n if (!this.model.FiscalYearId && this.currentFiscalYear) {\r\n this.model.FiscalYearId = this.currentFiscalYear.Id;\r\n } else if (!this.model.FiscalYearId) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n }\r\n });\r\n }\r\n\r\n if (!this.model.TrsVoucherKindId && this.currentVoucherKind) {\r\n this.model.TrsVoucherKindId = this.currentVoucherKind?.Id;\r\n this.model.TrsVoucherKindCode = this.currentVoucherKind?.Code;\r\n this.model.TrsVoucherKindTitle = this.currentVoucherKind?.Title;\r\n } else if (!this.model.TrsVoucherKindId && this.VoucherKind.VoucherKindId) {\r\n this.model.TrsVoucherKindId = this.VoucherKind.VoucherKindId;\r\n }\r\n if (!this.model.BranchId) {\r\n this.model.BranchId = this.accountService.authService.currentBranchId;\r\n }\r\n if (!this.model.SlaveNo) this.model.SlaveNo = 0;\r\n if (!this.model.TotalPrice) this.model.TotalPrice = 0;\r\n if (this.model.TrsVoucherKindTitle && this._id) {\r\n this.label = this.model.TrsVoucherKindTitle + `(${this.model.VoucherNo ?? 0})`;\r\n this.tabsservice.setTabTitle(this._id.metadata.id, this.getFormTitle());\r\n }\r\n this.setDefaultValues();\r\n if (this.model && this.model?.TrsVoucherDetails && this.model?.TrsVoucherDetails?.length > 0 && this.detail) {\r\n this.detail.dataList = this.model?.TrsVoucherDetails;\r\n } else if (this.detail?.dataList?.length > this.model?.TrsVoucherDetails?.length) this.detail.dataList = this.model?.TrsVoucherDetails;\r\n\r\n if (this.detail && !this.isNewRow) setTimeout(() => this.detail.cancelHandler(), 50);\r\n this.setColumnAttribute();\r\n setTimeout(() => {\r\n if (this.detail) {\r\n this.detail.dataList.forEach((x) => {\r\n if (x.Id > 0) x.State = RowState.NoChange;\r\n });\r\n }\r\n this.setAllUnTouched();\r\n }, 100);\r\n }\r\n setMaxCode() {\r\n if (!this.isNewRow || this.maxCodeLoading) return;\r\n\r\n this.maxCodeLoading = true;\r\n if (this.currentFiscalYear) {\r\n var fiscalYearId = this.currentFiscalYear.Id;\r\n this.httpCommonService\r\n .getMaxCode(this.apiName + \"/\" + this.VoucherKind.VoucherKindId + \"/\" + fiscalYearId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (!this.model) this.model = {};\r\n if (data && data[\"VoucherNumber\"]) {\r\n this.model[\"VoucherNo\"] = data[\"VoucherNumber\"] as number;\r\n if (this.currentVoucherKind && this.currentVoucherKind?.ToDayDate) this.model[\"VoucherDate\"] = new Date();\r\n else this.model[\"VoucherDate\"] = data[\"VoucherDate\"] as Date;\r\n if (!this.formGroup) {\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n } else {\r\n this.setValue(\"VoucherNo\", data[\"VoucherNumber\"] as number);\r\n this.setValue(\"VoucherDate\", this.model[\"VoucherDate\"]);\r\n }\r\n }\r\n this.maxCodeLoading = false;\r\n },\r\n (error) => (this.maxCodeLoading = false)\r\n );\r\n } else {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n var fiscalYearId = x.Id;\r\n this.httpCommonService\r\n .getMaxCode(this.apiName + \"/\" + this.VoucherKind.VoucherKindId + \"/\" + fiscalYearId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data && data[\"VoucherNumber\"]) {\r\n this.model[\"VoucherNo\"] = data[\"VoucherNumber\"] as number;\r\n if (this.currentVoucherKind && this.currentVoucherKind?.ToDayDate) this.model[\"VoucherDate\"] = new Date();\r\n else this.model[\"VoucherDate\"] = data[\"VoucherDate\"] as Date;\r\n if (!this.formGroup) {\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n } else {\r\n this.setValue(\"VoucherNo\", data[\"VoucherNumber\"] as number);\r\n this.setValue(\"VoucherDate\", data[\"VoucherDate\"] as Date);\r\n }\r\n }\r\n this.maxCodeLoading = false;\r\n },\r\n (error) => (this.maxCodeLoading = false)\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n setCurrentVoucherKind() {\r\n this.httpCommonService\r\n .getItem(\"TrsVoucherKind\", this.VoucherKind.VoucherKindId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data?.TreasuryDetailLedgerInHeader) this.selectorService.setDataStateChange(\"TreasuryDetailLedgerId\", this.onDataStateChange);\r\n if (data?.DetailLedgerInHeader) this.selectorService.setDataStateChange(\"DetailLedgerId\", this.onDataStateChange);\r\n this.setValue(\"TrsVoucherKindId\", this.VoucherKind.VoucherKindId);\r\n this.currentVoucherKind = Object.assign({}, data as TrsVoucherKind);\r\n this.model.TrsVoucherKindId = this.currentVoucherKind?.Id;\r\n this.model.TrsVoucherKindCode = this.currentVoucherKind?.Code;\r\n if (this._id && this.model.VoucherNo) {\r\n this.label = data.Title + `(${this.model.VoucherNo ?? 0})`;\r\n this.tabsservice.setTabTitle(this._id.metadata.id, this.getFormTitle());\r\n }\r\n this.setValue(\"TrsVoucherKindCode\", this.currentVoucherKind?.Code);\r\n if (this.hasReference) this.setReferenceVoucherColumns();\r\n this.setMaxCode();\r\n\r\n this.setColumnAttribute();\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n this.isOkForLoad = false;\r\n if (!this.orignalColumns) return;\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"SubLedgerId\") {\r\n if (this.currentVoucherKind) {\r\n x.disabled = !this.currentVoucherKind?.ShowSubLedger || !this.currentVoucherKind?.SubledgerInHeader;\r\n if (this.model && this.model.TrsVoucherDetails && this.model.TrsVoucherDetails.length > 0) {\r\n this.setValue(\"SubLedgerId\", this.model.TrsVoucherDetails[0].SubLedgerId);\r\n if (this.model) this.model.SubLedgerId = this.model.TrsVoucherDetails[0].SubLedgerId;\r\n } else if (this.isNewRow) {\r\n this.setValue(\"SubLedgerId\", this.currentVoucherKind?.DefaultSubLedgerId);\r\n if (this.model) this.model.SubLedgerId = this.currentVoucherKind?.DefaultSubLedgerId;\r\n }\r\n if (this.formGroup && this.formGroup.get(\"SubLedgerId\")) {\r\n if (x.disabled) this.formGroup.get(\"SubLedgerId\").disable();\r\n else this.formGroup.get(\"SubLedgerId\").enable();\r\n }\r\n }\r\n }\r\n if (x.name === \"ConcernId\") {\r\n if (this.currentVoucherKind) {\r\n x.disabled = !this.currentVoucherKind?.ConcernInHeader;\r\n this.setConcernVoucherKind();\r\n if (this.model && this.model.TrsVoucherDetails && this.model.TrsVoucherDetails.length > 0) {\r\n this.setValue(\"ConcernId\", this.model.TrsVoucherDetails[0].ConcernId);\r\n this.model.ConcernId = this.model.TrsVoucherDetails[0].ConcernId;\r\n } else if (this.currentVoucherKind?.TrsVoucherKindConcerns && this.currentVoucherKind?.TrsVoucherKindConcerns.length > 0) {\r\n const concern = this.currentVoucherKind?.TrsVoucherKindConcerns.find((x) => x.IsDefault);\r\n this.setValue(\"ConcernId\", !concern ? undefined : concern.TrsConcernId);\r\n if (this.model) this.model.ConcernId = !concern ? undefined : concern.TrsConcernId;\r\n } else this.setValue(\"ConcernId\", undefined, true);\r\n if (this.formGroup && this.formGroup.get(\"ConcernId\")) {\r\n if (x.disabled) this.formGroup.get(\"ConcernId\").disable();\r\n else this.formGroup.get(\"ConcernId\").enable();\r\n }\r\n }\r\n }\r\n if (x.name === \"DetailLedgerId\") {\r\n if (this.currentVoucherKind) {\r\n x.disabled = !this.currentVoucherKind?.DetailLedgerInHeader;\r\n x.required = this.currentVoucherKind?.RequireDetailLedger;\r\n if (this.currentVoucherKind?.DetailLedgerCaption) x.label = this.currentVoucherKind?.DetailLedgerCaption;\r\n if (this.model && this.model.TrsVoucherDetails && this.model?.TrsVoucherDetails?.length > 0) {\r\n this.setValue(\"DetailLedgerId\", this.model.TrsVoucherDetails[0].DetailLedgerId, true);\r\n this.model.DetailLedgerId = this.model.TrsVoucherDetails[0].DetailLedgerId;\r\n } else this.setValue(\"DetailLedgerId\", undefined, true);\r\n if (this.formGroup && this.formGroup.get(\"DetailLedgerId\")) {\r\n if (x.disabled) this.formGroup.get(\"DetailLedgerId\").disable();\r\n else this.formGroup.get(\"DetailLedgerId\").enable();\r\n }\r\n }\r\n }\r\n if (x.name === \"TreasuryDetailLedgerId\") {\r\n if (this.currentVoucherKind && this.currentVoucherKind?.ShowTreasuryDetailLedger === true) {\r\n x.disabled = !(this.currentVoucherKind?.TreasuryDetailLedgerInHeader && this.currentVoucherKind?.ShowTreasuryDetailLedger === true);\r\n x.required = this.currentVoucherKind?.RequireTreasuryDetailLedger;\r\n if (this.currentVoucherKind?.TreasuryDetailLedgerCaption) x.label = this.currentVoucherKind?.TreasuryDetailLedgerCaption;\r\n if (this.model && this.model.TrsVoucherDetails && this.model.TrsVoucherDetails.length > 0) {\r\n this.setValue(\"TreasuryDetailLedgerId\", this.model.TrsVoucherDetails[0].TreasuryDetailLedgerId, x.required);\r\n this.model.TreasuryDetailLedgerId = this.model.TrsVoucherDetails[0].TreasuryDetailLedgerId;\r\n }\r\n } else {\r\n x.disabled = !(this.currentVoucherKind?.TreasuryDetailLedgerInHeader && this.currentVoucherKind?.ShowTreasuryDetailLedger === true);\r\n this.setValue(\"TreasuryDetailLedgerId\", undefined, x.required);\r\n if (this.formGroup && this.formGroup.get(\"TreasuryDetailLedgerId\")) {\r\n if (x.disabled) this.formGroup.get(\"TreasuryDetailLedgerId\").disable();\r\n else this.formGroup.get(\"TreasuryDetailLedgerId\").enable();\r\n }\r\n }\r\n }\r\n if (x.name === \"ReferenceVoucherKindId\") {\r\n x.disabled = !this.hasReference;\r\n if (!x.disabled) x.required = this.hasReferenceRequired;\r\n if (!x.disabled) {\r\n this.setReferenceVoucherKind();\r\n let vk = this.currentVoucherKind?.TrsReferenceVoucherKinds.find((vk) => vk.IsDefault);\r\n if (vk) {\r\n if (this.model) this.model.ReferenceVoucherKindId = vk.ReferenceVoucherKindId;\r\n this.setValue(\"ReferenceVoucherKindId\", vk.ReferenceVoucherKindId);\r\n }\r\n }\r\n if (this.formGroup && this.formGroup.get(\"ReferenceVoucherKindId\")) {\r\n if (x.disabled) this.formGroup.get(\"ReferenceVoucherKindId\").disable();\r\n else this.formGroup.get(\"ReferenceVoucherKindId\").enable();\r\n }\r\n }\r\n });\r\n\r\n if (this.isNoValidForEdit()) {\r\n this.orignalColumns.forEach((x) => {\r\n x.disabled = true;\r\n if (this.formGroup && this.formGroup.get(x.name)) {\r\n if (x.disabled) this.formGroup.get(x.name).disable();\r\n else this.formGroup.get(x.name).enable();\r\n this.formGroup.get(x.name).updateValueAndValidity();\r\n }\r\n });\r\n } else {\r\n this.orignalColumns.forEach((x) => {\r\n if (this.formGroup && this.formGroup.get(x.name)) {\r\n if (x.disabled) this.formGroup.get(x.name).disable();\r\n else this.formGroup.get(x.name).enable();\r\n this.formGroup.get(x.name).updateValueAndValidity();\r\n }\r\n });\r\n }\r\n if (this.currentVoucherKind && this.currentVoucherKind?.Title) {\r\n this.label = this.currentVoucherKind?.Title + `(${this.model?.VoucherNo ?? 0})`;\r\n if (this._id) this.tabsservice.setTabTitle(this._id.metadata.id, this.getFormTitle());\r\n }\r\n if (this.formGroup) {\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n if (this.currentVoucherKind) {\r\n this.isOkForLoad = true;\r\n this.cd.markForCheck();\r\n }\r\n if (!this.TrsVoucherDetailsColumns || this.TrsVoucherDetailsColumns.length <= 0) {\r\n this.TrsVoucherDetailsColumns = this.getDetailControlModels(\"TrsVoucherDetails\");\r\n this.TrsVoucherDetailsColumns.forEach((x) => {\r\n if (x.name === \"TreasuryDetailLedgerId\") {\r\n x.listVisible = this.currentVoucherKind?.ShowTreasuryDetailLedger && !this.currentVoucherKind?.TreasuryDetailLedgerInHeader;\r\n x.label = this.currentVoucherKind?.TreasuryDetailLedgerCaption ?? x.label;\r\n }\r\n if (x.name === \"ShowSubLedger\") {\r\n x.listVisible = this.currentVoucherKind?.ShowSubLedger && !this.currentVoucherKind?.SubledgerInHeader;\r\n x.label = this.currentVoucherKind?.TreasuryDetailLedgerCaption ?? x.label;\r\n }\r\n if (x.name === \"BankAccountId\") x.listVisible = this.currentVoucherKind?.OperationKindCode === 2;\r\n if (x.name === \"BankAccountNo\") x.listVisible = this.currentVoucherKind?.OperationKindCode === 1;\r\n });\r\n \r\n }\r\n this.columns.forEach((x) => (x.isFloat = null, x.userClass = null));\r\n this.cd.markForCheck();\r\n }\r\n setReferenceVoucherKind() {\r\n this.httpCommonService\r\n .get(\"TrsVoucherKind/ReadLookUp\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n let vk = (data as TrsVoucherKind[]).filter((x) =>\r\n this.currentVoucherKind?.TrsReferenceVoucherKinds?.some((vk) => vk.ReferenceVoucherKindId === x.Id)\r\n );\r\n this.selectorService.setDataList(\"ReferenceVoucherKindId\", vk);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n setConcernVoucherKind() {\r\n this.httpCommonService\r\n .get(\"TrsConcern/GetLookup\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n let vk = (data as TrsConcern[]).filter((x) => this.currentVoucherKind?.TrsVoucherKindConcerns.some((vk) => vk.TrsConcernId === x.Id));\r\n if (!vk) vk = [];\r\n this.selectorService.setDataList(\"ConcernId\", vk);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n setDefaultValues() {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.controlType === FormControlTypes.checkbox && this.model[x.name] === undefined) this.model[x.name] = false;\r\n if (x.name === \"VoucherDate\") x.disabled = this.currentVoucherKind && this.currentVoucherKind?.HasCheckVoucherDate;\r\n });\r\n }\r\n onHeaderValueChange($event) {\r\n if (!this.isValidating) this.isValid();\r\n }\r\n onValueChanges($event) {\r\n this.currentSelectedRow = $event;\r\n if (this.detail && this.detail?.dataList && this.model) this.model.TrsVoucherDetails = this.detail?.dataList;\r\n if (\r\n this.model &&\r\n this.currentVoucherKind?.DetailLedgerInHeader &&\r\n !this.formGroup.controls[\"DetailLedgerId\"].value &&\r\n !this.model.DetailLedgerId\r\n ) {\r\n this.model.DetailLedgerId = this.model.TrsVoucherDetails[0].DetailLedgerId;\r\n this.setValue(\"DetailLedgerId\", this.model.DetailLedgerId);\r\n }\r\n if (\r\n this.model &&\r\n this.currentVoucherKind?.DetailLedgerInHeader &&\r\n !this.formGroup.controls[\"TreasuryDetailLedgerId\"].value &&\r\n !this.model.TreasuryDetailLedgerId\r\n ) {\r\n this.model.TreasuryDetailLedgerId = this.model.TrsVoucherDetails[0].TreasuryDetailLedgerId;\r\n this.setValue(\"TreasuryDetailLedgerId\", this.model.TreasuryDetailLedgerId);\r\n }\r\n if (!this.isValidating) this.isValid();\r\n }\r\n onValueChangeByApiName($event) {\r\n if ($event?.apiName && $event?.data && $event?.data.Id && $event?.apiName.includes(\"TrsConcern/GetLookup\") && $event?.data?.InvVoucherKindId) {\r\n this.currentSettlementConcern = $event?.data;\r\n }\r\n if ($event?.apiName && $event?.data && $event?.data?.Id && $event?.apiName?.includes(\"DetailLedger/GetPagining\")) {\r\n this._currentDetailLedger = $event?.data;\r\n }\r\n if (!this.currentSettlementConcern || this.currentSettlementConcern.InvVoucherKindId) this.SetSettlementChecked();\r\n if (!this.model) return;\r\n this.model.TrsVoucherDetails.forEach((x) => {\r\n this.onValueChanges(x);\r\n });\r\n if (!this.isValidating) this.isValid();\r\n }\r\n\r\n isValid() {\r\n let flag: boolean = true;\r\n if (this.isValidating) return flag;\r\n if (this.model.TrsVoucherDetails && this.model?.TrsVoucherDetails.length <= 0 && this.detail && this.detail?.dataList?.length > 0)\r\n this.model.TrsVoucherDetails = this.detail?.dataList;\r\n\r\n if (!this.formGroup?.valid && !this.formGroup?.controls[\"StatusKindId\"]?.value) this.setStatusKind();\r\n if (!this.goodsError) this.erroremessage = undefined;\r\n else flag = false;\r\n\r\n if (!this.formGroup.controls[\"FiscalYearId\"].value && !this.accountService.authService.currentFiscalYear) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) this.setValue(\"FiscalYearId\", x.Id);\r\n });\r\n }\r\n if (flag && this.currentVoucherKind?.ConcernInHeader && !this.formGroup.controls[\"ConcernId\"].value) {\r\n this.erroremessage = \"بابت انتخاب نشده است.\";\r\n flag = false;\r\n }\r\n if (flag && this.currentVoucherKind && this.currentVoucherKind?.HasCheckVoucherDate && this.isNewRow) {\r\n if (new Date(this.formGroup.controls[\"VoucherDate\"].value).setHours(0, 0, 0, 0) < new Date().setHours(0, 0, 0, 0)) {\r\n this.erroremessage = \"تاریخ سند نمی تواند کوچکتر از تاریخ جاری باشد.\";\r\n flag = false;\r\n }\r\n }\r\n if (\r\n new Date(this.formGroup.controls[\"VoucherDate\"].value).setHours(0, 0, 0, 0) <\r\n new Date(this.accountService.authService.currentFiscalYear.StartDate).setHours(0, 0, 0, 0) ||\r\n new Date(this.formGroup.controls[\"VoucherDate\"].value).setHours(0, 0, 0, 0) >\r\n new Date(this.accountService.authService.currentFiscalYear.EndDate).setHours(0, 0, 0, 0)\r\n ) {\r\n this.erroremessage = \"تاریخ سند باید در محدوده سال مالی باشد.\";\r\n return false;\r\n }\r\n if (\r\n flag &&\r\n this.currentVoucherKind?.TreasuryDetailLedgerInHeader &&\r\n this.currentVoucherKind?.RequireTreasuryDetailLedger &&\r\n !this.formGroup.controls[\"TreasuryDetailLedgerId\"].value\r\n ) {\r\n this.erroremessage = `${this.currentVoucherKind?.TreasuryDetailLedgerCaption} انتخاب نشده است.`;\r\n flag = false;\r\n }\r\n if (\r\n flag &&\r\n this.currentVoucherKind?.DetailLedgerInHeader &&\r\n this.currentVoucherKind?.RequireDetailLedger &&\r\n !this.formGroup.controls[\"DetailLedgerId\"].value\r\n ) {\r\n this.erroremessage = `${this.currentVoucherKind?.DetailLedgerCaption} انتخاب نشده است.`;\r\n flag = false;\r\n }\r\n if (this.erroremessage && flag) flag = false;\r\n if (flag) {\r\n if (\r\n this.model.TrsVoucherDetails &&\r\n this.model.TrsVoucherDetails.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).length > 0\r\n ) {\r\n if (!this.formGroup?.valid || this.formGroup.status === \"DISABLED\") {\r\n let list = this.setFormGroupErrors();\r\n console.log(list);\r\n }\r\n flag = this.formGroup?.valid || this.formGroup.status === \"DISABLED\";\r\n } else {\r\n this.erroremessage = \"برای سند هیچ قلمی وارد نشده است.\";\r\n flag = false;\r\n }\r\n if (flag) {\r\n this.isValidating = true;\r\n this.onValueChangeByApiName(undefined);\r\n this.isValidating = false;\r\n flag = !this.erroremessage;\r\n }\r\n }\r\n if (flag && this.model.TrsVoucherDetails.some((x) => x.State !== RowState.Delete && x.State !== RowState.Detached && x.Price <= 0)) {\r\n this.erroremessage = \"آرتیکل سند نمی تواند بدون مبلغ باشد.\";\r\n flag = false;\r\n }\r\n this.isValidating = false;\r\n return flag;\r\n }\r\n RowCheckStateChanged($event) {\r\n let Totalvalue: number = 0;\r\n if ($event && $event.length > 0) {\r\n $event.forEach((item) => {\r\n if (item) {\r\n if (item.RemainValue > 0) Totalvalue += item.RemainValue;\r\n }\r\n });\r\n }\r\n this.setValue(\"TrsVoucherTotal\", Totalvalue);\r\n }\r\n VoucherSelectionChanged() {\r\n if (this.isActveTab(\"اسناد مرتبط\") && this.model.TrsVoucherDetails && this.currentSettlementConcern) {\r\n if (this.detail?.formGroup?.get(\"ConcernId\")?.value != null) {\r\n var TrsVoucherTotal = this.model.TrsVoucherDetails.filter((x) => x.ConcernId == this.currentSettlementConcern.Id)?.getSumWithKey(\"Price\");\r\n this.setValue(\"TrsVoucherTotal\", TrsVoucherTotal);\r\n this.SetSettlementChecked();\r\n }\r\n }\r\n if (this.isActveTab(\"سند\") && this.model.TrsVoucherDetails && this.model.TrsVoucherDetails.length > 0 && this.currentSettlementConcern) {\r\n if (this.currentSettlementConcern && this.currentSettlementConcern.InvVoucherKindId && this.grid?.selectedRows) {\r\n let Totalvalue: number = 0;\r\n this.grid?.selectedRows.forEach((item) => {\r\n if (item) {\r\n if (item.RemainValue > 0) {\r\n Totalvalue += item.RemainValue;\r\n }\r\n }\r\n });\r\n if (this.model.TrsVoucherDetails && Totalvalue > 0) {\r\n if (!this.detail.formGroup && this.model.TrsVoucherDetails.length <= 0) this.detail.addHandler();\r\n var row = this.model?.TrsVoucherDetails?.find((x) => x.ConcernId == this.currentSettlementConcern.Id);\r\n if (row != null) row.Price = Totalvalue;\r\n if (this.detail?.formGroup?.get(\"Price\")) this.detail.formGroup.get(\"Price\").setValue(Totalvalue);\r\n }\r\n }\r\n }\r\n }\r\n beforupdate() {\r\n this.SetSettlementVoucher();\r\n if (this.model.TrsSettlementVouchers && this.model.TrsSettlementVouchers.length > 0) {\r\n if (!this.formGroup.controls[\"TrsSettlementVouchers\"])\r\n this.formGroup.addControl(\"TrsSettlementVouchers\", new UntypedFormControl(this.model.TrsSettlementVouchers));\r\n else this.formGroup.controls[\"TrsSettlementVouchers\"].setValue(this.model.TrsSettlementVouchers);\r\n }\r\n if (this.detail) {\r\n if (this.detail.formGroup && this.detail?.formGroup?.valid) this.detail.saveCurrent();\r\n else this.detail.cancelHandler();\r\n }\r\n if (this.model.AccVoucherFixNumber > 0) return;\r\n if (this.detail && this.detail?.formGroup?.valid) this.detail.saveCurrent();\r\n else {\r\n this.detail.cancelHandler();\r\n if (this.model?.TrsVoucherDetails?.length > 0)\r\n this.model.TrsVoucherDetails = this.model.TrsVoucherDetails.filter((x) => x.State != RowState.Detached);\r\n }\r\n if (!this.isVoucherConfirmed && this.currentVoucherKind?.HasAutoConfirm && this.model.StatusKindCode != TrsStatusKind.Confirmed) {\r\n this.lookupservice\r\n .getLookupbyCode(\"TRS\", \"StatusKind\", TrsStatusKind.Confirmed)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", x.Id);\r\n this.setValue(\"StatusKindCode\", x.Code);\r\n this.setValue(\"StatusKindTitle\", x.Title);\r\n if (this.model.StatusKindCode === TrsStatusKind.Confirmed) this.confirmLabel = \"برگشت از تایید\";\r\n else this.confirmLabel = \"تایید سند\";\r\n }\r\n });\r\n }\r\n\r\n if (this.currentVoucherKind?.ConcernInHeader && this.formGroup.controls[\"ConcernId\"].value) {\r\n this.model.TrsVoucherDetails.forEach((x) => {\r\n if (x.ConcernId !== this.formGroup.controls[\"ConcernId\"].value) {\r\n x.ConcernId = this.formGroup.controls[\"ConcernId\"].value;\r\n if (x.State !== RowState.Detached && x.State !== RowState.New) x.State = RowState.Modify;\r\n }\r\n });\r\n }\r\n if (this.currentVoucherKind?.SubledgerInHeader && this.formGroup.controls[\"SubLedgerId\"].value) {\r\n this.model.TrsVoucherDetails.forEach((x) => {\r\n if (x.SubLedgerId !== this.formGroup.controls[\"SubLedgerId\"].value) {\r\n x.SubLedgerId = this.formGroup.controls[\"SubLedgerId\"].value;\r\n if (x.State !== RowState.Detached && x.State !== RowState.New) x.State = RowState.Modify;\r\n }\r\n });\r\n }\r\n if (this.currentVoucherKind?.DetailLedgerInHeader && this.formGroup.controls[\"DetailLedgerId\"].value) {\r\n this.model.TrsVoucherDetails.forEach((x) => {\r\n if (x.DetailLedgerId !== this.formGroup.controls[\"DetailLedgerId\"].value) {\r\n x.DetailLedgerId = this.formGroup.controls[\"DetailLedgerId\"].value;\r\n if (x.State !== RowState.Detached && x.State !== RowState.New) x.State = RowState.Modify;\r\n }\r\n });\r\n }\r\n if (this.currentVoucherKind?.TreasuryDetailLedgerInHeader && this.formGroup.controls[\"TreasuryDetailLedgerId\"].value) {\r\n this.model.TrsVoucherDetails.forEach((x) => {\r\n if (x.TreasuryDetailLedgerId !== this.formGroup.controls[\"TreasuryDetailLedgerId\"].value) {\r\n x.TreasuryDetailLedgerId = this.formGroup.controls[\"TreasuryDetailLedgerId\"].value;\r\n if (x.State !== RowState.Detached && x.State !== RowState.New) x.State = RowState.Modify;\r\n }\r\n });\r\n }\r\n if (this.model.TrsVoucherDetails && this.model.TrsVoucherDetails.length > 0) {\r\n if (!this.formGroup.controls[\"TrsVoucherDetails\"])\r\n this.formGroup.addControl(\"TrsVoucherDetails\", new UntypedFormControl(this.model.TrsVoucherDetails));\r\n else this.formGroup.controls[\"TrsVoucherDetails\"].setValue(this.model.TrsVoucherDetails);\r\n } else this.erroremessage = \"برای سند هیچ قلمی وارد نشده است.\";\r\n }\r\n addControl() {\r\n if (this.formGroup.controls[\"VoucherDate\"])\r\n this.formGroup.controls[\"VoucherDate\"].valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => this.isValid());\r\n this.SetInvSellVoucher();\r\n this.setValue(\"DetailLedgerRemain\", 0);\r\n this.setValue(\"TrsVoucherTotal\", 0);\r\n }\r\n\r\n getFilters(columnsName: string, searchValue: string, skip: number, take: number) {\r\n var filters: GridFilter[] = [];\r\n if (searchValue) {\r\n const columns = columnsName.split(\",\");\r\n columns.forEach((x) => {\r\n {\r\n if (x !== \"Id\")\r\n filters.push({ Filed: x, Operator: \"contains\", Type: \"F\", Skip: skip, Take: take, Value: searchValue.toString(), Logic: \"or\" });\r\n else if (Number(searchValue) && isNumber(Number(searchValue)))\r\n filters.push({ Filed: x, Operator: \"eq\", Type: \"F\", Skip: skip, Take: take, Value: Number(searchValue), Logic: \"or\" });\r\n }\r\n });\r\n }\r\n return filters;\r\n }\r\n onDataStateChange(columnName: string, searchValue: string, skip: number, take: number): Observable> {\r\n var abs = new BehaviorSubject>(undefined);\r\n const dLkids: number[] = [];\r\n if (\r\n columnName === \"DetailLedgerId\" &&\r\n this.currentVoucherKind?.TrsVoucherKindDetailLedgerKinds &&\r\n this.currentVoucherKind?.TrsVoucherKindDetailLedgerKinds.length > 0\r\n ) {\r\n this.currentVoucherKind?.TrsVoucherKindDetailLedgerKinds.forEach((x) => dLkids.push(x.DetailLedgerKindId));\r\n }\r\n if (\r\n columnName === \"TreasuryDetailLedgerId\" &&\r\n this.currentVoucherKind?.TrsVoucherKindTreasuryDetailLedgerKinds &&\r\n this.currentVoucherKind?.TrsVoucherKindTreasuryDetailLedgerKinds.length > 0\r\n ) {\r\n this.currentVoucherKind?.TrsVoucherKindTreasuryDetailLedgerKinds.forEach((x) => dLkids.push(x.DetailLedgerKindId));\r\n }\r\n\r\n let apiName: string = \"DetailLedger/DetailLedgerWithDetailLedgerKindIds\";\r\n let filter = this.getFilters(\"Id,Code,Title\", searchValue, skip, take);\r\n if (this.formGroup.get(columnName).value === Number(searchValue)) {\r\n filter = [];\r\n filter.push({ Filed: \"Id\", Operator: \"eq\", Type: \"F\", Skip: skip, Take: take, Value: Number(searchValue), Logic: \"or\" });\r\n }\r\n if (dLkids && dLkids.length > 0)\r\n filter.push({ Filed: \"dLkinds\", Operator: \"eq\", Value: dLkids, Type: \"F\", Skip: skip, Take: take, Logic: \"and\" });\r\n if (!filter || filter.length <= 0) filter.push({ Filed: \"Code\", Operator: \"eq\", Value: dLkids, Type: \"S\", Skip: skip, Take: take, Logic: \"and\" });\r\n this.httpCommonService\r\n .GetFilterGrid>(apiName, filter)\r\n\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x: PagingDataResult) => {\r\n if (x) abs.next(x);\r\n });\r\n return abs.asObservable();\r\n }\r\n setReferenceVoucherColumns() {\r\n this.httpCommonService\r\n .get(\"TrsVoucherHeader/GetReferenceVoucherInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.selectorService.setColumns(\"ReferenceId\", data as []);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n\r\n voucherConfirm() {\r\n if (\r\n this.isValid() &&\r\n (this.formGroup.controls[\"StatusKindCode\"].value === TrsStatusKind.Registered ||\r\n this.formGroup.controls[\"StatusKindCode\"].value === TrsStatusKind.Confirmed)\r\n ) {\r\n this.lookupservice\r\n .getLookupbyCode(\r\n \"TRS\",\r\n \"StatusKind\",\r\n this.model.StatusKindCode === TrsStatusKind.Confirmed ? TrsStatusKind.Registered : TrsStatusKind.Confirmed\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n if (x) {\r\n if (this.formGroup.controls[\"StatusKindCode\"].value === TrsStatusKind.Confirmed) {\r\n this.currentVoucherKind.HasAutoConfirm = false;\r\n this.currentVoucherKind.HasJournalVoucherAuto = false;\r\n }\r\n this.isVoucherConfirmed = this.model.StatusKindCode === TrsStatusKind.Confirmed;\r\n this.model.StatusKindId = x.Id;\r\n this.model.StatusKindCode = x.Code;\r\n this.model.StatusKindTitle = x.Title;\r\n this.setValue(\"StatusKindId\", x.Id);\r\n this.setValue(\"StatusKindCode\", x.Code);\r\n this.setValue(\"StatusKindTitle\", x.Title);\r\n if (this.model.StatusKindCode === TrsStatusKind.Confirmed) this.confirmLabel = \"برگشت از تایید\";\r\n else this.confirmLabel = \"تایید سند\";\r\n this.save();\r\n }\r\n },\r\n (error) => {}\r\n );\r\n }\r\n }\r\n delete_Voucher() {\r\n this.sts.showToast(\"primary\", \"\", \"در حال حذف...\");\r\n this.httpCommonService\r\n .delete(this.apiName, this.model.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (results) => {\r\n this.sts.showToast(\"success\", \"\", \"اطلاعات با موفیت حذف شد.\");\r\n this.model = undefined;\r\n this.currentrow = undefined;\r\n if (this.detail) this.detail.dataList = [];\r\n await this.ngOnInit();\r\n },\r\n (error) => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, \"خطا در حذف اطلاعات\");\r\n }\r\n );\r\n }\r\n deleteVoucher() {\r\n this.sts.showDialog(`آیا از حذف سند اطمینان دارید؟`, \"حذف سند\", DialogType.confirm, () => this.delete_Voucher());\r\n }\r\n async newVoucher() {\r\n this.isNewVoucher = true;\r\n if (this.canDeactivate()) {\r\n this.isClosing = false;\r\n this.model = undefined;\r\n this.currentrow = undefined;\r\n await this.ngOnInit();\r\n setTimeout(() => this.detail?.ngOnInit(), 100);\r\n }\r\n }\r\n\r\n hasChequeBookPrint() {\r\n return !this.currentSelectedRow;\r\n }\r\n chequeBookPrint(reportyKind: string) {\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = `الگوی چاپ چک ${this.currentSelectedRow.BankTitle}`;\r\n saveReportFile.FileName = `ChequeBookTemplate_${this.currentSelectedRow.BankId}`;\r\n saveReportFile.SystemKindName = \"TRS\";\r\n saveReportFile.CategoryName = \"ChequeBookTemplate\";\r\n\r\n let x: TrsVoucherHeader = Object.assign({}, this.model);\r\n\r\n x.TrsVoucherDetails = [this.currentSelectedRow];\r\n let reportInfo: ReportInfo = {};\r\n reportInfo.reportKind = reportyKind === \"Print\" ? ReportKind.preview : ReportKind.editReport;\r\n reportInfo.apiName = \"TrsVoucherHeader\";\r\n reportInfo.reportName = saveReportFile.FileName;\r\n reportInfo.reportTitle = saveReportFile.ReportTitle;\r\n reportInfo.dataList = [x];\r\n reportInfo.pathPreFix = \"TRS\";\r\n reportInfo.saveReportFile = saveReportFile;\r\n reportInfo.DataSourceName = saveReportFile.DataSourceName;\r\n\r\n this.dialogService\r\n .open(\r\n ChequeBookInfoFormComponent,\r\n {\r\n label: reportyKind === \"Print\" ? \"چاپ چک\" : \"طراحی قالب چک\",\r\n ChequeBookDescription: this.currentSelectedRow.Comment,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (model) => {\r\n if (model) {\r\n reportInfo.reportVariables = model;\r\n\r\n const menu = {\r\n title: saveReportFile.ReportTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n });\r\n }\r\n voucherRefrenceTo() {}\r\n accountAccVoucher(create: boolean = true) {\r\n if (this.canDeactivate()) {\r\n let gridFilter: GridFilter[] = [];\r\n let TrsVoucherHeaderIds: number[] = [];\r\n TrsVoucherHeaderIds.push(this.model.Id);\r\n let filter: GridFilter = {\r\n Type: \"F\",\r\n Filed: \"TrsVoucherHeaderIds\",\r\n Value: TrsVoucherHeaderIds,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n };\r\n gridFilter.push(filter);\r\n if (this.model.AccVoucherFixNumber !== undefined && this.model.AccVoucherFixNumber > 0 && !create) this.deleteAccVoucher(gridFilter);\r\n if (create) this.createAccVoucher(gridFilter);\r\n }\r\n }\r\n createAccVoucher(gridFilter: GridFilter[]) {\r\n this.splashFormService.openDialog(\"\", \"در حال صدور سند حسابداری\");\r\n this.httpCommonService\r\n .create(this.apiName + \"/CreateAccVoucher\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n if (x) {\r\n this.isClosing = false;\r\n this.splashFormService.closeLoading();\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n setTimeout(async () => {\r\n await this.ngOnInit();\r\n this.cd.markForCheck();\r\n }, 200);\r\n this.sts.showDialog(\"سند با موفقیت صادر شد.\", \"\");\r\n }\r\n },\r\n (error) => {\r\n this.currentVoucherKind.HasJournalVoucherAuto = false;\r\n setTimeout(async () => {\r\n await this.ngOnInit();\r\n this.cd.markForCheck();\r\n }, 200);\r\n this.splashFormService.closeLoading();\r\n this.isClosing = false;\r\n this.sts.showDialog(`خطا در صدور اسناد${Utilities.getHttpResponseMessage(error)}`, \"\");\r\n }\r\n );\r\n }\r\n deleteAccVoucher(gridFilter: GridFilter[]) {\r\n this.splashFormService.openDialog(\"\", \"در حال حذف سند حسابداری\");\r\n this.httpCommonService\r\n .create(this.apiName.split(\"/\")[0] + \"/DeleteAccVoucher\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (x) => {\r\n if (x) {\r\n this.splashFormService.closeLoading();\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"سند با موفقیت حذف شد.\", \"\");\r\n await this.ngOnInit();\r\n setTimeout(() => {\r\n this.cd.markForCheck();\r\n }, 50);\r\n }\r\n },\r\n async (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در حذف اسناد${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n await this.ngOnInit();\r\n setTimeout(() => {\r\n this.cd.markForCheck();\r\n }, 50);\r\n }\r\n );\r\n }\r\n viewAccVoucher() {\r\n this.httpCommonService\r\n .getItem(\"TrsVoucherHeader/ViewAccVoucher\", this.model.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n var datatrasfer: Datatransfer = {};\r\n datatrasfer.apiName = \"AccVoucherHeader\";\r\n datatrasfer.label = \"سند حسابداری\";\r\n datatrasfer.areaName = \"Accounting\";\r\n datatrasfer.currentrow = x;\r\n const menu = {\r\n title: `سند حسابداری-(نمایش)`,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: AccVoucherFormComponent,\r\n // modulePath: this.tabsservice.getActiveTab().modulePath,\r\n data: [\r\n { provide: EntityBase, useValue: x },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: x[\"\"] } },\r\n ],\r\n };\r\n this.tabsservice.open(menu);\r\n },\r\n (error) => this.sts.showDialog(`خطا در نمایش سند:${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n chequeBookAverage() {}\r\n ngOnDestroy() {\r\n super.ngOnDestroy();\r\n this.selectorService.setDataStateChange(\"TreasuryDetailLedgerId\", undefined);\r\n this.selectorService.setDataStateChange(\"DetailLedgerId\", undefined);\r\n this.selectorService.setDataList(\"ReferenceVoucherKindId\", undefined);\r\n this.selectorService.setDataList(\"ConcernId\", undefined);\r\n this.selectorService.setColumns(\"ReferenceId\", undefined);\r\n\r\n this.TrsVoucherDetailsColumns = undefined;\r\n this.reportKinds = undefined;\r\n }\r\n loadVoucherList() {\r\n this.inputEditorform = TrsVoucherModalListComponent;\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n label: this.label,\r\n currentVoucherKindId: this.currentVoucherKind.Id,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (model) => {\r\n if (model) {\r\n if (this.detail) this.detail.cancelHandler();\r\n this.currentrow = model;\r\n this.id = this.currentrow.Id;\r\n await this.ngOnInit();\r\n }\r\n });\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n this.VoucherSelectionChanged();\r\n }\r\n private GetSettelemntDetailLedgherId(): number {\r\n let result = undefined;\r\n if (this.grdSettlementVoucher && this.grdSettlementVoucher.length > 0) {\r\n var record = this.grdSettlementVoucher[0];\r\n if (record) result = record.DetailLedgerId;\r\n }\r\n return result;\r\n }\r\n\r\n SetSettlementVoucher() {\r\n if (\r\n this.model &&\r\n this.currentSettlementConcern &&\r\n this.model.TrsVoucherDetails &&\r\n this.model.TrsVoucherDetails.some((x) => x.ConcernId == this.currentSettlementConcern.Id) &&\r\n this.grid?.selectedRows\r\n ) {\r\n var Totalvalue = this.model.TrsVoucherDetails.filter((x) => x.ConcernId == this.currentSettlementConcern.Id)?.getSumWithKey(\"Price\");\r\n\r\n this.grid.selectedRows.forEach((item) => {\r\n if (Totalvalue > 0 && vh.RemainValue > 0) {\r\n var vh = item;\r\n var entity = this.model.TrsSettlementVouchers.find((x) => x.InvVoucherId == vh.Id);\r\n if (!entity) {\r\n entity = {};\r\n if (this.currentSettlementConcern.IsWarehouse) entity.InvVoucherId = vh.Id;\r\n else entity.SellVoucherId = vh.Id;\r\n entity.TrsConcernId = this.currentSettlementConcern.Id;\r\n entity.State = RowState.New;\r\n if (\r\n !this.model.TrsSettlementVouchers.some(\r\n (x) => x.TrsConcernId === entity.TrsConcernId && (x.InvVoucherId === entity.InvVoucherId || x.SellVoucherId === entity.SellVoucherId)\r\n )\r\n )\r\n this.model.TrsSettlementVouchers.push(entity);\r\n }\r\n if (Totalvalue > vh.RemainValue) {\r\n entity.SettlementValue = vh.RemainValue;\r\n } else {\r\n entity.SettlementValue = Totalvalue;\r\n }\r\n Totalvalue -= entity.SettlementValue;\r\n }\r\n });\r\n }\r\n }\r\n SetCurrentSettlementConcern() {\r\n if (this.formGroup?.get(\"TrsConcernId\")?.value || (this.model.TrsSettlementVouchers && this.model.TrsSettlementVouchers.length > 0)) {\r\n if (this.formGroup?.get(\"TrsConcernId\")?.value) {\r\n this.httpCommonService\r\n .getItem(\"TrsConcern/GetLookup\", this.formGroup?.get(\"TrsConcernId\")?.value)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.currentSettlementConcern = data[0];\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n } else {\r\n this.httpCommonService\r\n .getItem(\"TrsConcern/GetLookup\", this.model.TrsSettlementVouchers[0].TrsConcernId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.currentSettlementConcern = data[0];\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n }\r\n SetInvSellVoucher() {\r\n this.SetCurrentSettlementConcern();\r\n if (!this.SelectedSettlement || this.SelectedSettlement.length <= 0) {\r\n this.SetSettlementChecked();\r\n }\r\n if (this.currentSettlementConcern && this.currentSettlementConcern.InvVoucherKindId) {\r\n if (this.currentSettlementConcern.IsWarehouse) this.GetInvVoucher();\r\n else this.GetSellVoucher();\r\n }\r\n if (this.currentSettlementConcern && this.currentSettlementConcern.InvVoucherKindId) {\r\n this.SetSettlementVoucher();\r\n }\r\n }\r\n private GetSellVoucher() {\r\n if (!this.currentSettlementConcern) return;\r\n if (!this.currentDetailLedger || !this.currentDetailLedger.Id) {\r\n this.sts.showDialog(`${this.currentVoucherKind.DetailLedgerCaption} انتخاب نشده است.`, \"خطا اسناد مرتبط\");\r\n return;\r\n }\r\n let StatusKindIds: number[] = [];\r\n this.lookupservice\r\n .getLookupbyCategory(\"SELL\", \"StatusKind\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n x.filter((f) => f.Code !== 4).forEach((s) => {\r\n StatusKindIds.push(s.Id);\r\n });\r\n }\r\n });\r\n let FromVoucherDate: Date = this.currentSettlementConcern.InvVoucherKindDate;\r\n let VoucherDate = new Date(this.formGroup.get(\"VoucherDate\").value);\r\n if (VoucherDate) VoucherDate.setDate(VoucherDate.getDate() - 365);\r\n if (FromVoucherDate && FromVoucherDate > VoucherDate) FromVoucherDate = VoucherDate;\r\n if (!this.formGroup.get(\"VoucherDate\").value || !this.model.FiscalYearId) return;\r\n let gridFilter: GridFilter[] = [];\r\n gridFilter.push({ Type: \"F\", Filed: \"FiscalYearId\", Value: this.model.FiscalYearId, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n gridFilter.push({\r\n Type: \"F\",\r\n Filed: \"VoucherKindId\",\r\n Value: this.currentSettlementConcern.InvVoucherKindId,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n gridFilter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.model.BranchId, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n gridFilter.push({ Type: \"F\", Filed: \"StartVoucherDate\", Value: FromVoucherDate, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n gridFilter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"VoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n gridFilter.push({ Type: \"F\", Filed: \"StatusKindIds\", Value: StatusKindIds, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n this.httpCommonService\r\n .create(\"SellVoucherHeader/GetWithCustomFilter\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.grdSettlementVoucher = data;\r\n if (this.grid) this.grid.dataList = data;\r\n this.SetSettlementChecked();\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n\r\n private GetInvVoucher() {\r\n if (!this.currentSettlementConcern) return;\r\n if (!this.currentDetailLedger || !this.currentDetailLedger.Id) {\r\n this.sts.showDialog(`${this.currentVoucherKind.DetailLedgerCaption} انتخاب نشده است.`, \"خطای انتخاب اسناد مرتبط\");\r\n return;\r\n }\r\n let StatusKindIds: number[] = [];\r\n this.lookupservice\r\n .getLookupbyCategory(\"INV\", \"StatusKind\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n x.filter((f) => f.Code !== 4).forEach((s) => {\r\n StatusKindIds.push(s.Id);\r\n });\r\n }\r\n });\r\n let FromVoucherDate: Date = this.currentSettlementConcern.InvVoucherKindDate;\r\n let VoucherDate = new Date(this.formGroup.get(\"VoucherDate\").value);\r\n VoucherDate.setDate(VoucherDate.getDate() - 365);\r\n if (FromVoucherDate && FromVoucherDate > VoucherDate) FromVoucherDate = VoucherDate;\r\n if (!FromVoucherDate) FromVoucherDate = VoucherDate;\r\n let gridFilter: GridFilter[] = [];\r\n let DetailLedgerIds: number[] = [];\r\n if (this.currentDetailLedger?.Id) DetailLedgerIds.push(this.currentDetailLedger?.Id);\r\n gridFilter.push({ Type: \"F\", Filed: \"FiscalYearId\", Value: this.model.FiscalYearId, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n gridFilter.push({\r\n Type: \"F\",\r\n Filed: \"VoucherKindId\",\r\n Value: this.currentSettlementConcern.InvVoucherKindId,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n gridFilter.push({ Type: \"F\", Filed: \"DetailLedgerIds\", Value: DetailLedgerIds, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n gridFilter.push({ Type: \"F\", Filed: \"BranchId\", Value: this.model.BranchId, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n gridFilter.push({ Type: \"F\", Filed: \"StartVoucherDate\", Value: FromVoucherDate, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n gridFilter.push({\r\n Type: \"F\",\r\n Filed: \"EndVoucherDate\",\r\n Value: this.formGroup.get(\"VoucherDate\").value,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n gridFilter.push({ Type: \"F\", Filed: \"StatusKindIds\", Value: StatusKindIds, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n if (this.model.Id)\r\n gridFilter.push({ Type: \"F\", Filed: \"SettlementVoucherId\", Value: this.model.Id, Logic: \"and\", Operator: \"eq\", Skip: 0, Take: 0 });\r\n\r\n this.httpCommonService\r\n .create(\"InvVoucherHeader/GetWithCustomFilter\", gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.grdSettlementVoucher = data;\r\n if (this.grid) this.grid.dataList = data;\r\n this.SetSettlementChecked();\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n private SetSettlementChecked() {\r\n this.SelectedSettlement = [];\r\n if (!this.model.TrsSettlementVouchers) return;\r\n this.model.TrsSettlementVouchers.filter((x) => x.TrsConcernId === this.currentSettlementConcern?.Id).forEach((item) => {\r\n if (!this.SelectedSettlement.some((x) => x === (item.InvVoucherId ?? item.SellVoucherId)))\r\n this.SelectedSettlement.push(item.InvVoucherId ?? item.SellVoucherId);\r\n });\r\n if (this.grid) this.grid.mySelection = this.SelectedSettlement;\r\n this.cd.markForCheck();\r\n }\r\n\r\n setTrsVoucherDetailsColumns() {\r\n this.TrsSettlementVoucherColumns = [];\r\n this.TrsSettlementVoucherColumns.push({\r\n label: \"سریال\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Id\",\r\n disabled: false,\r\n name: \"Id\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n columnWidth: 101,\r\n });\r\n this.TrsSettlementVoucherColumns.push({\r\n label: \"انبار\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"WarehouseTitle\",\r\n disabled: false,\r\n name: \"WarehouseTitle\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n columnWidth: 101,\r\n });\r\n this.TrsSettlementVoucherColumns.push({\r\n label: \"نوع سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"VoucherKindTitle\",\r\n disabled: false,\r\n name: \"VoucherKindTitle\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n columnWidth: 101,\r\n });\r\n this.TrsSettlementVoucherColumns.push({\r\n label: \"شماره سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"VoucherNo\",\r\n disabled: false,\r\n name: \"VoucherNo\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n columnWidth: 101,\r\n });\r\n this.TrsSettlementVoucherColumns.push({\r\n label: \"شماره پیگیری\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SlaveNo\",\r\n disabled: false,\r\n name: \"SlaveNo\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n columnWidth: 101,\r\n });\r\n this.TrsSettlementVoucherColumns.push({\r\n label: \"تاریخ سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ShamsiVoucherDate\",\r\n disabled: false,\r\n name: \"ShamsiVoucherDate\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n columnWidth: 101,\r\n });\r\n this.TrsSettlementVoucherColumns.push({\r\n label: \"کد تفصیلی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DetailLedgerCode\",\r\n disabled: false,\r\n name: \"DetailLedgerCode\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n columnWidth: 101,\r\n });\r\n this.TrsSettlementVoucherColumns.push({\r\n label: \"عنوان تفصیلی\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"DetailLedgerTitle\",\r\n disabled: false,\r\n name: \"DetailLedgerTitle\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n columnWidth: 101,\r\n });\r\n this.TrsSettlementVoucherColumns.push({\r\n label: \"سند مبنا\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ReferenceVoucherKindTitle\",\r\n disabled: false,\r\n name: \"ReferenceVoucherKindTitle\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n columnWidth: 101,\r\n });\r\n this.TrsSettlementVoucherColumns.push({\r\n label: \"وضعیت سند\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"StatusKindTitle\",\r\n disabled: false,\r\n name: \"StatusKindTitle\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: false,\r\n required: false,\r\n columnWidth: 101,\r\n });\r\n this.TrsSettlementVoucherColumns.push({\r\n label: \"سند حسابداری\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"AccVoucherNo\",\r\n disabled: false,\r\n name: \"AccVoucherNo\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n columnWidth: 101,\r\n });\r\n this.TrsSettlementVoucherColumns.push({\r\n label: \"جمع خالص\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"TotalPrice\",\r\n disabled: false,\r\n name: \"TotalPrice\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n columnWidth: 101,\r\n });\r\n this.TrsSettlementVoucherColumns.push({\r\n label: \"مبلغ تسویه شده\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"PaymentValue\",\r\n disabled: false,\r\n name: \"PaymentValue\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n columnWidth: 101,\r\n });\r\n this.TrsSettlementVoucherColumns.push({\r\n label: \"مانده\",\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"RemainValue\",\r\n disabled: false,\r\n name: \"RemainValue\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n columnWidth: 101,\r\n });\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n 0\">\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n #grid\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [noToolBar]=\"true\"\r\n [groupable]=\"false\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [isMulti]=\"true\"\r\n [name]=\"apiName\"\r\n dataKey=\"'UId'\"\r\n [mySelection]=\"SelectedSettlement\"\r\n (onRowsSelected)=\"RowCheckStateChanged($event)\"\r\n [columns]=\"TrsSettlementVoucherColumns\"\r\n [paging]=\"false\"\r\n (onRefreshData)=\"SetInvSellVoucher()\"\r\n [dataList]=\"grdSettlementVoucher\"\r\n reportName=\"TrsSettlementVouchers\"\r\n pathPreFix=\"TRS\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n = 2 || isNewRow\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 2 || isNewRow\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { SplashScreenService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/SplashScreenService\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer, VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GridFilter, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherFormComponent } from \"src/app/backoffice/acc/accvoucher/accvoucher-form/accvoucher-form.component\";\r\nimport { TrsStatusKind } from \"../../models/tresury.enums\";\r\nimport { TrsVoucherHeader } from \"../../models/trs-voucher-header.model\";\r\nimport { TrsReferenceVoucherListComponent } from \"../trs-reference-voucher-list/trs-reference-voucher-list.component\";\r\nimport { TrsVoucherDetailFilterComponent } from \"../trs-voucher-detail-filter/trs-voucher-detail-filter.component\";\r\nimport { TrsVoucherFormComponent } from \"../trs-voucher-form/trs-voucher-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-trs-voucher-list\",\r\n templateUrl: \"./trs-voucher-list.component.html\",\r\n styleUrls: [\"./trs-voucher-list.component.scss\"],\r\n})\r\nexport class TrsVoucherListComponent extends BaseListComponent {\r\n filterInfo: NameValue[] = [];\r\n actions: EntityListAction[];\r\n filters: GridFilter[];\r\n constructor(\r\n private lookupservice: LookupService,\r\n private _tabsservice: TabularService,\r\n private splashScreenService: SplashScreenService,\r\n private splashFormService: SplashFormService\r\n ) {\r\n super();\r\n this.inputEditorform = TrsVoucherFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n\r\n get currentFiscalYear() {\r\n return this.accountService.authService.currentFiscalYear;\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.filterInfo = undefined;\r\n this.actions = undefined;\r\n this.filters = undefined;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"TrsVoucherHeader/GetWithCustomFilter\";\r\n this.label = \"فهرست اسناد\";\r\n this.areaName = \"Treasury\";\r\n this.setactions();\r\n if (this.currentFiscalYear) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: this.currentFiscalYear?.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n } else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: x.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.accountService.authService.currentBranchId, Operator: \"eq\" });\r\n }\r\n });\r\n }\r\n async createAccVoucher(apiName: string, gridFilter: GridFilter[]) {\r\n this.splashFormService.openDialog(\"\", \"در حال صدور سند حسابداری\");\r\n await this.httpCommonService\r\n .create(apiName, gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"اسناد با موفقیت صادر شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در صدور اسناد:${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n async deleteAccVoucher(apiName: string, gridFilter: GridFilter[]) {\r\n this.splashFormService.openDialog(\"\", \"در حال حذف سند حسابداری\");\r\n await this.httpCommonService\r\n .create(apiName, gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"اسناد با موفقیت حذف شد.\", \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`خطا در حذف اسناد:${Utilities.getHttpResponseMessage(error)}`, \"خطا\");\r\n }\r\n );\r\n }\r\n onActionClick(\r\n action: EntityListAction,\r\n onRowSelected: TrsVoucherHeader,\r\n onRowsSelected: TrsVoucherHeader[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) {\r\n if (onRowSelected && (!onRowsSelected || onRowsSelected.length <= 0)) onRowsSelected = [onRowSelected];\r\n let TrsVoucherHeaderIds: number[];\r\n ///نمایش سند حسابداری\r\n if (action.name === \"ViewAccVoucher\") {\r\n if (onRowSelected) {\r\n if (!onRowSelected.AccVoucherFixNumber) {\r\n this.sts.showDialog(\"سندحسابداری صادر نشده است.\", \"خطا\");\r\n return;\r\n }\r\n this.httpCommonService\r\n .getItem(\"TrsVoucherHeader/ViewAccVoucher\", onRowsSelected.length > 0 ? onRowsSelected[0].Id : onRowSelected.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x) => {\r\n var datatrasfer: Datatransfer = {};\r\n datatrasfer.apiName = \"AccVoucherHeader\";\r\n datatrasfer.label = \"صدور سند حسابداری\";\r\n datatrasfer.areaName = \"Accounting\";\r\n datatrasfer.currentrow = x;\r\n const menu = {\r\n title: `سند حسابداری-(نمایش)`,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: AccVoucherFormComponent,\r\n // modulePath: this._tabsservice.getActiveTab().modulePath,\r\n data: [\r\n { provide: EntityBase, useValue: x },\r\n { provide: Datatransfer, useValue: datatrasfer },\r\n { provide: VoucherKindInfo, useValue: { VoucherKindId: x[\"\"] } },\r\n ],\r\n };\r\n this._tabsservice.open(menu);\r\n },\r\n (error) => this.sts.showDialog(`خطا در نمایش سند:${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n }\r\n ///ایجاد سند حسابداری\r\n if (action.name === \"CreateAccVoucher\" || action.name === \"DeleteAccVoucher\") {\r\n if (onRowSelected) {\r\n if (onRowSelected.StatusKindCode < TrsStatusKind.Confirmed) {\r\n this.sts.showDialog(\"اسناد تایید نشده است.\", \"خطا\");\r\n return;\r\n }\r\n if (!TrsVoucherHeaderIds) TrsVoucherHeaderIds = [];\r\n TrsVoucherHeaderIds.push(onRowSelected.Id);\r\n }\r\n if (onRowsSelected && onRowsSelected.length > 0) {\r\n if (onRowsSelected.some((x) => x.StatusKindCode < TrsStatusKind.Confirmed)) {\r\n this.sts.showDialog(\"اسناد تایید نشده است.\", \"خطا\");\r\n return;\r\n }\r\n onRowsSelected.forEach((x) => {\r\n if (x) {\r\n if (!TrsVoucherHeaderIds) TrsVoucherHeaderIds = [];\r\n if (\r\n !TrsVoucherHeaderIds.some((id) => id === x.Id) &&\r\n x.HasJournalVoucher &&\r\n ((action.name === \"CreateAccVoucher\" && x.StatusKindCode === TrsStatusKind.Confirmed) ||\r\n (action.name === \"DeleteAccVoucher\" && x.StatusKindCode === TrsStatusKind.AccountRegistered))\r\n )\r\n TrsVoucherHeaderIds.push(x.Id);\r\n }\r\n });\r\n }\r\n let filter: GridFilter = {\r\n Type: \"F\",\r\n Filed: \"TrsVoucherHeaderIds\",\r\n Value: TrsVoucherHeaderIds,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n };\r\n if (TrsVoucherHeaderIds && TrsVoucherHeaderIds.length > 0) gridFilter.push(filter);\r\n\r\n if (action.name === \"CreateAccVoucher\") {\r\n if (gridFilter.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا اسناد انتخاب شده قابل صدور سند حسابداری نیست\", \"خطا\");\r\n return;\r\n }\r\n this.sts.showDialog(\r\n \"آیا از صدور سند حسابداری اطمینان دارید؟\",\r\n \"صدور سند\",\r\n DialogType.confirm,\r\n async () => await this.createAccVoucher(action.apiName, gridFilter)\r\n );\r\n }\r\n if (action.name === \"DeleteAccVoucher\") {\r\n if (gridFilter.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا اسناد انتخاب شده قابل حذف نیست\", \"خطا\");\r\n return;\r\n }\r\n this.sts.showDialog(\r\n \"آیا از حذف سند حسابداری اطمینان دارید؟\",\r\n \"حذف سند\",\r\n DialogType.confirm,\r\n async () => await this.deleteAccVoucher(action.apiName, gridFilter)\r\n );\r\n }\r\n }\r\n ///تایید اسناد\r\n if (action.name === \"VoucherConFirmed\" && onRowsSelected.length > 0) {\r\n onRowsSelected = onRowsSelected.filter((x) => x.StatusKindCode === TrsStatusKind.Registered);\r\n if (!onRowsSelected || onRowsSelected.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا اسناد انتخاب شده قابل تایید نیست\", \"خطا\");\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"TRS\", \"StatusKind\", TrsStatusKind.Confirmed)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (sk) => {\r\n if (sk) {\r\n onRowsSelected.forEach((x) => {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n });\r\n await this.httpCommonService\r\n .bulkUpdate(action.apiName.split(\"/\")[0], onRowsSelected)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x) => {\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"اسناد با موفقیت تایید شد.\", \"\");\r\n },\r\n (error) => this.sts.showDialog(`خطا در تایید اسناد:${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n });\r\n }\r\n\r\n ///برگشت از تایید اسناد\r\n if (action.name === \"VoucherDeConfirm\" && onRowsSelected.length > 0) {\r\n onRowsSelected = onRowsSelected.filter((x) => x.StatusKindCode === TrsStatusKind.Confirmed);\r\n if (!onRowsSelected || onRowsSelected.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا وضعیت اسناد انتخاب شده تایید نیست\", \"خطا\");\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"TRS\", \"StatusKind\", TrsStatusKind.Registered)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (sk) => {\r\n if (sk) {\r\n onRowsSelected.forEach((x) => {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n });\r\n await this.httpCommonService\r\n .bulkUpdate(action.apiName.split(\"/\")[0], onRowsSelected)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x) => {\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(\"اسناد با موفقیت برگشت از تایید شد.\", \"\");\r\n },\r\n (error) => this.sts.showDialog(`خطا در برگشت از تایید اسناد:${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n });\r\n }\r\n\r\n ///ابطال /برگشت از ابطال\r\n if (action.name === \"VoucherCancelled\" && onRowsSelected.length > 0) {\r\n let isCancelled: boolean = false;\r\n let onRowsSelected1 = onRowsSelected.filter((x) => x.StatusKindCode === TrsStatusKind.Registered);\r\n if (!onRowsSelected1 || onRowsSelected1.length <= 0) {\r\n onRowsSelected1 = onRowsSelected.filter((x) => x.StatusKindCode === TrsStatusKind.Cancelled);\r\n isCancelled = onRowsSelected1 && onRowsSelected1.length > 0;\r\n }\r\n if (!onRowsSelected1 || onRowsSelected1.length <= 0) {\r\n this.sts.showDialog(\"هیچ سندی انتخاب نشده یا وضعیت اسناد انتخاب شده ثبت اولیه نیست\", \"خطا\");\r\n return;\r\n }\r\n this.lookupservice\r\n .getLookupbyCode(\"TRS\", \"StatusKind\", isCancelled ? TrsStatusKind.Registered : TrsStatusKind.Cancelled)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (sk) => {\r\n if (sk) {\r\n onRowsSelected1.forEach((x) => {\r\n x.StatusKindId = sk.Id;\r\n x.StatusKindCode = sk.Code;\r\n x.StatusKindTitle = sk.Title;\r\n });\r\n await this.httpCommonService\r\n .bulkUpdate(action.apiName.split(\"/\")[0], onRowsSelected1)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x) => {\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n if (isCancelled) this.sts.showDialog(\"اسناد با موفقیت برگشت از ابطال شد.\", \"\");\r\n else this.sts.showDialog(\"اسناد با موفقیت ابطال شد.\", \"\");\r\n },\r\n (error) => this.sts.showDialog(`خطا در ابطال اسناد:${Utilities.getHttpResponseMessage(error)}`, \"خطا\")\r\n );\r\n }\r\n });\r\n }\r\n\r\n ///سند مبنا\r\n if (action.name === \"TrsVoucherBase\" && onRowSelected != null) {\r\n this.dialogService\r\n .open(\r\n TrsReferenceVoucherListComponent,\r\n {\r\n VoucherId: onRowsSelected.length > 0 ? onRowsSelected[0].Id : onRowSelected.Id,\r\n apiName: action.apiName,\r\n areaName: action.areaName,\r\n label: \"سند مبنا\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {});\r\n }\r\n ///سند معطوف\r\n if (action.name === \"TrsRefrenceTo\" && onRowSelected != null) {\r\n this.dialogService\r\n .open(\r\n TrsReferenceVoucherListComponent,\r\n {\r\n VoucherId: onRowsSelected.length > 0 ? onRowsSelected[0].Id : onRowSelected.Id,\r\n apiName: action.apiName,\r\n areaName: action.areaName,\r\n label: \"سند معطوف\",\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {});\r\n }\r\n ///فیلتر اقلام سند\r\n if (action.name === \"TrsVoucherDetailFilter\") {\r\n this.dialogService\r\n .open(\r\n TrsVoucherDetailFilterComponent,\r\n {\r\n currentrow: null,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n label: this.label,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {\r\n if (model && model.length > 0) this.filters = model;\r\n });\r\n }\r\n ///حذف فیلتر افلام\r\n if (action.name === \"TrsVoucherDetailFilterRemove\") {\r\n this.filters = [];\r\n }\r\n return;\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"CreateAccVoucher\",\r\n disabled: false,\r\n displayName: \"صدور سند حسابداری\",\r\n iconName: \"icon-create_new_folder-o\",\r\n apiName: \"TrsVoucherHeader/CreateAccVoucher\",\r\n areaName: \"Treasury\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"DeleteAccVoucher\",\r\n disabled: false,\r\n displayName: \"حذف سند حسابداری\",\r\n iconName: \"icon-delete-sweep-outline\",\r\n apiName: \"TrsVoucherHeader/DeleteAccVoucher\",\r\n areaName: \"Treasury\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"ViewAccVoucher\",\r\n disabled: false,\r\n\r\n displayName: \"نمایش سند حسابداری\",\r\n iconName: \"icon-table_view-f\",\r\n apiName: \"TrsVoucherHeader/ViewAccVoucher\",\r\n areaName: \"Treasury\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherCancelled\",\r\n disabled: false,\r\n displayName: \"ابطال/برگشت از ابطال سند\",\r\n iconName: \"icon-blocked\",\r\n apiName: \"TrsVoucherHeader/VoucherCancelled\",\r\n areaName: \"Treasury\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherConFirmed\",\r\n disabled: false,\r\n displayName: \"تائید سند\",\r\n iconName: \"icon-folder-open-outline\",\r\n apiName: \"TrsVoucherHeader/VoucherConFirmed\",\r\n areaName: \"Treasury\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"VoucherDeConfirm\",\r\n disabled: false,\r\n displayName: \"برگشت از تائید\",\r\n iconName: \"icon-folder-open\",\r\n apiName: \"TrsVoucherHeader/VoucherDeConfirm\",\r\n areaName: \"Treasury\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"TrsReportPrint\",\r\n disabled: true,\r\n displayName: \"چاپ سند\",\r\n iconName: \"icon-print-o\",\r\n apiName: \"TrsVoucherHeader/TrsReportPrint\",\r\n areaName: \"Treasury\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"TrsRefrenceTo\",\r\n disabled: false,\r\n displayName: \"سند معطوف\",\r\n iconName: \"icon-content_copy-o\",\r\n apiName: \"TrsVoucherHeader/GetTrsReferenceToVouchersByVoucherId\",\r\n areaName: \"Treasury\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"TrsVoucherBase\",\r\n disabled: false,\r\n displayName: \"سند مبنا\",\r\n iconName: \"icon-folder-open-outline\",\r\n apiName: \"TrsVoucherHeader/GetTrsReferenceVouchersByVoucherId\",\r\n areaName: \"Treasury\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"TrsVoucherDetailFilter\",\r\n disabled: false,\r\n displayName: \"فیلتر اقلام\",\r\n iconName: \"icon-filter-variant-plus\",\r\n apiName: \"TrsVoucherHeader\",\r\n areaName: \"Treasury\",\r\n permission: Permission.viewPermission,\r\n },\r\n {\r\n name: \"TrsVoucherDetailFilterRemove\",\r\n disabled: false,\r\n displayName: \"حذف فیلتر اقلام\",\r\n iconName: \"icon-filter-variant-minus\",\r\n apiName: \"TrsVoucherHeader\",\r\n areaName: \"Treasury\",\r\n permission: Permission.viewPermission,\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { FormCanDeactivate } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/form-can-deactivate\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { AuthService, LookupService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { TrsVoucherHeader } from \"../../models/trs-voucher-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-trs-voucher-modal-list\",\r\n templateUrl: \"./trs-voucher-modal-list.component.html\",\r\n styleUrls: [\"./trs-voucher-modal-list.component.scss\"],\r\n})\r\nexport class TrsVoucherModalListComponent extends FormCanDeactivate implements OnInit, OnDestroy {\r\n filterInfo: NameValue[] = [];\r\n ngUnsubscribe = new Subject();\r\n apiName: string;\r\n areaName: string;\r\n label: string;\r\n currentVoucher: TrsVoucherHeader;\r\n @Input() currentVoucherKindId: number;\r\n constructor(\r\n private authService: AuthService,\r\n protected translateText: TranslateService,\r\n private sts: ShowToastrService,\r\n private lookupservice: LookupService\r\n ) {\r\n super();\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.filterInfo = undefined;\r\n this.currentVoucher = undefined;\r\n }\r\n get currentFiscalYear() {\r\n return this.authService.currentFiscalYear;\r\n }\r\n ngOnInit() {\r\n this.lookupservice.getall();\r\n this.apiName = \"TrsVoucherHeader\";\r\n this.areaName = \"Treasury\";\r\n this.label = \"فهرست اسناد\";\r\n if (this.currentVoucherKindId) this.filterInfo.push({ Name: \"TrsVoucherKindId\", Value: this.currentVoucherKindId, Operator: \"eq\" });\r\n if (this.currentFiscalYear) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: this.currentFiscalYear?.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.authService.currentBranchId, Operator: \"eq\" });\r\n } else\r\n this.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) {\r\n this.filterInfo.push({ Name: \"FiscalYearId\", Value: x.Id, Operator: \"eq\" });\r\n this.filterInfo.push({ Name: \"BranchId\", Value: this.authService.currentBranchId, Operator: \"eq\" });\r\n }\r\n });\r\n }\r\n\r\n onDoubleClick(voucher?: TrsVoucherHeader) {\r\n this.result = voucher;\r\n this.closeModal();\r\n }\r\n cancel() {\r\n this.result = undefined;\r\n this.closeModal();\r\n }\r\n onRowSelected($event) {\r\n if ($event) {\r\n this.currentVoucher = $event;\r\n }\r\n }\r\n submit() {\r\n if (!this.currentVoucher) this.sts.showDialog(\"هیچ سندی انتخاب نشده است.\", \"انتخاب سند\");\r\n else this.onDoubleClick(this.currentVoucher);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n {{ label }}\r\n
\r\n
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [isMulti]=\"false\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [isModal]=\"false\"\r\n reportName=\"TresuryList\"\r\n pathPreFix=\"TRS\"\r\n [disableOnDoubleClick]=\"true\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n (onRowSelected)=\"onRowSelected($event)\"\r\n (onDoubleClick)=\"onDoubleClick($event)\">\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { DropDownListModule } from \"@progress/kendo-angular-dropdowns\";\r\nimport { PopupModule } from \"@progress/kendo-angular-popup\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { ThemeModule } from \"projects/sepidz-web-framework-shell/src/lib/@theme/theme.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { TabularModule } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.module\";\r\nimport { ChequeBookInfoFormComponent } from \"./cheque-book-info/cheque-book-info-form.component\";\r\nimport { TrsReferenceVoucherListComponent } from \"./trs-reference-voucher-list/trs-reference-voucher-list.component\";\r\nimport { TrsVoucherDetailFilterComponent } from \"./trs-voucher-detail-filter/trs-voucher-detail-filter.component\";\r\nimport { TrsVoucherDetailComponent } from \"./trs-voucher-detail/trs-voucher-detail.component\";\r\nimport { TrsVoucherFormComponent } from \"./trs-voucher-form/trs-voucher-form.component\";\r\nimport { TrsVoucherListComponent } from \"./trs-voucher-list/trs-voucher-list.component\";\r\nimport { TrsVoucherModalListComponent } from \"./trs-voucher-modal-list/trs-voucher-modal-list.component\";\r\n\r\nconst components = [\r\n TrsVoucherFormComponent,\r\n TrsVoucherDetailComponent,\r\n TrsVoucherListComponent,\r\n TrsVoucherModalListComponent,\r\n TrsVoucherDetailFilterComponent,\r\n TrsReferenceVoucherListComponent,\r\n ChequeBookInfoFormComponent,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, ThemeModule, TabularModule, SharedModule.forRoot(), SepidzGridModule, DropDownListModule, PopupModule],\r\n})\r\nexport class TrsVoucherModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { MultipleExportModel } from \"projects/sepidz-web-framework/src/lib/models/multiple-export.model\";\r\nimport { Invoice } from \"../../order/model/invoice.model\";\r\nimport { TaxPayerSystemModel } from \"projects/sepidz-web-framework/src/lib/models/TaxPayerSystem.model\";\r\n\r\n@Component({\r\n selector: \"ngx-TaxPayerSystem\",\r\n templateUrl: \"./TaxPayerSystem.component.html\",\r\n styleUrls: [\"./TaxPayerSystem.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TaxPayerSystemFormComponent extends BaseFormComponent {\r\n DefaultValues: Dictionary = [];\r\n InvoiceItemColumns: form_control[] = [];\r\n multipleExportItems: MultipleExportModel[] = [];\r\n invoiceList: Invoice[];\r\n gridColumns: form_control[];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"TaxPayer\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.TaxPayerSystem.TaxPayerSystem\");\r\n super.ngOnInit();\r\n this.GetColumns();\r\n }\r\n\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n if (!this.orignalColumns.some((s) => s.name === \"Addbtn\")) {\r\n const btn = new form_control();\r\n btn.name = \"Addbtn\";\r\n btn.label = this.translate(\"ClientApp.FrontOffice.TaxPayerSystem.PerformOperation\");\r\n btn.formVisible = true;\r\n btn.order = 6;\r\n btn.controlType = FormControlTypes.Button;\r\n this.orignalColumns.push(btn);\r\n }\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n }\r\n\r\n SetInvoiceFactor() {\r\n this.model.StartDate = this.formGroup.controls[\"StartDate\"].value;\r\n this.model.EndDate = this.formGroup.controls[\"EndDate\"].value;\r\n this.httpCommonService\r\n .create(\"TaxPayer/GetInvoices\", this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n this.invoiceList = data.Data;\r\n },\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n async GetColumns() {\r\n await this.httpCommonService\r\n .getControlsList(\"TaxPayer/GetInvoiceInfo\", true)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.gridColumns = data as form_control[];\r\n this.gridColumns = this.gridColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n submitChange(controlName: string) {\r\n if (controlName === \"Addbtn\") {\r\n this.SetInvoiceFactor();\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { TaxPayerSystemFormComponent } from \"../TaxPayerSystem-from/TaxPayerSystem.component\";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { filter, take, takeUntil } from \"rxjs/operators\";\r\nimport { Invoice } from \"../../order/model/invoice.model\";\r\nimport { ConfirmDateValue, DateDialogComponent } from \"../../dateDialog/dateDialog.component\";\r\nimport { Subject } from \"rxjs\";\r\nimport { TaxPayerSystemModel } from \"projects/sepidz-web-framework/src/lib/models/TaxPayerSystem.model\";\r\nimport { randomInt } from \"crypto\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\n\r\n@Component({\r\n selector: \"ngx-taxPayer-list\",\r\n templateUrl: \"./TaxPayerSystem-list.component.html\",\r\n styleUrls: [\"./TaxPayerSystem-list.component.scss\"],\r\n})\r\nexport class TaxPayerSystemListComponent extends BaseListComponent {\r\n actions: EntityListAction[];\r\n onFilter: GridFilter[] = [];\r\n @Input() currentFilter: any;\r\n constructor() {\r\n super();\r\n this.inputEditorform = TaxPayerSystemFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"TaxPayer\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.TaxPayerSystem.TaxPayerSystem\");\r\n this.areaName = \"RestaurantSale\";\r\n this.setactions();\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"taxPayerInquiry\",\r\n disabled: false,\r\n displayName: this.translate(\"ClientApp.FrontOffice.TaxPayerSystem.GetLatestInvoiceStatus\"),\r\n iconName: \"icon-error_outline-o\",\r\n apiName: \"TaxPayer/GetInquiry\",\r\n areaName: this.areaName,\r\n permission: Permission.viewPermission,\r\n },\r\n ];\r\n }\r\n onActionClick(action: EntityListAction) {\r\n //if (action.name === \"taxPayerInquiry\") {\r\n const confirmValue: Subject = new Subject();\r\n confirmValue\r\n .pipe(\r\n filter((x) => !!x),\r\n take(1)\r\n )\r\n .subscribe((value) => {\r\n const taxPayer: TaxPayerSystemModel = {\r\n StartDate: value.StartDate,\r\n EndDate: value.EndDate,\r\n HasGetResponese: value.HasGetResponse,\r\n ResendFactors: value.ResendFactors,\r\n SendStatusCode: value.StatusCode,\r\n };\r\n this.setFilter(value);\r\n if (taxPayer.HasGetResponese) {\r\n this.httpCommonService\r\n .create(\"TaxPayer/GetInquiry\", taxPayer)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {},\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n if (taxPayer.ResendFactors) {\r\n this.httpCommonService\r\n .create(\"TaxPayer/ResendFactors\", taxPayer)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {},\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n });\r\n this.dialogService.open(\r\n DateDialogComponent,\r\n { confirmValue, autoCancel: false, hasResponse: true, hasResendFactors: true, statusList: true },\r\n {}\r\n );\r\n\r\n //}\r\n }\r\n\r\n public setFilter(value: ConfirmDateValue): void {\r\n this.onFilter = [];\r\n this.onFilter.push({\r\n Filed: \"Code\",\r\n Value: value.StatusCode,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n });\r\n this.onFilter.push({\r\n Filed: \"StartDate\",\r\n Value: value.StartDate,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"gte\",\r\n Type: \"F\",\r\n });\r\n this.onFilter.push({\r\n Filed: \"EndDate\",\r\n Value: value.EndDate,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"lte\",\r\n Type: \"F\",\r\n });\r\n\r\n this.onFilter = Object.assign([], this.onFilter);\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { TaxPayerSystemFormComponent } from \"./TaxPayerSystem-from/TaxPayerSystem.component\";\r\nimport { TaxPayerSystemListComponent } from \"./TaxPayerSystem-list/TaxPayerSystem-list.component\";\r\n\r\nconst components = [TaxPayerSystemFormComponent, TaxPayerSystemListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class TaxPayerSystemModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { Additive, AdditiveItemCategory, AdditiveIgnoredItem, AdditiveItem } from \"../model/additive.model\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { Item } from \"../model/item.model\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\n\r\n@Component({\r\n selector: \"ngx-additive-form\",\r\n templateUrl: \"./additive-form.component.html\",\r\n styleUrls: [\"./additive-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AdditiveFormComponent extends BaseFormComponent {\r\n Categories: number[] = [];\r\n Items: number[] = [];\r\n IgnoredItems: number[] = [];\r\n ItemWithCategory: Item[] = [];\r\n IgnoredItemsWithCategory: Item[] = [];\r\n ItemIds: Item[] = [];\r\n deactivateSave: boolean = false;\r\n erroremessage: string;\r\n haserror: boolean = false;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.FillData();\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"Additive\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Catalog.Additive.Additive\");\r\n super.ngOnInit();\r\n }\r\n\r\n setdefault() {\r\n const hasBranchCommunication = JSON.parse(localStorage.getItem(\"HasBranchCommunication\"));\r\n if (hasBranchCommunication == null) {\r\n this.httpCommonService\r\n .getList(`Branch/HasBranchCommunication/${this.accountService.authService.currentBranchId}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n (hbc: boolean) => {\r\n if (hbc === true) this.erroremessage = this.translate(\"ClientApp.FrontOffice.Catalog.Additive.HasBranchCommunication\");\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n } else if (hasBranchCommunication) {\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Catalog.Additive.HasBranchCommunication\");\r\n }\r\n if (!this.model.IgnoredItems) this.model.IgnoredItems = [];\r\n if (!this.model.Items) this.model.Items = [];\r\n if (!this.model.Categories) this.model.Categories = [];\r\n\r\n if (this.model && !(this.model.Id !== undefined && this.model.Id !== 0)) {\r\n this.httpCommonService\r\n .getList(\"Item/GetItemWithNoCategory\")\r\n .pipe(take(1))\r\n .subscribe((data: Item[]) => {\r\n if (data) {\r\n this.ItemIds = data;\r\n }\r\n });\r\n }\r\n\r\n this.model.Categories.forEach((x) => {\r\n if (!this.Categories.some((d) => d === x.CategoryId)) this.Categories.push(x.CategoryId);\r\n });\r\n this.model.IgnoredItems.forEach((x) => {\r\n if (!this.IgnoredItems.some((d) => d === x.ItemId)) this.IgnoredItems.push(x.ItemId);\r\n });\r\n this.model.Items.forEach((x) => {\r\n if (!this.Items.some((d) => d === x.ItemId)) this.Items.push(x.ItemId);\r\n });\r\n this.valueChange();\r\n }\r\n\r\n addControl() {\r\n if (this.formGroup) {\r\n this.setValue(\"ItemId\", this.model.ItemId);\r\n this.setValue(\"ItemTitle\", this.model.ItemTitle);\r\n this.setValue(\"IgnoredItems\", this.IgnoredItems);\r\n this.setValue(\"Items\", this.Items);\r\n this.setValue(\"Categories\", this.Categories);\r\n }\r\n }\r\n\r\n valueChange() {\r\n if (this.formGroup) {\r\n this.Categories = this.formGroup.controls[\"Categories\"].value;\r\n this.Items = this.formGroup.controls[\"Items\"].value;\r\n this.IgnoredItems = this.formGroup.controls[\"IgnoredItems\"]?.value;\r\n setTimeout(() => {\r\n this.cd.markForCheck();\r\n }, 5000);\r\n }\r\n\r\n this.httpCommonService\r\n .createlist(\"Item/GetItemWithCategory\", this.Categories)\r\n .pipe(take(1))\r\n .subscribe((x: Item[]) => {\r\n this.ItemWithCategory = x.filter((i) => i.Id != this.model.ItemId);\r\n this.selectorService.setDataList(\"Items\", this.ItemWithCategory);\r\n var list: number[] = [];\r\n this.Items.forEach((x) => {\r\n if (this.ItemWithCategory.some((i) => i.Id === x)) {\r\n list.push(x);\r\n }\r\n });\r\n this.Items = list;\r\n this.setValue(\"Items\", this.Items);\r\n setTimeout(() => this.cd.markForCheck(), 3000);\r\n });\r\n\r\n this.httpCommonService\r\n .createlist(\"Item/GetIgnoredItem\", this.Categories)\r\n .pipe(take(1))\r\n .subscribe((x: Item[]) => {\r\n this.IgnoredItemsWithCategory = x.filter((i) => i.Id != this.model.ItemId);\r\n this.selectorService.setDataList(\"IgnoredItems\", this.IgnoredItemsWithCategory);\r\n let list: number[] = [];\r\n this.IgnoredItems.forEach((x) => {\r\n if (this.IgnoredItemsWithCategory.some((i) => i.Id === x)) {\r\n list.push(x);\r\n }\r\n });\r\n this.IgnoredItems = list;\r\n this.setValue(\"IgnoredItems\", this.IgnoredItems);\r\n setTimeout(() => {\r\n this.cd.markForCheck();\r\n }, 3000);\r\n });\r\n }\r\n\r\n beforupdate() {\r\n this.Categories = this.formGroup.value.Categories;\r\n this.model.Categories.forEach((x) => {\r\n if (!this.Categories.some((r) => r === x.CategoryId)) x.State = RowState.Delete;\r\n });\r\n this.Categories.forEach((x) => {\r\n if (!this.model.Categories.some((r) => r.CategoryId === x)) {\r\n var category: AdditiveItemCategory = {};\r\n category.CategoryId = x;\r\n category.AdditiveId = this.model.Id;\r\n category.State = RowState.New;\r\n this.model.Categories.push(category);\r\n }\r\n });\r\n\r\n this.setValue(\"Categories\", this.model.Categories);\r\n\r\n this.IgnoredItems = this.formGroup.value.IgnoredItems;\r\n this.model.IgnoredItems.forEach((x) => {\r\n if (!this.IgnoredItems.some((r) => r === x.ItemId)) x.State = RowState.Delete;\r\n });\r\n this.IgnoredItems.forEach((x) => {\r\n if (!this.model.IgnoredItems.some((r) => r.ItemId === x)) {\r\n var ignoredItem: AdditiveIgnoredItem = {};\r\n ignoredItem.ItemId = x;\r\n ignoredItem.AdditiveId = this.model.Id;\r\n ignoredItem.State = RowState.New;\r\n this.model.IgnoredItems.push(ignoredItem);\r\n }\r\n });\r\n this.formGroup.controls[\"IgnoredItems\"].setValue(this.model.IgnoredItems);\r\n\r\n this.Items = this.formGroup.value.Items;\r\n this.model.Items.forEach((x) => {\r\n if (!this.Items.some((r) => r === x.ItemId)) x.State = RowState.Delete;\r\n });\r\n this.Items.forEach((x) => {\r\n if (!this.model.Items.some((r) => r.ItemId === x)) {\r\n var item: AdditiveItem = {};\r\n item.ItemId = x;\r\n item.AdditiveId = this.model.Id;\r\n item.State = RowState.New;\r\n this.model.Items.push(item);\r\n }\r\n });\r\n this.setValue(\"Items\", this.model.Items);\r\n setTimeout(() => this.cd.markForCheck(), 3000);\r\n }\r\n\r\n // چک کردن انتقال اطلاعات مدیریت شعب\r\n async FillData() {\r\n const info = this.accountService.authService.currentInformation();\r\n if (info.BranchingLightEnabled || info.BranchingAdvancedEnabled) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch/Additive\")\r\n .pipe(take(1))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Additive.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Additive.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Additive.HasCallCenterCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Additive.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n (error) => this.getFailedHelper(error);\r\n }\r\n }\r\n\r\n isValid() {\r\n this.erroremessage = undefined;\r\n this.haserror = false;\r\n if (!this.formGroup.controls[\"ItemId\"].value) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n \"برای تعریف مخلفات ابتدا باید یک کالای بدون سرگروه در لیست کالاها تعریف شود.\"\r\n );\r\n return false;\r\n }\r\n if (this.model?.Id) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Catalog.Item.ProductAmongDependentProducts\");\r\n }\r\n return !this.haserror;\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { AdditiveFormComponent } from \"../additive-form/additive-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-additive-list\",\r\n templateUrl: \"./additive-list.component.html\",\r\n styleUrls: [\"./additive-list.component.scss\"],\r\n})\r\nexport class AdditiveListComponent extends BaseListComponent {\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n\r\n constructor() {\r\n super();\r\n this.inputEditorform = AdditiveFormComponent;\r\n this.FillData();\r\n }\r\n\r\n ngOnInit() {\r\n this.apiName = \"Additive\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Catalog.Additive.Additive\");\r\n this.areaName = \"RestaurantSale\";\r\n }\r\n\r\n async FillData() {\r\n const currentInformation = this.accountService.authService.currentInformation();\r\n if (currentInformation.BranchingLightEnabled || currentInformation.BranchingAdvancedEnabled || currentInformation.RestaurantCallCenter) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch/Additive\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (!this.accountService.authService.currentBranch.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Catalog.Additive.HasBranchCommunication\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Catalog.Additive.HasCallCenterCommunication\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
[{{ \"ClientApp.FrontOffice.Catalog.Additive.ToDefineProductWithoutHeading\" | translate }}]
\r\n \r\n \r\n
\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MeasurementUnitFormComponent } from \"./measurement-unit-form/measurement-unit-form.component\";\r\nimport { MeasurementUnitListComponent } from \"./measurement-unit-list/measurement-unit-list.component\";\r\nimport { SalePriceTypeFormComponent } from \"./sale-price-type-form/sale-price-type-form.component\";\r\nimport { SalePriceTypeListComponent } from \"./sale-price-type-list/sale-price-type-list.component\";\r\nimport { ItemFormComponent } from \"./item-form/item-form.component\";\r\nimport { ItemListComponent } from \"./item-list/item-list.component\";\r\nimport { ItemCategoryFormComponent } from \"./item-category-form/item-category-form.component\";\r\nimport { ItemCategoryListComponent } from \"./item-category-list/item-category-list.component\";\r\nimport { DescriptionFormComponent } from \"./description-form/description-form.component\";\r\nimport { DescriptionListComponent } from \"./description-list/description-list.component\";\r\nimport { AdditiveFormComponent } from \"./additive-form/additive-form.component\";\r\nimport { AdditiveListComponent } from \"./additive-list/additive-list.component\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { ItemPriceChangeFormComponent } from \"./item-price-change/item-price-change-form/item-price-change-form.component\";\r\nimport { ItemPriceChangeListComponent } from \"./item-price-change/item-price-change-list/item-price-change-list.component\";\r\nimport { ItemCategorySelectFormComponent } from \"./item-category-form/item-category-select-form/item-category-select-form.component\";\r\nimport { SaleFormulaComponent } from \"../inv/sale-formula/sale-formula.component\";\r\nimport { SaleItemFormComponent } from \"../inv/sale-formula/sale-item-form/sale-item-form.component\";\r\nimport { SaleItemListComponent } from \"../inv/sale-formula/sale-item-list/sale-item-list.component\";\r\n\r\n\r\nconst components = [\r\n MeasurementUnitFormComponent,\r\n MeasurementUnitListComponent,\r\n SalePriceTypeFormComponent,\r\n SalePriceTypeListComponent,\r\n ItemFormComponent,\r\n ItemListComponent,\r\n ItemCategoryFormComponent,\r\n ItemCategorySelectFormComponent,\r\n ItemCategoryListComponent,\r\n DescriptionFormComponent,\r\n DescriptionListComponent,\r\n AdditiveFormComponent,\r\n AdditiveListComponent,\r\n ItemPriceChangeFormComponent,\r\n ItemPriceChangeListComponent,\r\n SaleFormulaComponent,\r\n SaleItemFormComponent,\r\n SaleItemListComponent\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class CatalogModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { DescriptionItemCategory, DescriptionIgnoredItem, DescriptionItem, Description } from \"../model/description.model\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Item } from \"../model/item.model\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\n\r\n@Component({\r\n selector: \"ngx-description-form\",\r\n templateUrl: \"./description-form.component.html\",\r\n styleUrls: [\"./description-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DescriptionFormComponent extends BaseFormComponent {\r\n Categories: number[] = [];\r\n Items: number[] = [];\r\n IgnoredItems: number[] = [];\r\n ItemWithCategory: Item[] = [];\r\n IgnoredItemsWithCategory: Item[] = [];\r\n erroremessage: string;\r\n deactivateSave: boolean = false;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.FillData();\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"Description\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Catalog.Description.Description\");\r\n super.ngOnInit();\r\n }\r\n\r\n setdefault() {\r\n if (!this.model.IgnoredItems) this.model.IgnoredItems = [];\r\n if (!this.model.Items) this.model.Items = [];\r\n if (!this.model.Categories) this.model.Categories = [];\r\n\r\n this.model.Categories.forEach((x) => {\r\n if (!this.Categories.some((d) => d === x.CategoryId)) this.Categories.push(x.CategoryId);\r\n });\r\n this.model.IgnoredItems.forEach((x) => {\r\n if (!this.IgnoredItems.some((d) => d === x.ItemId)) this.IgnoredItems.push(x.ItemId);\r\n });\r\n this.model.Items.forEach((x) => {\r\n if (!this.Items.some((d) => d === x.ItemId)) this.Items.push(x.ItemId);\r\n });\r\n if (this.model.BranchId == undefined) this.model.BranchId = this.accountService.authService.currentBranchId;\r\n this.valueChange();\r\n }\r\n\r\n addControl() {\r\n if (this.formGroup) {\r\n this.setValue(\"IgnoredItems\", this.IgnoredItems);\r\n this.setValue(\"Items\", this.Items);\r\n this.setValue(\"Categories\", this.Categories);\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n valueChange() {\r\n if (this.formGroup) {\r\n this.Categories = this.formGroup.controls[\"Categories\"].value;\r\n this.Items = this.formGroup.controls[\"Items\"].value;\r\n this.IgnoredItems = this.formGroup.controls[\"IgnoredItems\"].value;\r\n }\r\n\r\n this.httpCommonService\r\n .createlist(\"Item/GetItemWithCategory\", this.Categories)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x: Item[]) => {\r\n this.ItemWithCategory = x;\r\n this.selectorService.setDataList(\"Items\", this.ItemWithCategory);\r\n var list: number[] = [];\r\n this.Items.forEach((x) => {\r\n if (this.ItemWithCategory.some((i) => i.Id === x)) {\r\n list.push(x);\r\n }\r\n });\r\n this.Items = list;\r\n this.setValue(\"Items\", this.Items);\r\n // this.formGroup.controls['Items'].setValue(this.Items);\r\n });\r\n\r\n this.httpCommonService\r\n .createlist(\"Item/GetIgnoredItem\", this.Categories)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x: Item[]) => {\r\n this.IgnoredItemsWithCategory = x;\r\n this.selectorService.setDataList(\"IgnoredItems\", this.IgnoredItemsWithCategory);\r\n let list: number[] = [];\r\n this.IgnoredItems.forEach((x) => {\r\n if (this.IgnoredItemsWithCategory.some((i) => i.Id === x)) {\r\n list.push(x);\r\n }\r\n });\r\n this.IgnoredItems = list;\r\n this.formGroup.controls[\"IgnoredItems\"].setValue(this.IgnoredItems);\r\n });\r\n }\r\n\r\n beforupdate() {\r\n this.Categories = this.formGroup.value.Categories;\r\n this.model.Categories.forEach((x) => {\r\n if (!this.Categories.some((r) => r === x.CategoryId)) x.State = RowState.Delete;\r\n });\r\n this.Categories.forEach((x) => {\r\n if (!this.model.Categories.some((r) => r.CategoryId === x)) {\r\n var category: DescriptionItemCategory = {};\r\n category.CategoryId = x;\r\n category.DescriptionId = this.model.Id;\r\n category.State = RowState.New;\r\n this.model.Categories.push(category);\r\n }\r\n });\r\n this.formGroup.controls[\"Categories\"].setValue(this.model.Categories);\r\n\r\n this.IgnoredItems = this.formGroup.value.IgnoredItems;\r\n this.model.IgnoredItems.forEach((x) => {\r\n if (!this.IgnoredItems.some((r) => r === x.ItemId)) x.State = RowState.Delete;\r\n });\r\n this.IgnoredItems.forEach((x) => {\r\n if (!this.model.IgnoredItems.some((r) => r.ItemId === x)) {\r\n var ignoredItem: DescriptionIgnoredItem = {};\r\n ignoredItem.ItemId = x;\r\n ignoredItem.DescriptionId = this.model.Id;\r\n ignoredItem.State = RowState.New;\r\n this.model.IgnoredItems.push(ignoredItem);\r\n }\r\n });\r\n this.formGroup.controls[\"IgnoredItems\"].setValue(this.model.IgnoredItems);\r\n\r\n this.Items = this.formGroup.value.Items;\r\n this.model.Items.forEach((x) => {\r\n if (!this.Items.some((r) => r === x.ItemId)) x.State = RowState.Delete;\r\n });\r\n this.Items.forEach((x) => {\r\n if (!this.model.Items.some((r) => r.ItemId === x)) {\r\n var item: DescriptionItem = {};\r\n item.ItemId = x;\r\n item.DescriptionId = this.model.Id;\r\n item.State = RowState.New;\r\n this.model.Items.push(item);\r\n }\r\n });\r\n this.formGroup.controls[\"Items\"].setValue(this.model.Items);\r\n }\r\n\r\n // چک کردن انتقال اطلاعات مدیریت شعب\r\n async FillData() {\r\n if (\r\n this.accountService.authService.currentInformation().BranchingLightEnabled ||\r\n this.accountService.authService.currentInformation().BranchingAdvancedEnabled\r\n ) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Description\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Description.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Description.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Description.HasCallCenterCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Description.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n (error) => this.getFailedHelper(error);\r\n }\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { DescriptionFormComponent } from \"../description-form/description-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-description-list\",\r\n templateUrl: \"./description-list.component.html\",\r\n styleUrls: [\"./description-list.component.scss\"],\r\n})\r\nexport class DescriptionListComponent extends BaseListComponent {\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n\r\n constructor() {\r\n super();\r\n this.inputEditorform = DescriptionFormComponent;\r\n this.FillData();\r\n }\r\n\r\n ngOnInit() {\r\n this.apiName = \"Description\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Catalog.Description.Description\");\r\n }\r\n\r\n async FillData() {\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n\r\n if (currentBranch.RestaurantCallCenter) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Description\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (this.accountService.authService.currentBranch.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n });\r\n }\r\n\r\n if (currentBranch.BranchingLightEnabled || currentBranch.BranchingAdvancedEnabled) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Description\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (this.accountService.authService.currentBranch.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Catalog.Description.HasBranchCommunication\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Catalog.Description.HasCallCenterCommunication\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n
","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { ItemCategory } from \"../model/item-category.model\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { StockInWebKind, TaxServiceApplyType } from \"../model/item.model\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { form_control, Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { ItemCategorySelectFormComponent } from \"./item-category-select-form/item-category-select-form.component\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\n\r\n@Component({\r\n selector: \"ngx-item-category-form\",\r\n templateUrl: \"./item-category-form.component.html\",\r\n styleUrls: [\"./item-category-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ItemCategoryFormComponent extends BaseFormComponent {\r\n haserror: boolean = false;\r\n erroremessage: string;\r\n deactivateSave: boolean = false;\r\n constructor(private lookupService: LookupService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.FillData();\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"ItemCategory\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Catalog.ItemCategory.ItemCategory\");\r\n super.ngOnInit();\r\n }\r\n\r\n public openImagesForm() {\r\n this.dialogService\r\n .open(ItemCategorySelectFormComponent, { image: this.model.Image }, { autoFocus: true, closeOnClickOutside: false })\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n this.model.Image = res;\r\n this.setValue(\"Image\", res);\r\n });\r\n }\r\n\r\n setdefault() {\r\n this.selectorService.setHasDefaultValue(\"ParentId\", false);\r\n this.model.StockInWeb = StockInWebKind.Available;\r\n if (!this.model.TaxApplyTypeId) {\r\n this.lookupService\r\n .getLookupbyCode(\"SALE\", \"TaxServiceApplyType\", TaxServiceApplyType.NotApply)\r\n .pipe(take(1))\r\n .subscribe(async (x) => {\r\n this.model.TaxApplyTypeId = x.Id;\r\n this.model.TaxApplyTypeCode = x.Code;\r\n this.model.TaxApplyTypeTitle = x.Title;\r\n this.setValue(\"TaxApplyTypeId\", x.Id);\r\n this.setValue(\"TaxApplyTypeCode\", x.Code);\r\n this.setValue(\"TaxApplyTypeTitle\", x.Title);\r\n });\r\n }\r\n if (!this.model.ServiceApplyTypeId) {\r\n this.lookupService\r\n .getLookupbyCode(\"SALE\", \"TaxServiceApplyType\", TaxServiceApplyType.NotApply)\r\n .pipe(take(1))\r\n .subscribe(async (x) => {\r\n this.model.ServiceApplyTypeId = x.Id;\r\n this.model.ServiceApplyTypeCode = x.Code;\r\n this.model.ServiceApplyTypeTitle = x.Title;\r\n this.setValue(\"ServiceApplyTypeId\", x.Id);\r\n this.setValue(\"ServiceApplyTypeCode\", x.Code);\r\n this.setValue(\"ServiceApplyTypeTitle\", x.Title);\r\n });\r\n }\r\n super.setdefault();\r\n }\r\n onChange($event: Lookup) {\r\n if ($event && $event.Category) {\r\n if (this.model.TaxApplyTypeId === $event.Id) {\r\n this.model.TaxApplyTypeCode = $event.Code;\r\n this.model.TaxApplyTypeTitle = $event.Title;\r\n }\r\n if (this.model.ServiceApplyTypeId === $event.Id) {\r\n this.model.ServiceApplyTypeCode = $event.Code;\r\n this.model.ServiceApplyTypeTitle = $event.Title;\r\n }\r\n }\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n beforupdate() {\r\n if (!this.formGroup.controls[\"PrintDisplayOrder\"].value) this.formGroup.controls[\"PrintDisplayOrder\"].setValue(0);\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(take(1))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n if (!this.orignalColumns.some((s) => s.name === \"SetImage\")) {\r\n const addBtn = new form_control();\r\n addBtn.name = \"SetImage\";\r\n addBtn.label = this.translate(\"ClientApp.FrontOffice.Catalog.ItemCategory.SelectImage\");\r\n addBtn.formVisible = true;\r\n addBtn.userClass = \"open-images-btn\";\r\n addBtn.buttonIcon = \"icon-add_photo_alternate-o\";\r\n addBtn.columnNumber = 1;\r\n addBtn.order = 1;\r\n addBtn.controlType = FormControlTypes.Button;\r\n this.orignalColumns.push(addBtn);\r\n }\r\n this.orignalColumns.forEach((x) => {\r\n const info = this.accountService.authService.currentInformation();\r\n if (x.name === \"DetailLedgerId\")\r\n x.formVisible =\r\n info.AccountingKind === SoftWareLicenseKind.AccountingAdvancedWeb ||\r\n info.AccountingKind === SoftWareLicenseKind.AccountingToAdvancedWeb ||\r\n info.AccountingKind === SoftWareLicenseKind.AccountingWeb;\r\n if (x.name === \"GoodsId\")\r\n x.formVisible =\r\n info.InventoryKind === SoftWareLicenseKind.InventoryWeb ||\r\n info.InventoryKind === SoftWareLicenseKind.InventoryAdvancedWeb ||\r\n info.InventoryKind === SoftWareLicenseKind.InventoryToAdvancedWeb;\r\n\r\n if (info.HasProtel) {\r\n if (x.name === \"ProtelCode\") {\r\n x.formVisible = true;\r\n }\r\n }\r\n });\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n }\r\n // چک کردن انتقال اطلاعات مدیریت شعب\r\n async FillData() {\r\n const info = this.accountService.authService.currentInformation();\r\n if (info.BranchingLightEnabled || info.BranchingAdvancedEnabled) {\r\n const hasBranchCommunication = JSON.parse(localStorage.getItem(\"HasBranchCommunication\"));\r\n if (hasBranchCommunication == null) {\r\n this.httpCommonService\r\n .getList(`Branch/HasBranchCommunication/${this.accountService.authService.currentBranchId}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n async (hbc: boolean) => {\r\n if (hbc === true) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.ItemCategory.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n } else if (hasBranchCommunication) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.ItemCategory.HasCallCenterCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n }\r\n }\r\n }\r\n onDynamicFormChanges(controlName) {\r\n if (controlName === \"SetImage\") {\r\n this.openImagesForm();\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n {{ erroremessage }}\r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { take } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-item-category-select-form\",\r\n templateUrl: \"./item-category-select-form.component.html\",\r\n styleUrls: [\"./item-category-select-form.component.scss\"],\r\n})\r\nexport class ItemCategorySelectFormComponent extends BaseFormComponent {\r\n images: string[] = [];\r\n selectedImage: number;\r\n image: string;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.getImages();\r\n }\r\n\r\n public select(i: any): void {\r\n this.selectedImage = i;\r\n }\r\n\r\n public onSubmit(): void {\r\n this.result = this.images[this.selectedImage];\r\n this.closeModal();\r\n }\r\n\r\n private getImages(): void {\r\n this.httpCommonService\r\n .get(\"ItemCategory/ItemCategoriesImage\")\r\n .pipe(take(1))\r\n .subscribe((data: any) => {\r\n this.images = data;\r\n this.selectedImage = this.images.findIndex((x) => x === this.image);\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n

{{ \"ClientApp.FrontOffice.Catalog.ItemCategory.SelectGroupImage\" | translate }}

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ItemCategoryFormComponent } from \"../item-category-form/item-category-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-item-category-list\",\r\n templateUrl: \"./item-category-list.component.html\",\r\n styleUrls: [\"./item-category-list.component.scss\"],\r\n})\r\nexport class ItemCategoryListComponent extends BaseListComponent {\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n \r\n constructor() {\r\n super();\r\n this.inputEditorform = ItemCategoryFormComponent;\r\n this.FillData();\r\n }\r\n\r\n ngOnInit() {\r\n this.apiName = \"ItemCategory\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Catalog.ItemCategory.ItemCategory\");\r\n }\r\n\r\n async FillData() {\r\n const info = this.accountService.authService.currentInformation();\r\n if (info.RestaurantCallCenter) {\r\n if (!this.accountService.authService.currentBranch.AccessToAllBranches) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n }\r\n if (info.BranchingLightEnabled || info.BranchingAdvancedEnabled) {\r\n const hasBranchCommunication = JSON.parse(localStorage.getItem(\"HasBranchCommunication\"));\r\n if (hasBranchCommunication == null) {\r\n this.httpCommonService\r\n .getList(`Branch/HasBranchCommunication/${this.accountService.authService.currentBranchId}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (hbc: boolean) => {\r\n if (hbc === true) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Catalog.ItemCategory.HasBranchCommunication\");\r\n }\r\n });\r\n } else if (hasBranchCommunication) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Catalog.ItemCategory.HasCallCenterCommunication\");\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n\r\n
","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { Item, ItemBranch, TaxServiceApplyType, ItemType, ItemPrice, ItemDependencySaleMethodBranch, ItemDependency } from \"../model/item.model\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { LocalStoreManager, LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { Branch, form_control, Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ItemCategory } from \"../model/item-category.model\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { SalePriceType } from \"../model/sale-price-type.model\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { ChangeCachEnum } from \"../../order/model/changecach.enum\";\r\nimport { ClearableCache } from \"../../../../../projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { Goods } from \"src/app/backoffice/inv/models/goods.model\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { LookupItem } from \"projects/sepidz-web-framework/src/lib/models/lookup-item.model\";\r\n\r\n@Component({\r\n selector: \"ngx-item-form\",\r\n templateUrl: \"./item-form.component.html\",\r\n styleUrls: [\"./item-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ItemFormComponent extends BaseFormComponent implements AfterViewInit {\r\n activeTabTitle: String;\r\n DefaultValues: Dictionary = [];\r\n Prices: form_control[];\r\n Dependents: form_control[];\r\n Barcodes: form_control[];\r\n Branches: form_control[];\r\n isAccessToAllBranches = true;\r\n haserror: boolean = false;\r\n erroremessage: string;\r\n ItemCategoryLookup: Lookup[] = [];\r\n changeCachEnum: ChangeCachEnum[] = [];\r\n SalePriceTypeLookup: SalePriceType[] = [];\r\n SoftWareLicenseKind = SoftWareLicenseKind;\r\n MeasurementUnit: any;\r\n deactivateSave: boolean = false;\r\n isLight: boolean = false;\r\n\r\n showBranch: boolean = false;\r\n disabledTitle: boolean = false;\r\n previousDependents: ItemDependency[] = [];\r\n DataDaysWeek = [\r\n { Id: \"0\", Title: this.translate(\"ClientApp.FrontOffice.Catalog.Item.Saturday\") },\r\n { Id: \"1\", Title: this.translate(\"ClientApp.FrontOffice.Catalog.Item.Sunday\") },\r\n { Id: \"2\", Title: this.translate(\"ClientApp.FrontOffice.Catalog.Item.Monday\") },\r\n { Id: \"3\", Title: this.translate(\"ClientApp.FrontOffice.Catalog.Item.Tuesday\") },\r\n { Id: \"4\", Title: this.translate(\"ClientApp.FrontOffice.Catalog.Item.Wednesday\") },\r\n { Id: \"5\", Title: this.translate(\"ClientApp.FrontOffice.Catalog.Item.Thursday\") },\r\n { Id: \"6\", Title: this.translate(\"ClientApp.FrontOffice.Catalog.Item.Friday\") },\r\n ];\r\n activeSaleMethodBranches: LookupItem[];\r\n currentInformation = this.accountService.authService.currentInformation();\r\n constructor(\r\n private lookupService: LookupService,\r\n protected cd: ChangeDetectorRef,\r\n protected selectorService: SelectorService,\r\n public storage: LocalStoreManager\r\n ) {\r\n super(selectorService, cd);\r\n if (!this.model) this.model = new Item();\r\n this.FillData();\r\n }\r\n ngAfterViewInit(): void {}\r\n async FillData() {\r\n const info = this.accountService.authService.currentInformation();\r\n this.isLight = info.SepidzWebKind === SoftWareLicenseKind.RestaurantLightWeb;\r\n if (info.BranchingLightEnabled || info.BranchingAdvancedEnabled) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Item\")\r\n .pipe(take(1))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n console.log(hbc);\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.HasCallCenterCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n (error) => this.getFailedHelper(error);\r\n }\r\n const computerName: string = this.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .get(`LocalSetting/GetCachState` + (computerName ? \"?ComputerName=\" + computerName : \"\"))\r\n .pipe(take(1))\r\n .subscribe(async (data: any[]) => {\r\n if (data) {\r\n this.changeCachEnum = data;\r\n const ItemCategoryData = this.storage.getData(ClearableCache.ItemCategoryLookup);\r\n if (this.changeCachEnum.some((f) => f === ChangeCachEnum.Itemcategory) && ItemCategoryData?.length > 0) {\r\n this.ItemCategoryLookup = ItemCategoryData;\r\n } else {\r\n await this.getLookup();\r\n }\r\n const SalePriceTypeData = this.storage.getData(ClearableCache.SalePriceType);\r\n if (this.changeCachEnum.some((f) => f === ChangeCachEnum.SalePriceType) && SalePriceTypeData?.length > 0) {\r\n this.SalePriceTypeLookup = SalePriceTypeData;\r\n if (!this.model?.Id) {\r\n let salePriceTypeId = this.SalePriceTypeLookup.find((x) =>\r\n x.Title.match(this.translate(\"ClientApp.FrontOffice.Catalog.Item.Standard\"))\r\n )?.Id;\r\n if (salePriceTypeId && salePriceTypeId !== 0) {\r\n this.model.SalePriceTypeId = salePriceTypeId;\r\n this.setValue(\"SalePriceTypeId\", salePriceTypeId);\r\n }\r\n }\r\n } else {\r\n await this.getSalePriceType();\r\n }\r\n } else {\r\n await this.getLookup();\r\n this.getSalePriceType();\r\n }\r\n });\r\n if (!this.model?.Id) {\r\n this.httpCommonService\r\n .getList(\"Unit/ReadLookUp\")\r\n .pipe(take(1))\r\n .subscribe(async (data: any) => {\r\n this.MeasurementUnit = data;\r\n if (!this.model?.MeasurementUnitId) {\r\n let mu = data.find((m) => m.Title === \"ClientApp.FrontOffice.Catalog.Item.number\");\r\n if (mu) {\r\n this.model.MeasurementUnitId = mu.Id;\r\n this.model.MeasurementUnitTitle = mu.Title;\r\n this.setValue(\"MeasurementUnitId\", mu.Id);\r\n this.setValue(\"MeasurementUnitTitle\", mu.Title);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n async getSalePriceType() {\r\n this.httpCommonService\r\n .getList(\"SalePriceType\")\r\n .pipe(take(1))\r\n .subscribe(async (data: SalePriceType[]) => {\r\n this.SalePriceTypeLookup = data;\r\n this.storage.savePermanentData(data, ClearableCache.SalePriceType);\r\n if (!this.model?.Id) {\r\n let salePriceTypeId = data.find((x) => x.Title.match(this.translate(\"ClientApp.FrontOffice.Catalog.Item.Standard\")))?.Id;\r\n if (salePriceTypeId && salePriceTypeId !== 0) {\r\n this.model.SalePriceTypeId = salePriceTypeId;\r\n this.setValue(\"SalePriceTypeId\", salePriceTypeId);\r\n }\r\n }\r\n });\r\n }\r\n addHandler($event) {\r\n let ItemDependencySaleMethodBranchIds = $event?.ItemDependencySaleMethodBranch.map((e) => e.Id);\r\n if ($event && ItemDependencySaleMethodBranchIds.length > 0) {\r\n let newData: ItemDependencySaleMethodBranch[] = [];\r\n $event?.ItemDependencySaleMethodBranch?.forEach((element) => {\r\n let Ins = new ItemDependencySaleMethodBranch();\r\n Ins.SaleMethodId = element.Id;\r\n Ins.Id = 0;\r\n Ins.Title = element.Title;\r\n Ins.ItemDependencyId = $event.DependentItemId;\r\n Ins.State = RowState.New;\r\n newData.push(Ins);\r\n });\r\n if ($event.Id == 0) {\r\n let added = this.model.Dependents.filter((c) => c.Id == 0);\r\n added[added.length - 1].ItemDependencySaleMethodBranch = [...newData];\r\n } else {\r\n let existDependent = this.model.Dependents.find((c) => c.Id == $event.Id);\r\n existDependent.ItemDependencySaleMethodBranch = newData;\r\n }\r\n }\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Item\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Catalog.Item.Item\");\r\n super.ngOnInit();\r\n this.DefaultValues[\"ItemId\"] = 0;\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.DefaultValues = undefined;\r\n this.Prices = undefined;\r\n this.Dependents = undefined;\r\n this.Barcodes = undefined;\r\n this.Branches = undefined;\r\n }\r\n async getLookup() {\r\n this.httpCommonService\r\n .getList(`ItemCategory/GetItemCategory`)\r\n .pipe(take(1))\r\n .subscribe(\r\n async (data: Lookup[]) => {\r\n this.ItemCategoryLookup = data;\r\n this.storage.savePermanentData(data, ClearableCache.ItemCategoryLookup);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n setdefault() {\r\n if (!this.model?.Branches) this.model.Branches = [];\r\n if (!this.model?.Prices) this.model.Prices = [];\r\n if (!this.model?.Dependents) this.model.Dependents = [];\r\n if (!this.model?.Barcodes) this.model.Barcodes = [];\r\n if (!this.model?.Calories) this.model.Calories = 0;\r\n if (!this.model?.CookingTime) this.model.CookingTime = 0;\r\n if (!this.model?.Tax) this.model.Tax = 0;\r\n if (!this.model?.Toll) this.model.Toll = 0;\r\n if (!this.model?.PackingPrice) this.model.PackingPrice = 0;\r\n if (typeof this.model.UsedInInvDailyVoucherClone === \"boolean\") this.model.UsedInInvDailyVoucher = true;\r\n\r\n if (!this.model.TaxApplyTypeId) {\r\n this.lookupService\r\n .getLookupbyCode(\"SALE\", \"TaxServiceApplyType\", TaxServiceApplyType.ApplyFromGroup)\r\n .pipe(take(1))\r\n .subscribe(async (x) => {\r\n this.model.TaxApplyTypeId = x.Id;\r\n this.model.TaxApplyTypeCode = x.Code;\r\n this.model.TaxApplyTypeTitle = x.Title;\r\n this.setValue(\"TaxApplyTypeId\", x.Id);\r\n this.setValue(\"TaxApplyTypeCode\", x.Code);\r\n this.setValue(\"TaxApplyTypeTitle\", x.Title);\r\n });\r\n }\r\n if (!this.model.ServiceApplyTypeId) {\r\n this.lookupService\r\n .getLookupbyCode(\"SALE\", \"TaxServiceApplyType\", TaxServiceApplyType.ApplyFromGroup)\r\n .pipe(take(1))\r\n .subscribe(async (x) => {\r\n this.model.ServiceApplyTypeId = x.Id;\r\n this.model.ServiceApplyTypeCode = x.Code;\r\n this.model.ServiceApplyTypeTitle = x.Title;\r\n this.setValue(\"ServiceApplyTypeId\", x.Id);\r\n this.setValue(\"ServiceApplyTypeCode\", x.Code);\r\n this.setValue(\"ServiceApplyTypeTitle\", x.Title);\r\n });\r\n }\r\n if (!this.model?.ItemTypeId) {\r\n this.lookupService\r\n .getLookupbyCode(\"SALE\", \"ItemType\", ItemType.Goods)\r\n .pipe(take(1))\r\n .subscribe(async (x) => {\r\n this.model.ItemTypeId = x.Id;\r\n this.model.ItemTypeTitle = x.Title;\r\n this.setValue(\"ItemTypeId\", x.Id);\r\n this.setValue(\"ItemTypeTitle\", x.Title);\r\n });\r\n }\r\n if (!this.accountService.authService.currentBranch) {\r\n setTimeout(() => this.populateBranch(), 300);\r\n } else {\r\n this.populateBranch();\r\n }\r\n if (this.currentrow && this.model.DataDaysWeekTitle && typeof this.model.DataDaysWeekTitle === \"string\") {\r\n this.model.DataDaysWeekTitle = this.model.DataDaysWeekTitle.split(\",\");\r\n }\r\n if (this.currentrow && this.currentrow.GoodsId) {\r\n this.formGroup.controls[\"Title\"].disable();\r\n // this.formGroup.controls[\"DetailLedgerId\"].disable();\r\n this.httpCommonService\r\n .get(\"Item/UsedInInvoice/\" + this.currentrow.Id)\r\n .pipe(take(1))\r\n .subscribe((isUsed: boolean) => {\r\n if (isUsed) this.formGroup.controls[\"GoodsId\"].disable();\r\n this.formGroup.controls[\"Title\"].disable();\r\n // this.formGroup.controls[\"DetailLedgerId\"].disable();\r\n });\r\n }\r\n this.previousDependents = [...this.model.Dependents];\r\n }\r\n addControl() {\r\n if (this.formGroup) {\r\n this.setValue(\"Code\", this.model?.Code);\r\n this.setValue(\"GoodsId\", this.model?.GoodsId);\r\n this.setValue(\"Title\", this.model.Title);\r\n this.setValue(\"Title_En\", this.model.Title_En);\r\n this.setValue(\"Ingredients\", this.model?.Ingredients);\r\n this.setValue(\"Ingredients_En\", this.model?.Ingredients_En);\r\n this.setValue(\"CookingTime\", this.model?.CookingTime);\r\n this.setValue(\"Description\", this.model?.Description);\r\n this.setValue(\"Description_En\", this.model?.Description_En);\r\n this.setValue(\"Calories\", this.model?.Calories);\r\n this.setValue(`SalePriceTypeId`, this.model?.SalePriceTypeId);\r\n this.setValue(\"PackingPrice\", this.model?.PackingPrice);\r\n this.setValue(\"UsedInInvDailyVoucher\", this.model?.UsedInInvDailyVoucher);\r\n this.setValue(\"UsedInInvDailyVoucherClone\", this.model?.UsedInInvDailyVoucherClone);\r\n this.setValue(\"Tax\", this.model?.Tax);\r\n this.setValue(\"Toll\", this.model?.Toll);\r\n this.setValue(\"CategoryId\", this.model?.CategoryId);\r\n this.setValue(\"Price\", this.model?.Price);\r\n this.setValue(\"DetailLedgerId\", this.model.DetailLedgerId);\r\n this.setValue(\"ItemTypeId\", this.model.ItemTypeId);\r\n this.setValue(\"TaxApplyTypeId\", this.model.TaxApplyTypeId);\r\n this.setValue(\"ServiceApplyTypeId\", this.model.ServiceApplyTypeId);\r\n this.setValue(\"ItemSerial\", this.model.ItemSerial);\r\n this.setValue(\"DataDaysWeekTitle\", this.model.DataDaysWeekTitle);\r\n this.setValue(\"StockInWeb\", this.model.StockInWeb);\r\n this.setValue(\"IsOrganizationalDiscount\", this.model?.IsOrganizationalDiscount);\r\n this.setValue(\"OrganizationalDiscount\", this.model?.OrganizationalDiscount);\r\n }\r\n this.cd.markForCheck();\r\n }\r\n populateBranch() {\r\n this.httpCommonService\r\n .getList(\"Branch\")\r\n .pipe(take(1))\r\n .subscribe(async (data: Branch[]) => {\r\n let BranchList: Branch[] = data;\r\n if (!this.model) this.model = {};\r\n if (!this.model.Branches) this.model.Branches = [];\r\n BranchList?.forEach((br: Branch) => {\r\n const listBranch = this.model.Branches.find((x) => x.BranchId === br.Id);\r\n if (!listBranch) {\r\n let entity = {};\r\n entity.BranchId = br.Id;\r\n entity.BranchTitle = br.Title;\r\n entity.IsActive = true;\r\n entity.State = RowState.New;\r\n if (!this.model || !(this.model.Id > 0)) {\r\n //اگر در مد ایجاد بودیم\r\n entity.Selected = true;\r\n } else {\r\n entity.Selected = false;\r\n }\r\n\r\n this.model.Branches.push(entity);\r\n this.cd.markForCheck();\r\n } else {\r\n listBranch.Selected = true;\r\n }\r\n });\r\n\r\n this.showBranch = true;\r\n });\r\n }\r\n setHeaderInfo() {\r\n let salePriceTypeId = this.formGroup.controls[\"SalePriceTypeId\"].value;\r\n let price = this.formGroup.controls[\"Price\"].value;\r\n let havePricesItem = false;\r\n let haveIsDefaultNumber = false;\r\n if (this.model?.Prices) {\r\n havePricesItem = this.model?.Prices.some((x) => x.State !== RowState.Delete && x.State !== RowState.Detached);\r\n haveIsDefaultNumber = this.model?.Prices.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).some((a) => a.IsDefault);\r\n }\r\n //اگر قیمت در هدر تغییر کرده باشد یا کالا شامل هیچ قیمتی نباشد\r\n if (\r\n salePriceTypeId &&\r\n price != null &&\r\n price != undefined &&\r\n price !== \"\" &&\r\n (this.model?.Price != price || this.model?.SalePriceTypeId != salePriceTypeId || !havePricesItem || !haveIsDefaultNumber)\r\n ) {\r\n let findIndex = this.model?.Prices.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).findIndex(\r\n (x) => x.SalePriceTypeId === salePriceTypeId && x.Price === price && !x.IsDefault\r\n );\r\n if (findIndex === -1) {\r\n let defaultPrice: ItemPrice = {};\r\n defaultPrice.State = RowState.New;\r\n defaultPrice.IsDefault = true;\r\n defaultPrice.SalePriceTypeId = salePriceTypeId;\r\n defaultPrice.Price = price;\r\n if (!this.model?.Prices) {\r\n this.model.Prices = [];\r\n this.setValue(\"Price\", \"0\");\r\n } else {\r\n let isFound: boolean = false;\r\n this.model?.Prices.filter((x) => x.State != RowState.Detached).forEach((x) => {\r\n if (x.IsDefault === true) {\r\n isFound = true;\r\n x.SalePriceTypeId = salePriceTypeId;\r\n x.Price = price;\r\n x.State = RowState.Modify;\r\n }\r\n });\r\n if (!isFound) {\r\n this.model?.Prices.push(defaultPrice);\r\n }\r\n }\r\n } else {\r\n this.model?.Prices.forEach((x) => (x.IsDefault = false));\r\n this.model.Prices[findIndex].IsDefault = true;\r\n }\r\n }\r\n }\r\n beforupdate() {\r\n const DataDaysWeek = this.formGroup.controls[\"DataDaysWeekTitle\"];\r\n if (this.model?.Dependents && this.model?.Dependents?.length > 0) {\r\n this.model.Dependents = this.model?.Dependents.filter((x) => x.State != RowState.Detached);\r\n }\r\n if (this.model?.Barcodes && this.model?.Barcodes.length > 0) {\r\n this.model.Barcodes = this.model?.Barcodes.filter((x) => x.State != RowState.Detached);\r\n }\r\n this.model.Branches = this.model?.Branches?.filter((x) => x.Selected);\r\n if (this.model?.Branches && this.model?.Branches.length <= 0) this.model.Branches = null;\r\n if (this.model?.Dependents && this.model?.Dependents.length <= 0) this.model.Dependents = null;\r\n if (this.model?.Prices && this.model?.Prices.length <= 0) this.setValue(\"Price\", \"0\");\r\n if (this.model?.Barcodes && this.model?.Barcodes.length <= 0) this.model.Barcodes = null;\r\n if (!this.model?.Prices) this.setValue(\"Price\", \"0\");\r\n if (DataDaysWeek?.value && typeof DataDaysWeek?.value !== \"string\") DataDaysWeek.setValue(DataDaysWeek.value.join());\r\n if (\r\n this.model?.Id &&\r\n this.model.Dependents &&\r\n this.model.Dependents.length > 0 &&\r\n this.previousDependents &&\r\n this.previousDependents.length > 0\r\n ) {\r\n this.model.Dependents?.forEach((dependent) => {\r\n const previousDependent = this.previousDependents?.find((x) => x.Id === dependent.Id);\r\n dependent.ItemDependencySaleMethodBranch?.forEach((s) => {\r\n if (previousDependent?.ItemDependencySaleMethodBranch.some((x) => x.Id === s.Id)) {\r\n s.State = RowState.NoChange;\r\n } else if (!previousDependent?.ItemDependencySaleMethodBranch.some((x) => x.Id === s.Id)) {\r\n s.State = RowState.New;\r\n }\r\n });\r\n previousDependent?.ItemDependencySaleMethodBranch?.forEach((p) => {\r\n const isItemExists = dependent.ItemDependencySaleMethodBranch.some((s) => s.Id === p.Id);\r\n if (!isItemExists) {\r\n p.State = RowState.Delete;\r\n dependent.ItemDependencySaleMethodBranch.push(p);\r\n }\r\n });\r\n });\r\n }\r\n }\r\n\r\n onChange($event: any) {\r\n let itemCategory = $event as ItemCategory;\r\n if (this.isNewRow && itemCategory !== undefined && itemCategory.ParentId === undefined) {\r\n this.httpCommonService\r\n .getItem(this.apiName + \"/GetMaxCode\", itemCategory.Id)\r\n .pipe(take(1))\r\n .subscribe((data: number) => {\r\n if (data) this.formGroup.controls[\"Code\"].setValue(data);\r\n });\r\n }\r\n let data = $event as Lookup;\r\n if (data && data.Category) {\r\n if (this.model?.TaxApplyTypeId === data.Id) {\r\n this.model.TaxApplyTypeCode = data.Code;\r\n this.model.TaxApplyTypeTitle = data.Title;\r\n }\r\n if (this.model?.ServiceApplyTypeId === data.Id) {\r\n this.model.ServiceApplyTypeCode = data.Code;\r\n this.model.ServiceApplyTypeTitle = data.Title;\r\n }\r\n }\r\n }\r\n isValid() {\r\n this.setHeaderInfo();\r\n this.erroremessage = undefined;\r\n this.haserror = false;\r\n const priceValue = this.formGroup.controls[\"Price\"].value;\r\n\r\n if (this.formGroup.controls[\"Code\"].value && this.formGroup.controls[\"Code\"].value > 1000000000000000000) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.CodeFieldLengthValue\")\r\n );\r\n return false;\r\n }\r\n if (!this.formGroup.controls[\"Title\"].value) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.TitleNotEntered\")\r\n );\r\n return false;\r\n }\r\n if (this.formGroup.controls[\"Title\"].value && this.formGroup.controls[\"Title\"].value.length > 50) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.TitleFieldLengthValue\")\r\n );\r\n return false;\r\n }\r\n if (this.formGroup.controls[\"Title_En\"].value && this.formGroup.controls[\"Title_En\"].value.length > 40) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.LengthValueOfEnglishTitleField\")\r\n );\r\n return false;\r\n }\r\n if (this.formGroup.controls[\"Ingredients\"].value && this.formGroup.controls[\"Ingredients\"].value.length > 255) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.IngredientFieldLengthValue\")\r\n );\r\n return false;\r\n }\r\n if (this.formGroup.controls[\"Ingredients_En\"].value && this.formGroup.controls[\"Ingredients_En\"].value.length > 255) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.IngredientFieldLengthValueInEnglish\")\r\n );\r\n return false;\r\n }\r\n if (this.formGroup.controls[\"Calories\"].value && this.formGroup.controls[\"Calories\"].value > 100000000000) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.LengthOfCalorieField\")\r\n );\r\n return false;\r\n }\r\n if (this.formGroup.controls[\"CookingTime\"].value && this.formGroup.controls[\"CookingTime\"].value > 100000000000) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.CookingTimeFieldLengthValue\")\r\n );\r\n return false;\r\n }\r\n if (this.formGroup.controls[\"Tax\"].value && this.formGroup.controls[\"Tax\"].value > 1000) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.LengthOfTaxField\")\r\n );\r\n return false;\r\n }\r\n if (this.formGroup.controls[\"Toll\"].value && this.formGroup.controls[\"Toll\"].value > 1000) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.LengthOfTheTollField\")\r\n );\r\n return false;\r\n }\r\n if (this.formGroup.controls[\"PackingPrice\"].value && this.formGroup.controls[\"PackingPrice\"].value > 100000000000) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.PackageFieldLengthValue\")\r\n );\r\n return false;\r\n }\r\n if (!this.formGroup.controls[\"MeasurementUnitId\"].value) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.MeasurementUnitNotEntered\")\r\n );\r\n return false;\r\n }\r\n\r\n if (priceValue === null || priceValue === \"\" || priceValue < 0) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.DefaultPriceNotEntered\")\r\n );\r\n return false;\r\n }\r\n\r\n if (!this.formGroup.controls[\"ItemTypeId\"].value) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.typeNotEntered\")\r\n );\r\n return false;\r\n }\r\n if (this.model?.Prices && this.model?.Prices.length > 0) {\r\n this.model.Prices = this.model?.Prices.filter((x) => x.State != RowState.Detached);\r\n }\r\n if (!this.model?.Prices || this.model?.Prices.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).length < 0) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Catalog.Item.AtLeastOnePriceIsRequired\");\r\n }\r\n if (!this.formGroup.controls[\"CategoryId\"].value) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.ItemsWithoutGroupHeadShouldBeDefinedInDishesMenu\")\r\n );\r\n }\r\n\r\n let codeIsValid = true;\r\n if (!this.formGroup.controls[\"Code\"].value || this.formGroup.controls[\"Code\"].value === \"0\") {\r\n codeIsValid = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.CodeIsRequired\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Attention\")\r\n );\r\n }\r\n\r\n if (\r\n this.model?.Id &&\r\n this.model?.Dependents &&\r\n this.model?.Dependents.length > 0 &&\r\n this.model?.Dependents.some((i) => i.State != RowState.Delete && i.State != RowState.Detached && i.DependentItemId == this.model?.Id)\r\n ) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Catalog.Item.ProductAmongDependentProducts\");\r\n }\r\n return !this.haserror && codeIsValid;\r\n }\r\n onGoodsIdChanges(goods: Goods) {\r\n if (goods) {\r\n this.setValue(\"Title\", goods.Title);\r\n this.model.Title = goods.Title;\r\n this.setValue(\"MeasurementUnitId\", goods.UnitId);\r\n this.model.MeasurementUnitId = goods.UnitId;\r\n this.setValue(\"DetailLedgerId\", goods.DetailLedgerId);\r\n this.model.DetailLedgerId = goods.DetailLedgerId;\r\n this.setValue(\"Code\", goods.Code);\r\n this.model.Code = +goods.Code;\r\n this.formGroup.controls[\"Title\"].disable();\r\n this.formGroup.controls[\"DetailLedgerId\"].disable();\r\n this.disabledTitle = true;\r\n }\r\n }\r\n\r\n onGoodsClear() {\r\n this.setValue(\"Title\", \"\");\r\n this.model.Title = \"\";\r\n this.setValue(\"Code\", \"\");\r\n this.model.Code = null;\r\n this.setValue(\"MeasurementUnitId\", null);\r\n this.model.MeasurementUnitId = null;\r\n this.setValue(\"DetailLedgerId\", null);\r\n this.model.DetailLedgerId = null;\r\n this.formGroup.controls[\"Title\"].enable();\r\n this.formGroup.controls[\"DetailLedgerId\"].enable();\r\n this.disabledTitle = false;\r\n }\r\n\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n setMaxCode() {\r\n setTimeout(() => {\r\n document.getElementById(\"Title\")?.focus();\r\n }, 700);\r\n }\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n this.Prices = this.getDetailControlModels(\"Prices\");\r\n this.Dependents = this.getDetailControlModels(\"Dependents\");\r\n this.Barcodes = this.getDetailControlModels(\"Barcodes\");\r\n this.Branches = this.getDetailControlModels(\"Branches\");\r\n if (this.Dependents.findIndex((c) => c.name == \"ItemDependencySaleMethodBranch\") != -1)\r\n this.Dependents = this.Dependents.filter((c) => c.name != \"ItemDependencySaleMethodBranch\");\r\n this.Dependents.push({\r\n name: \"ItemDependencySaleMethodBranch\",\r\n modelName: \"ItemDependencySaleMethodBranch\",\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Catalog.Item.SellMethod\"),\r\n IsMultiSelect: true,\r\n controlType: FormControlTypes.dropdown,\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n disabled: false,\r\n areaName: \"default\",\r\n apiName: \"SaleMethodBranch/GetActiveSaleMethodBranch\",\r\n displayMember: \"Title\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 200,\r\n required: false,\r\n });\r\n if (this.model?.Id) {\r\n this.httpCommonService\r\n .getList(\"SaleMethodBranch/GetActiveSaleMethodBranch\")\r\n .pipe(take(1))\r\n .subscribe((res: LookupItem[]) => {\r\n this.activeSaleMethodBranches = res;\r\n this.model.Dependents.forEach((dependent) => {\r\n dependent.ItemDependencySaleMethodBranch.forEach((saleMethod) => {\r\n saleMethod.Title = res.find((c) => c.Id == saleMethod.SaleMethodId).Title;\r\n });\r\n });\r\n });\r\n }\r\n }\r\n\r\n CompleteData($event: any) {\r\n if ($event.apiName === \"Lookup\" && $event.Category === \" ItemType\") {\r\n if (!this.model?.ItemTypeId) {\r\n this.model.ItemTypeId = $event.Id;\r\n this.model.ItemTypeTitle = $event.Title;\r\n this.setValue(\"ItemTypeId\", $event.Id);\r\n this.setValue(\"ItemTypeTitle\", $event.Title);\r\n }\r\n }\r\n }\r\n\r\n showOrganizationalDiscount(event) {\r\n this.model.IsOrganizationalDiscount = null;\r\n this.model.IsOrganizationalDiscount = event;\r\n this.cd.detectChanges();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n {{ erroremessage }}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n 0\"\r\n [columns]=\"Prices\"\r\n [DefaultValues]=\"DefaultValues\"\r\n [dataList]=\"model.Prices\">\r\n \r\n \r\n \r\n 0\"\r\n [DefaultValues]=\"DefaultValues\"\r\n [noReduplicative]=\"true\"\r\n [isDelete]=\"true\"\r\n [columns]=\"Dependents\"\r\n [dataList]=\"model.Dependents\"\r\n (afterSaved)=\"addHandler($event)\">\r\n \r\n \r\n \r\n 0\"\r\n [columns]=\"Barcodes\"\r\n [dataList]=\"model.Barcodes\">\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n 0 &&\r\n model?.Branches?.length > 0 &&\r\n showBranch\r\n \"\r\n [DefaultValues]=\"DefaultValues\"\r\n [columns]=\"Branches\"\r\n [dataList]=\"model.Branches\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\">\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { ItemFormComponent } from \"../item-form/item-form.component\";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { SaleFormulaComponent } from \"../../inv/sale-formula/sale-formula.component\";\r\nimport { Item } from \"../model/item.model\";\r\nimport { AuthService, GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { ColumnBase } from \"@progress/kendo-angular-grid\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n\r\n@Component({\r\n selector: \"ngx-item-list\",\r\n templateUrl: \"./item-list.component.html\",\r\n styleUrls: [\"./item-list.component.scss\"],\r\n})\r\nexport class ItemListComponent extends BaseListComponent {\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n unSortableFilterable: string[] = [];\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n actions: EntityListAction[];\r\n\r\n currentInformation = this.authService?.currentInformation();\r\n SoftWareLicenseKind = SoftWareLicenseKind;\r\n constructor(private tabsservice: TabularService, public authService: AuthService) {\r\n super();\r\n this.inputEditorform = ItemFormComponent;\r\n this.FillData();\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Item\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Catalog.Item.ItemsFormula\");\r\n const columnsToExclude = [\"SalePriceTypeTitle\", \"Price\"];\r\n\r\n this.unSortableFilterable.push(...columnsToExclude);\r\n if (this.currentInformation.SepidzWebKind !== SoftWareLicenseKind.RestaurantLightWeb) {\r\n this.setactions();\r\n }\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"SaleFormula\",\r\n disabled: false,\r\n displayName: this.translate(\"ClientApp.FrontOffice.Catalog.Item.ComponentsOfGoods\"),\r\n iconName: \"icon-pie_chart-o\",\r\n areaName: \"RestaurantSale\",\r\n isModal: false,\r\n requireSelectedrows: true,\r\n apiName: \"SaleFormula/GetSaleFormula\",\r\n Form_Component: SaleFormulaComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction, selectedRow: Item, onRowsSelected: Item[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n if (action.name === \"SaleFormula\") {\r\n if (selectedRow) {\r\n this.httpCommonService\r\n .getItem(\"SaleFormula/GetFormulasByItemId\", selectedRow.Id)\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n const menu = {\r\n title: `${this.translate(\"ClientApp.FrontOffice.Catalog.Item.Analyze\")} (${selectedRow.Title})`,\r\n isCloseable: true,\r\n icon: \"\",\r\n active: true,\r\n responsive: true,\r\n componentType: SaleFormulaComponent,\r\n data: [{ provide: VoucherKindInfo, useValue: { ItemId: selectedRow.Id, itemTitle: selectedRow.Title, formulas: res } }],\r\n };\r\n this.tabsservice.open(menu);\r\n });\r\n } else this.sts.showToast(\"warning\", \"\", this.translate(\"ClientApp.FrontOffice.Catalog.Item.SelectAnItem\"), 3000);\r\n }\r\n }\r\n\r\n async FillData() {\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n if (currentBranch.RestaurantCallCenter) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Item\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (!this.accountService.authService.currentBranch.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n });\r\n }\r\n if (currentBranch.BranchingLightEnabled || currentBranch.BranchingAdvancedEnabled) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Item\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (!this.accountService.authService.currentBranch.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Catalog.Item.HasBranchCommunication\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Catalog.Item.HasCallCenterCommunication\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve({ GridInfo: this.getGridInfo(this.grid.grid.columns.toArray()), Filters: this.grid.getGridFilter() });\r\n });\r\n }\r\n\r\n getGridInfo(columns: ColumnBase[]): GridColumnInfoDetail[] {\r\n return columns\r\n .filter((x) => !x.hidden)\r\n .map((x) => {\r\n const info = new GridColumnInfoDetail();\r\n info.name = x[\"field\"];\r\n info.hidden = x.hidden;\r\n info.orderindex = x.orderIndex;\r\n info.title = x.title;\r\n return info;\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { includes } from \"lodash\";\r\nimport { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { ItemPriceChange, ItemPriceChangeDetail } from \"../../model/item-price-change.model\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { RateIncreaseChange, RoundingTypeChange } from \"../item-price.enum\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Item } from \"../../model/item.model\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { ItemCategory } from \"../../model/item-category.model\";\r\n\r\n@Component({\r\n selector: \"app-item-price-change-form\",\r\n templateUrl: \"./item-price-change-form.component.html\",\r\n styleUrls: [\"./item-price-change-form.component.scss\"],\r\n})\r\nexport class ItemPriceChangeFormComponent extends BaseFormComponent {\r\n DefaultValues: Dictionary = [];\r\n Items: form_control[];\r\n ItemPriceChangeForm: form_control[];\r\n isDelete: boolean = true;\r\n erroremessage: string;\r\n deactivateSave: boolean = false;\r\n ItemsList: Item[];\r\n categories: ItemCategory[];\r\n\r\n itemPriceChangeDetail = new ItemPriceChangeDetail();\r\n itemPriceChangeDetailCopy = { ...this.itemPriceChangeDetail };\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"ItemPriceChange\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.ItemPriceChange\");\r\n super.ngOnInit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n }\r\n\r\n //اضافه کردن دکمه اعمال\r\n setColumnAttribute(): void {\r\n if (!this.orignalColumns.some((s) => s.name === \"addItemPriceBtn\")) {\r\n const addBtn = new form_control();\r\n addBtn.name = \"addItemPriceBtn\";\r\n addBtn.label = this.translate(\"ClientApp.FrontOffice.Catalog.Item.actions\");\r\n addBtn.formVisible = true;\r\n addBtn.userClass = \"action-btn\";\r\n addBtn.columnNumber = 1;\r\n addBtn.controlType = FormControlTypes.Button;\r\n this.orignalColumns.push(addBtn);\r\n this.columns = this.orignalColumns;\r\n }\r\n super.setColumnAttribute();\r\n this.Items = this.getDetailControlModels(\"Items\");\r\n }\r\n\r\n onDynamicFormChanges(controlName: string) {\r\n const IncreaseRateValue = this.formGroup.controls[\"IncreaseRateOfAmount\"].value;\r\n const AmountTypeIdValue = this.formGroup.controls[\"AmountTypeId\"].value;\r\n const AmountType = this.selectorService.getDataList(\"AmountTypeId\");\r\n if (IncreaseRateValue !== null && IncreaseRateValue !== undefined) {\r\n if (AmountType.find((f) => f.Code === RateIncreaseChange.Percent).Id === AmountTypeIdValue) {\r\n if (Number(IncreaseRateValue) > 100) {\r\n this.formGroup.controls[\"IncreaseRateOfAmount\"].setValue(100);\r\n } else {\r\n this.itemPriceChangeDetail.IncreaseRateOfAmount = IncreaseRateValue;\r\n }\r\n } else if (AmountType.find((f) => f.Code === RateIncreaseChange.Rial).Id === AmountTypeIdValue) {\r\n this.itemPriceChangeDetail.IncreaseRateOfAmount = IncreaseRateValue;\r\n }\r\n\r\n if (controlName === \"addItemPriceBtn\") {\r\n this.populateItem();\r\n }\r\n }\r\n this.formGroup.controls[\"CategoryIds\"].value;\r\n }\r\n\r\n populateItem() {\r\n const CategoryIdValue = this.formGroup.controls[\"CategoryIds\"].value;\r\n this.httpCommonService\r\n .create(\"Item/GetItemByCategory\", CategoryIdValue)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (data: Item[]) => {\r\n const SalePriceTypeIdsValue = this.formGroup.controls[\"SalePriceTypeIds\"].value;\r\n const IncreaseRateValue = this.formGroup.controls[\"IncreaseRateOfAmount\"].value;\r\n const RoundingAmountValue = this.formGroup.controls[\"RoundingAmount\"].value;\r\n this.ItemsList = data;\r\n this.model.Items = [];\r\n this.ItemsList?.forEach((category) => {\r\n SalePriceTypeIdsValue.forEach((SalePriceTypeIdValue) => {\r\n this.itemPriceChangeDetailCopy = { ...this.itemPriceChangeDetail };\r\n this.itemPriceChangeDetailCopy.CategoryTitle = category.CategoryTitle || null;\r\n this.itemPriceChangeDetailCopy.ItemTitle = category.Title;\r\n this.itemPriceChangeDetailCopy.OldAmount = category.Price;\r\n const selectedPrice = category.Prices?.find((price) => price.SalePriceTypeId === SalePriceTypeIdValue);\r\n if (selectedPrice) {\r\n this.itemPriceChangeDetailCopy.SalePriceTypeTitle = selectedPrice.SalePriceTypeTitle;\r\n this.itemPriceChangeDetailCopy.ItemPriceId = selectedPrice.Id;\r\n this.itemPriceChangeDetailCopy.ItemId = category.Id;\r\n this.itemPriceChangeDetailCopy.OldAmount = selectedPrice.Price;\r\n let newAmount = selectedPrice.Price;\r\n const AmountType = this.selectorService.getDataList(\"AmountTypeId\");\r\n const RoundingType = this.selectorService.getDataList(\"RoundingTypeId\");\r\n if (AmountType.find((f) => f.Code === RateIncreaseChange.Percent).Id === this.formGroup.controls[\"AmountTypeId\"].value) {\r\n newAmount = (1 + IncreaseRateValue / 100) * newAmount;\r\n } else if (AmountType.find((f) => f.Code === RateIncreaseChange.Rial).Id === this.formGroup.controls[\"AmountTypeId\"].value) {\r\n newAmount += IncreaseRateValue;\r\n }\r\n if (RoundingAmountValue !== 0 && RoundingAmountValue !== null && RoundingAmountValue !== undefined) {\r\n if (RoundingType.find((f) => f.Code === RoundingTypeChange.Standard).Id === this.formGroup.controls[\"RoundingTypeId\"].value) {\r\n newAmount = Math.round(newAmount / RoundingAmountValue) * RoundingAmountValue;\r\n } else if (\r\n RoundingType.find((f) => f.Code === RoundingTypeChange.RoundingUp).Id === this.formGroup.controls[\"RoundingTypeId\"].value\r\n ) {\r\n newAmount = Math.ceil(newAmount / RoundingAmountValue) * RoundingAmountValue;\r\n } else if (\r\n RoundingType.find((f) => f.Code === RoundingTypeChange.RoundingDown).Id === this.formGroup.controls[\"RoundingTypeId\"].value\r\n ) {\r\n newAmount = Math.floor(newAmount / RoundingAmountValue) * RoundingAmountValue;\r\n }\r\n }\r\n this.itemPriceChangeDetailCopy.SalePriceTypeTitle = selectedPrice.SalePriceTypeTitle;\r\n this.itemPriceChangeDetailCopy.NewAmount = newAmount;\r\n this.Items.find((f) => f.name === \"ItemTitle\").disabled = true;\r\n this.Items.find((f) => f.name === \"CategoryTitle\").disabled = true;\r\n this.Items.find((f) => f.name === \"SalePriceTypeTitle\").disabled = true;\r\n this.Items.find((f) => f.name === \"OldAmount\").disabled = true;\r\n this.itemPriceChangeDetailCopy.State = RowState.New;\r\n this.model.Items.push(this.itemPriceChangeDetailCopy);\r\n }\r\n });\r\n });\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n CompleteData(value: { apiName: string; Category: string; data: any[] }) {\r\n if (value.apiName === \"Lookup\" && value.Category === \"RoundingType\") {\r\n if (!this.model?.RoundingTypeId) {\r\n this.model.RoundingTypeId = value.data.find((f) => f.Code === RoundingTypeChange.RoundingUp)?.Id;\r\n this.setValue(\"RoundingTypeId\", this.model.RoundingTypeId);\r\n }\r\n }\r\n if (value.apiName === \"Lookup\" && value.Category === \"AmountType\") {\r\n if (!this.model?.AmountTypeId) {\r\n this.model.AmountTypeId = value.data.find((f) => f.Code === RateIncreaseChange.Percent)?.Id;\r\n this.setValue(\"AmountTypeId\", this.model.AmountTypeId);\r\n }\r\n }\r\n if (value.apiName === \"ItemCategory\") {\r\n this.categories = value.data;\r\n }\r\n }\r\n\r\n setdefault(): void {\r\n this.setValue(\"CategoryTitles\", this.model.CategoryTitles);\r\n }\r\n \r\n beforupdate(): void {\r\n const categoryIdValue: number[] = this.formGroup.controls[\"CategoryIds\"].value;\r\n if (categoryIdValue?.length) {\r\n const categoryTitles = this.categories\r\n .filter((category) => categoryIdValue.includes(category.Id))\r\n .map((category) => category.Title)\r\n .join(\",\");\r\n this.model.CategoryTitles = categoryTitles;\r\n this.setValue(\"CategoryTitles\", categoryTitles);\r\n }\r\n }\r\n\r\n async save() {\r\n try {\r\n if (Object.keys(this.itemPriceChangeDetailCopy).length) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.InformationEditedAfterSaving\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Warning\"),\r\n DialogType.confirm,\r\n () => super.save(),\r\n () => this.selectorService.submitted$.next(this.submitted)\r\n );\r\n } else {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.MakeEntriesAndApplyChangesBeforeSaving\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.Item.Attention\"),\r\n DialogType.alert,\r\n () => this.selectorService.submitted$.next(this.submitted)\r\n );\r\n }\r\n } catch {\r\n return;\r\n }\r\n }\r\n}\r\n","\r\n \r\n 0\"\r\n [DefaultValues]=\"DefaultValues\"\r\n [columns]=\"Items\"\r\n [dataList]=\"model.Items\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\">\r\n \r\n \r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { ItemPriceChangeFormComponent } from \"../item-price-change-form/item-price-change-form.component\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\n\r\n@Component({\r\n selector: \"app-item-price-change-list\",\r\n templateUrl: \"./item-price-change-list.component.html\",\r\n styleUrls: [\"./item-price-change-list.component.scss\"],\r\n})\r\nexport class ItemPriceChangeListComponent extends BaseListComponent {\r\n unSortableFilterable: string[] = [];\r\n isEdit: boolean = false;\r\n isDelete: boolean = false;\r\n filters: GridFilter[] = [\r\n {\r\n Filed: \"CreatedDate\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"desc\",\r\n Type: \"S\",\r\n },\r\n ];\r\n constructor() {\r\n super();\r\n this.inputEditorform = ItemPriceChangeFormComponent;\r\n }\r\n\r\n ngOnInit() {\r\n this.apiName = \"ItemPriceChange\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.ItemPriceChange\");\r\n this.unSortableFilterable.push(\"CategoryIds\");\r\n this.unSortableFilterable.push(\"IncreaseRateOfAmount\");\r\n this.unSortableFilterable.push(\"RoundingAmount\");\r\n this.unSortableFilterable.push(\"ShamsiDateField\");\r\n this.unSortableFilterable.push(\"RoundingTypeTitle\");\r\n this.unSortableFilterable.push(\"AmountTypeTitle\");\r\n this.filters.push({\r\n Filed: \"CreatedDate\",\r\n Value: null,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"desc\",\r\n Type: \"S\",\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
","export enum RoundingTypeChange {\r\n Standard = 0,\r\n RoundingUp = 1,\r\n RoundingDown = 2\r\n }\r\n\r\n export enum RateIncreaseChange {\r\n Percent = 0,\r\n Rial = 1\r\n }","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Unit } from \"src/app/backoffice/inv/models/unit.model\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\n\r\n@Component({\r\n selector: \"ngx-measurement-unit-form\",\r\n templateUrl: \"./measurement-unit-form.component.html\",\r\n styleUrls: [\"./measurement-unit-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MeasurementUnitFormComponent extends BaseFormComponent {\r\n deactivateSave: boolean = false;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.FillData();\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"MeasurementUnit\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Catalog.MeasurementUnit.MeasurementUnit\");\r\n super.ngOnInit();\r\n }\r\n\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n async FillData() {\r\n if (\r\n this.accountService.authService.currentInformation().BranchingLightEnabled ||\r\n this.accountService.authService.currentInformation().BranchingAdvancedEnabled\r\n ) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Unit\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.MeasurementUnit.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.MeasurementUnit.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.MeasurementUnit.HasCallCenterCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.MeasurementUnit.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n (error) => this.getFailedHelper(error);\r\n }\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { MeasurementUnitFormComponent } from \"../measurement-unit-form/measurement-unit-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-measurement-unit-list\",\r\n templateUrl: \"./measurement-unit-list.component.html\",\r\n styleUrls: [\"./measurement-unit-list.component.scss\"],\r\n})\r\nexport class MeasurementUnitListComponent extends BaseListComponent {\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n constructor() {\r\n super();\r\n this.inputEditorform = MeasurementUnitFormComponent;\r\n this.FillData();\r\n }\r\n ngOnInit() {\r\n this.apiName = \"MeasurementUnit\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Catalog.MeasurementUnit.MeasurementUnit\");\r\n }\r\n async FillData() {\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n if (currentBranch.BranchingLightEnabled || currentBranch.BranchingAdvancedEnabled || currentBranch.RestaurantCallCenter) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Unit\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (!this.accountService.authService.currentBranch.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Catalog.MeasurementUnit.HasBranchCommunication\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Catalog.MeasurementUnit.HasCallCenterCommunication\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","\r\n\r\n","export enum MealEnum {\r\n \"صبحانه\" = 1,\r\n \"ناهار\" = 2,\r\n \"عصرانه\" = 3,\r\n \"شام\" = 4,\r\n}\r\n\r\nexport enum DeliveryEnum {\r\n \"هیچکدام\" = 1,\r\n \"تک پرس\" = 2,\r\n \"قابلمه\" = 3,\r\n \"باکس\" = 4,\r\n \"آشپزی\" = 5,\r\n}\r\n\r\nexport enum ClearEnum {\r\n \"قبل از مراسم\" = 1,\r\n \"با هماهنگی\" = 2,\r\n \"در محل\" = 3,\r\n}\r\n\r\nexport enum DeliveryEnumEng {\r\n nothing = 1,\r\n single = 2,\r\n pot= 3,\r\n box = 4,\r\n cooking = 5,\r\n}\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { Invoice } from \"../../order/model/invoice.model\";\r\n\r\nexport class DepositModel extends EntityBase {\r\n public Id: number;\r\n public InvoiceId?: number;\r\n public Invoice: Invoice;\r\n public ServingFoodDate: Date;\r\n public ServingFoodTime: string;\r\n public MealTime?: number;\r\n public DeliveryType?: number;\r\n public ClearType?: number;\r\n public NumberOfPeople?: number;\r\n public NumberOfCooks?: number;\r\n public DepositAmount?: number;\r\n public ServicesAmount?: number;\r\n public FoodPricePerson?: number;\r\n public RowVersion: any;\r\n public DepositPersonnelList: DepositPersonnelModel[];\r\n public Changes: DepositChanges[];\r\n\r\n constructor() {\r\n super();\r\n this.Id = 0;\r\n this.InvoiceId = null;\r\n this.Invoice = null;\r\n this.ServingFoodDate = null;\r\n this.ServingFoodTime = \"\";\r\n this.MealTime = null;\r\n this.DeliveryType = null;\r\n this.ClearType = null;\r\n this.NumberOfCooks = null;\r\n this.NumberOfPeople = null;\r\n this.DepositPersonnelList = [];\r\n this.DepositAmount = null;\r\n this.FoodPricePerson = null;\r\n this.ServicesAmount = 0;\r\n this.RowVersion = null;\r\n this.CreatedDate = null;\r\n }\r\n}\r\n\r\nexport class DepositPersonnelModel extends EntityBase {\r\n public PersonnelId?: number;\r\n public PersonnelTitle: string;\r\n public Amount?: number;\r\n public RowVersion: any;\r\n}\r\n\r\nexport class DepositHistoryModel extends DepositModel {}\r\n\r\nexport class DepositPersonnelHistoryModel extends DepositPersonnelModel {}\r\n\r\nexport class DepositChanges extends EntityBase {\r\n public ChangedFieldCode: DepositChangedFieldEnum;\r\n}\r\n\r\nexport enum DepositChangedFieldEnum {\r\n ServingFoodDate = 1,\r\n ServingFoodTime,\r\n MealTime,\r\n DeliveryType,\r\n ClearType,\r\n NumberOfPeople,\r\n NumberOfCooks,\r\n DepositAmount,\r\n ServicesAmount,\r\n}\r\n","import { EntityBase } from 'projects/sepidz-web-framework/src/lib/models/entity-base.model';\r\nimport { Item, StockInWebKind } from './item.model';\r\n\r\nexport class ItemCategory extends EntityBase {\r\n public Code:number;\r\n public Title: string;\r\n // public Color: string;\r\n public ApplyTax?: boolean;\r\n public ApplyService?: boolean;\r\n public PrintDisplayOrder: number;\r\n public ParentId?: number;\r\n public TaxApplyTypeId?: number;\r\n public TaxApplyTypeTitle: string;\r\n public TaxApplyTypeCode?: number;\r\n public ServiceApplyTypeId?: number;\r\n public ServiceApplyTypeTitle: string;\r\n public ServiceApplyTypeCode?: number;\r\n public Items: Item[];\r\n public Children: ItemCategory[];\r\n public DetailLedgerId?:number;\r\n public DelinoId?: number;\r\n public DeactiveInDelino?: boolean;\r\n public DeactiveInKiock?: boolean;\r\n public DeactiveInDigitalMenu?: boolean;\r\n public StockInWeb: StockInWebKind;\r\n public Image: string;\r\n}\r\n","import { ItemCategory } from './item-category.model';\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { SalePriceType } from './sale-price-type.model';\r\n\r\nexport class ItemPriceChange extends EntityBase {\r\n public CategoryIds?: number[];\r\n public CategoryTitles: string;\r\n public SalePriceTypeIds?: number[];\r\n public IncreaseRateOfAmount?: number;\r\n public AmountTypeId?: number;\r\n public ItemId: number;\r\n public AmountTypeTitle?: string;\r\n public AmountTypeCode?: number;\r\n public RoundingAmount?: number;\r\n public RoundingTypeId?: number;\r\n public RoundingTypeTitle: string;\r\n public RoundingTypeCode?: number;\r\n public ShamsiDateField: string;\r\n public Items: ItemPriceChangeDetail[];\r\n}\r\n\r\nexport class ItemPriceChangeDetail extends EntityBase {\r\n public ItemPriceChangeId?: number;\r\n public ItemTitle: string;\r\n public ItemId: number;\r\n public ItemPriceId?: number;\r\n public CategoryTitle: string;\r\n public ItemCategory: ItemCategory;\r\n public SalePriceTypeId?: number;\r\n public SalePriceTypeTitle: string;\r\n public SalePriceType: SalePriceType;\r\n public PriceTypeId?: number;\r\n public OldAmount?: number;\r\n public NewAmount?: number;\r\n public IncreaseRateOfAmount?: number;\r\n}\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { OrderItem } from \"../../order/model/orderItemcategory.model\";\r\n\r\nexport class Item extends EntityBase {\r\n public GoodsId?: number;\r\n public Title: string;\r\n public Code: number;\r\n public Title_En: string;\r\n public Description: string;\r\n public Description_En: string;\r\n public ApplyTax?: boolean;\r\n public ApplyService?: boolean;\r\n public Ingredients: string;\r\n public ItemTypeId: number;\r\n public ItemTypeTitle: string;\r\n public Ingredients_En: string;\r\n public CookingTime?: number;\r\n public Calories?: number;\r\n public CategoryId?: number;\r\n public MeasurementUnitId: number;\r\n public MeasurementUnitTitle: string;\r\n public TitleDisabled: boolean;\r\n public TaxApplyTypeId?: number;\r\n public TaxApplyTypeTitle: string;\r\n public TaxApplyTypeCode?: number;\r\n public ServiceApplyTypeId?: number;\r\n public ServiceApplyTypeTitle: string;\r\n public ServiceApplyTypeCode?: number;\r\n public SalePriceTypeId?: number;\r\n public StockInWeb: StockInWebKind;\r\n public Price?: number;\r\n public Barcodes: ItemBarcode[];\r\n public Dependents: ItemDependency[];\r\n public Prices: ItemPrice[];\r\n public Branches: ItemBranch[];\r\n public Tax?: number;\r\n public Toll?: number;\r\n public PackingPrice?: number;\r\n public DelinoId?: number;\r\n public ItemCategory: string;\r\n public CategoryTitle: string;\r\n public DetailLedgerId: number;\r\n public ItemSerial: string;\r\n public DataDaysWeekTitle: string | string[];\r\n public IsOrganizationalDiscount?: boolean;\r\n public OrganizationalDiscount?: number;\r\n public DaysTitle: string | string[];\r\n public UsedInInvDailyVoucher: boolean;\r\n public UsedInInvDailyVoucherClone: boolean;\r\n}\r\n\r\nexport class ItemBarcode extends EntityBase {\r\n public Title: string;\r\n public Code: string;\r\n}\r\nexport class ItemDependency extends EntityBase {\r\n public ItemDependencyTypeId: number;\r\n public ItemDependencySaleMethodBranch: ItemDependencySaleMethodBranch[];\r\n public ItemDependencySaleMethodBranchTitle: string;\r\n public ItemDependencyTypeTitle: string;\r\n public ItemDependencyTypeCode?: number;\r\n public Quantity: number;\r\n public ItemId: number;\r\n public DependentItemId: number;\r\n public DependentItem: OrderItem;\r\n}\r\n\r\nexport class ItemDependencySaleMethodBranch extends EntityBase {\r\n public ItemDependencyId: number;\r\n public SaleMethodId: number;\r\n public Title: string;\r\n}\r\nexport class ItemPrice extends EntityBase {\r\n public Price: number;\r\n public IsDefault: boolean;\r\n public SalePriceTypeId: number;\r\n public SalePriceTypeTitle: string;\r\n public ItemId: number;\r\n}\r\nexport class ItemBranch extends EntityBase {\r\n public BranchId: number;\r\n public IsActive: boolean;\r\n public BranchTitle: string;\r\n public Selected: boolean;\r\n public ItemId: number;\r\n public DeactiveInDelino: boolean;\r\n public DeactiveInKiock: boolean;\r\n public DeactiveInDigitalMenu: boolean;\r\n public StockInWeb: StockInWebKind;\r\n public StockInWebTitle: string;\r\n}\r\n\r\nexport enum BarCodeType {\r\n /// \r\n /// با اعشار\r\n /// \r\n WithDECIMAL = 2,\r\n\r\n /// \r\n /// بدون اعشار\r\n /// \r\n WithoutDECIMAL = 5,\r\n}\r\n\r\nexport enum TaxServiceApplyType {\r\n /// \r\n /// اعمال از سرگروه\r\n /// \r\n ApplyFromGroup = 1,\r\n\r\n /// \r\n /// اعمال شود\r\n /// \r\n IsApply = 2,\r\n\r\n /// \r\n /// اعمال نشود\r\n /// \r\n NotApply = 3,\r\n}\r\n\r\nexport enum ItemType {\r\n /// \r\n /// کالا\r\n /// \r\n Goods = 1,\r\n\r\n /// \r\n /// خدمت\r\n /// \r\n Service = 2,\r\n}\r\n\r\nexport enum StockInWebKind {\r\n Available = 0,\r\n UnAvailableOnSite = 1,\r\n UnAvailable = 2,\r\n UnAvailableFromInv = 3,\r\n}\r\n\r\nexport enum CategoryPopupState {\r\n AllAvailable = 0,\r\n AllNonAvailable = 1,\r\n Multi = 2,\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { SalePriceType } from \"../model/sale-price-type.model\";\r\n\r\n@Component({\r\n selector: \"ngx-sale-price-type-form\",\r\n templateUrl: \"./sale-price-type-form.component.html\",\r\n styleUrls: [\"./sale-price-type-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SalePriceTypeFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.FillData();\r\n }\r\n deactivateSave: boolean = false;\r\n async ngOnInit() {\r\n this.apiName = \"SalePriceType\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Catalog.SalePriceType.SalePriceType\");\r\n super.ngOnInit();\r\n }\r\n // چک کردن انتقال اطلاعات مدیریت شعب\r\n async FillData() {\r\n const info = this.accountService.authService.currentInformation();\r\n if (info.BranchingLightEnabled || info.BranchingAdvancedEnabled) {\r\n const hasBranchCommunication = JSON.parse(localStorage.getItem(\"HasBranchCommunication\"));\r\n if (hasBranchCommunication == null) {\r\n this.httpCommonService\r\n .getList(`Branch/HasBranchCommunication/${this.accountService.authService.currentBranchId}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n async (hbc: boolean) => {\r\n if (hbc === true) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.SalePriceType.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.SalePriceType.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n } else if (hasBranchCommunication) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Catalog.SalePriceType.HasCallCenterCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Catalog.SalePriceType.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n\r\n
","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SalePriceTypeFormComponent } from \"../sale-price-type-form/sale-price-type-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-sale-price-type-list\",\r\n templateUrl: \"./sale-price-type-list.component.html\",\r\n styleUrls: [\"./sale-price-type-list.component.scss\"],\r\n})\r\nexport class SalePriceTypeListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = SalePriceTypeFormComponent;\r\n this.FillData();\r\n }\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n ngOnInit() {\r\n this.apiName = \"SalePriceType\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Catalog.SalePriceType.SalePriceType\");\r\n }\r\n async FillData() {\r\n const info = this.accountService.authService.currentInformation();\r\n if (info.BranchingLightEnabled || info.BranchingAdvancedEnabled || info.RestaurantCallCenter) {\r\n if (!this.accountService.authService.currentBranch.AccessToAllBranches) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n }\r\n if (info.BranchingLightEnabled || info.BranchingAdvancedEnabled) {\r\n const hasBranchCommunication = JSON.parse(localStorage.getItem(\"HasBranchCommunication\"));\r\n if (hasBranchCommunication == null) {\r\n this.httpCommonService\r\n .getList(`Branch/HasBranchCommunication/${this.accountService.authService.currentBranchId}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (hbc: boolean) => {\r\n if (hbc === true) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Catalog.SalePriceType.HasBranchCommunication\");\r\n }\r\n });\r\n } else if (hasBranchCommunication) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Catalog.SalePriceType.HasCallCenterCommunication\");\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nimport { CostGroupFormComponent } from './costgroup/costgroup-form/costgroup-form.component';\r\nimport { CostGroupListComponent } from './costgroup/costgroup-list/costgroup-list.component';\r\nimport { CostSpentListComponent } from './spentcost/costspent-list/costspent-list.component';\r\nimport { CostFormComponent } from './cost/cost-form/cost-form.component';\r\nimport { CostListComponent } from './cost/cost-list/cost-list.component';\r\nimport { CostSpentFormComponent } from './spentcost/costspent-form/costspent-form.component';\r\nimport { CostspentsettingFormComponent } from './spentcost/costspentsetting-form/costspentsetting-form.component';\r\nimport { CostSpentMenuComponent } from './spentcost/costSpentSetting';\r\nconst components =\r\n [\r\n CostGroupFormComponent,\r\n CostGroupListComponent,\r\n CostFormComponent,\r\n CostListComponent,\r\n CostSpentFormComponent,\r\n CostSpentListComponent,\r\n CostspentsettingFormComponent,\r\n CostSpentMenuComponent\r\n ]\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class CostModule { }\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Branch, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { Cost } from \"../../model/cost.model\";\r\nimport { CostBranch } from \"../../model/costbranch.model\";\r\n@Component({\r\n selector: \"ngx-cost-form\",\r\n templateUrl: \"./cost-form.component.html\",\r\n styleUrls: [\"./cost-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CostFormComponent extends BaseFormComponent {\r\n isAccessToAllBranches = true;\r\n Branch: form_control[];\r\n DefaultValues: Dictionary = [];\r\n deactivateSave: boolean = false;\r\n showBranch: boolean = false;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.FillData();\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"Cost\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Cost.Cost.Costs\");\r\n super.ngOnInit();\r\n this.DefaultValues[\"CostId\"] = 0;\r\n }\r\n\r\n async FillData() {\r\n if (\r\n this.accountService.authService.currentInformation().BranchingLightEnabled ||\r\n this.accountService.authService.currentInformation().BranchingAdvancedEnabled\r\n ) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Cost\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Cost.Cost.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Cost.Cost.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Cost.Cost.HasCallCenterCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Cost.Cost.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n (error) => this.getFailedHelper(error);\r\n }\r\n\r\n if (!this.model.Branch) this.model.Branch = [];\r\n }\r\n\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n\r\n setdefault(): void {\r\n if (!this.accountService.authService.currentBranch) {\r\n setTimeout(() => this.populateBranch(), 300);\r\n } else {\r\n this.populateBranch();\r\n }\r\n }\r\n\r\n populateBranch() {\r\n this.httpCommonService\r\n .getList(\"Branch\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (data: Branch[]) => {\r\n let BranchList: Branch[] = data;\r\n if (!this.model) this.model = {};\r\n if (!this.model.Branch) this.model.Branch = [];\r\n BranchList?.forEach((br: Branch) => {\r\n const listBranch = this.model.Branch.find((x) => x.BranchId === br.Id);\r\n if (!listBranch) {\r\n let entity = {};\r\n entity.BranchId = br.Id;\r\n entity.BranchTitle = br.Title;\r\n entity.IsActive = true;\r\n entity.State = RowState.New;\r\n if (!this.model || !(this.model.Id > 0)) {\r\n entity.Selected = true;\r\n } else {\r\n entity.Selected = false;\r\n }\r\n\r\n this.model.Branch.push(entity);\r\n this.cd.markForCheck();\r\n }\r\n });\r\n\r\n this.showBranch = true;\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.Branch = undefined;\r\n }\r\n\r\n beforupdate(): void {\r\n this.model.Branch = this.model.Branch.filter((x) => x.Selected);\r\n if (this.model.Branch && this.model.Branch.length <= 0) this.model.Branch = null;\r\n }\r\n\r\n isActveTab(): boolean {\r\n return true;\r\n }\r\n\r\n setMaxCode() {\r\n if (this.currentrow?.Id == undefined) {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.FillData();\r\n }\r\n\r\n setColumnAttribute() {\r\n this.Branch = this.getDetailControlModels(\"Branch\");\r\n super.setColumnAttribute();\r\n this.orignalColumns.find((x) => {\r\n if (x.name === \"Subledger\" || x.name === \"DetailLedger\")\r\n x.formVisible =\r\n this.accountService.authService.currentInformation().AccountingKind === SoftWareLicenseKind.AccountingWeb ||\r\n this.accountService.authService.currentInformation().AccountingKind === SoftWareLicenseKind.AccountingToAdvancedWeb ||\r\n this.accountService.authService.currentInformation().AccountingKind === SoftWareLicenseKind.AccountingAdvancedWeb;\r\n });\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n 0 && model?.Branch?.length > 0 && showBranch\"\r\n [DefaultValues]=\"DefaultValues\"\r\n [columns]=\"Branch\"\r\n [dataList]=\"model?.Branch\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\">\r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { CostFormComponent } from \"../cost-form/cost-form.component\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\n@Component({\r\n selector: \"ngx-cost-list\",\r\n templateUrl: \"cost-list.component.html\",\r\n styleUrls: [\"cost-list.component.scss\"],\r\n})\r\nexport class CostListComponent extends BaseListComponent {\r\n IgnoreDelete: Boolean = false;\r\n deleteMessage: string = \"\";\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n hasPermission: boolean = false;\r\n isDelete: boolean = true;\r\n constructor(public tabsservice: TabularService) {\r\n super();\r\n if (this.accountService.authService.currentInformation().BranchingLightEnabled) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Cost.Cost.AccessToFeesMenuForLicenseLite\"),\r\n this.translate(\"ClientApp.FrontOffice.Cost.Cost.Error\")\r\n );\r\n this.hasPermission = false;\r\n const costGroupTab = this.tabsservice.tabItemSubject?.value?.findIndex((x) => x.title == \"ClientApp.Pages.PageMenu.CostGroup\");\r\n this.tabsservice.close(costGroupTab);\r\n } else this.hasPermission = true;\r\n this.inputEditorform = CostFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Cost\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Cost.Cost.Cost\");\r\n this.FillData();\r\n }\r\n async FillData() {\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n if (currentBranch.BranchingLightEnabled || currentBranch.BranchingAdvancedEnabled || currentBranch.RestaurantCallCenter) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Cost\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n const branch = this.accountService.authService.currentBranch;\r\n if (!branch.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n if (branch.BranchDataTransferInfos?.length > 0) {\r\n let a = branch.BranchDataTransferInfos?.forEach((val) => {\r\n if (val.TranslateCost) {\r\n this.isAdd = true;\r\n this.isEdit = true;\r\n this.isDelete = true;\r\n }\r\n });\r\n }\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Cost.Cost.HasBranchCommunication\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Cost.Cost.HasCallCenterCommunication\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Branch, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { CostGroup } from \"../../model/CostGroup.model\";\r\nimport { CostGroupBranch } from \"../../model/costgroupbranch.model\";\r\n@Component({\r\n selector: \"ngx-costgroup-form\",\r\n templateUrl: \"./costgroup-form.component.html\",\r\n styleUrls: [\"./costgroup-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CostGroupFormComponent extends BaseFormComponent {\r\n deactivateSave: boolean = false;\r\n isAccessToAllBranches = true;\r\n Branch: form_control[];\r\n showBranch: boolean = false;\r\n DefaultValues: Dictionary = [];\r\n erroremessage: string;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.FillData();\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"CostGroup\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Cost.Cost.CostGroup\");\r\n super.ngOnInit();\r\n this.DefaultValues[\"CostGroupId\"] = 0;\r\n }\r\n async FillData() {\r\n if (\r\n this.accountService.authService.currentInformation().BranchingLightEnabled ||\r\n this.accountService.authService.currentInformation().BranchingAdvancedEnabled\r\n ) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/CostGroup\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Cost.CostGroup.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Cost.CostGroup.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Cost.CostGroup.HasCallCenterCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Cost.CostGroup.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n (error) => this.getFailedHelper(error);\r\n }\r\n\r\n if (!this.model.Branch) this.model.Branch = [];\r\n if (!this.accountService.authService.currentBranch) {\r\n setTimeout(() => this.populateBranch(), 300);\r\n } else {\r\n this.populateBranch();\r\n }\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n setdefault(): void {\r\n if (!this.accountService.authService.currentBranch) {\r\n setTimeout(() => this.populateBranch(), 300);\r\n } else {\r\n this.populateBranch();\r\n }\r\n }\r\n populateBranch() {\r\n this.httpCommonService\r\n .getList(\"Branch\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (data: Branch[]) => {\r\n let BranchList: Branch[] = data;\r\n if (!this.model) this.model = {};\r\n if (!this.model.Branch) this.model.Branch = [];\r\n BranchList?.forEach((br: Branch) => {\r\n const listBranch = this.model.Branch.find((x) => x.BranchId === br.Id);\r\n if (!listBranch) {\r\n let entity = {};\r\n entity.BranchId = br.Id;\r\n entity.BranchTitle = br.Title;\r\n entity.IsActive = true;\r\n entity.State = RowState.New;\r\n // اگر در مود ایجاد بودیم\r\n if (!this.model || !(this.model.Id > 0)) {\r\n entity.Selected = true;\r\n } else {\r\n entity.Selected = false;\r\n }\r\n\r\n this.model.Branch.push(entity);\r\n this.cd.markForCheck();\r\n }\r\n });\r\n\r\n this.showBranch = true;\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.Branch = undefined;\r\n }\r\n beforupdate(): void {\r\n this.model.Branch = this.model.Branch.filter((x) => x.Selected);\r\n if (this.model.Branch && this.model.Branch.length <= 0) this.model.Branch = null;\r\n }\r\n isActveTab(): boolean {\r\n return true;\r\n }\r\n setMaxCode() {\r\n if (!this.currentrow?.Id) {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n }\r\n setColumnAttribute() {\r\n this.Branch = this.getDetailControlModels(\"Branch\");\r\n this.orignalColumns.find((x) => x.name == \"Code\").isFloat = 1;\r\n }\r\n ngAfterViewInit(): void {\r\n this.FillData();\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n 0 && model?.Branch?.length > 0 && showBranch\"\r\n [DefaultValues]=\"DefaultValues\"\r\n [columns]=\"Branch\"\r\n [dataList]=\"model.Branch\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\">\r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { CostGroupFormComponent } from \"../costgroup-form/costgroup-form.component\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\n@Component({\r\n selector: \"ngx-costgroup-list\",\r\n templateUrl: \"costgroup-list.component.html\",\r\n styleUrls: [\"costgroup-list.component.scss\"],\r\n})\r\nexport class CostGroupListComponent extends BaseListComponent {\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n hasPermission: boolean = false;\r\n\r\n constructor(public tabsservice: TabularService) {\r\n super();\r\n if (this.accountService.authService.currentInformation().BranchingLightEnabled) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Cost.CostGroup.AccessToFeesMenuForLicenseLite\"),\r\n this.translate(\"ClientApp.FrontOffice.Cost.CostGroup.Error\")\r\n );\r\n this.hasPermission = false;\r\n const costGroupTab = this.tabsservice.tabItemSubject?.value?.findIndex((x) => x.title == \"ClientApp.Pages.PageMenu.CostGroup\");\r\n this.tabsservice.close(costGroupTab);\r\n } else this.hasPermission = true;\r\n this.inputEditorform = CostGroupFormComponent;\r\n this.FillData();\r\n }\r\n\r\n ngOnInit() {\r\n this.apiName = \"CostGroup\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Cost.CostGroup.CostsGroup\");\r\n }\r\n\r\n async FillData() {\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n if (currentBranch.BranchingLightEnabled || currentBranch.BranchingAdvancedEnabled || currentBranch.RestaurantCallCenter) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/CostGroup\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n const branch = this.accountService.authService.currentBranch;\r\n if (!branch?.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n if (branch.BranchDataTransferInfos?.length > 0) {\r\n let a = branch?.BranchDataTransferInfos?.forEach((val) => {\r\n if (val.TranslateCost) {\r\n this.isAdd = true;\r\n this.isEdit = true;\r\n this.isDelete = true;\r\n }\r\n });\r\n }\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Cost.CostGroup.HasBranchCommunication\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Cost.CostGroup.HasCallCenterCommunication\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n
","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { Cost } from \"./cost.model\";\r\nimport { CostGroup } from \"./CostGroup.model\";\r\n\r\nexport class CostSpent extends EntityBase {\r\n public Code: number;\r\n public Title: string;\r\n public CostGroupId: number;\r\n public CostId: number;\r\n public Amount: number;\r\n public CostGroup: CostGroup;\r\n public Cost: Cost;\r\n public CostGroupTitle: string;\r\n public CostGroupCode: number;\r\n public CostTitle: string;\r\n public Description: string;\r\n public CostCode: number;\r\n public CostSpntDate: Date;\r\n public ShamsiDateTime: string;\r\n public DeductionForSetelment?: boolean;\r\n public Subledger?: number;\r\n public DetailLedger?: number;\r\n public TrsConcernId?: number;\r\n public SettlementId?: number;\r\n public DriverSettlementId?: number;\r\n public AccVoucherId?: number;\r\n public AccFixNo?: number;\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Output } from \"@angular/core\";\r\nimport { MenuPackage } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu-injector\";\r\nimport { ContextMenuService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu.service\";\r\nimport { MenuComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/menu.component\";\r\nimport { Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { AccountService, LocalStoreManager, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { CostspentsettingFormComponent } from \"./costspentsetting-form/costspentsetting-form.component\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"simple-menu\",\r\n // add your menu html\r\n template: `\r\n تنظیمات \r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CostSpentMenuComponent extends MenuComponent {\r\n // this module does not have animations, set lazy false\r\n lazy = false;\r\n @Output() hasActiveItem = new EventEmitter();\r\n constructor(\r\n public menuPackage: MenuPackage,\r\n public contextMenuService: ContextMenuService,\r\n public dialogService: SimpleModalService,\r\n public common: CommonService,\r\n public accountService: AccountService,\r\n private storage: LocalStoreManager,\r\n protected sts: ShowToastrService,\r\n private translate: TranslateService\r\n ) {\r\n super(menuPackage, contextMenuService);\r\n // grab any required menu context passed via menuContext input\r\n }\r\n\r\n async handleClick(value: any) {\r\n this.contextMenuService.closeAll();\r\n if (!value && !this.accountService.userHasPermission(`General:CostSpentFormSetting`, Permission.createPermission)) {\r\n this.sts.showToast(\"danger\", \"\", this.translate.instant(\"ClientApp.FrontOffice.Cost.SpentCost.YouDoNotHaveAccessToThisArea\"));\r\n return;\r\n }\r\n if (value && !this.accountService.userHasPermission(`General:CostSpentFormSetting`, Permission.editPermission)) {\r\n this.sts.showToast(\"danger\", \"\", this.translate.instant(\"ClientApp.FrontOffice.Cost.SpentCost.YouDoNotHaveAccessToThisArea\"));\r\n return;\r\n }\r\n this.contextMenuService.closeAll();\r\n\r\n await this.common.getFormSetting(\"CostSpentFormSetting\").then(\r\n (onfulfilled) => {\r\n value = this.common.storage.getData(ClearableCache.FormSetting);\r\n this.dialogService\r\n .open(CostspentsettingFormComponent, { currentrow: value }, { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false })\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) this.storage.savePermanentData(model, ClearableCache.FormSetting);\r\n });\r\n },\r\n (onrejected) => {}\r\n );\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { Cost } from \"../../model/cost.model\";\r\nimport { CostSpent } from \"../../model/costspent.model\";\r\nimport { Personnel, PersonnelRolesEnum } from \"src/app/frontoffice/parties/model/personnel.model\";\r\nimport { CostSpentFormSettingModel } from \"../costspentformsetting.model\";\r\nimport { LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { Validators } from \"@angular/forms\";\r\n@Component({\r\n selector: \"ngx-costspent-form\",\r\n templateUrl: \"./costspent-form.component.html\",\r\n styleUrls: [\"./costspent-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CostSpentFormComponent extends BaseFormComponent {\r\n cost: Cost;\r\n costList: Cost[] = [];\r\n deactivateSave: boolean;\r\n errorMessage: string;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private storage: LocalStoreManager) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"CostSpent\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Cost.SpentCost.spentMoney\");\r\n super.ngOnInit();\r\n if (!this.model && !this.model?.Id) this.setMaxCode();\r\n this.FillData();\r\n }\r\n\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(take(1))\r\n .subscribe((data: number) => {\r\n if (!this.model) this.model = new CostSpent();\r\n if (data) {\r\n this.model[\"Code\"] = data;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n\r\n FillData() {\r\n const currentInformation = this.accountService.authService.currentInformation();\r\n const checkBranching = currentInformation.BranchingLightEnabled || currentInformation.BranchingAdvancedEnabled;\r\n\r\n if (checkBranching) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch/CostSpent\")\r\n .pipe(take(1))\r\n .subscribe({\r\n next: (hbc: CheckBrachAccessModel) => {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Cost.SpentCost.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Cost.SpentCost.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n } else if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Cost.SpentCost.HasCallCenterCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Cost.SpentCost.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n },\r\n error: (error) => this.getFailedHelper(error),\r\n });\r\n }\r\n }\r\n\r\n //چک کردن اینکه کاربر صندوقدار هست یا نه برای فعال بودن یا نبودن چک باکس کسر از موجودی صندوقدار\r\n checkTheRole() {\r\n const currentUser = this.accountService?.authService?.currentUser;\r\n this.httpCommonService\r\n .getList(\"Personnel\")\r\n .pipe(take(1))\r\n .subscribe((data: Personnel[]) => {\r\n if (data) {\r\n const isCashier = data.some((f) => f.UserId === currentUser.Id && f.RolesTitle === PersonnelRolesEnum.Cashier);\r\n if (isCashier) {\r\n this.orignalColumns.find((f) => f.name === \"DeductionForSetelment\").formVisible = true;\r\n this.columns = this.orignalColumns.filter((f) => (!f.areaName || f.areaName === \"default\") && f.formVisible);\r\n }\r\n }\r\n });\r\n }\r\n\r\n async fillSubDetailLedger() {\r\n let costSpentFormSettingModel = this.storage.getData(ClearableCache.FormSetting);\r\n if (!costSpentFormSettingModel) {\r\n let result = await this.httpCommonService.getList(\"CostSpentFormSetting\").pipe(take(1)).toPromise();\r\n if (result) {\r\n costSpentFormSettingModel = result[0];\r\n this.storage.savePermanentData(costSpentFormSettingModel, ClearableCache.FormSetting);\r\n }\r\n }\r\n this.model.Subledger = costSpentFormSettingModel.Subledger;\r\n this.model.DetailLedger = costSpentFormSettingModel.DetailLedger;\r\n }\r\n\r\n setdefault(): void {\r\n this.checkTheRole();\r\n if (this.model.SettlementId || this.model.DriverSettlementId) this.deactivateSave = true;\r\n if (!this.currentrow) this.fillSubDetailLedger();\r\n }\r\n\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"Subledger\" || x.name === \"DetailLedger\") {\r\n const AccountingKind = this.accountService.authService.currentInformation().AccountingKind;\r\n x.formVisible =\r\n AccountingKind === SoftWareLicenseKind.AccountingWeb ||\r\n AccountingKind === SoftWareLicenseKind.AccountingAdvancedWeb ||\r\n AccountingKind === SoftWareLicenseKind.AccountingToAdvancedWeb;\r\n }\r\n if (x.name === \"Code\") x.isFloat = 1;\r\n });\r\n }\r\n\r\n isValid() {\r\n if (!this.formGroup.controls[\"CostId\"].value) {\r\n this.errorMessage = this.translate(\"ClientApp.FrontOffice.Cost.SpentCost.SelectingCostGroupIsRequired\");\r\n return false;\r\n }\r\n this.errorMessage = undefined;\r\n return true;\r\n }\r\n\r\n changValue($event) {\r\n if (\r\n $event.KeyName === \"CostId\" &&\r\n this.errorMessage.includes(this.translate(\"ClientApp.FrontOffice.Cost.SpentCost.SelectingCostGroupIsRequired\"))\r\n ) {\r\n this.isValid();\r\n }\r\n if ($event.apiName.includes(\"CostGroup\")) {\r\n const costGroupId = this.formGroup.controls[\"CostGroupId\"].value;\r\n const branchId = this.accountService.authService.currentBranchId;\r\n\r\n var FindList = this.costList.filter(\r\n (f) => (f.CostGroupId === costGroupId || f.CostGroupId === 0) && f.Branch.some((z) => z.BranchId == branchId && z.IsActive)\r\n );\r\n\r\n this.setValue(\"CostId\", null);\r\n\r\n if (FindList?.length == 0) {\r\n this.selectorService.setDataList(\"CostId\", []);\r\n this.formGroup.controls[\"CostId\"].disable();\r\n } else {\r\n this.selectorService.setDataList(\"CostId\", Object.assign([], FindList));\r\n this.formGroup.controls[\"CostId\"].enable();\r\n }\r\n }\r\n }\r\n\r\n CompleteData($event) {\r\n if ($event && $event.apiName === \"Cost\") {\r\n this.costList = $event.data;\r\n if (!this.formGroup.controls[\"CostGroupId\"].value) this.formGroup.controls[\"CostId\"].disable();\r\n else {\r\n const costGroupId = this.formGroup.controls[\"CostGroupId\"].value;\r\n const branchId = this.accountService.authService.currentBranchId;\r\n var FindList = this.costList.filter(\r\n (f) => (f.CostGroupId === costGroupId || f.CostGroupId === 0) && f.Branch.some((z) => z.BranchId == branchId && z.IsActive)\r\n );\r\n this.selectorService.setDataList(\"CostId\", Object.assign([], FindList));\r\n }\r\n }\r\n }\r\n}\r\n","\r\n\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { CostSpentFormComponent } from \"../costspent-form/costspent-form.component\";\r\nimport { CostSpentMenuComponent } from \"../costSpentSetting\";\r\nimport { CostSpentFormSettingModel } from \"../costspentformsetting.model\";\r\nimport { Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\n@Component({\r\n selector: \"ngx-costspent-list\",\r\n templateUrl: \"costspent-list.component.html\",\r\n styleUrls: [\"costspent-list.component.scss\"],\r\n})\r\nexport class CostSpentListComponent extends BaseListComponent {\r\n menu = CostSpentMenuComponent;\r\n costSpentformsetting: CostSpentFormSettingModel;\r\n unSortableFilterable: string[] = [];\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n formVisible: boolean = true;\r\n hasPermission: boolean = false;\r\n filters: GridFilter[] = [\r\n {\r\n Filed: \"Code\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"asc\",\r\n Type: \"S\",\r\n },\r\n ];\r\n constructor(public tabsservice: TabularService) {\r\n super();\r\n if (this.accountService.authService.currentInformation().BranchingLightEnabled) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Cost.SpentCost.AccessToFeesMenuForLicenseLite\"),\r\n this.translate(\"ClientApp.FrontOffice.Cost.SpentCost.Error\")\r\n );\r\n this.hasPermission = false;\r\n const costGroupTab = this.tabsservice.tabItemSubject?.value?.findIndex((x) => x.title == \"ClientApp.Pages.PageMenu.CostGroup\");\r\n this.tabsservice.close(costGroupTab);\r\n } else this.hasPermission = true;\r\n this.inputEditorform = CostSpentFormComponent;\r\n this.FillData();\r\n if (!this.accountService.userHasPermission(`General:CostSpentFormSetting`, Permission.viewPermission)) {\r\n this.sts.showToast(\"danger\", \"\", this.translate(\"ClientApp.FrontOffice.Cost.SpentCost.YouDoNotHaveAccessToThisArea\"));\r\n this.formVisible = false;\r\n }\r\n }\r\n ngOnInit() {\r\n this.apiName = \"CostSpent\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Cost.SpentCost.Cost\");\r\n this.filters.push({\r\n Filed: \"Code\",\r\n Value: null,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"asc\",\r\n Type: \"S\",\r\n });\r\n const columnsToExclude = [\"SettlementCode\"];\r\n\r\n this.unSortableFilterable.push(...columnsToExclude);\r\n }\r\n async FillData() {\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n if (currentBranch.BranchingLightEnabled || currentBranch.BranchingAdvancedEnabled || currentBranch.RestaurantCallCenter) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/CostSpent\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n const branch = this.accountService.authService.currentBranch;\r\n if (branch.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Cost.SpentCost.HasBranchCommunication\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Cost.SpentCost.HasCallCenterCommunication\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","\r\n \r\n \r\n\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n\r\nexport class CostSpentFormSettingModel extends EntityBase \r\n{\r\n public Subledger : number;\r\n public DetailLedger : number;\r\n constructor(){\r\n super();\r\n this.Subledger = 0;\r\n this.DetailLedger = 0;\r\n }\r\n}","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormSettingModel } from \"projects/sepidz-web-framework/src/lib/models/formsettingmodel\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { CostSpentFormSettingModel } from \"../costspentformsetting.model\";\r\nimport { Observable } from \"rxjs\";\r\n@Component({\r\n selector: \"ngx-costspentsetting-form\",\r\n templateUrl: \"./costspentsetting-form.component.html\",\r\n styleUrls: [\"./costspentsetting-form.component.scss\"],\r\n})\r\nexport class CostspentsettingFormComponent extends BaseFormComponent {\r\n costSpentformsetting: CostSpentFormSettingModel;\r\n _svgFillCodes: any;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, public storage: LocalStoreManager) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"CostSpentFormSetting\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Cost.SpentCost.Settings\");\r\n this.customColumnInfoApi = \"CostSpentFormSetting/GetFormColumnInfo\";\r\n this.changeNoCheck = true;\r\n\r\n super.ngOnInit();\r\n this.FillData();\r\n }\r\n FillData() {\r\n this.httpCommonService\r\n .getList(\"CostSpentFormSetting\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((result: any[]) => {\r\n if (result?.length > 0) {\r\n this.costSpentformsetting = result[0];\r\n this.storage.savePermanentData(result[0], ClearableCache.FormSetting);\r\n }\r\n });\r\n this.addControl();\r\n this._svgFillCodes = { 1: \"#e0dede\", 2: \"#5161d0\" };\r\n }\r\n refreshSetting() {\r\n this.httpCommonService\r\n .getList(\"CostSpentFormSetting\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((result: any[]) => {\r\n if (result?.length > 0) {\r\n this.storage.savePermanentData(result[0], ClearableCache.FormSetting);\r\n }\r\n });\r\n }\r\n\r\n override canDeactivate(): boolean | Observable {\r\n this.closeForm(true);\r\n return true;\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { ChangeDetectorRef, Component, Input, OnInit } from \"@angular/core\";\r\nimport { FormControl, FormGroup } from \"@angular/forms\";\r\nimport * as moment from \"moment\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherDetail } from \"src/app/backoffice/acc/models/accvoucherdetail.model\";\r\nexport interface EnumStatusModel {\r\n Title: string;\r\n}\r\nexport enum StatusEnum {\r\n \"ارسال موفق\" = 1,\r\n \"در حال انتظار\" = 2,\r\n \"منقضی شده\" = 3,\r\n \"خطا در ارسال\" = 4,\r\n \"در حال ارسال\" = 5,\r\n}\r\nexport interface ConfirmDateValue {\r\n EndDate: Date;\r\n StartDate: Date;\r\n HasInvoiceService: boolean;\r\n HasGetResponse: boolean;\r\n ResendFactors: boolean;\r\n StatusCode: number;\r\n closeDialog: Function;\r\n}\r\n\r\n@Component({\r\n selector: \"ngx-dateDialog\",\r\n templateUrl: \"./dateDialog.component.html\",\r\n styleUrls: [\"./dateDialog.component.scss\"],\r\n})\r\nexport class DateDialogComponent extends BaseFormComponent {\r\n confirmValue: Subject;\r\n DetailLedgerList: AccVoucherDetail[];\r\n gridColumns: form_control[];\r\n accVoucerherDetailcolumns: form_control[];\r\n statusDataList: EnumStatusModel[];\r\n\r\n DateValueFormGroup: FormGroup = new FormGroup({\r\n StartDate: new FormControl(null),\r\n EndDate: new FormControl(null),\r\n HasInvoiceService: new FormControl(false),\r\n HasGetResponse: new FormControl(false),\r\n ResendFactors: new FormControl(false),\r\n StatusCode: new FormControl(false),\r\n });\r\n\r\n autoCancel = true;\r\n hasAcc = false;\r\n hasDeposit = false;\r\n setDefaultDate = false;\r\n hasResponse = false;\r\n hasResendFactors = false;\r\n statusList = false;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"\";\r\n if (!this.label) this.label = \"\";\r\n this.areaName = \"\";\r\n super.ngOnInit();\r\n this.GetColumns();\r\n this.statusDataList = this.enumToEnumModelArray(StatusEnum);\r\n if (this.setDefaultDate) {\r\n const m = moment();\r\n const nowDate = m.locale(\"fa\").format(\"YYYY/MM/DD\");\r\n this.DateValueFormGroup.controls[\"StartDate\"].setValue(nowDate);\r\n this.DateValueFormGroup.controls[\"EndDate\"].setValue(nowDate);\r\n }\r\n }\r\n\r\n async setColumns(): Promise {}\r\n\r\n submitValue() {\r\n const confirmValue = this.DateValueFormGroup.value;\r\n if (confirmValue?.StartDate && confirmValue?.EndDate) {\r\n if (confirmValue?.StartDate > confirmValue?.EndDate) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.DateDialog.ValueFromDateSmallerThanValueUntilDate\"),\r\n this.translate(\"ClientApp.FrontOffice.DateDialog.DateSelection\")\r\n );\r\n this.selectorService.submitted$.next(false);\r\n this.cd.markForCheck();\r\n return;\r\n }\r\n confirmValue.StartDate.setHours(0, 0, 0, 0);\r\n confirmValue.EndDate.setHours(23, 59, 59, 999);\r\n this.confirmValue.next({ ...confirmValue, closeDialog: this.cancel.bind(this) });\r\n if (this.autoCancel) this.cancel();\r\n this.closeModal();\r\n } else {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.DateDialog.EnterDateRange\"),\r\n this.translate(\"ClientApp.FrontOffice.DateDialog.DateSelection\")\r\n );\r\n this.selectorService.submitted$.next(false);\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n public cancel(): void {\r\n this.confirmValue.next(null);\r\n super.cancel();\r\n }\r\n async GetColumns() {\r\n await this.httpCommonService\r\n .getControlsList(\"CashierSettlemet/GetColumnInfo\", true)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.gridColumns = data as form_control[];\r\n this.gridColumns = this.gridColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n enumToEnumModelArray(enumObj: any): EnumStatusModel[] {\r\n return Object.keys(enumObj)\r\n .filter((key) => !isNaN(Number(enumObj[key])))\r\n .map((key) => ({ Id: enumObj[key], Title: key }));\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\n\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"ngx-description-assignemnt\",\r\n templateUrl: \"./dynamic-input-form.component.html\",\r\n styleUrls: [\"./dynamic-input-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DescriptionAssignmentFormComponent extends BaseFormComponent {\r\n formColumns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.label = this.translate(\"ClientApp.FrontOffice.DriverAssignment.Description\");\r\n this.apiName = \"\";\r\n this.areaName = \"\";\r\n super.ngOnInit();\r\n }\r\n\r\n addControl() {\r\n this.formColumns.forEach((x) => {\r\n this.setValue(x.name, null);\r\n });\r\n this.cd.markForCheck();\r\n }\r\n submitValue() {\r\n const inputValue = this.formGroup.value;\r\n this.result = inputValue?.UnAssignmentDesceription;\r\n this.close();\r\n }\r\n public cancel(): void {\r\n super.cancel();\r\n }\r\n async setColumns() {\r\n try {\r\n if (this.formColumns) {\r\n this.formColumns.forEach((x) => {\r\n x.tabOrder = 0;\r\n });\r\n if (this.detailName) {\r\n this.orignalColumns = this.formColumns.find((f) => f.name === this.detailName).DetailControlModels[this.detailName];\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnAttribute();\r\n this.setColumnNumber(this.columns);\r\n this.setFormGroup(this.model[this.detailName]);\r\n } else {\r\n this.orignalColumns = this.formColumns;\r\n this.columns = this.formColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnAttribute();\r\n this.setColumnNumber(this.columns);\r\n this.setFormGroup(this.model);\r\n }\r\n this.cd.markForCheck();\r\n }\r\n } catch (error) {\r\n this.getFailedHelper(error);\r\n }\r\n }\r\n}\r\n","\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { ExternalNotificationStateKindEnum } from \"./external-notification.model\";\r\n\r\n@Pipe({\r\n name: \"driverNotification\",\r\n})\r\nexport class DriverNotificationPipe implements PipeTransform {\r\n transform(value: any, args?: any): any {\r\n const res = value.filter((f) => f.NotificationState !== ExternalNotificationStateKindEnum.Seen).length;\r\n return res;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormSettingModel } from \"projects/sepidz-web-framework/src/lib/models/formsettingmodel\";\r\nimport { Observable } from \"rxjs\";\r\n@Component({\r\n selector: \"ngx-driverassignementsetting\",\r\n templateUrl: \"./driverassignementsetting-form.component.html\",\r\n styleUrls: [\"./driverassignementsetting-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DriverAssignementFormSettingFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"DriverAssignementFormSetting\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.DriverAssignment.Settings\");\r\n this.customColumnInfoApi = \"DriverAssignementFormSetting/GetFormColumnInfo\";\r\n this.changeNoCheck = true;\r\n\r\n super.ngOnInit();\r\n }\r\n\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n\r\n override canDeactivate(): boolean | Observable {\r\n this.closeForm(true);\r\n return true;\r\n }\r\n}\r\n","\r\n\r\n","import { ChangeDetectorRef, Component, ElementRef, ViewChild } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"../../../../projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { DriverAssignmentRead } from \"../order/model/invoice.model\";\r\nimport { DriverAssignementService } from \"./driverassignment.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { SimpleMenuComponent } from \"./settingment\";\r\nimport { ContextMenuEnum } from \"../order/model/contextMenuenum\";\r\nimport { ContextMenuService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { SaleMethodBranchModel, SaleMethodNature } from \"../sales/model/sale-method-branch.model\";\r\nimport { FormGroup, FormControl } from \"@angular/forms\";\r\nimport { ExternalNotification, ExternalNotificationStateKindEnum } from \"./external-notification.model\";\r\nimport { NotificationService } from \"projects/sepidz-web-framework/src/lib/services/notification.service\";\r\n\r\n@Component({\r\n selector: \"order-driverassignment\",\r\n templateUrl: \"./driverassignment.component.html\",\r\n styleUrls: [\"./driverassignment.component.scss\"],\r\n providers: [DriverAssignementService],\r\n})\r\nexport class DriverAssignmentComponent extends BaseFormComponent {\r\n menu = SimpleMenuComponent;\r\n public contextmenuEnum: typeof ContextMenuEnum = ContextMenuEnum;\r\n public ExternalNotificationStateKindEnum: typeof ExternalNotificationStateKindEnum = ExternalNotificationStateKindEnum;\r\n safirToken: string | null = null;\r\n notificationIndex: number;\r\n mapForm: FormGroup = new FormGroup({\r\n Token: new FormControl(null),\r\n BranchDes: new FormControl(null),\r\n BranchLng: new FormControl(null),\r\n BranchLat: new FormControl(null),\r\n BranchCode: new FormControl(null),\r\n SystemCode: new FormControl(null),\r\n });\r\n\r\n @ViewChild(\"scrollTarget\") private scrollTarget: ElementRef;\r\n\r\n constructor(\r\n public driverservice: DriverAssignementService,\r\n public contextMenuService: ContextMenuService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n __id: FormContainerModel,\r\n private el: ElementRef\r\n ) {\r\n super(selectorService, cd);\r\n this.apiName = \"Invoice\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.DriverAssignment.Payment\");\r\n this.driverservice._id = __id.metadata.id;\r\n this.driverservice.inputSearch = \"searchInput\" + __id.metadata.id;\r\n this.driverservice.inputBarCode = \"barcodeInput\" + __id.metadata.id;\r\n this.driverservice.setFormGroupValue();\r\n }\r\n\r\n async ngOnInit() {\r\n await super.ngOnInit();\r\n const authService = this.accountService.authService;\r\n const SystemCode = authService.currentInformation().LockNumber;\r\n const currentBranch = authService.currentBranch;\r\n this.safirToken = authService.currentInformation().SafirToken;\r\n if (this.safirToken) this.driverservice.getExternalNotification();\r\n this.mapForm.patchValue({\r\n Token: this.safirToken,\r\n BranchDes: \"\",\r\n BranchLng: currentBranch.Longitude ?? 0,\r\n BranchLat: currentBranch.Latitude ?? 0,\r\n BranchCode: currentBranch.Id,\r\n SystemCode: SystemCode,\r\n });\r\n\r\n this.httpCommonService\r\n .getList(\"Invoice/GetSaleMethodBranchMenu\")\r\n .pipe(take(1))\r\n .subscribe((data: SaleMethodBranchModel[]) => {\r\n this.driverservice.deliverySaleMethodData = data.filter((x) => x.SaleMethodNatureCode === SaleMethodNature.Delivery);\r\n this.driverservice.focus();\r\n });\r\n }\r\n\r\n onMapClick() {\r\n this.driverservice.showFleetMap = true;\r\n setTimeout(() => {\r\n const submitEl = this.el.nativeElement.querySelector(\".submit\");\r\n if (submitEl) submitEl.click();\r\n }, 50);\r\n }\r\n\r\n onNotificationClick() {\r\n this.driverservice.showFleetMap = false;\r\n this.driverservice.showNotification = true;\r\n this.selectNotification(this.driverservice.notificationList[0]);\r\n }\r\n\r\n selectNotification(notification: any) {\r\n this.notificationIndex = this.driverservice.notificationList.findIndex((x) => x.PersonnelId === notification.PersonnelId);\r\n this.driverservice.seenNotification(notification);\r\n setTimeout(() => {\r\n this.scrollTarget.nativeElement.scrollIntoView();\r\n }, 10);\r\n }\r\n\r\n notificationTrackBy(index: number, notification: ExternalNotification): number {\r\n return notification.Id;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.UnsentInvoices\" | translate }}\r\n
\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.SentInvoices\" | translate }}\r\n
\r\n \r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.FleetMap\" | translate }}\r\n
\r\n
\r\n {{ this.driverservice.newNotificationCount }}\r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.Notification\" | translate }}\r\n
\r\n
\r\n \r\n
\r\n 1\"\r\n name=\"SaleMethodBranchIds\"\r\n [group]=\"driverservice.formGroup\"\r\n class=\"SaleMethod\"\r\n [label]=\"'ClientApp.FrontOffice.DriverAssignment.SaleMethods' | translate\"\r\n textFieldName=\"SaleMethodTitle\"\r\n [dataList]=\"driverservice.deliverySaleMethodData\"\r\n valueFieldName=\"Id\"\r\n [multiple]=\"true\"\r\n (valueChange)=\"driverservice.saleMethodBranchChanges($event)\">\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n 0 }\"\r\n (click)=\"driverservice.selectedInvoice(item); driverservice.invoiceFilterByStatus()\">\r\n
\r\n
\r\n
\r\n {{ item.title }}\r\n {{ item.count }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n 0\"\r\n (click)=\"driverservice.selectedInvoice(invoice)\">\r\n
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.Factor\" | translate }} {{ invoice.NumberingInDate }} \r\n - {{ invoice.PayableTotal | number }} {{ \"ClientApp.FrontOffice.DriverAssignment.UnitPrice\" | translate }}\r\n
\r\n
\r\n \r\n {{ invoice.CustomerDisplayName }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ invoice.FactorStringTime }} {{ \"ClientApp.FrontOffice.DriverAssignment.FactorTimePast\" | translate }}\r\n \r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.DriverAssignment.SentTime\" | translate }}{{ invoice.DriverAssingDate }}\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.DriverAssignment.TimeBack\" | translate }} {{ invoice.ShamsiDriverReturnDate }}\r\n
\r\n
\r\n \r\n {{ invoice.IsPickUp ? (\"ClientApp.FrontOffice.DriverAssignment.InPersonDelivery\" | translate) : invoice.Address }}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.CancelAssignment\" | translate }} {{ invoice.DisplayName }}\r\n
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.Driver\" | translate }}: {{ invoice.DisplayName }}\r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n {{ item.title }} \r\n {{ item.count }}\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {{ driver.Number }}\r\n
\r\n
\r\n 0\">\r\n {{ driver.AssignmentInvoicesTotal | number }}\r\n \r\n
\r\n 0,\r\n 'icon-package-variant': driver.DriverAssignmentInvoicesCount <= 0\r\n }\">\r\n {{ driver.DriverAssignmentInvoicesCount }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ driver.DisplayName }}\r\n
\r\n
\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.Assignment\" | translate }}\r\n
\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.Exit\" | translate }}\r\n
\r\n \r\n \r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.Return\" | translate }}\r\n
\r\n \r\n\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.Present\" | translate }} \r\n \r\n \r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.Absent\" | translate }}\r\n \r\n\r\n \r\n \r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.Active\" | translate }}\r\n \r\n \r\n \r\n \r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.Deactive\" | translate }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \"\"\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{ notification.value | driverNotification }}\r\n
{{ notification.PersonnelName ?? notification.PersonnelId }}
\r\n

{{ notification.value[notification.value?.length - 1]?.Description }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.SendTime\" | translate }}:\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n

{{ notification.Description }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.DriverAssignment.NoMessageFound\" | translate }} \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { DriverAssignmentComponent } from \"../driverassignment/driverassignment.component\";\r\nimport { LocalSettingService } from \"../local-setting/local-setting.service\";\r\nimport { InvoicePrintService } from \"../order/providers/invoiceprint.service\";\r\nimport { DriverAssignementFormSettingFormComponent } from \"./driverassignementsetting/driverassignementsetting-form.component\";\r\nimport { DriverAssignementService } from \"./driverassignment.service\";\r\nimport { SimpleMenuComponent } from \"./settingment\";\r\nimport { DriverNotificationPipe } from \"./driver-notification.pipe\";\r\nimport { DescriptionAssignmentFormComponent } from \"./DesceriptionAssignment/dynamic-input-form.component\";\r\n\r\nconst components = [DriverAssignmentComponent, DriverAssignementFormSettingFormComponent, SimpleMenuComponent, DescriptionAssignmentFormComponent];\r\n@NgModule({\r\n declarations: [...components, DriverNotificationPipe],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, ReactiveFormsModule],\r\n providers: [DriverAssignementService, InvoicePrintService, LocalSettingService],\r\n})\r\nexport class DriverAssignmentModule {\r\n constructor() {}\r\n}\r\n","import { ChangeDetectorRef, Injectable } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport * as moment from \"moment\";\r\nimport { BaseService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-service.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control, Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { MapObjectPipe } from \"projects/sepidz-web-framework/src/lib/pipes/mapobject.pipe\";\r\nimport { AccountService, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { NotificationService } from \"projects/sepidz-web-framework/src/lib/services/notification.service\";\r\nimport { debounceTime, delay, take, takeUntil, tap } from \"rxjs/operators\";\r\nimport { SplashFormService } from \"../../../../projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { TabularService } from \"../../../../projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { DialogType } from \"../../../../projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { RowState } from \"../../../../projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport {\r\n AssignInvoiceViewModel,\r\n CurrentTime,\r\n DeleteDriverAssignment,\r\n DriverAssignGetInvoiceViewModel,\r\n DriverAssignment,\r\n DriverAssignmentStatus,\r\n Invoice,\r\n InvoiceCommand,\r\n InvoiceItem,\r\n InvoiceStatus,\r\n} from \"../order/model/invoice.model\";\r\nimport { UpdateClientFactorState } from \"../order/model/update-Client-Factor-State.enum\";\r\nimport { OrderService } from \"../order/order.service\";\r\nimport { InvoicePrintService } from \"../order/providers/invoiceprint.service\";\r\nimport { CreditControlType } from \"../parties/model/customer.model\";\r\nimport { DriverAssignDeliverd } from \"../parties/model/driverassigndeliverd.model\";\r\nimport { DriverAttendanceStatus, DriverStatus, DriverStatusShow, Personnel, PersonnelState } from \"../parties/model/personnel.model\";\r\nimport { PrintPolicyPrintTimeEnum } from \"../prints/model/print-policy.model\";\r\nimport { SaleMethodNature } from \"../sales/model/sale-method-branch.model\";\r\nimport { DescriptionAssignmentFormComponent } from \"./DesceriptionAssignment/dynamic-input-form.component\";\r\nimport { DriverAssignementFormSettingModel } from \"./driverassignementformsetting.model\";\r\nimport { ExternalNotification, ExternalNotificationKindEnum, ExternalNotificationStateKindEnum } from \"./external-notification.model\";\r\n\r\n@Injectable()\r\nexport class DriverAssignementService extends BaseService {\r\n invoiceFilter: any[] = [\r\n {\r\n key: 0,\r\n title: this.translate(\"ClientApp.FrontOffice.DriverAssignment.Preparing\"),\r\n count: 0,\r\n selected: false,\r\n },\r\n {\r\n key: 1,\r\n title: this.translate(\"ClientApp.FrontOffice.DriverAssignment.DelayInPreparation\"),\r\n count: 0,\r\n selected: false,\r\n },\r\n {\r\n key: 2,\r\n title: this.translate(\"ClientApp.FrontOffice.DriverAssignment.ExcessiveDelay\"),\r\n count: 0,\r\n selected: false,\r\n },\r\n ];\r\n\r\n DriverFilter: any[] = [\r\n {\r\n key: DriverStatusShow.DriverIn,\r\n title: this.translate(\"ClientApp.FrontOffice.DriverAssignment.PresentPeyk\"),\r\n count: 0,\r\n selected: false,\r\n hasFastAccess: true,\r\n },\r\n {\r\n key: DriverStatusShow.DriverOut,\r\n title: this.translate(\"ClientApp.FrontOffice.DriverAssignment.OutOfPeyk\"),\r\n count: 0,\r\n selected: false,\r\n hasFastAccess: true,\r\n },\r\n {\r\n key: DriverStatusShow.DriverReadyToWork,\r\n title: this.translate(\"ClientApp.FrontOffice.DriverAssignment.StandbyPeyk\"),\r\n count: 0,\r\n selected: false,\r\n hasFastAccess: false,\r\n },\r\n {\r\n key: DriverStatusShow.All,\r\n title: this.translate(\"ClientApp.FrontOffice.DriverAssignment.BranchOfPeky\"),\r\n count: 0,\r\n selected: false,\r\n hasFastAccess: false,\r\n },\r\n ];\r\n deliverySaleMethodData: any[] = [];\r\n invoices: AssignInvoiceViewModel[];\r\n currentInvoices: AssignInvoiceViewModel[] = [];\r\n tempCurrentInvoices: AssignInvoiceViewModel[];\r\n invoicestatus: typeof InvoiceStatus = InvoiceStatus;\r\n isShowAssignInvoice: boolean;\r\n showFleetMap: boolean;\r\n showNotification: boolean;\r\n drivers: Personnel[];\r\n currentDrivers: Personnel[];\r\n tempDrivers: Personnel[];\r\n driverAssignmentStatus: typeof DriverAssignmentStatus = DriverAssignmentStatus;\r\n driverStatus: typeof DriverStatus = DriverStatus;\r\n personnelState: typeof PersonnelState = PersonnelState;\r\n driverStatusShow: typeof DriverStatusShow = DriverStatusShow;\r\n driverAttendanceStatus: typeof DriverAttendanceStatus = DriverAttendanceStatus;\r\n DriverAttendanceStatusLookup: Lookup[];\r\n DriverStatusLookup: Lookup[];\r\n currentDriverFilter: DriverStatusShow;\r\n _svgFillCodes: any;\r\n isFastAccess: boolean;\r\n DateNow: string;\r\n selectedDriver: Personnel;\r\n refreshWithNotification: boolean = false;\r\n timeLeft: number = 60;\r\n interval;\r\n _id: string;\r\n formsetting: DriverAssignementFormSettingModel;\r\n public searchInput: string;\r\n public formGroup: UntypedFormGroup;\r\n public inputSearch: string;\r\n public inputBarCode: string;\r\n public barcodeInput: string;\r\n public invoiceByBarCode: AssignInvoiceViewModel;\r\n public driveIdByBarCode: Personnel;\r\n public nearDriver: string[];\r\n public notificationList: { PersonnelId: number; PersonnelImage?: string; PersonnelName?: string; value: ExternalNotification[] }[] = [];\r\n public description: string;\r\n public newNotificationCount: number;\r\n\r\n private isReadAPICalled: boolean = false;\r\n accessToGetDrivers = true;\r\n\r\n currentBranchId = this.accountService.authService.currentBranch.Id;\r\n hasCourierFleet: boolean = false;\r\n\r\n constructor(\r\n public order: OrderService,\r\n public splashFormService: SplashFormService,\r\n public tabsservice: TabularService,\r\n public invoicePrint: InvoicePrintService,\r\n protected selectorService: SelectorService,\r\n protected accountService: AccountService,\r\n protected cd: ChangeDetectorRef,\r\n private lookupservice: LookupService,\r\n private notification: NotificationService\r\n ) {\r\n super();\r\n this.hasCourierFleet = accountService.authService.currentInformation().SafirCourierFleetManagement;\r\n const m = moment();\r\n this.DateNow = m.locale(\"fa\").format(\"YYYY/MM/DD\");\r\n let group: any = {};\r\n group[\"drvierAssignmentDate\"] = new UntypedFormControl(undefined, Validators.maxLength(200));\r\n group[\"searchInput\"] = new UntypedFormControl(undefined, Validators.maxLength(200));\r\n group[\"barcodeInput\"] = new UntypedFormControl(undefined, Validators.maxLength(200));\r\n group[\"SaleMethodBranchIds\"] = new UntypedFormControl(undefined);\r\n this.formGroup = new UntypedFormGroup(group);\r\n this.FillData();\r\n this.GetAllDrivers();\r\n this.init();\r\n this.startTimer();\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this.focus();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.interval) clearInterval(this.interval);\r\n\r\n super.ngOnDestroy();\r\n }\r\n\r\n setFormGroupValue() {\r\n let group: any = {};\r\n group[\"drvierAssignmentDate\"] = new UntypedFormControl(undefined, Validators.maxLength(200));\r\n group[this.inputSearch] = new UntypedFormControl(undefined, Validators.maxLength(200));\r\n group[this.inputBarCode] = new UntypedFormControl(undefined, Validators.maxLength(200));\r\n group[this.description] = new UntypedFormControl(undefined, Validators.maxLength(200));\r\n group[\"SaleMethodBranchIds\"] = new UntypedFormControl(undefined);\r\n this.formGroup = new UntypedFormGroup(group);\r\n this.formGroup.controls[\"drvierAssignmentDate\"].setValue(this.DateNow);\r\n this.formGroup.controls[this.inputSearch].setValue(this.searchInput);\r\n this.formGroup.controls[this.inputBarCode].setValue(this.barcodeInput);\r\n this.formGroup.controls[\"SaleMethodBranchIds\"].setValue(null);\r\n }\r\n public focus() {\r\n const input: HTMLInputElement = document.getElementById(this.inputBarCode) as HTMLInputElement;\r\n if (input) {\r\n input.focus();\r\n input.select();\r\n }\r\n }\r\n\r\n private init(): void {\r\n this.notification.init();\r\n this.notification.notification$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((value) => {\r\n if ((value.Key === \"InvoiceChanges\" && value.Message === SaleMethodNature.Delivery) || value.Key === \"SettlementChanges\") {\r\n this.refreshWithNotification = true;\r\n this.GetAllInvoices(this.formGroup.controls[\"drvierAssignmentDate\"].value);\r\n this.GetAllDrivers();\r\n this.cd.markForCheck();\r\n }\r\n if (value.Key === \"DriverSweep\") {\r\n if (this.accessToGetDrivers) {\r\n if (typeof value.Message === \"number\") this.getDriverById(value.Message);\r\n this.cd.markForCheck();\r\n }\r\n }\r\n if (value.Key === \"UpdateSafirToken\") {\r\n const info = this.accountService.authService.currentInformation();\r\n info.SafirToken = value.Message;\r\n this.storage.saveSessionData(info, \"current_information\");\r\n }\r\n if (value.Key === \"NewNotification\") {\r\n this.getExternalNotification();\r\n }\r\n });\r\n }\r\n\r\n getExternalNotification() {\r\n this.httpCommonService\r\n .getList(`ExternalNotification/GetAllNotificationByKind/${ExternalNotificationKindEnum.Fleet}`)\r\n .pipe(take(1))\r\n .subscribe((result: any[]) => {\r\n this.notificationList = result;\r\n if (this.drivers !== null && this.drivers?.length) {\r\n this.notificationList.forEach((f) => {\r\n const driver = this.drivers?.find((h) => h.Id === f?.PersonnelId);\r\n f.PersonnelName = driver.UserDisplayName ?? driver.FirstName + \" \" + driver.LastName;\r\n f.PersonnelImage = driver.Image;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n const flatNotification = this.notificationList.map((m) => m.value).reduce((acc, val) => acc.concat(val), []);\r\n this.newNotificationCount = flatNotification.filter((f) => f.NotificationState !== ExternalNotificationStateKindEnum.Seen).length;\r\n });\r\n }\r\n\r\n seenNotification(notifications: { PersonnelId: number; PersonnelImage?: string; PersonnelName?: string; value: ExternalNotification[] }) {\r\n const seenNotification = notifications.value.filter((f) => f.NotificationState !== ExternalNotificationStateKindEnum.Seen);\r\n if (seenNotification.length) {\r\n this.httpCommonService\r\n .create(\r\n \"ExternalNotification/SeenNotification\",\r\n seenNotification.map((m) => m.Id)\r\n )\r\n .pipe(take(1))\r\n .subscribe((result: any) => {\r\n setTimeout(() => {\r\n this.notificationList.forEach((f) => {\r\n if (f.PersonnelId === notifications.PersonnelId) {\r\n f.value = f.value.map((notification) => {\r\n const sourceItem = result.find((source) => source.Id === notification.Id);\r\n return sourceItem ? sourceItem : notification;\r\n });\r\n }\r\n });\r\n const flatNotification = this.notificationList.map((m) => m.value).reduce((acc, val) => acc.concat(val), []);\r\n this.newNotificationCount = flatNotification.filter((f) => f.NotificationState !== ExternalNotificationStateKindEnum.Seen).length;\r\n }, 2000);\r\n });\r\n }\r\n }\r\n\r\n addControl() {\r\n this.formGroup.controls[\"drvierAssignmentDate\"].setValue(this.DateNow);\r\n this.formGroup.controls[\"searchInput\"].setValue(this.searchInput);\r\n this.formGroup.controls[\"barcodeInput\"].setValue(this.barcodeInput);\r\n this.formGroup.controls[\"SaleMethodBranchIds\"].setValue(null);\r\n }\r\n\r\n FillData() {\r\n this.getDriverStateLookupItem();\r\n this.httpCommonService\r\n .getList(\"DriverAssignementFormSetting\")\r\n .pipe(take(1))\r\n .subscribe((result: any[]) => {\r\n if (result?.length > 0) {\r\n this.formsetting = result[0];\r\n this.storage.savePermanentData(result[0], ClearableCache.FormSetting);\r\n }\r\n });\r\n this.addControl();\r\n this._svgFillCodes = { 1: \"#e0dede\", 2: \"#5161d0\" };\r\n\r\n /// پرینت لوکال\r\n this.invoicePrint.currentBranch = this.accountService.authService.currentBranch;\r\n this.invoicePrint.PreData();\r\n }\r\n\r\n //-----------------------------------------------------------------------Invoices\r\n //دریافت همه فاکتورها\r\n GetAllInvoices(date?: Date) {\r\n if (this.isReadAPICalled) return;\r\n const element = new DriverAssignGetInvoiceViewModel();\r\n element.UntilDate = date;\r\n this.isReadAPICalled = true;\r\n this.httpCommonService\r\n .create(`Invoice/ReadInvoiceForDriverAssignment`, element)\r\n .pipe(\r\n take(1),\r\n tap((data: AssignInvoiceViewModel[]) => {\r\n this.isReadAPICalled = false;\r\n if (!data && data.length <= 0) {\r\n this.sts.showToast(\r\n \"info\",\r\n this.translate(\"ClientApp.FrontOffice.DriverAssignment.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.DriverAssignment.NoPendingInvoicesFound\")\r\n );\r\n }\r\n let temp = this.invoices ? this.invoices.filter((x) => x.Selected) : undefined;\r\n if (!this.isMultiBranch) {\r\n if (this.formGroup.controls[\"SaleMethodBranchIds\"].value?.length) {\r\n data = data.filter((x) => this.formGroup.controls[\"SaleMethodBranchIds\"].value.includes(x.SaleMethodBranchId));\r\n }\r\n this.invoices = data.filter((x) => x.BranchId === this.accountService.authService.currentBranch.Id);\r\n }\r\n if (this.refreshWithNotification) {\r\n this.refreshWithNotification = false;\r\n\r\n if (temp !== undefined) {\r\n temp.forEach((x) => {\r\n if (this.invoices.some((i) => i.Id == x.Id)) this.invoices.find((i) => i.Id == x.Id).Selected = x.Selected;\r\n });\r\n }\r\n }\r\n }),\r\n delay(500)\r\n )\r\n .subscribe(\r\n (data: AssignInvoiceViewModel[]) => {\r\n this.changeInvoiceBystatus();\r\n this.cd.markForCheck();\r\n },\r\n (err) => {\r\n this.splashFormService.closeLoading();\r\n this.isReadAPICalled = false;\r\n }\r\n );\r\n }\r\n\r\n saleMethodBranchChanges(value: number) {\r\n this.GetAllInvoices(this.formGroup.controls[\"drvierAssignmentDate\"].value);\r\n }\r\n\r\n //اعمال فیلتر بر اساس حالات\r\n invoiceFilterByStatus() {\r\n const selectedList = this.invoiceFilter.filter((f) => f.selected);\r\n this.tempCurrentInvoices = JSON.parse(JSON.stringify(this.currentInvoices));\r\n if (selectedList && selectedList.length > 0) {\r\n this.currentInvoices = [];\r\n selectedList.forEach((element) => {\r\n const filterItem = this.tempCurrentInvoices.filter((f) => f.DriverAssignmentStatus === element.key);\r\n filterItem.forEach((ele) => {\r\n this.currentInvoices.push(ele);\r\n });\r\n });\r\n } else {\r\n this.changeInvoiceBystatus();\r\n }\r\n }\r\n\r\n // تغییر فاکتور ها به ارسال شده و نشده\r\n changeInvoiceBystatus(isAssign?: boolean) {\r\n this.invoiceFilter.forEach((element) => {\r\n element.count = 0;\r\n });\r\n if (isAssign !== null && isAssign !== undefined) {\r\n this.isShowAssignInvoice = isAssign;\r\n }\r\n this.currentInvoices = this.invoices.filter((f) =>\r\n this.isShowAssignInvoice ? f.StatusCode === InvoiceStatus.Assigned : f.StatusCode !== InvoiceStatus.Assigned\r\n );\r\n if (this.currentInvoices)\r\n this.currentInvoices.forEach((element) => {\r\n const find = this.invoiceFilter.find((f) => f.key === element.DriverAssignmentStatus);\r\n if (find) find.count += 1;\r\n });\r\n this.splashFormService.closeLoading();\r\n this.cd.markForCheck();\r\n }\r\n\r\n hasSelectItem(): boolean {\r\n if (this.currentInvoices && this.currentInvoices.some((s) => s.Selected)) return true;\r\n else return false;\r\n }\r\n\r\n //-----------------------------------------------------------------------Drivers\r\n //دریافت همه پیک ها\r\n GetAllDrivers() {\r\n this.httpCommonService\r\n .getList(\"Personnel/GetDriverAssignmentPersonnel\")\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: Personnel[]) => {\r\n const currentInformation = this.accountService.authService.currentInformation();\r\n if (\r\n (currentInformation.BranchingAdvancedEnabled || currentInformation.BranchingLightEnabled || currentInformation.RestaurantCallCenter) &&\r\n !this.accountService.authService.currentBranch?.AccessToAllBranches\r\n ) {\r\n data = data.filter((x) => !!x.Branches?.find((x) => x.BranchId == this.accountService.authService.currentBranchId));\r\n }\r\n this.drivers = data;\r\n this.drivers?.forEach((element) => {\r\n element.CurrentBranch = element.Branches?.find((x) => x.BranchId === this.accountService.authService.currentBranchId);\r\n });\r\n this.getDriverCounts();\r\n // فعال کردن فیلتر پیک های حاضر\r\n if (!this.currentDriverFilter) {\r\n this.currentDriverFilter = this.DriverFilter[0].key;\r\n this.DriverFilter[0].selected = true;\r\n }\r\n this.notificationList?.forEach((f) => {\r\n const driver = this.drivers?.find((h) => h.Id === f?.PersonnelId);\r\n f.PersonnelName = driver.UserDisplayName ?? driver.FirstName + \" \" + driver.LastName;\r\n f.PersonnelImage = driver.Image;\r\n });\r\n this.driverFilterByStatus(this.currentDriverFilter);\r\n this.splashFormService.closeLoading();\r\n },\r\n (err) => this.splashFormService.closeLoading()\r\n );\r\n }\r\n\r\n /// گرفتن شناسه وضعیت های مختلف پیک\r\n getDriverStateLookupItem() {\r\n this.lookupservice\r\n .getLookupbyCategory(\"SALE\", \"DriverAttendanceStatus\")\r\n .pipe(take(1))\r\n .subscribe((DriverAttendanceStatus) => {\r\n this.DriverAttendanceStatusLookup = DriverAttendanceStatus;\r\n });\r\n this.lookupservice\r\n .getLookupbyCategory(\"SALE\", \"DriverStatus\")\r\n .pipe(take(1))\r\n .subscribe((DriverStatus) => {\r\n this.DriverStatusLookup = DriverStatus;\r\n });\r\n }\r\n\r\n ///اعمال فیلتر براساس وضعیت راننده\r\n driverFilterByStatus(filter: DriverStatusShow) {\r\n this.currentDriverFilter = filter;\r\n this.selectedDriver = null;\r\n switch (filter) {\r\n case DriverStatusShow.DriverIn:\r\n this.currentDrivers = this.drivers.filter(\r\n (f) =>\r\n f.IsActive &&\r\n f.CurrentBranch.DriverAttendanceStatusCode === DriverAttendanceStatus.Present &&\r\n f.CurrentBranch.DriverStatusCode === DriverStatus.In\r\n );\r\n this.currentDrivers = this.currentDrivers.sort((a, b) => {\r\n return new Date(a.ModifiedDate) - new Date(b.ModifiedDate);\r\n });\r\n break;\r\n case DriverStatusShow.DriverOut:\r\n this.currentDrivers = this.drivers.filter(\r\n (f) =>\r\n f.IsActive &&\r\n f.CurrentBranch.DriverAttendanceStatusCode === DriverAttendanceStatus.Present &&\r\n f.CurrentBranch.DriverStatusCode === DriverStatus.Out\r\n );\r\n break;\r\n case DriverStatusShow.DriverReadyToWork:\r\n this.currentDrivers = this.drivers.filter((f) => f.IsActive);\r\n break;\r\n case DriverStatusShow.All:\r\n this.currentDrivers = this.drivers;\r\n break;\r\n }\r\n this.currentDrivers.forEach((driver) => {\r\n const personnelBranch = driver.Branches.find((x) => x.BranchId === this.currentBranchId);\r\n driver.IsFleet = !!personnelBranch?.VehicleId;\r\n });\r\n this.cd.markForCheck();\r\n }\r\n\r\n //برگشت از تحویل\r\n ReturnOfDelivery(driver: Personnel) {\r\n if (driver) {\r\n if (driver.Freeze) return;\r\n driver.FilterDate = this.formGroup.controls[\"drvierAssignmentDate\"].value.toString().replace(/['/']/g, \"-\");\r\n driver.CurrentBranch.DriverStatusId = this.DriverStatusLookup.find((f) => f.Code === DriverStatus.In).Id;\r\n driver.CurrentBranch.DriverStatusCode = this.DriverStatusLookup.find((f) => f.Code === DriverStatus.In).Code;\r\n const invoicesIds = driver.DriverAssignments.filter((x) => !x.DriverReturnDate).map((x) => x.Invoice.Id);\r\n const driverInfo = new DriverAssignDeliverd();\r\n driverInfo.InvoiceIds = invoicesIds;\r\n driverInfo.DriverId = driver.Id;\r\n this.accessToGetDrivers = false;\r\n this.driverFilterByStatus(this.currentDriverFilter);\r\n this.getDriverCounts();\r\n driver.Freeze = true;\r\n this.httpCommonService\r\n .create(\"Invoice/SetDriverAssignmentDeliveredDateTime\", driverInfo)\r\n .pipe(\r\n take(1),\r\n tap((data: Personnel) => {\r\n data.CurrentBranch = data.Branches?.find((x) => x.BranchId === this.accountService.authService.currentBranchId);\r\n const currentIndex = this.currentDrivers.findIndex((x) => x.Id === data.Id);\r\n if (currentIndex >= 0) this.currentDrivers[currentIndex] = data;\r\n data.Freeze = false;\r\n const index = this.drivers.findIndex((x) => x.Id === data.Id);\r\n if (index >= 0) this.drivers[index] = data;\r\n this.splashFormService.closeLoading();\r\n this.driverFilterByStatus(this.currentDriverFilter);\r\n this.getDriverCounts();\r\n this.cd.markForCheck();\r\n this.cd.detectChanges();\r\n this.GetAllInvoices(this.formGroup.controls[\"drvierAssignmentDate\"].value);\r\n }),\r\n delay(1000)\r\n )\r\n .subscribe(\r\n (data: Personnel) => {\r\n this.accessToGetDrivers = true;\r\n },\r\n (error) => {\r\n driver.Freeze = false;\r\n this.sts.showDialog(`${Utilities.getHttpResponseMessage(error)}`, this.translate(\"ClientApp.FrontOffice.DriverAssignment.ErrorMessage\"));\r\n }\r\n );\r\n }\r\n }\r\n\r\n //تغییر وضعیت پیک\r\n ChangeDriverStatus(driver: Personnel, state: PersonnelState) {\r\n if (driver.Freeze) return;\r\n switch (state) {\r\n case PersonnelState.Present:\r\n driver.CurrentBranch.DriverAttendanceStatusCode = this.DriverAttendanceStatusLookup.find(\r\n (f) => f.Code === DriverAttendanceStatus.Present\r\n ).Code;\r\n driver.CurrentBranch.DriverAttendanceStatusId = this.DriverAttendanceStatusLookup.find((f) => f.Code === DriverAttendanceStatus.Present).Id;\r\n driver.CurrentBranch.DriverAttendanceStatusTitle = this.DriverAttendanceStatusLookup.find(\r\n (f) => f.Code === DriverAttendanceStatus.Present\r\n ).Title;\r\n driver.CurrentBranch.DriverStatusId = this.DriverStatusLookup.find((f) => f.Code === DriverStatus.In).Id;\r\n driver.CurrentBranch.DriverStatusCode = this.DriverStatusLookup.find((f) => f.Code === DriverStatus.In).Code;\r\n break;\r\n case PersonnelState.Absent:\r\n driver.CurrentBranch.DriverAttendanceStatusCode = this.DriverAttendanceStatusLookup.find(\r\n (f) => f.Code === DriverAttendanceStatus.Absent\r\n ).Code;\r\n driver.CurrentBranch.DriverAttendanceStatusId = this.DriverAttendanceStatusLookup.find((f) => f.Code === DriverAttendanceStatus.Absent).Id;\r\n driver.CurrentBranch.DriverAttendanceStatusTitle = this.DriverAttendanceStatusLookup.find(\r\n (f) => f.Code === DriverAttendanceStatus.Absent\r\n ).Title;\r\n driver.CurrentBranch.DriverStatusId = this.DriverStatusLookup.find((f) => f.Code === DriverStatus.Out).Id;\r\n driver.CurrentBranch.DriverStatusCode = this.DriverStatusLookup.find((f) => f.Code === DriverStatus.Out).Code;\r\n break;\r\n case PersonnelState.In:\r\n driver.CurrentBranch.DriverStatusId = this.DriverStatusLookup.find((f) => f.Code === DriverStatus.In).Id;\r\n driver.CurrentBranch.DriverStatusCode = this.DriverStatusLookup.find((f) => f.Code === DriverStatus.In).Code;\r\n break;\r\n case PersonnelState.Out:\r\n driver.CurrentBranch.DriverStatusId = this.DriverStatusLookup.find((f) => f.Code === DriverStatus.Out).Id;\r\n driver.CurrentBranch.DriverStatusCode = this.DriverStatusLookup.find((f) => f.Code === DriverStatus.Out).Code;\r\n break;\r\n case PersonnelState.Active:\r\n const findItemActive = driver.Branches.find((f) => f.BranchId === this.accountService.authService.currentBranchId);\r\n findItemActive ? (findItemActive.IsActive = true) : null;\r\n findItemActive ? (findItemActive.State = RowState.Modify) : null;\r\n driver.CurrentBranch.DriverAttendanceStatusId = this.DriverAttendanceStatusLookup.find((f) => f.Code === DriverAttendanceStatus.Absent).Id;\r\n driver.CurrentBranch.DriverAttendanceStatusCode = this.DriverAttendanceStatusLookup.find(\r\n (f) => f.Code === DriverAttendanceStatus.Absent\r\n ).Code;\r\n driver.CurrentBranch.DriverAttendanceStatusTitle = this.DriverAttendanceStatusLookup.find(\r\n (f) => f.Code === DriverAttendanceStatus.Absent\r\n ).Title;\r\n break;\r\n case PersonnelState.Deactive:\r\n const findItemDeactive = driver.Branches.find((f) => f.BranchId === this.accountService.authService.currentBranchId);\r\n findItemDeactive ? (findItemDeactive.IsActive = false) : null;\r\n findItemDeactive ? (findItemDeactive.State = RowState.Modify) : null;\r\n driver.CurrentBranch.DriverStatusId = this.DriverStatusLookup.find((f) => f.Code === DriverAttendanceStatus.Absent).Id;\r\n driver.CurrentBranch.DriverStatusCode = this.DriverStatusLookup.find((f) => f.Code === DriverAttendanceStatus.Absent).Code;\r\n driver.CurrentBranch.DriverStatusTitle = this.DriverStatusLookup.find((f) => f.Code === DriverAttendanceStatus.Absent).Title;\r\n break;\r\n }\r\n const branchIndex = driver.Branches.findIndex((f) => f.BranchId === this.accountService.authService.currentBranchId);\r\n driver.CurrentBranch.State = RowState.Modify;\r\n driver.Branches[branchIndex] = driver.CurrentBranch;\r\n this.driverFilterByStatus(this.currentDriverFilter);\r\n this.getDriverCounts();\r\n this.accessToGetDrivers = false;\r\n driver.Freeze = true;\r\n this.httpCommonService\r\n .put(\"Personnel/UpdateDriver\", driver)\r\n .pipe(\r\n take(1),\r\n tap((data) => {\r\n data.CurrentBranch = data.Branches?.find((x) => x.BranchId === this.accountService.authService.currentBranchId);\r\n const currentIndex = this.currentDrivers.findIndex((x) => x.Id === data.Id);\r\n if (currentIndex >= 0) this.currentDrivers[currentIndex] = data;\r\n const index = this.drivers.findIndex((x) => x.Id === data.Id);\r\n if (index >= 0) this.drivers[index] = data;\r\n this.cd.markForCheck();\r\n this.cd.detectChanges();\r\n this.driverFilterByStatus(this.currentDriverFilter);\r\n this.getDriverCounts();\r\n data.Freeze = false;\r\n this.cd.markForCheck();\r\n this.cd.detectChanges();\r\n }),\r\n delay(1000)\r\n )\r\n .subscribe(\r\n (data) => {\r\n this.accessToGetDrivers = true;\r\n },\r\n (error) => {\r\n this.driverFilterByStatus(this.currentDriverFilter);\r\n this.getDriverCounts();\r\n this.accessToGetDrivers = true;\r\n driver.Freeze = false;\r\n this.splashFormService.closeLoading();\r\n return this.sts.showDialog(\r\n `${Utilities.getHttpResponseMessage(error)}`,\r\n this.translate(\"ClientApp.FrontOffice.DriverAssignment.ErrorMessage\")\r\n );\r\n }\r\n );\r\n }\r\n\r\n normalizeBarcodeInput(input: string): string {\r\n return input.replace(/إ/g, \"B\").replace(/ِ/g, \"D\");\r\n }\r\n\r\n // متد مربوط به وارد کردن بارکد برای انتخاب فاکتور بر اساس بارکد\r\n public async barCodeFinder(event: string) {\r\n if (!event) return;\r\n const normalizedEvent = this.normalizeBarcodeInput(event);\r\n if (normalizedEvent.startsWith(\"B0\") || normalizedEvent.startsWith(\"D0\")) {\r\n if (normalizedEvent.startsWith(\"B0\")) {\r\n const numberingInDateCode = normalizedEvent.slice(2); // حذف \"B0\"\r\n this.invoiceByBarCode = this.invoices?.find((f) => f.NumberingInDate === Number(numberingInDateCode));\r\n } else if (normalizedEvent.startsWith(\"D0\")) {\r\n const driverNumberCode = normalizedEvent.slice(2); // حذف \"D0\"\r\n this.driveIdByBarCode = this.drivers?.find((f) => f.Number === Number(driverNumberCode));\r\n }\r\n if (this.invoiceByBarCode.Selected) this.InvoiceAssigned(this.driveIdByBarCode);\r\n else this.selectedInvoice(this.invoiceByBarCode);\r\n this.formGroup.controls[this.inputBarCode].setValue(\"\");\r\n return;\r\n } else {\r\n this.invoiceByBarCode = this.invoices?.find((f) => f.NumberingInDate === Number(normalizedEvent));\r\n this.driveIdByBarCode = this.drivers?.find((f) => f.Number === Number(normalizedEvent));\r\n if (this.invoiceByBarCode?.NumberingInDate === this.driveIdByBarCode?.Number) {\r\n if (!this.invoiceByBarCode.Selected && !this.isShowAssignInvoice) this.selectedInvoice(this.invoiceByBarCode);\r\n else if (!this.isShowAssignInvoice) this.InvoiceAssigned(this.driveIdByBarCode);\r\n } else {\r\n this.selectedInvoice(this.invoiceByBarCode);\r\n if (this.driveIdByBarCode) this.InvoiceAssigned(this.driveIdByBarCode);\r\n }\r\n this.formGroup.controls[this.inputBarCode].setValue(\"\");\r\n }\r\n }\r\n\r\n //متد مربوط به انتخاب فاکتور و اضافه کردن کلاس / استایل انتخاب به فاکتور\r\n public async selectedInvoice(invoice: Invoice) {\r\n if (!this.isShowAssignInvoice) {\r\n if (invoice.Selected > 0) {\r\n invoice.Selected = null;\r\n } else {\r\n const ind = this.currentInvoices.getSumWithKey(\"Selected\");\r\n if (ind > 0) invoice.Selected = ind + 1;\r\n else invoice.Selected = 1;\r\n }\r\n }\r\n }\r\n\r\n public async selectedDrive(driver) {\r\n if (this.isShowAssignInvoice) this.SelectDriverInDontSent(driver);\r\n }\r\n\r\n //انتخاب پیک وفیلتر فاکتور های ارسال شده بر اساس پیک انتخاب شده\r\n SelectDriverInDontSent(driver: Personnel) {\r\n driver.selected = !driver.selected;\r\n this.selectedDriver = driver;\r\n if (this.currentDrivers.some((s) => s.selected) && !driver) this.currentInvoices = JSON.parse(JSON.stringify(this.invoices));\r\n else\r\n this.currentInvoices = JSON.parse(\r\n JSON.stringify(this.invoices.filter((f) => f.DriverId === driver.Id && f.StatusCode === InvoiceStatus.Assigned))\r\n );\r\n }\r\n\r\n //اختصاص به پیک\r\n async InvoiceAssigned(driver: Personnel) {\r\n const hasExit = this.storage.getData(ClearableCache.FormSetting)?.AutoExitCourier;\r\n let numberOfInvAssign = this.storage.getData(ClearableCache.FormSetting)?.numberInvSameTimeAssignToCourier;\r\n const selectedInvoices = this.currentInvoices.filter((f) => f.Selected > 0);\r\n if (numberOfInvAssign === null) numberOfInvAssign = 0;\r\n if (numberOfInvAssign !== 0 && selectedInvoices.length > numberOfInvAssign) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.DriverAssignment.NumberOfAllocatedInvoicesExceededLimit\"),\r\n this.translate(\"ClientApp.FrontOffice.DriverAssignment.ErrorMessage\")\r\n );\r\n return;\r\n }\r\n if (!this.accountService.authService.currentBranch.multiOrder && this.currentInvoices?.filter((f) => f.Selected)?.length > 1 && driver.IsFleet) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.DriverAssignment.NumberAllocatedInvoicesExceedsAmbassadorLimit\"),\r\n this.translate(\"ClientApp.FrontOffice.DriverAssignment.ErrorMessage\")\r\n );\r\n }\r\n driver.SelectedInvoicesTotal = 0;\r\n let mapper = new MapObjectPipe();\r\n this.currentInvoices?.forEach((element) => {\r\n element.DriverAssignments = new DriverAssignment();\r\n element.DriverAssignments.DriverId = driver?.Id;\r\n element.DriverAssignments.DriverDisplayName = driver?.DisplayName;\r\n element.DriverAssignments.InvoiceId = element?.Id;\r\n element.CustomerNumber = element?.CustomerNumber;\r\n element.HasLocalPrtinter = this.invoicePrint.HasLocalPrint;\r\n if (element.Selected > 0) driver.SelectedInvoicesTotal += element?.PayableTotal;\r\n const output = new Invoice();\r\n element.OriginalValue = mapper.transform(element, output);\r\n });\r\n if (driver && this.hasSelectItem()) {\r\n if (driver.HasCredit) {\r\n //اگر پیک اعتباری بود\r\n let terminate = false;\r\n await this.CreditControlType(driver).then(\r\n (onfulfilled) => {\r\n setTimeout(() => {\r\n this.order._opened = true;\r\n this.order.detectChanges();\r\n }, 5);\r\n },\r\n (onrejected) => {\r\n terminate = true;\r\n setTimeout(() => {\r\n this.order._opened = true;\r\n this.order.detectChanges();\r\n }, 5);\r\n }\r\n );\r\n if (terminate) return;\r\n }\r\n\r\n this.splashFormService.openDialog();\r\n const printInvoices: Invoice[] = [];\r\n\r\n const computerName: string = this.storage.getData(ClearableCache.ComputerName);\r\n const InvoiceList = this.currentInvoices\r\n .filter((f) => f.Selected > 0)\r\n .sort((a, b) => {\r\n return a.Selected - b.Selected;\r\n });\r\n this.httpCommonService\r\n .create(\"Invoice/SetDriverAssignment\" + (computerName ? \"?ComputerName=\" + computerName : \"\"), InvoiceList)\r\n .pipe(take(1))\r\n .subscribe(\r\n (items: InvoiceItem[]) => {\r\n this.currentInvoices.forEach((x) => {\r\n x.Items = items.filter((i) => i.InvoiceId === x.Id);\r\n });\r\n this.currentInvoices\r\n .filter((f) => f.Selected > 0)\r\n .forEach(async(inv) => {\r\n if (inv.WebId && inv.WebId !== 0) this.setClientFactorState(inv.WebId);\r\n if (this.accountService.authService.currentBranch.HasLocalService || inv.HasLocalPrtinter) {\r\n inv.HasLocalPrtinter = this.accountService.authService.currentBranch.HasLocalService;\r\n inv.DeliveryCustomerPrintTimeCode = inv.DeliveryCustomerPrintTimeCode;\r\n inv.CommandCode = InvoiceCommand.Assign;\r\n inv.CustomerAddres = inv.Address;\r\n inv.PhoneNumber = inv.PhoneNumber;\r\n inv.CustomerDisplayName = inv.CustomerDisplayName;\r\n inv.PrintPolicyPrintTime = PrintPolicyPrintTimeEnum.CustomerPrint;\r\n if (this.accountService.authService.currentBranch?.HasTotalDebit) {\r\n const invoice = new Invoice();\r\n invoice.CustomerId = inv.CustomerId;\r\n this.httpCommonService\r\n .create(`Invoice/GetCredit`, invoice)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (res) => {\r\n inv.CustomerTotalDebit = res;\r\n await this.invoicePrint.PrintLocalInvoice(inv,true).then();\r\n });\r\n } else {\r\n await this.invoicePrint.PrintLocalInvoice(inv,true).then();\r\n }\r\n }\r\n });\r\n this.currentInvoices.forEach((i) => {\r\n i.Selected = null;\r\n });\r\n\r\n if (printInvoices?.length > 0) {\r\n this.currentInvoices.forEach(async(i) => {\r\n await this.invoicePrint.PrintLocalInvoice(i,true).then();\r\n });\r\n }\r\n\r\n if (hasExit) this.ChangeDriverStatus(driver, PersonnelState.Out);\r\n else this.GetAllDrivers();\r\n\r\n this.GetAllInvoices(this.formGroup.controls[\"drvierAssignmentDate\"].value);\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(`${Utilities.getHttpResponseMessage(error)}`, this.translate(\"ClientApp.FrontOffice.DriverAssignment.ErrorMessage\"));\r\n }\r\n );\r\n }\r\n }\r\n\r\n //لغو اختصاص به پیک\r\n CancelAssignment(invoice: any) {\r\n const ctrls = this.getDescriptionControls();\r\n const mod = new DeleteDriverAssignment();\r\n mod.Id = invoice.Id;\r\n mod.BranchId = invoice.BranchId;\r\n mod.FiscalYearId = invoice.FiscalYearId;\r\n mod.DriverId = invoice?.DriverId;\r\n this.dialogService\r\n .open(DescriptionAssignmentFormComponent, { formColumns: ctrls }, {})\r\n .pipe(take(1))\r\n .subscribe((x) => {\r\n const des: string = x;\r\n mod.UnAssignmentDesceription = des;\r\n if (mod) {\r\n this.splashFormService.openDialog();\r\n this.httpCommonService\r\n .create(\"Invoice/DeleteDriverAssignment\", mod)\r\n .pipe(take(1))\r\n .subscribe(\r\n () => {\r\n this.GetAllInvoices(this.formGroup.controls[\"drvierAssignmentDate\"].value);\r\n this.GetAllDrivers();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\r\n `${Utilities.getHttpResponseMessage(error)}`,\r\n this.translate(\"ClientApp.FrontOffice.DriverAssignment.ErrorMessage\")\r\n );\r\n }\r\n );\r\n }\r\n });\r\n }\r\n\r\n private getDescriptionControls() {\r\n const ctrl = new form_control();\r\n ctrl.name = \"UnAssignmentDesceription\";\r\n ctrl.label = this.translate(\"ClientApp.FrontOffice.DriverAssignment.Description\");\r\n ctrl.formVisible = true;\r\n ctrl.userClass = \"select-md\";\r\n ctrl.columnNumber = 1;\r\n ctrl.controlType = FormControlTypes.textbox;\r\n ctrl.required = true;\r\n return [ctrl];\r\n }\r\n\r\n //دریافت فاکتور بر اساس تاریخ\r\n GetAllInvoicesByDate(event) {\r\n if (event && event.toString().includes(\"/\")) {\r\n if (!this.isFastAccess) this.GetAllInvoices(this.formGroup.controls[\"drvierAssignmentDate\"].value);\r\n else {\r\n this.GetAllInvoices(event);\r\n }\r\n }\r\n }\r\n\r\n //روش کنترل اعتبار\r\n CreditControlType(driver: Personnel): Promise {\r\n return new Promise((resolve, reject) => {\r\n switch (driver.CreditControlTypeCode) {\r\n case CreditControlType.Warning:\r\n if (driver.AssignmentInvoicesTotal + (driver.SelectedInvoicesTotal ? driver.SelectedInvoicesTotal : 0) >= driver.CreditLimit)\r\n this.sts.showDialog(\r\n `(${driver.DisplayName}) ${this.translate(\"ClientApp.FrontOffice.DriverAssignment.MaximumCreditLimitReached\")}`,\r\n this.translate(\"ClientApp.FrontOffice.DriverAssignment.CreditControlMethod\"),\r\n DialogType.confirm,\r\n (ok) => {\r\n resolve(true);\r\n },\r\n (cancel: void) => {\r\n reject(false);\r\n this.sts.showToast(\r\n \"info\",\r\n `${driver.DisplayName}`,\r\n `${this.translate(\"ClientApp.FrontOffice.DriverAssignment.NeedToSettleWithCourier\")}`,\r\n 5000\r\n );\r\n }\r\n );\r\n else resolve(true);\r\n break;\r\n case CreditControlType.Inhibit:\r\n if (driver.AssignmentInvoicesTotal + (driver.SelectedInvoicesTotal ? driver.SelectedInvoicesTotal : 0) >= driver.CreditLimit) {\r\n reject(false);\r\n this.sts.showToast(\r\n \"info\",\r\n `${driver.DisplayName}`,\r\n `${this.translate(\"ClientApp.FrontOffice.DriverAssignment.MaximumCreditLimiBeenReached\")}`,\r\n 5000\r\n );\r\n } else resolve(true);\r\n break;\r\n default:\r\n resolve(true);\r\n }\r\n });\r\n }\r\n\r\n startTimer() {\r\n this.interval = setInterval(() => {\r\n this.GetAllInvoices(this.formGroup.controls[\"drvierAssignmentDate\"].value);\r\n this.refreshTableTimeLeft();\r\n }, 100000);\r\n }\r\n\r\n refreshTableTimeLeft() {\r\n this.httpCommonService\r\n .getList(\"Invoice/RefreshInvoiceTime\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: CurrentTime) => {\r\n this.currentInvoices.forEach((item) => {\r\n //اگر در تب فاکتور های ارسال نشده بود\r\n if (!this.isShowAssignInvoice) item.FactorStringTime = item.FactorStringTime;\r\n });\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n calculateDiff(startDate, endDate): string {\r\n let date = new Date(startDate);\r\n let currentDate = new Date(endDate);\r\n let chaneDate = Math.floor(currentDate.getTime() - date.getTime());\r\n var Days = chaneDate / (1000 * 3600 * 24);\r\n var hours = Math.floor(currentDate.getHours() - date.getHours());\r\n var minutes = Math.floor(currentDate.getMinutes() - date.getMinutes());\r\n if (Days < 1) Days = 0;\r\n if (hours < 1) hours = 0;\r\n if (minutes < 1) minutes = 0;\r\n return `${Days}.${hours}:${Math.round(minutes)}`;\r\n }\r\n\r\n /// ارسال کد تغییر وضعیت فاکتور\r\n setClientFactorState(DelinoId: number) {\r\n this.httpCommonService\r\n .get(`Delino/SetClientFactorState/${DelinoId}/${UpdateClientFactorState.SentToCustomer}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data) => {},\r\n (error) => console.log(error)\r\n );\r\n }\r\n\r\n refreshSetting() {\r\n this.httpCommonService\r\n .getList(\"DriverAssignementFormSetting\")\r\n .pipe(take(1))\r\n .subscribe((result: any[]) => {\r\n if (result?.length > 0) this.storage.savePermanentData(result[0], ClearableCache.FormSetting);\r\n });\r\n }\r\n\r\n getDriverById(personnelId: number) {\r\n this.httpCommonService\r\n .getList(\"Personnel/getDriverById?id=\" + personnelId)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: Personnel) => {\r\n const index = this.drivers.findIndex((x) => x.Id === data.Id);\r\n data.CurrentBranch = data.Branches?.find((x) => x.BranchId === this.accountService.authService.currentBranchId);\r\n this.drivers[index] = data;\r\n if (!this.currentDriverFilter) {\r\n this.currentDriverFilter = this.DriverFilter[0].key;\r\n this.DriverFilter[0].selected = true;\r\n }\r\n this.notificationList?.forEach((f) => {\r\n const driver = this.drivers?.find((h) => h.Id === f?.PersonnelId);\r\n f.PersonnelName = driver.UserDisplayName ?? driver.FirstName + \" \" + driver.LastName;\r\n f.PersonnelImage = driver.Image;\r\n });\r\n this.driverFilterByStatus(this.currentDriverFilter);\r\n this.getDriverCounts();\r\n },\r\n (err) => {\r\n this.driverFilterByStatus(this.currentDriverFilter);\r\n this.getDriverCounts();\r\n }\r\n );\r\n }\r\n\r\n private getDriverCounts(): void {\r\n this.DriverFilter[0].count = this.drivers.filter(\r\n (f) =>\r\n f.IsActive &&\r\n f.CurrentBranch.DriverAttendanceStatusCode === DriverAttendanceStatus.Present &&\r\n f.CurrentBranch.DriverStatusCode === DriverStatus.In\r\n ).length;\r\n this.DriverFilter[1].count = this.drivers.filter(\r\n (f) =>\r\n f.IsActive &&\r\n f.CurrentBranch.DriverAttendanceStatusCode === DriverAttendanceStatus.Present &&\r\n f.CurrentBranch.DriverStatusCode === DriverStatus.Out\r\n ).length;\r\n this.DriverFilter[2].count = this.drivers.filter((f) => f.IsActive).length;\r\n this.DriverFilter[3].count = this.drivers.length;\r\n }\r\n}\r\n","import { User } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n\r\nexport class ExternalNotification extends EntityBase {\r\n public Kind: number;\r\n\r\n public KindTitle: string;\r\n\r\n public ReferenceId?: number;\r\n\r\n public Title: string;\r\n\r\n public Description: string;\r\n\r\n public ImportanceLevel: number;\r\n\r\n public NotificationState: number;\r\n\r\n public NotificationStateTitle: string;\r\n\r\n public SeenTime?: Date;\r\n\r\n public SeenByUserId?: number;\r\n\r\n public SeenByUser?: User;\r\n}\r\n\r\nexport enum ExternalNotificationKindEnum {\r\n Sepidz = 1,\r\n Fleet = 2,\r\n Delino = 3,\r\n}\r\n\r\nexport enum ExternalNotificationStateKindEnum {\r\n Seen = 1,\r\n\r\n DontSeen = 2,\r\n}\r\n","// my-menu.component.ts\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Output } from \"@angular/core\";\r\nimport { MenuPackage } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu-injector\";\r\nimport { ContextMenuService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu.service\";\r\nimport { MenuComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/menu.component\";\r\nimport { DriverAssignementFormSettingFormComponent } from \"./driverassignementsetting/driverassignementsetting-form.component\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { AccountService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"simple-menu\",\r\n // add your menu html\r\n template: `\r\n \r\n {{ \"ClientApp.FrontOffice.DriverAssignment.Settings\" | translate }}\r\n \r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SimpleMenuComponent extends MenuComponent {\r\n // this module does not have animations, set lazy false\r\n lazy = false;\r\n @Output() hasActiveItem = new EventEmitter();\r\n constructor(\r\n public menuPackage: MenuPackage,\r\n public contextMenuService: ContextMenuService,\r\n public dialogService: SimpleModalService,\r\n public accountService: AccountService,\r\n public common: CommonService,\r\n protected sts: ShowToastrService,\r\n private translate: TranslateService\r\n ) {\r\n super(menuPackage, contextMenuService);\r\n // grab any required menu context passed via menuContext input\r\n }\r\n\r\n async handleClick(value: any) {\r\n this.contextMenuService.closeAll();\r\n if (!value && !this.accountService.userHasPermission(`General:DriverAssignementFormSetting`, Permission.createPermission)) {\r\n this.sts.showToast(\"danger\", \"\", this.translate.instant(\"ClientApp.FrontOffice.DriverAssignment.NotAccessThisArea\"));\r\n return;\r\n }\r\n if (value && !this.accountService.userHasPermission(`General:DriverAssignementFormSetting`, Permission.editPermission)) {\r\n this.sts.showToast(\"danger\", \"\", this.translate.instant(\"ClientApp.FrontOffice.DriverAssignment.NotAccessThisArea\"));\r\n return;\r\n }\r\n this.contextMenuService.closeAll();\r\n\r\n await this.common.getFormSetting(\"DriverAssignementFormSetting\").then(\r\n (onfulfilled) => {\r\n value = this.common.storage.getData(ClearableCache.FormSetting);\r\n this.dialogService\r\n .open(\r\n DriverAssignementFormSettingFormComponent,\r\n { currentrow: value },\r\n { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false }\r\n )\r\n .subscribe((model: any) => {\r\n this.common.getFormSetting(\"DriverAssignementFormSetting\");\r\n });\r\n },\r\n (onrejected) => {}\r\n );\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Observable } from \"rxjs\";\r\nimport { AccountingDocumentSetting } from \"../accounting-document-setting.model\";\r\n\r\n@Component({\r\n selector: \"ngx-accounting-document-form-setting\",\r\n templateUrl: \"./accounting-document-form-setting.component.html\",\r\n styleUrls: [\"./accounting-document-form-setting.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccountingDocumentFormSettingComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"AccountingDocumentSetting\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Financial.AccountingDocument.Settings\");\r\n this.customColumnInfoApi = \"AccountingDocumentSetting/GetFormColumnInfo\";\r\n super.ngOnInit();\r\n }\r\n\r\n addControl() {\r\n this.setValue(\"TrsVoucherKindId\", this.model.TrsVoucherKindId);\r\n this.cd.markForCheck();\r\n }\r\n\r\n override canDeactivate(): boolean | Observable {\r\n this.closeForm(true);\r\n return true;\r\n }\r\n}\r\n","\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Branch, Lookup, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { AccVoucherDetail } from \"src/app/backoffice/acc/models/accvoucherdetail.model\";\r\nimport * as moment from \"moment\";\r\nimport { LocalStoreManager, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { AccVoucherHeader } from \"src/app/backoffice/acc/models/accvoucherheader.model\";\r\nimport { TrsVoucherHeader } from \"src/app/backoffice/trs/models/trs-voucher-header.model\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { AccountingDocumentSettingMenuComponent } from \"../accounting-document-setting-menu.component\";\r\nimport { ContextMenuEnum } from \"src/app/frontoffice/order/model/contextMenuenum\";\r\nimport { Subject } from \"rxjs\";\r\nimport { TrsVoucherDetail } from \"src/app/backoffice/trs/models/trs-voucher-detail.model\";\r\nimport { AccountingDocumentSetting } from \"../accounting-document-setting.model\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\n\r\nexport class ConfirmDateValue {\r\n EndDate: Date;\r\n StartDate: Date;\r\n closeDialog: Function;\r\n FiscalYearId: number;\r\n BranchId: number;\r\n ErrorMessage: string;\r\n Voucher: AccVoucherHeader[] = [];\r\n TrsVoucher: TrsVoucherHeader[] = [];\r\n FilterDateList: Lookup[] = [];\r\n}\r\n\r\n@Component({\r\n selector: \"ngx-accounting-document-form.component\",\r\n templateUrl: \"./accounting-document-form.component.html\",\r\n styleUrls: [\"./accounting-document-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccountingDocumentFormComponent extends BaseFormComponent {\r\n swipeGrid() {\r\n this.showAccountingDocument = !this.showAccountingDocument;\r\n this.formMenuContextVisible = !this.formMenuContextVisible;\r\n }\r\n DetailLedgerList: AccVoucherDetail[];\r\n TrsDetailLedgerList: TrsVoucherDetail[];\r\n accVoucherHeaderList: AccVoucherHeader[];\r\n trsVoucherHeaderList: TrsVoucherHeader[];\r\n sumDebit: any;\r\n sumCredit: any;\r\n gridColumns: form_control[];\r\n gridColumnsAccounting: form_control[];\r\n gridColumnsTrsVoucher: form_control[];\r\n BranchLookUp: Branch[] = [];\r\n showAccountingDocument: boolean = true;\r\n showReceiptPayment: boolean = false;\r\n accVoucerherDetailcolumns: form_control[];\r\n DateNow: string;\r\n remaining: number;\r\n autoCancel = true;\r\n SoftWareLicenseKind = SoftWareLicenseKind;\r\n public contextmenuEnum: typeof ContextMenuEnum = ContextMenuEnum;\r\n settingChanges$ = new Subject();\r\n formMenuContextVisible = false;\r\n menu = AccountingDocumentSettingMenuComponent;\r\n accountingDocumentSetting: AccountingDocumentSetting;\r\n unSortableFilterable: string[] = [];\r\n currentInformation = this.accountService.authService.currentInformation();\r\n constructor(\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n public storage: LocalStoreManager,\r\n private splashFormService: SplashFormService,\r\n _id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n public dialog: SimpleModalService\r\n ) {\r\n super(selectorService, cd);\r\n this._id = _id;\r\n const m = moment();\r\n this.DateNow = m.locale(\"fa\").format(\"YYYY/MM/DD\");\r\n this.tabsservice = _tabsservice;\r\n }\r\n\r\n async ngOnInit() {\r\n if (!this.label) this.label = \"\";\r\n this.apiName = \"AccVoucherHeader\";\r\n this.areaName = \"\";\r\n super.ngOnInit();\r\n this.GetAccColumns();\r\n this.GetTrsColumns();\r\n this.fillData();\r\n this.cd.markForCheck();\r\n this.showAccountingDocument = true;\r\n const columnsToExclude = [\r\n \"RowNumber\",\r\n \"SubLedgerTitle\",\r\n \"SubLedgerCode\",\r\n \"DetailLedgerTitle\",\r\n \"DetailLedger2Title\",\r\n \"DetailLedger3Title\",\r\n \"DetailLedger4Title\",\r\n \"DetailLedger5Title\",\r\n \"DetailLedger6Title\",\r\n \"DetailLedger7Title\",\r\n \"DetailLedgerId\",\r\n \"SubLedgerId\",\r\n \"Debit\",\r\n \"Credit\",\r\n \"Comment\",\r\n \"TrackNo\",\r\n \"TrackDate\",\r\n \"TreasuryDetailLedgerCode\",\r\n \"TreasuryDetailLedgerTitle\",\r\n \"ConcernTitle\",\r\n \"Price\",\r\n ];\r\n\r\n this.unSortableFilterable.push(...columnsToExclude);\r\n }\r\n AfterViewInit() {\r\n this.cd.detectChanges();\r\n }\r\n async setColumns() {}\r\n getSetting() {\r\n this.httpCommonService\r\n .getList(\"AccountingDocumentSetting\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((result: any[]) => {\r\n if (result?.length > 0) {\r\n this.accountingDocumentSetting = result[0];\r\n this.storage.savePermanentData(result[0], \"AccountingDocumentSetting\");\r\n }\r\n });\r\n }\r\n\r\n async fillData(): Promise {\r\n const data = await (>this.httpCommonService.getList(\"Branch\").pipe(take(1)).toPromise());\r\n this.setValue(\"StartDate\", this.DateNow);\r\n this.setValue(\"EndDate\", this.DateNow);\r\n this.setValue(\"BranchId\", null);\r\n this.setValue(\"FilterDateList\", null);\r\n const currentBranchId = this.accountService.authService.currentBranch?.Id;\r\n this.BranchLookUp = data.filter((x) => x.Id !== currentBranchId && x.IsActive);\r\n if (this.BranchLookUp != null || this.BranchLookUp.length == 0) {\r\n this.setValue(\"BranchId\", this.BranchLookUp[0].Id);\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n GetAccColumns() {\r\n this.httpCommonService\r\n .getControlsList(\"CashierSettlemet/GetColumnInfo\", true)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.gridColumnsAccounting = data as form_control[];\r\n const visibleListCols = [\"SubLedgerTitle\", \"SubLedgerCode\", \"DetailLedgerTitle\", \"DetailLedger2Title\", \"DetailLedger3Title\"];\r\n const nonVisibleListCols = [\r\n \"DetailLedgerId\",\r\n \"SubLedgerId\",\r\n \"DetailLedger4Title\",\r\n \"DetailLedger5Title\",\r\n \"DetailLedger6Title\",\r\n \"DetailLedger7Title\",\r\n \"TrackNo\",\r\n \"TrackDate\",\r\n \"ModifiedUserName\",\r\n \"ShamsiModifiedDate\",\r\n \"CreatedUserName\",\r\n \"ShamsiCreatedDate\",\r\n ];\r\n this.gridColumnsAccounting.forEach((x) => {\r\n x.formVisible = false;\r\n if (x.name.match(/^DetailLedger.Title$/g)) x.listVisible = true;\r\n if (visibleListCols.includes(x.name)) x.listVisible = true;\r\n if (nonVisibleListCols.includes(x.name)) x.listVisible = false;\r\n if (x.name.match(/^DetailLedger.Id$/g)) x.listVisible = false;\r\n if (x.name === \"Debit\") x.order = 2;\r\n if (x.name === \"Credit\") x.order = 2;\r\n if (x.name === \"Comment\") x.columnWidth = 400;\r\n });\r\n this.gridColumnsAccounting = this.gridColumnsAccounting.sort((a, b) => a.order - b.order);\r\n }\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n let errorMessage = Utilities.getHttpResponseMessage(error);\r\n if (errorMessage) {\r\n this.sts.showDialog(`${errorMessage}`, this.translate(\"ClientApp.FrontOffice.Financial.AccountingDocument.ErrorMessage\"));\r\n }\r\n }\r\n );\r\n }\r\n\r\n GetTrsColumns() {\r\n this.httpCommonService\r\n .getControlsList(\"CashierSettlemet/GetTrsVoucherDetailColumnInfo\", true)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.getSetting();\r\n this.settingChanges$.pipe(take(1)).subscribe((x) => {\r\n this.getSetting();\r\n });\r\n\r\n const visibleCols = [, \"ConcernTitle\", \"TreasuryDetailLedgerCode\", \"TreasuryDetailLedgerTitle\"];\r\n\r\n const nonVisibleCols = [\r\n \"TreasuryDetailLedgerId\",\r\n \"SubLedgerId\",\r\n \"ReferenceId\",\r\n \"DetailLedgerId\",\r\n \"DetailLedgerTitle\",\r\n \"SubLedgerTitle\",\r\n \"SubLedgerCode\",\r\n ];\r\n\r\n const cols = data as form_control[];\r\n\r\n cols.forEach((x) => {\r\n x.formVisible = false;\r\n if (visibleCols.includes(x.name)) x.listVisible = true;\r\n if (nonVisibleCols.includes(x.name)) x.listVisible = false;\r\n });\r\n this.gridColumnsTrsVoucher = cols.sort((a, b) => a.order - b.order);\r\n }\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n let errorMessage = Utilities.getHttpResponseMessage(error);\r\n if (errorMessage) {\r\n this.sts.showDialog(`${errorMessage}`, this.translate(\"ClientApp.FrontOffice.Financial.AccountingDocument.ErrorMessage\"));\r\n }\r\n }\r\n );\r\n }\r\n\r\n GetList() {\r\n this.DetailLedgerList = [];\r\n this.TrsDetailLedgerList = [];\r\n this.accVoucherHeaderList = [];\r\n this.setValue(\"FilterDateList\", null);\r\n let confirmDateValue = new ConfirmDateValue();\r\n confirmDateValue.StartDate = this.formGroup.controls[\"StartDate\"].value;\r\n confirmDateValue.EndDate = this.formGroup.controls[\"EndDate\"].value;\r\n confirmDateValue.BranchId = this.formGroup.controls[\"BranchId\"].value;\r\n confirmDateValue.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Financial.AccountingDocument.GettingInformation\"));\r\n this.httpCommonService\r\n .create(\"CashierSettlemet/CreateAccountingVoucher\", confirmDateValue)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: ConfirmDateValue) => {\r\n if (data.ErrorMessage) {\r\n this.sts.showDialog(data.ErrorMessage, \"خطا\");\r\n this.splashFormService.closeLoading();\r\n }\r\n if (data && data?.Voucher && data?.Voucher?.length > 0) {\r\n this.DetailLedgerList = data.Voucher[0].AccVoucherDetails;\r\n if (data?.FilterDateList?.length > 0) this.setValue(\"FilterDateList\", data.FilterDateList[0].Id);\r\n this.accVoucherHeaderList = data.Voucher;\r\n this.trsVoucherHeaderList = data.TrsVoucher;\r\n this.TrsDetailLedgerList = data.TrsVoucher[0].TrsVoucherDetails;\r\n this.model.FilterDateList = data.FilterDateList;\r\n this.calcRemain();\r\n this.splashFormService.closeLoading();\r\n this.cd.markForCheck();\r\n }\r\n this.splashFormService.closeLoading();\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n let errorMessage = Utilities.getHttpResponseMessage(error);\r\n if (errorMessage) this.sts.showDialog(`${errorMessage}`, this.translate(\"ClientApp.FrontOffice.Financial.AccountingDocument.ErrorMessage\"));\r\n this.splashFormService.closeLoading();\r\n }\r\n );\r\n this.splashFormService.closeLoading();\r\n }\r\n\r\n async save() {\r\n let confirmDateValue = new ConfirmDateValue();\r\n confirmDateValue.StartDate = this.formGroup.controls[\"StartDate\"].value;\r\n confirmDateValue.EndDate = this.formGroup.controls[\"EndDate\"].value;\r\n confirmDateValue.BranchId = this.formGroup.controls[\"BranchId\"].value;\r\n confirmDateValue.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n confirmDateValue.Voucher = this.accVoucherHeaderList;\r\n confirmDateValue.TrsVoucher = this.trsVoucherHeaderList;\r\n this.httpCommonService\r\n .create(\"CashierSettlemet/SaveAccVoucher\", confirmDateValue)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data) => {\r\n this.closeForm(true);\r\n this.isClosing = false;\r\n this.submitted = true;\r\n this.sts.showToast(\r\n \"success\",\r\n this.translate(\"ClientApp.FrontOffice.Financial.AccountingDocument.successful\"),\r\n `${this.translate(\"ClientApp.FrontOffice.Financial.AccountingDocument.InformationChanges\")} ${this.label} ${this.translate(\r\n \"ClientApp.FrontOffice.Financial.AccountingDocument.SavedSuccessfully\"\r\n )} `\r\n );\r\n this.result = true;\r\n },\r\n (error) => {\r\n let errorMessage = Utilities.getHttpResponseMessage(error);\r\n if (errorMessage) super.saveFailedHelper(error);\r\n this.isSaved = false;\r\n this.cd.markForCheck();\r\n }\r\n );\r\n }\r\n\r\n protected isCloseable(): boolean {\r\n this.selectorService.submitted$.next(false);\r\n this.formGroup?.markAsUntouched();\r\n return true;\r\n }\r\n\r\n async cancel() {\r\n this.close();\r\n }\r\n\r\n valueChange($event: any) {\r\n if ($event) {\r\n this.DetailLedgerList = this.accVoucherHeaderList[$event.Id].AccVoucherDetails;\r\n if (this.trsVoucherHeaderList?.length > 0) this.TrsDetailLedgerList = this.trsVoucherHeaderList[$event.Id].TrsVoucherDetails;\r\n } else this.DetailLedgerList = null;\r\n this.calcRemain();\r\n }\r\n calcRemain() {\r\n this.sumDebit = this.DetailLedgerList?.getSumWithKey(\"Debit\");\r\n this.sumCredit = this.DetailLedgerList?.getSumWithKey(\"Credit\");\r\n this.remaining = this.sumDebit - this.sumCredit;\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n name=\"BranchId\"\r\n [group]=\"formGroup\"\r\n [dataList]=\"BranchLookUp\"\r\n [label]=\"'ClientApp.FrontOffice.Financial.AccountingDocument.Branch' | translate\"\r\n textFieldName=\"Title\"\r\n valueFieldName=\"Id\"\r\n userClass=\"select-sm\">\r\n \r\n \r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Financial.AccountingDocument.TotalDebt\" | translate }} : {{ sumDebit | number }}\r\n \r\n {{ \"ClientApp.FrontOffice.Financial.AccountingDocument.AccountsPayable\" | translate }} : {{ this.sumCredit | number }}\r\n \r\n {{ \"ClientApp.FrontOffice.Financial.AccountingDocument.remaining\" | translate }} : {{ this.remaining | number }}\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.Pages.PageMenu.AccountingDocument\" | translate }}\r\n
\r\n
\r\n {{ \"ClientApp.Pages.PageMenu.ReceiptPayment\" | translate }}\r\n
\r\n 0\"\r\n name=\"FilterDateList\"\r\n [group]=\"formGroup\"\r\n [dataList]=\"model.FilterDateList\"\r\n [label]=\"'ClientApp.FrontOffice.Financial.AccountingDocument.DateFilter' | translate\"\r\n textFieldName=\"Title\"\r\n valueFieldName=\"Id\"\r\n (valueChange)=\"valueChange($event)\"\r\n userClass=\"select-sm\">\r\n \r\n
\r\n \r\n
\r\n 0\"\r\n [hideToolber]=\"true\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [name]=\"'DetailLedgerList'\"\r\n [dataList]=\"DetailLedgerList\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [filtering]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n pagingSize=\"5\"\r\n pathPreFix=\"SALE\"\r\n [paging]=\"false\"\r\n [columns]=\"gridColumnsAccounting\"\r\n [noAutoFitColumns]=\"true\">\r\n \r\n
\r\n 0\">\r\n \r\n \r\n \r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { form_control, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { SystemKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services/http-common.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { AccountingDocumentFormComponent } from \"../accounting-document-form/accounting-document-form.component\";\r\n\r\nexport class ConfirmDateValue {\r\n EndDate: Date;\r\n StartDate: Date;\r\n closeDialog: Function;\r\n FiscalYearId: number;\r\n}\r\n\r\n@Component({\r\n selector: \"ngx-accounting-document-list\",\r\n templateUrl: \"./accounting-document-list.component.html\",\r\n styleUrls: [\"./accounting-document-list.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccountingDocumentListComponent extends BaseListComponent {\r\n gridColumns: form_control[];\r\n dataFilter: any;\r\n isAdd: boolean = true;\r\n @ViewChild(\"grid\") public grid: KGridComponent;\r\n constructor(public cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super();\r\n this.inputEditorform = AccountingDocumentFormComponent;\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"AccVoucherHeader\";\r\n this.areaName = \"Accounting\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Financial.AccountingDocument.SendToBranch\");\r\n this.GetSystemKindLookup();\r\n this.FillData();\r\n }\r\n\r\n async FillData() {\r\n if (this.accountService.authService?.currentBranch?.SendVoucherFromCenter) this.isAdd = false;\r\n }\r\n\r\n async GetSystemKindLookup() {\r\n await this.lookupservice\r\n .getLookupbyCategory(\"GNR\", \"SystemKind\")\r\n .pipe(take(1))\r\n .subscribe((data) => {\r\n const findLookup = data.find((f) => f.Code == SystemKind.SALE);\r\n if (findLookup) {\r\n this.dataFilter = [\r\n {\r\n Filed: \"SystemKindId\",\r\n Value: findLookup.Id,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n },\r\n {\r\n Filed: \"BranchId\",\r\n Value: this.accountService.authService.currentBranchId,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n },\r\n ];\r\n this.cd.markForCheck(); \r\n }\r\n });\r\n }\r\n\r\n async DeleteAccVoucher($event) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Financial.AccountingDocument.HasDeleteData\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Financial.AccountingDocument.DeleteInformation\"),\r\n DialogType.confirm,\r\n async () => {\r\n await this.httpCommonService\r\n .getList(\"CashierSettlemet/GetAccVoucher\" + `/${$event.Id}`)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then(\r\n (data: any[]) => {\r\n this.grid.refreshData();\r\n },\r\n (error) => {\r\n let errorMessage = Utilities.getHttpResponseMessage(error);\r\n if (errorMessage) {\r\n this.sts.showDialog(`${errorMessage}`, this.translate(\"ClientApp.FrontOffice.Financial.AccountingDocument.ErrorMessage\"));\r\n }\r\n }\r\n );\r\n }\r\n );\r\n }\r\n}\r\n","
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [name]=\"apiName\"\r\n [isModal]=\"false\"\r\n [isEdit]=\"false\"\r\n [isAdd]=\"isAdd\"\r\n reportName=\"AccountingList\"\r\n pathPreFix=\"ACC\"\r\n [actions]=\"actions\"\r\n [useCustomDelete]=\"true\"\r\n (onDelete)=\"DeleteAccVoucher($event)\"\r\n [filters]=\"dataFilter\"\r\n [customExportExcelUrl]=\"'AccVoucherHeader/ExportExcel'\"\r\n [inputEditorform]=\"inputEditorform\">\r\n \r\n
\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { MenuPackage } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu-injector\";\r\nimport { ContextMenuService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu.service\";\r\nimport { MenuComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/menu.component\";\r\nimport { AccountService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { AccountingDocumentFormSettingComponent } from \"./accounting-document-form-setting/accounting-document-form-setting.component\";\r\n\r\n@Component({\r\n selector: \"simple-menu\",\r\n // add your menu html\r\n template: `\r\n \r\n {{ \"ClientApp.FrontOffice.Financial.AccountingDocument.Settings\" | translate }}\r\n \r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AccountingDocumentSettingMenuComponent extends MenuComponent {\r\n // this module does not have animations, set lazy false\r\n lazy = false;\r\n\r\n constructor(\r\n public menuPackage: MenuPackage,\r\n public contextMenuService: ContextMenuService,\r\n public dialogService: SimpleModalService,\r\n public common: CommonService,\r\n public accountService: AccountService,\r\n protected sts: ShowToastrService\r\n ) {\r\n super(menuPackage, contextMenuService);\r\n // grab any required menu context passed via menuContext input\r\n }\r\n\r\n async handleClick(value: any) {\r\n this.contextMenuService.closeAll();\r\n this.dialogService\r\n .open(AccountingDocumentFormSettingComponent, { currentrow: value }, { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false })\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n this.menuPackage.context.settingChanges$?.next(true);\r\n });\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { SaleAccountingSetting } from \"../../model/sale-accounting-setting.model\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\n\r\n@Component({\r\n selector: \"ngx-accounting-setting-form\",\r\n templateUrl: \"./accounting-setting-form.component.html\",\r\n styleUrls: [\"./accounting-setting-form.component.scss\"],\r\n})\r\nexport class AccountingSettingFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"SaleAccountingSetting\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Financial.AccountingSetting.AccountingSetting\");\r\n super.ngOnInit();\r\n }\r\n\r\n beforupdate(): void {\r\n this.model.BranchId = this.accountService.authService.currentBranchId;\r\n }\r\n\r\n setColumnAttribute(): void {\r\n if (this.currentrow) {\r\n const subLedgerType = this.columns.find((x) => x.name === \"SubLedgerTypeId\");\r\n if (subLedgerType) subLedgerType.formVisible = false;\r\n }\r\n }\r\n\r\n isValid(): boolean {\r\n if (!this.formGroup.controls[\"DocumentDescription\"].value) {\r\n this.sts.showDialog(\"message\", \"title\");\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","\r\n \r\n
\r\n {{ model.SubLedgerTypeTitle }}\r\n
\r\n
\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { AccountingSettingFormComponent } from \"../accounting-setting-form/accounting-setting-form.component\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\n\r\n@Component({\r\n selector: \"ngx-accounting-setting-list\",\r\n templateUrl: \"./accounting-setting-list.component.html\",\r\n styleUrls: [\"./accounting-setting-list.component.scss\"],\r\n})\r\nexport class AccountingSettingListComponent extends BaseListComponent {\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n deleteMessage: string = \"\";\r\n IgnoreDelete: Boolean = false;\r\n hasPermission: boolean = false;\r\n\r\n constructor(public tabsservice: TabularService) {\r\n super();\r\n this.inputEditorform = AccountingSettingFormComponent;\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.accountService.authService.currentInformation().BranchingLightEnabled) {\r\n this.showMessageAndCloseForm();\r\n } else this.hasPermission = true;\r\n this.apiName = \"SaleAccountingSetting\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Financial.AccountingSetting.AccountingSetting\");\r\n this.FillData();\r\n }\r\n\r\n async FillData() {\r\n const info = this.accountService.authService.currentInformation();\r\n if (info.BranchingLightEnabled || info.BranchingAdvancedEnabled || info.RestaurantCallCenter) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch/SaleAccountingSetting\")\r\n .pipe(take(1))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n const branch = this.accountService.authService.currentBranch;\r\n if (!branch.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isDelete = false;\r\n }\r\n if (branch.BranchDataTransferInfos?.length > 0) {\r\n let a = branch.BranchDataTransferInfos?.forEach((val) => {\r\n if (val.TranslateCost) {\r\n this.isAdd = true;\r\n this.isDelete = true;\r\n }\r\n });\r\n }\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Financial.AccountingSetting.HasBranchCommunication\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Financial.AccountingSetting.HasCallCenterCommunication\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n private showMessageAndCloseForm() {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Financial.AccountingSetting.AccessToFeesMenuForLicenseLite\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.AccountingSetting.Error\")\r\n );\r\n this.hasPermission = false;\r\n const accountSettingTab = this.tabsservice.tabItemSubject?.value?.findIndex(\r\n (x) => x.title == \"ClientApp.FrontOffice.Financial.AccountingSetting\"\r\n );\r\n this.tabsservice.close(accountSettingTab);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { isNumber } from \"@progress/kendo-angular-grid/dist/es2015/utils\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control, Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { MapObjectPipe } from \"projects/sepidz-web-framework/src/lib/pipes/mapobject.pipe\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Invoice } from \"src/app/frontoffice/order/model/invoice.model\";\r\nimport { ReceiptPaymentModel } from \"src/app/frontoffice/order/model/receiptpayment.model\";\r\nimport { RowState } from \"../../../../../../projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { CustomerSettlementModel, SettlementType } from \"../../model/usersettlement.model\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { PaymentMethodType } from \"../../model/payment-method.enum\";\r\n\r\n@Component({\r\n selector: \"ngx-customer-receipt-payment-form\",\r\n templateUrl: \"./customer-receipt-payment-form.component.html\",\r\n styleUrls: [\"./customer-receipt-payment-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CustomerReceiptPaymentFormComponent extends BaseFormComponent {\r\n settlement: CustomerSettlementModel;\r\n settlementType: Lookup[];\r\n debitTitle: string = this.translate(\"ClientApp.FrontOffice.Financial.CustomerReceiptPayment.debitTitle\");\r\n receiptPaymentType: Lookup[];\r\n\r\n constructor(protected selectorService: SelectorService, private lookupservice: LookupService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.FillData();\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"CustomerSettlemet\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Financial.ReceiptPayments\");\r\n this.detailName = \"ReceiptPayments\";\r\n this.ignoreFormGroupWithDetailName = true;\r\n super.ngOnInit();\r\n }\r\n async FillData() {\r\n this.lookupservice\r\n .getLookupbyCategory(\"SALE\", \"SettlementType\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (data) => {\r\n this.settlementType = data;\r\n });\r\n\r\n this.lookupservice\r\n .getLookupbyCategory(\"SALE\", \"ReceiptPaymentType\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: Lookup[]) => {\r\n this.receiptPaymentType = data;\r\n });\r\n }\r\n\r\n setdefault() {\r\n if (!this.model.BranchId) this.model.BranchId = this.accountService.authService.currentBranchId;\r\n if (this.currentrow) {\r\n this.settlement = this.currentrow;\r\n this.model = JSON.parse(JSON.stringify(this.model[this.detailName][0]));\r\n }\r\n }\r\n addControl() {\r\n this.setValue(\"CustomerId\", this.model.CustomerNumber, true);\r\n this.orignalColumns.find((f) => f.modelName === \"CustomerId\").required = true;\r\n const CustomerId = this.columns.find((f) => f.modelName === \"CustomerId\");\r\n CustomerId.required = true;\r\n CustomerId[\"defaultSortKey\"] = \"Number\";\r\n CustomerId[\"defaultSortKeyKind\"] = \"asc\";\r\n CustomerId.isFloat = 1;\r\n this.columns.find((f) => f.modelName === \"Amount\").isFloat = 1;\r\n\r\n this.columns.find((f) => f.modelName === \"PaymentMethodId\").apiName =\r\n \"PaymentMethod/PaymentMethodLookUp/\" + this.accountService.authService.currentBranchId;\r\n\r\n this.cd.markForCheck();\r\n this.onCustomerIdChanges();\r\n this.setColumnAttribute();\r\n }\r\n\r\n beforupdate() {\r\n this.getDataFromFormGroup();\r\n if (this.currentrow) {\r\n this.settlement.ReceiptPayments[0] = JSON.parse(JSON.stringify(this.model));\r\n this.settlement.State = RowState.Modify;\r\n this.settlement.ReceiptPayments[0].State = RowState.Modify;\r\n this.setValue(\"Id\", this.settlement.Id);\r\n } else {\r\n this.settlement = new CustomerSettlementModel();\r\n const receipt = new ReceiptPaymentModel();\r\n let mapper = new MapObjectPipe();\r\n this.settlement.ReceiptPayments[0] = JSON.parse(JSON.stringify(mapper.transform(this.model, receipt)));\r\n this.settlement.State = RowState.New;\r\n this.settlement.ReceiptPayments[0].State = RowState.New;\r\n }\r\n this.settlement.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.model = JSON.parse(JSON.stringify(this.settlement));\r\n this.model.SettlementTypeId = this.settlementType.find((f) => f.Code === SettlementType.CustomerSettlement).Id;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.FillData();\r\n }\r\n\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n if (!this.orignalColumns.some((s) => s.name === \"AppliedToFundBalance\")) {\r\n const ctrl = new form_control();\r\n ctrl.name = \"AppliedToFundBalance\";\r\n ctrl.label = this.translate(\"ClientApp.FrontOffice.Financial.CustomerReceiptPayment.ApplicationsFundBalance\");\r\n ctrl.modelName = \"AppliedToFundBalance\";\r\n ctrl.order = 5;\r\n ctrl.tabOrder = 6;\r\n ctrl.columnNumber = 1;\r\n ctrl.formVisible = true;\r\n ctrl.controlType = FormControlTypes.checkbox;\r\n this.orignalColumns.push(ctrl);\r\n this.orignalColumns.find((f) => f.name === \"ReceiptPaymentTypeId\").isFloat = 1;\r\n }\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n }\r\n\r\n private onCustomerIdChanges() {\r\n this.formGroup\r\n .get(\"CustomerId\")\r\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(($event) => {\r\n if ($event !== 0 && isNumber($event) && this.formGroup.controls[\"DebitTotal\"].value !== $event) {\r\n const invoice = new Invoice();\r\n invoice.CustomerId = $event;\r\n this.httpCommonService\r\n .create(`Invoice/GetCredit`, invoice)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n this.setValue(\"DebitTotal\", data);\r\n if (data < 0) {\r\n this.debitTitle = this.translate(\"ClientApp.FrontOffice.Financial.CustomerReceiptPayment.credit\");\r\n } else {\r\n this.debitTitle = this.translate(\"ClientApp.FrontOffice.Financial.CustomerReceiptPayment.debitTitle\");\r\n }\r\n this.columns.find((f) => f.modelName === \"DebitTotal\").label = this.debitTitle;\r\n this.cd.markForCheck();\r\n });\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { CustomerReceiptPaymentFormComponent } from \"../customer-receipt-payment-form/customer-receipt-payment-form.component\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\n\r\n@Component({\r\n selector: \"ngx-customer-receipt-payment-list\",\r\n templateUrl: \"./customer-receipt-payment-list.component.html\",\r\n styleUrls: [\"./customer-receipt-payment-list.component.scss\"],\r\n})\r\nexport class CustomerReceiptPaymentListComponent extends BaseListComponent {\r\n unSortableFilterable: string[] = [];\r\n filters: GridFilter[] = [\r\n {\r\n Filed: \"Code\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"desc\",\r\n Type: \"S\",\r\n },\r\n ];\r\n\r\n constructor() {\r\n super();\r\n this.inputEditorform = CustomerReceiptPaymentFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"CustomerSettlemet\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Financial.ReceiptPayments\");\r\n const info = this.accountService.authService.currentInformation();\r\n if (\r\n (info.BranchingAdvancedEnabled || info.BranchingLightEnabled || info.RestaurantCallCenter) &&\r\n !this.accountService.authService.currentBranch?.AccessToAllBranches\r\n ) {\r\n this.filters.push({\r\n Filed: \"BranchId\",\r\n Value: this.accountService.authService.currentBranchId,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n });\r\n }\r\n const columnsToExclude = [\r\n \"CustomerCode\",\r\n \"CustomerTitle\",\r\n \"ReceiptPaymentTypeTitle\",\r\n \"PaymentMethodTypeTitle\",\r\n \"PaymentAmount\",\r\n \"ReciptAmount\",\r\n \"UntilDateClear\",\r\n ];\r\n\r\n this.unSortableFilterable.push(...columnsToExclude);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomerReceiptPaymentListComponent } from './customer-receipt-payment-list/customer-receipt-payment-list.component';\r\nimport { CustomerReceiptPaymentFormComponent } from './customer-receipt-payment-form/customer-receipt-payment-form.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nconst components =\r\n [\r\n CustomerReceiptPaymentListComponent,\r\n CustomerReceiptPaymentFormComponent\r\n ]\r\n @NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class CustomerReceiptPaymentModule { }\r\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef, OnDestroy } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { ShowToastrService, Utilities, LocalStoreManager, GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Invoice } from \"src/app/frontoffice/order/model/invoice.model\";\r\nimport { ReceiptPaymentModel, ReceiptPaymentTypeEnum } from \"src/app/frontoffice/order/model/receiptpayment.model\";\r\nimport { DialogType } from \"../../../../../../projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { SettlementInvoiceModel } from \"../../model/settlementinvoice.model\";\r\nimport { SettlementReadInvoiceEnum, SettlementReadInvoiceModel } from \"../../model/settlementreadinvoice.model\";\r\nimport { SettlementReferenceModel } from \"../../model/settlementreference.model\";\r\nimport { CashierSettlementModel, SettlementDateViewModel } from \"../../model/usersettlement.model\";\r\nimport { InvoicesModalComponent } from \"../invoicesmodal/invoicesmodal.component\";\r\nimport { SimpleMenuComponent } from \"./settlementsettingmenu\";\r\nimport { ContextMenuEnum } from \"src/app/frontoffice/order/model/contextMenuenum\";\r\nimport { SettlementFormSettingModel } from \"./settlementformsetting/settlementformsetting.model\";\r\nimport { CashierLookupItems } from \"../../model/cashierlookupitems.model\";\r\n\r\n@Component({\r\n selector: \"cashiersettlement-form.component\",\r\n templateUrl: \"./cashiersettlement-form.component.html\",\r\n styleUrls: [\"./cashiersettlement-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CashierSettlementFormComponent extends BaseFormComponent implements OnDestroy {\r\n userLookup: CashierLookupItems[];\r\n menu = SimpleMenuComponent;\r\n public contextmenuEnum: typeof ContextMenuEnum = ContextMenuEnum;\r\n PaymentMethod: Lookup[];\r\n deactivateSave: boolean;\r\n deactiveForm: boolean;\r\n RowState: typeof RowState = RowState;\r\n SettlementEnum: typeof SettlementReadInvoiceEnum = SettlementReadInvoiceEnum;\r\n invoice: Invoice[];\r\n showDetail: boolean;\r\n showDescription: boolean;\r\n deactivateClose: boolean;\r\n AddSettlementForPending: boolean;\r\n isSavedFinish: boolean;\r\n PersonnelReceiptReceived: number;\r\n formsetting: SettlementFormSettingModel;\r\n constructor(\r\n sts: ShowToastrService,\r\n private datatransfer: Datatransfer,\r\n private storage: LocalStoreManager,\r\n __id: FormContainerModel,\r\n private _tabsservice: TabularService,\r\n protected cd: ChangeDetectorRef,\r\n protected selectorService: SelectorService,\r\n public splashFormService: SplashFormService\r\n ) {\r\n super(selectorService, cd);\r\n this.currentrow = this.datatransfer?.currentrow;\r\n this.apiName = \"CashierSettlemet\";\r\n this.label = this.datatransfer?.label;\r\n this.areaName = this.datatransfer?.areaName;\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n this.FillData();\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n this.FillData();\r\n this.setdefault();\r\n }\r\n ngOnDestroy(): void {}\r\n addControl() {\r\n this.setValue(\"ClearedInvoicesTotal\", this.model.ClearedInvoicesTotal);\r\n this.setValue(\"PendingInvoicesTotal\", this.model.PendingInvoicesTotal);\r\n this.setValue(\"PassiveInvoicesTotal\", this.model.PassiveInvoicesTotal);\r\n this.setValue(\"DeletedInvoicesTotal\", this.model.DeletedInvoicesTotal);\r\n this.setValue(\"CancelledInvoicesTotal\", this.model.CancelledInvoicesTotal);\r\n this.setValue(\"CustomerClearedInvoicesTotal\", this.model.CustomerClearedInvoicesTotal);\r\n this.setValue(\"PersonnelClearedInvoicesTotal\", this.model.PersonnelClearedInvoicesTotal);\r\n this.setValue(\"PersonnelReceiptPaymentPaid\", this.model.PersonnelReceiptPaymentPaid);\r\n this.setValue(\"Description\", this.model.Description, false);\r\n this.setValue(\"UntilDate\", this.model.UntilDate);\r\n this.setValue(\"UntilTime\", this.model.UntilTime);\r\n this.setValue(\r\n \"SettledPersonnelId\",\r\n this.userLookup?.find((f) => f.PersonnelId === this.model.SettledPersonnelId)\r\n );\r\n this.setValue(\"PayableTotal\", this.model.PayableTotal);\r\n this.setValue(\"Credit\", this.model.InvoiceCredit);\r\n this.setValue(\"Tip\", this.model.TipTotal);\r\n this.setValue(\"TotalDeposit\", this.model.TotalDeposit);\r\n this.setValue(\"Discount\", this.model.InvoicesDiscount);\r\n this.setValue(\"Debit\", this.model.InvoiceDebit);\r\n this.setValue(\"Remain\", this.model.Remain);\r\n this.setValue(\"OldRemain\", this.model.OldRemain);\r\n this.setValue(\"TotalPayment\", this.model.TotalPayment);\r\n this.setValue(\"AllowedDeficit\", this.model.AllowedDeficit);\r\n this.setValue(\"TotalAccount\", this.model.TotalAccount);\r\n this.setValue(\"CashierSpentCost\", this.model.CashierSpentCost);\r\n this.setValue(\"PaymentLink\", this.model.PaymentLink);\r\n\r\n if (this.model.ReceiptPayments && this.model.ReceiptPayments.length > 0) {\r\n this.model.ReceiptPayments.forEach((receipt, i) => {\r\n if (receipt.ReceiptPaymentTypeTitle) {\r\n this.setValue(\"ReceiptPaymentTypeTitle\" + i, receipt.ReceiptPaymentTypeTitle);\r\n }\r\n if (receipt.PaymentMethodTitle) {\r\n this.setValue(\"PaymentMethodTitle\" + i, receipt.PaymentMethodTitle);\r\n }\r\n if (receipt.Amount) {\r\n this.setValue(\"Amount\" + i, receipt.Amount);\r\n }\r\n\r\n this.cd.markForCheck();\r\n });\r\n }\r\n }\r\n getCurrentDate() {\r\n this.httpCommonService\r\n .getList(\"DriverSettlement/GetCurrentDate\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: SettlementDateViewModel) => {\r\n this.setValue(\"UntilDate\", data.UntilDate);\r\n this.setValue(\"UntilTime\", data.UntilTime);\r\n this.cd.markForCheck();\r\n });\r\n }\r\n FillData() {\r\n if (this.accountService.authService?.currentBranch?.AddSettlementForUnpaidAndSuspendedInvoices) this.AddSettlementForPending = true;\r\n this.deactivateSave = true;\r\n if (this.model.Id) this.deactiveForm = true;\r\n this.getCurrentDate();\r\n this.getUserLookup();\r\n // گرفتن نوع پرداخت\r\n this.getPaymentMethod();\r\n\r\n if (!this.model.FiscalYearId && this.accountService.authService.currentFiscalYear) {\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n } else if (!this.model.FiscalYearId) {\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe(async (x) => {\r\n if (x) {\r\n this.model.FiscalYearId = x.Id;\r\n this.setValue(\"FiscalYearId\", x.Id);\r\n }\r\n });\r\n }\r\n }\r\n setdefault() {}\r\n getUserLookup() {\r\n this.httpCommonService\r\n .getList(\"Personnel/ReadUserLookupItems/false\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: CashierLookupItems[]) => {\r\n this.userLookup = data;\r\n this.setValue(\r\n \"SettledPersonnelId\",\r\n this.userLookup.find((f) => f.PersonnelId === this.model.SettledPersonnelId)\r\n );\r\n if (this.userLookup && this.userLookup.length === 1) {\r\n this.setValue(\"SettledPersonnelId\", this.userLookup[0]);\r\n }\r\n });\r\n }\r\n getPaymentMethod() {\r\n this.httpCommonService\r\n .getList(\"PaymentMethod/PaymentMethodLookUp\" + \"/\" + this.accountService.authService.currentBranchId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: Lookup[]) => {\r\n if (data) {\r\n this.PaymentMethod = data;\r\n }\r\n });\r\n }\r\n // برای بایند کردن نام در سند html\r\n controlName(name: string, index: number): string {\r\n return name + index;\r\n }\r\n changeUser() {}\r\n /// دریافت اطلاعات کاربر انتخاب شده\r\n reciveInformation() {\r\n this.showDetail = false;\r\n this.deactivateSave = true;\r\n this.setdefault();\r\n if (!this.formGroup.controls[\"SettledPersonnelId\"].value) {\r\n this.sts.showToast(\"danger\", \"\", `${this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.CashierIsNotLoggedIn\")}`);\r\n return;\r\n }\r\n if (!this.formGroup.controls[\"UntilDate\"].value || !this.formGroup.controls[\"UntilTime\"].value) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.EnterDateAndTimeFilter\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.Attention\")\r\n );\r\n return;\r\n }\r\n this.splashFormService.openDialog();\r\n this.model.SettledUserlId = this.formGroup.value.SettledPersonnelId.Id;\r\n this.model.SettledPersonnelId = this.formGroup.value.SettledPersonnelId.PersonnelId;\r\n this.model.UntilDate = this.formGroup.value.UntilDate;\r\n this.model.UntilTime = this.formGroup.value.UntilTime;\r\n this.model.BranchId = this.accountService.authService.currentBranchId;\r\n\r\n this.httpCommonService\r\n .create(\"CashierSettlemet/CashierSettlemet\", this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: CashierSettlementModel) => {\r\n if (data.PassiveInvoicesTotal > 0) {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.UndecidedInvoicesSettledBeforeSettlementCashier\")}`,\r\n \"\"\r\n );\r\n if (this.AddSettlementForPending) this.deactivateSave = true;\r\n this.checkValidation();\r\n }\r\n this.model = data;\r\n this.showDetail = true;\r\n this.deactivateSave = false;\r\n this.addControl();\r\n this.addGroup();\r\n this.splashFormService.closeLoading();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\r\n `${Utilities.getHttpResponseMessage(error)}`,\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.Attention\")\r\n );\r\n }\r\n );\r\n }\r\n openInvoicesModal(invoicekind: number) {\r\n let ReadInvoiceModel = new SettlementReadInvoiceModel();\r\n ReadInvoiceModel.UntilDate = this.formGroup.value.UntilDate;\r\n ReadInvoiceModel.Status = invoicekind;\r\n ReadInvoiceModel.SettledUserlId = this.formGroup.value.SettledPersonnelId.Id;\r\n ReadInvoiceModel.UntilTime = this.formGroup.value.UntilTime;\r\n let defaultFilters: GridFilter[] = [];\r\n switch (invoicekind) {\r\n case SettlementReadInvoiceEnum.Cleard:\r\n ReadInvoiceModel.InvoiceIds = this.model.ClearedInvoiceIds;\r\n break;\r\n case SettlementReadInvoiceEnum.Pending:\r\n ReadInvoiceModel.InvoiceIds = this.model.PendingInvoiceIds;\r\n break;\r\n case SettlementReadInvoiceEnum.Cancelled:\r\n ReadInvoiceModel.InvoiceIds = this.model.CancelledInvoiceIds;\r\n break;\r\n case SettlementReadInvoiceEnum.Passive:\r\n ReadInvoiceModel.InvoiceIds = this.model.PassiveInvoiceIds;\r\n break;\r\n case SettlementReadInvoiceEnum.Deleted:\r\n ReadInvoiceModel.InvoiceIds = this.model.DeletedInvoiceIds;\r\n break;\r\n case SettlementReadInvoiceEnum.Customer:\r\n ReadInvoiceModel.InvoiceIds = this.model.CustomerClearedIds;\r\n break;\r\n case SettlementReadInvoiceEnum.Personnel:\r\n ReadInvoiceModel.InvoiceIds = this.model.PersonnelClearedIds;\r\n break;\r\n case SettlementReadInvoiceEnum.PaymentPersonnel:\r\n defaultFilters = [{ Filed: \"ReceiptPaymentTypeCode\", Value: ReceiptPaymentTypeEnum.Payment, Skip: 0, Take: 0, Operator: \"eq\", Type: \"F\" }];\r\n ReadInvoiceModel.InvoiceIds = this.model.PersonnelClearedIds;\r\n break;\r\n case SettlementReadInvoiceEnum.Delivery:\r\n ReadInvoiceModel.InvoiceIds = null;\r\n break;\r\n case SettlementReadInvoiceEnum.Debit:\r\n ReadInvoiceModel.InvoiceIds = this.model.DebitInvoiceIds;\r\n break;\r\n case SettlementReadInvoiceEnum.Credit:\r\n ReadInvoiceModel.InvoiceIds = this.model.CreditInvoiceIds;\r\n break;\r\n case SettlementReadInvoiceEnum.Discount:\r\n ReadInvoiceModel.InvoiceIds = this.model.DiscountInvoiceIds;\r\n break;\r\n case SettlementReadInvoiceEnum.CostSpent:\r\n ReadInvoiceModel.InvoiceIds = this.model.CostSpentIds;\r\n break;\r\n case SettlementReadInvoiceEnum.PaymentLink:\r\n ReadInvoiceModel.InvoiceIds = this.model.PaymentLinkIds;\r\n break;\r\n }\r\n if (!ReadInvoiceModel.InvoiceIds || ReadInvoiceModel.InvoiceIds.length === 0) return;\r\n this.dialogService\r\n .open(InvoicesModalComponent, { ReadInvoiceModel: ReadInvoiceModel, defaultFilters }, { closeOnClickOutside: false })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {}),\r\n 500;\r\n }\r\n removePayment(index: number) {\r\n const findIndex = this.model.ReceiptPayments.findIndex((f) => f.Index === index);\r\n this.model.ReceiptPayments.splice(findIndex, 1);\r\n this.formGroup.removeControl(`PaymentMethodId${index}`);\r\n this.formGroup.removeControl(`receivedmoney${index}`);\r\n this.calculate();\r\n }\r\n calculate() {\r\n this.model.TotalReciptPayment = 0;\r\n this.model.AllowedDeficit = 0;\r\n for (let index = 0; index < this.model.ReceiptPayments?.length; index++) {\r\n if (this.formGroup.controls[`receivedmoney${this.model.ReceiptPayments[index].Index}`]?.value) {\r\n this.model.TotalReciptPayment += Number(this.formGroup.controls[`receivedmoney${this.model.ReceiptPayments[index].Index}`].value);\r\n }\r\n }\r\n this.model.AllowedDeficit = Number(this.formGroup.controls[`AllowedDeficit`].value);\r\n this.model.Remain = this.model.TotalPayment - (this.model.TotalReciptPayment ? this.model.TotalReciptPayment : 0) - this.model.AllowedDeficit;\r\n this.formGroup.controls[`Remain`].setValue(this.model.Remain);\r\n\r\n this.checkValidation();\r\n this.cd.markForCheck();\r\n }\r\n //اضافه کردن به فرم گروپ\r\n addGroup() {\r\n if (!this.model.ReceiptPayments || this.model.ReceiptPayments.length <= 0) {\r\n const ReceiptModel = new ReceiptPaymentModel();\r\n const index = Math.floor(Math.random() * 10000000);\r\n ReceiptModel.PaymentMethod = JSON.parse(JSON.stringify(this.PaymentMethod));\r\n ReceiptModel.Index = index;\r\n if (!this.model.ReceiptPayments) this.model.ReceiptPayments = [];\r\n this.model.ReceiptPayments.push(ReceiptModel);\r\n this.setValue(`PaymentMethodId${index}`, this.PaymentMethod[0].Id, true);\r\n this.setValue(`receivedmoney${index}`, this.model.TotalPayment, true);\r\n } else {\r\n if (this.model.ReceiptPayments && this.model.ReceiptPayments.length > 0 && !this.formGroup) {\r\n for (let i = 0; i < this.model.ReceiptPayments.length; i++) {\r\n const index = Math.floor(Math.random() * 10000000);\r\n this.model.ReceiptPayments[i].Index = index;\r\n this.setValue(`PaymentMethodId${index}`, this.model.ReceiptPayments[i].PaymentMethodId, true);\r\n this.setValue(`receivedmoney${index}`, this.model.ReceiptPayments[i].Amount, true);\r\n if (this.model.ReceiptPayments[i].PaymentMethod.length === 1) this.setValue(`PaymentMethodId${index}`, this.PaymentMethod[0].Id, true);\r\n }\r\n } else {\r\n if (this.model.ReceiptPayments && this.model.ReceiptPayments.length > 0) {\r\n const index = this.model.ReceiptPayments.length - 1;\r\n const i = Math.floor(Math.random() * 10000000);\r\n this.setValue(`PaymentMethodId${i}`, this.model.ReceiptPayments[index].PaymentMethodId, true);\r\n this.setValue(`receivedmoney${i}`, this.model.ReceiptPayments[index].Amount, true);\r\n this.model.ReceiptPayments[index].State = RowState.New;\r\n this.model.ReceiptPayments[index].Index = i;\r\n if (this.model.ReceiptPayments[index].PaymentMethod.length === 1) this.setValue(`PaymentMethodId${i}`, this.PaymentMethod[0].Id, true);\r\n else {\r\n if (this.model.ReceiptPayments[index].PaymentMethodId) {\r\n this.setValue(`PaymentMethodId${i}`, this.model.ReceiptPayments[index].PaymentMethodId, true);\r\n this.setValue(`receivedmoney${i}`, this.model.ReceiptPayments[index].Amount, true);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.checkValidation();\r\n this.calculate();\r\n }\r\n // فعال کردن دکنه تسویه\r\n checkValidation() {\r\n if (\r\n (this.formGroup?.valid &&\r\n this.formGroup.controls[\"TotalPayment\"].value > 0 &&\r\n (this.model.PassiveInvoicesTotal === 0 ||\r\n !this.model.PassiveInvoicesTotal ||\r\n (this.model.PassiveInvoicesTotal > 0 && !this.AddSettlementForPending))) ||\r\n (this.formGroup?.valid &&\r\n this.formGroup.controls[\"Debit\"].value > 0 &&\r\n (this.formGroup.controls[\"PayableTotal\"].value === this.formGroup.controls[\"Debit\"].value ||\r\n (this.formGroup.controls[\"PayableTotal\"].value == 0 && this.formGroup.controls[\"Remain\"].value == 0)))\r\n ) {\r\n this.deactivateSave = false;\r\n } else {\r\n this.deactivateSave = true;\r\n }\r\n }\r\n clear(value: any) {\r\n if (value === 0) {\r\n this.formGroup.controls[`receivedmoney`].setValue(0);\r\n this.calculate();\r\n }\r\n if (value === 1) {\r\n this.formGroup.controls[`AllowedDeficit`].setValue(0);\r\n this.calculate();\r\n }\r\n }\r\n addPayment() {\r\n const SettlementDetail = new ReceiptPaymentModel();\r\n const index = Math.floor(Math.random() * 10000000);\r\n SettlementDetail.PaymentMethod = JSON.parse(JSON.stringify(this.PaymentMethod));\r\n SettlementDetail.Index = index;\r\n this.model.ReceiptPayments.push(SettlementDetail);\r\n this.addGroup();\r\n }\r\n beforupdate() {}\r\n isValid(): boolean {\r\n if (this.model.PendingInvoicesTotal > 0 && this.AddSettlementForPending) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.TemporaryInvoicesSettledBeforeSettlementCashier\")}`,\r\n \"\",\r\n DialogType.alert,\r\n () => {\r\n this.isSavedFinish = false;\r\n this.cd.markForCheck();\r\n }\r\n );\r\n return false;\r\n }\r\n return super.isValid();\r\n }\r\n async save() {\r\n if (!this.isValid()) {\r\n this.isSavedFinish = false;\r\n return;\r\n }\r\n this.splashFormService.openDialog();\r\n this.model.Invoices = [];\r\n this.model.Invoice = [];\r\n this.model.DeletedInvoiceIds?.forEach((element) => {\r\n const set = new SettlementInvoiceModel();\r\n set.InvoiceId = element;\r\n set.NotDisplay = true;\r\n this.model.Invoices.push(set);\r\n });\r\n this.model.ClearedInvoiceIds?.forEach((element) => {\r\n const set = new SettlementInvoiceModel();\r\n set.InvoiceId = element;\r\n this.model.Invoices.push(set);\r\n });\r\n this.model.PendingInvoiceIds?.forEach((element) => {\r\n const set = new SettlementInvoiceModel();\r\n set.InvoiceId = element;\r\n this.model.Invoices.push(set);\r\n });\r\n this.model.CancelledInvoiceIds?.forEach((element) => {\r\n const set = new SettlementInvoiceModel();\r\n set.InvoiceId = element;\r\n this.model.Invoices.push(set);\r\n });\r\n if (!this.model.SettlementReferences) this.model.SettlementReferences = [];\r\n this.model.PersonnelClearedIds?.forEach((element) => {\r\n const set = new SettlementReferenceModel();\r\n set.SettlementRefrenceId = element;\r\n this.model.SettlementReferences?.push(set);\r\n });\r\n this.model.CustomerClearedIds?.forEach((element) => {\r\n const set = new SettlementReferenceModel();\r\n set.SettlementRefrenceId = element;\r\n this.model.SettlementReferences?.push(set);\r\n });\r\n for (let index = 0; index < this.model.ReceiptPayments.length; index++) {\r\n this.model.ReceiptPayments[index].PaymentMethodId = this.formGroup.controls[`PaymentMethodId${this.model.ReceiptPayments[index].Index}`].value;\r\n this.model.ReceiptPayments[index].Amount = this.formGroup.controls[`receivedmoney${this.model.ReceiptPayments[index].Index}`].value;\r\n this.model.ReceiptPayments[index].BranchId = this.accountService.authService.currentBranchId;\r\n this.model.PayableTotal += this.model.ReceiptPayments[index].Amount;\r\n }\r\n\r\n this.sts.showToast(\"info\", \"\", this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.SavingChanges\"));\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n this.model.PayableTotalPrice = this.model.PayableTotal;\r\n\r\n if (!this.model.FiscalYearId && this.accountService.authService.currentFiscalYear)\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.model.Description = this.formGroup.controls[\"Description\"].value;\r\n this.model.CashierFirstNameTitle = this.userLookup?.find(\r\n (f) => f.PersonnelId === this.formGroup.controls[\"SettledPersonnelId\"].value.PersonnelId\r\n )?.Title;\r\n this.model.CashierLastNameTitle = this.userLookup?.find(\r\n (f) => f.PersonnelId === this.formGroup.controls[\"SettledPersonnelId\"].value.PersonnelId\r\n )?.Title;\r\n\r\n this.httpCommonService\r\n .create(\"CashierSettlemet\", this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n this.splashFormService.closeLoading();\r\n this.close();\r\n },\r\n (error) => {\r\n console.log(error);\r\n this.splashFormService.closeLoading();\r\n }\r\n );\r\n this.isClosing = false;\r\n this.submitted = true;\r\n this.sts.showToast(\r\n \"success\",\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.successful\"),\r\n `${this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.InformationChanges\")} ${this.label} ${this.translate(\r\n \"ClientApp.FrontOffice.Financial.CashierSettlement.SavedSuccessfully\"\r\n )} `\r\n );\r\n this.result = true;\r\n }\r\n ngAfterViewInit(): void {\r\n this.FillData();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Financial.CashierSettlement.ReciveInformation\" | translate }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n {{ \"ClientApp.FrontOffice.Financial.CashierSettlement.NewRecive\" | translate }} +\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SettlementFormSettingModel } from \"./settlementformsetting.model\";\r\nimport { FormSettingModel } from \"projects/sepidz-web-framework/src/lib/models/formsettingmodel\";\r\nimport { Observable } from \"rxjs\";\r\n@Component({\r\n selector: \"ngx-settlementformsetting\",\r\n templateUrl: \"./settlementformsetting-form.component.html\",\r\n styleUrls: [\"./settlementformsetting-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SettlementFormSettingFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"SettlementFormSetting\";\r\n this.customColumnInfoApi = \"SettlementFormSetting/GetFormColumnInfo\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.Settings\");\r\n this.changeNoCheck = true;\r\n super.ngOnInit();\r\n }\r\n ngOnDestroy(): void {}\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n\r\n override canDeactivate(): boolean | Observable {\r\n this.closeForm(true);\r\n return true;\r\n }\r\n}\r\n","\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Output } from \"@angular/core\";\r\nimport { MenuPackage } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu-injector\";\r\nimport { ContextMenuService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu.service\";\r\nimport { MenuComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/menu.component\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { AccountService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { SettlementFormSettingFormComponent } from \"./settlementformsetting/settlementformsetting-form.component\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"simple-menu\",\r\n template: `\r\n \r\n {{ message }}\r\n \r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SimpleMenuComponent extends MenuComponent {\r\n lazy = false;\r\n @Output() hasActiveItem = new EventEmitter();\r\n message :string\r\n constructor(\r\n public menuPackage: MenuPackage,\r\n public contextMenuService: ContextMenuService,\r\n public dialogService: SimpleModalService,\r\n public accountService: AccountService,\r\n protected sts: ShowToastrService,\r\n private common: CommonService,\r\n private translate: TranslateService\r\n ) {\r\n super(menuPackage, contextMenuService);\r\n this.message = translate.instant('ClientApp.FrontOffice.Financial.CashierSettlement.Settings')\r\n }\r\n\r\n async handleClick(value: any) {\r\n this.contextMenuService.closeAll();\r\n if (!value && !this.accountService.userHasPermission(`General:SettlementFormSetting`, Permission.createPermission)) {\r\n this.sts.showToast(\"danger\", \"\", this.translate.instant(\"ClientApp.FrontOffice.Financial.CashierSettlement.NotAccessThisArea\"));\r\n return;\r\n }\r\n if (value && !this.accountService.userHasPermission(`General:SettlementFormSetting`, Permission.editPermission)) {\r\n this.sts.showToast(\"danger\", \"\", this.translate.instant(\"ClientApp.FrontOffice.Financial.CashierSettlement.NotAccessThisArea\"));\r\n return;\r\n }\r\n await this.common.getFormSetting(\"SettlementFormSetting\").then(\r\n (onfulfilled) => {\r\n value = this.common.storage.getData(ClearableCache.FormSetting);\r\n this.dialogService\r\n .open(SettlementFormSettingFormComponent, { currentrow: value }, { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false })\r\n .pipe(take(1))\r\n .subscribe((model: any) => {});\r\n },\r\n (onrejected) => {}\r\n );\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { GridFilter, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Subject, Subscription } from \"rxjs\";\r\nimport { filter, takeUntil } from \"rxjs/operators\";\r\nimport { ConfirmDateValue } from \"src/app/frontoffice/dateDialog/dateDialog.component\";\r\nimport { CashierSettlementModel } from \"../../model/usersettlement.model\";\r\nimport { CashierSettlementFormComponent } from \"../cashiersettlement-form/cashiersettlement-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-casheirsettlement-list.component\",\r\n templateUrl: \"./cashiersettlement-list.component.html\",\r\n styleUrls: [\"./casheirsettlement-list.component.scss\"],\r\n})\r\nexport class CasheirSettlementListComponent extends BaseListComponent {\r\n actions: EntityListAction[];\r\n unSortableFilterable: string[] = [];\r\n filters: GridFilter[] = [\r\n {\r\n Filed: \"Code\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"desc\",\r\n Type: \"S\",\r\n },\r\n ];\r\n cashierSettlement: CashierSettlementModel;\r\n constructor(\r\n private _tabsservice: TabularService,\r\n private splashFormService: SplashFormService,\r\n private selectorService: SelectorService,\r\n public cd: ChangeDetectorRef\r\n ) {\r\n super();\r\n this.inputEditorform = CashierSettlementFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.apiName = \"CashierSettlemet\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.ReceiveFromCashier\");\r\n const currentInformation = this.accountService.authService.currentInformation();\r\n if (\r\n (currentInformation.BranchingAdvancedEnabled || currentInformation.BranchingLightEnabled || currentInformation.RestaurantCallCenter) &&\r\n !this.accountService.authService.currentBranch?.AccessToAllBranches\r\n ) {\r\n this.filters.push({\r\n Filed: \"BranchId\",\r\n Value: this.accountService.authService.currentBranchId,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n });\r\n }\r\n this.setactions();\r\n const columnsToExclude = [\"TotalReceipt\", \"NewRemainValue\"];\r\n\r\n this.unSortableFilterable.push(...columnsToExclude);\r\n }\r\n createAccVoucher(gridFilter: GridFilter[] | ConfirmDateValue, apiName: string, closeDialog?: Function, subscription?: Subscription) {\r\n this.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.AccountingDocumentIssued\"));\r\n this.httpCommonService\r\n .create(this.apiName + \"/\" + apiName, gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.DocumentsIssuedSuccessfully\"), \"\");\r\n if (closeDialog) closeDialog();\r\n subscription.unsubscribe();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.ErrorIssuingDocuments\")}:${Utilities.getHttpResponseMessage(error)}`,\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.Error\")\r\n );\r\n if (closeDialog) this.selectorService.submitted$.next(false);\r\n }\r\n );\r\n }\r\n deleteAccVoucher(gridFilter: GridFilter[], apiName: string) {\r\n this.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.DeletingAccountingDocument\"));\r\n this.httpCommonService\r\n .create(this.apiName + \"/\" + apiName, gridFilter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.splashFormService.closeLoading();\r\n this._tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showDialog(this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.DocumentsDeletedSuccessfully\"), \"\");\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.ErrorDeletingDocuments\")}:${Utilities.getHttpResponseMessage(\r\n error\r\n )}`,\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.Error\")\r\n );\r\n }\r\n );\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: CashierSettlementModel, onRowsSelected: CashierSettlementModel[], gridFilter: GridFilter[]) {\r\n if (onRowSelected && (!onRowsSelected || onRowsSelected.length <= 0)) onRowsSelected = [onRowSelected];\r\n let CasheirSettlementIds: number[] = [];\r\n ///صدور اسناد\r\n if (\r\n action.name === \"CreateAccVoucher\" ||\r\n action.name === \"DeleteAccVoucher\" ||\r\n action.name === \"CreateTrsVoucher\" ||\r\n action.name === \"DeleteTrsVoucher\"\r\n ) {\r\n if (onRowSelected) CasheirSettlementIds.push(onRowSelected.Id);\r\n if (onRowsSelected && onRowsSelected.length > 0) {\r\n onRowsSelected.forEach((x) => {\r\n if (x && x.Id) CasheirSettlementIds.push(x.Id);\r\n });\r\n }\r\n if (CasheirSettlementIds && CasheirSettlementIds.length > 0)\r\n gridFilter.push({\r\n Type: \"F\",\r\n Filed: \"CasheirSettlementIds\",\r\n Value: CasheirSettlementIds,\r\n Logic: \"and\",\r\n Operator: \"eq\",\r\n Skip: 0,\r\n Take: 0,\r\n });\r\n\r\n if (action.name === \"CreateAccVoucher\") {\r\n if (gridFilter.length <= 0) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.UnselectedOrSelectedDocumentsAccountingDocuments\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.Error\")\r\n );\r\n return;\r\n }\r\n const confirmValue: Subject = new Subject();\r\n const subscription = confirmValue.pipe(filter((x) => !!x)).subscribe((value) => {\r\n value[\"FiscalYearId\"] = this.accountService.authService.currentFiscalYear.Id;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.HasIssuingAcountingDocument\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.IssuanceDocument\"),\r\n DialogType.confirm,\r\n () => this.createAccVoucher(value, \"CreateAccountingVoucher\", value.closeDialog, subscription),\r\n () => this.selectorService.submitted$.next(false)\r\n );\r\n });\r\n }\r\n if (action.name === \"CreateTrsVoucher\") {\r\n if (gridFilter.length <= 0) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.UnselectedOrSelectedDocumentsIssuedReceiptAndPaymentDocuments\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.Error\")\r\n );\r\n return;\r\n }\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.HasIssuanceReceiptAndPaymentDocument\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.IssuanceDocument\"),\r\n DialogType.confirm,\r\n () => this.createAccVoucher(gridFilter, action.name)\r\n );\r\n }\r\n if (action.name === \"DeleteAccVoucher\") {\r\n if (gridFilter.length <= 0) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.UnselectedOrSelectedDocumentsDeleted\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.Error\")\r\n );\r\n return;\r\n }\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.HasDeleteAccountingDocument\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.DeleteDocument\"),\r\n DialogType.confirm,\r\n () => this.deleteAccVoucher(gridFilter, action.name)\r\n );\r\n }\r\n if (action.name === \"DeleteTrsVoucher\") {\r\n if (gridFilter.length <= 0) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.UnselectedOrSelectedDocumentsDeleted\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.Error\")\r\n );\r\n return;\r\n }\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.HasDeleteReceiptAndPaymentDocument\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.DeleteDocument\"),\r\n DialogType.confirm,\r\n () => this.deleteAccVoucher(gridFilter, action.name)\r\n );\r\n }\r\n }\r\n return;\r\n }\r\n fillData() {}\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"CreateTrsVoucher\",\r\n disabled: false,\r\n displayName: this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.ReceiptAndPaymentDocument\"),\r\n iconName: \"icon-payments-o\",\r\n apiName: \"CashierSettlemet/CreateTrsVoucher\",\r\n areaName: this.areaName,\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"DeleteTRsVoucher\",\r\n disabled: false,\r\n displayName: this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.RemoveReceiptAndPaymentDocument\"),\r\n iconName: \"icon-star_border-o\",\r\n apiName: \"RestaurantSale/DeleteTrsVoucher\",\r\n areaName: this.areaName,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n\r\n onRowSelected(cashier: CashierSettlementModel) {\r\n if (cashier.Id != null) {\r\n if (cashier.AccFixNo != null && cashier.AccVoucherId != null && !this.actions.some((x) => x.name == \"DeleteAccVoucher\")) {\r\n this.actions.push({\r\n name: \"DeleteAccVoucher\",\r\n disabled: false,\r\n displayName: this.translate(\"ClientApp.FrontOffice.Financial.CashierSettlement.DeleteAccountingDocument\"),\r\n iconName: \"icon-canceldocument\",\r\n apiName: \"CashierSettlemet/DeleteAccVoucher\",\r\n areaName: this.areaName,\r\n permission: Permission.samePermission,\r\n });\r\n this.actions = [...[], ...this.actions];\r\n }\r\n console.log(this.actions);\r\n\r\n this.cd.markForCheck();\r\n } else {\r\n var index = this.actions.findIndex((x) => x.name == \"DeleteAccVoucher\");\r\n if (index > -1) this.actions.splice(index, 1);\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","// my-menu.component.ts\r\nimport { ChangeDetectionStrategy, Component, EventEmitter, Output } from \"@angular/core\";\r\nimport { MenuPackage } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu-injector\";\r\nimport { ContextMenuService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu.service\";\r\nimport { MenuComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/menu.component\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { AccountService, LocalStoreManager, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { DriversettlementsettingFormComponent } from \"./driversettlementsetting-form/driversettlementsetting-form.component\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"simple-menu\",\r\n // add your menu html\r\n template: `\r\n \r\n {{ \"ClientApp.FrontOffice.Financial.DriverSettlement.Settings\" | translate }}\r\n \r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DriverSettlementMenuComponent extends MenuComponent {\r\n // this module does not have animations, set lazy false\r\n lazy = false;\r\n @Output() hasActiveItem = new EventEmitter();\r\n constructor(\r\n public menuPackage: MenuPackage,\r\n public contextMenuService: ContextMenuService,\r\n public dialogService: SimpleModalService,\r\n public accountService: AccountService,\r\n public common: CommonService,\r\n private storage: LocalStoreManager,\r\n protected sts: ShowToastrService,\r\n private translate: TranslateService\r\n ) {\r\n super(menuPackage, contextMenuService);\r\n // grab any required menu context passed via menuContext input\r\n }\r\n\r\n async handleClick(value: any) {\r\n this.contextMenuService.closeAll();\r\n if (!value && !this.accountService.userHasPermission(`General:DriverSettlementFormSetting`, Permission.createPermission)) {\r\n this.sts.showToast(\"danger\", \"\", this.translate.instant(\"ClientApp.FrontOffice.Financial.DriverSettlement.NotAccessThisArea\"));\r\n return;\r\n }\r\n if (value && !this.accountService.userHasPermission(`General:DriverSettlementFormSetting`, Permission.editPermission)) {\r\n this.sts.showToast(\"danger\", \"\", this.translate.instant(\"ClientApp.FrontOffice.Financial.DriverSettlement.NotAccessThisArea\"));\r\n return;\r\n }\r\n this.contextMenuService.closeAll();\r\n\r\n await this.common.getFormSetting(\"DriverSettlementFormSetting\").then(\r\n (onfulfilled) => {\r\n value = this.common.storage.getData(ClearableCache.FormSetting);\r\n this.dialogService\r\n .open(DriversettlementsettingFormComponent, { currentrow: value }, { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false })\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n if (model) this.storage.savePermanentData(model, ClearableCache.FormSetting);\r\n });\r\n },\r\n (onrejected) => {}\r\n );\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { LocalStoreManager, LookupService, ShowToastrService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { ReceiptPaymentModel, ReceiptPaymentTypeEnum } from \"src/app/frontoffice/order/model/receiptpayment.model\";\r\nimport { Invoice } from \"../../../order/model/invoice.model\";\r\nimport { DriverLookup, DriverSettlementModel, SettlementDateViewModel } from \"../../model/usersettlement.model\";\r\nimport { SettlementInvoiceModel } from \"../../model/settlementinvoice.model\";\r\nimport { InvoicesModalComponent } from \"../invoicesmodal/invoicesmodal.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SettlementReadInvoiceEnum, SettlementReadInvoiceModel } from \"../../model/settlementreadinvoice.model\";\r\nimport { SplashFormService } from \"../../../../../../projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { SimpleMenuComponent } from \"../cashiersettlement-form/settlementsettingmenu\";\r\nimport { SettlementFormSettingModel } from \"../cashiersettlement-form/settlementformsetting/settlementformsetting.model\";\r\nimport { ShippingCostReducedKind } from \"src/app/gnr/branch/branch.enum\";\r\nimport { CostSpentFormSettingModel } from \"src/app/frontoffice/cost/spentcost/costspentformsetting.model\";\r\nimport { DriverSettlementFormSettingModel } from \"../driversettlementformsetting.model\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { DriversettlementsettingFormComponent } from \"../driversettlementsetting-form/driversettlementsetting-form.component\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { PaymentMethodType } from \"../../model/payment-method.enum\";\r\n\r\n@Component({\r\n selector: \"driversettlement-form.component\",\r\n templateUrl: \"./driversettlement-form.component.html\",\r\n styleUrls: [\"./driversettlement-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DriverSettlementFormComponent extends BaseFormComponent {\r\n userLookup: Lookup[];\r\n PaymentMethod: Lookup[];\r\n deactivateSave: boolean;\r\n menu = SimpleMenuComponent;\r\n formsetting: SettlementFormSettingModel;\r\n RowState: typeof RowState = RowState;\r\n invoice: Invoice[];\r\n showDetail: boolean;\r\n costSpentFormSettingModel: CostSpentFormSettingModel = new CostSpentFormSettingModel();\r\n SettlementEnum: typeof SettlementReadInvoiceEnum = SettlementReadInvoiceEnum;\r\n PaymentMethodType: typeof PaymentMethodType = PaymentMethodType;\r\n receiptPaymentType: Lookup[];\r\n hasAccountingModule: boolean;\r\n ShippingCostReducedKindCode: number;\r\n hasDetailLedger: boolean;\r\n confirmDialog: boolean = false;\r\n receiveId: number;\r\n constructor(\r\n sts: ShowToastrService,\r\n private lookupService: LookupService,\r\n private storage: LocalStoreManager,\r\n private datatransfer: Datatransfer,\r\n __id: FormContainerModel,\r\n private _tabsservice: TabularService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n public splashFormService: SplashFormService,\r\n private lookupservice: LookupService\r\n ) {\r\n super(selectorService, cd);\r\n this.currentrow = this.datatransfer?.currentrow;\r\n this.apiName = \"DriverSettlement\";\r\n this.label = this.datatransfer?.label;\r\n this.areaName = this.datatransfer?.areaName;\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n this.hasAccountingModule =\r\n this.accountService.authService.currentInformation().AccountingKind === SoftWareLicenseKind.AccountingAdvancedWeb ||\r\n this.accountService.authService.currentInformation().AccountingKind === SoftWareLicenseKind.AccountingToAdvancedWeb ||\r\n this.accountService.authService.currentInformation().AccountingKind === SoftWareLicenseKind.AccountingWeb;\r\n }\r\n async ngOnInit() {\r\n super.ngOnInit();\r\n this.FillData();\r\n }\r\n addControl() {\r\n this.setValue(\"UntilDate\", this.model.UntilDate);\r\n this.setValue(\"UntilTime\", this.model.UntilTime);\r\n this.setValue(\"SettledPersonnelId\", this.model.SettledPersonnelId);\r\n this.setValue(\"PayableTotal\", this.model.PayableTotal);\r\n this.setValue(\"CourierShippingCost\", this.model.CourierShippingCost);\r\n this.setValue(\"ShippingCost\", this.model.ShippingCost);\r\n this.setValue(\"PayableWithCourierShippingCost\", this.model.PayableWithCourierShippingCost);\r\n this.setValue(\"PayableWithShippingCost\", this.model.PayableWithShippingCost);\r\n this.setValue(\"TerminalNumber\", this.model.TerminalNumber);\r\n this.setValue(\"OnlinePayment\", this.model.OnlinePayment);\r\n this.setValue(\"PaymentLink\", this.model.PaymentLink);\r\n this.setValue(\"Credit\", this.model.InvoiceCredit);\r\n this.setValue(\"Description\", this.model.Description, false);\r\n this.setValue(\"Debit\", this.model.InvoiceDebit);\r\n this.setValue(\"Remain\", this.model.Remain);\r\n this.setValue(\"NewRemainValue\", this.model.NewRemainValue);\r\n this.setValue(\"PaymentMethodTitle\", this.model.PaymentMethodTitle);\r\n this.setValue(\"ReceiptPaymentTypeTitle\", this.model.ReceiptPaymentTypeTitle);\r\n this.setValue(\"Amount\", this.model.Amount);\r\n this.setValue(\"OldRemain\", this.model.OldRemain);\r\n this.setValue(\"TotalPayment\", this.model.TotalPayment);\r\n this.setValue(\"TotalDeposit\", this.model.TotalDeposit);\r\n this.setValue(\"AllowedDeficit\", this.model.AllowedDeficit);\r\n this.setValue(\"ShippingCostReducePrice\", this.model.ShippingCostReducePrice);\r\n\r\n if (this.model.ReceiptPayments && this.model.ReceiptPayments.length > 0) {\r\n this.model.ReceiptPayments.forEach((receipt, i) => {\r\n if (receipt.ReceiptPaymentTypeTitle) {\r\n this.setValue(\"ReceiptPaymentTypeTitle\" + i, receipt.ReceiptPaymentTypeTitle);\r\n }\r\n if (receipt.PaymentMethodTitle) {\r\n this.setValue(\"PaymentMethodTitle\" + i, receipt.PaymentMethodTitle);\r\n }\r\n if (receipt.Amount) {\r\n this.setValue(\"Amount\" + i, receipt.Amount);\r\n }\r\n\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n this.FillFormSetting();\r\n this.cd.markForCheck();\r\n }\r\n async FillFormSetting() {\r\n const ShippingCostReducedKindId = this.accountService.authService.currentBranch.ShippingCostReducedKindId;\r\n if (ShippingCostReducedKindId) this.ShippingCostReducedKindCode = this.lookupservice.getLookupbyId(ShippingCostReducedKindId).Code;\r\n if (\r\n this.ShippingCostReducedKindCode &&\r\n (this.ShippingCostReducedKindCode == ShippingCostReducedKind.CourierShippingCost ||\r\n this.ShippingCostReducedKindCode == ShippingCostReducedKind.ShippingCost)\r\n ) {\r\n let driverSettlementFormSettingModel = new DriverSettlementFormSettingModel();\r\n let result = await this.httpCommonService.getList(\"DriverSettlementFormSetting\").pipe(take(1)).toPromise();\r\n if (result && this.model) {\r\n this.storage.savePermanentData(result[0], ClearableCache.FormSetting);\r\n driverSettlementFormSettingModel = this.storage.getData(ClearableCache.FormSetting);\r\n this.model.DriverSettlementFormSettingModel = driverSettlementFormSettingModel;\r\n }\r\n }\r\n if (this.hasAccountingModule) {\r\n this.costSpentFormSettingModel = this.storage.getData(ClearableCache.FormSetting);\r\n if (!this.costSpentFormSettingModel) {\r\n let result = await this.httpCommonService.getList(\"CostSpentFormSetting\").pipe(takeUntil(this.ngUnsubscribe)).toPromise();\r\n if (result) {\r\n this.storage.savePermanentData(result[0], ClearableCache.FormSetting);\r\n this.costSpentFormSettingModel = this.storage.getData(ClearableCache.FormSetting);\r\n }\r\n }\r\n this.model.CostSpentFormSettingViewModel = this.costSpentFormSettingModel;\r\n if (this.model.CostSpentFormSettingViewModel?.Subledger) {\r\n this.httpCommonService\r\n .getItem(\"SubLedger/HasDetailLedger\", this.model.CostSpentFormSettingViewModel.Subledger)\r\n .pipe(take(1))\r\n .subscribe((x: boolean) => {\r\n this.hasDetailLedger = x;\r\n });\r\n }\r\n }\r\n }\r\n FillData() {\r\n this.httpCommonService\r\n .getList(\"SettlementFormSetting\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((result: any[]) => {\r\n if (result?.length > 0) {\r\n this.formsetting = result[0];\r\n this.storage.savePermanentData(result[0], \"SettlementFormSetting\");\r\n }\r\n });\r\n this.deactivateSave = true;\r\n if (!this.currentrow)\r\n this.httpCommonService\r\n .get(\"Invoice/HasUnAssignmentInvoice\")\r\n .pipe(take(1))\r\n .subscribe((data: boolean) => {\r\n if (data) {\r\n if (!this.confirmDialog) {\r\n this.sts.showDialog(this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.HaveUnassignedInvoice\"), \"\");\r\n this.confirmDialog = true;\r\n }\r\n }\r\n this.getCurrentDate();\r\n this.getUserLookup();\r\n // گرفتن نوع پرداخت\r\n this.getPaymentMethod();\r\n this.getReceiptPaymentType();\r\n });\r\n else {\r\n this.getUserLookup();\r\n }\r\n }\r\n\r\n getReceiptPaymentType() {\r\n this.lookupService\r\n .getLookupbyCategory(\"SALE\", \"ReceiptPaymentType\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: Lookup[]) => {\r\n this.receiptPaymentType = data.sort((a, b) => a.Code - b.Code);\r\n this.receiveId = data.find((x) => x.Code == ReceiptPaymentTypeEnum.Receipt).Id;\r\n });\r\n }\r\n\r\n checkIsPosPayment(model: any, index: number) {\r\n this.cd.markForCheck();\r\n this.checkValidation();\r\n }\r\n\r\n getCurrentDate() {\r\n this.httpCommonService\r\n .getList(\"DriverSettlement/GetCurrentDate\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: SettlementDateViewModel) => {\r\n this.setValue(\"UntilDate\", data.UntilDate);\r\n this.setValue(\"UntilTime\", data.UntilTime);\r\n this.cd.markForCheck();\r\n });\r\n }\r\n setdefault() {}\r\n getUserLookup() {\r\n this.httpCommonService\r\n .getList(\"Personnel/ReadUserLookupItems/true\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: any[]) => {\r\n this.userLookup = data.map((item) => ({\r\n Id: item.Id,\r\n Title: item.Title,\r\n PersonnelId: item.PersonnelId,\r\n TerminalNumber: item.TerminalNumber,\r\n })) as DriverLookup[];\r\n\r\n this.setValue(\"SettledPersonnelId\", this.model.SettledPersonnelId);\r\n\r\n if (this.userLookup && this.userLookup.length === 1) {\r\n this.setValue(\"SettledPersonnelId\", this.userLookup[0].Id);\r\n }\r\n });\r\n }\r\n getPaymentMethod() {\r\n this.httpCommonService\r\n .getList(\"PaymentMethod/PaymentMethodLookUp\" + \"/\" + this.accountService.authService.currentBranchId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: Lookup[]) => {\r\n if (data) {\r\n this.PaymentMethod = data;\r\n }\r\n });\r\n }\r\n // برای بایند کردن نام در سند html\r\n controlName(name: string, index: number): string {\r\n return name + index;\r\n }\r\n changeUser() {}\r\n receiveInformation() {\r\n this.showDetail = false;\r\n this.deactivateSave = true;\r\n this.setdefault();\r\n if (!this.formGroup.controls[\"SettledPersonnelId\"].value) {\r\n this.sts.showToast(\"danger\", \"\", `${this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.CourierNotArrived\")}`);\r\n return;\r\n }\r\n this.splashFormService.openDialog();\r\n this.model.SettledPersonnelId = this.formGroup.value.SettledPersonnelId;\r\n this.model.UntilDate = this.formGroup.value.UntilDate;\r\n this.model.UntilTime = this.formGroup.value.UntilTime;\r\n this.model.BranchId = this.accountService.authService.currentBranchId;\r\n\r\n this.httpCommonService\r\n .create(\"DriverSettlement/DriverSettlement\", this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: DriverSettlementModel) => {\r\n this.model = data;\r\n this.showDetail = true;\r\n this.deactivateSave = false;\r\n this.addControl();\r\n this.addGroup();\r\n this.splashFormService.closeLoading();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\r\n `${Utilities.getHttpResponseMessage(error)}`,\r\n this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.Attention\")\r\n );\r\n }\r\n );\r\n }\r\n openInvoicesModal(invoicekind?: number) {\r\n let ReadInvoiceModel = new SettlementReadInvoiceModel();\r\n ReadInvoiceModel.UntilDate = this.formGroup.value.UntilDate;\r\n ReadInvoiceModel.Status = SettlementReadInvoiceEnum.Delivery;\r\n ReadInvoiceModel.SettledUserlId = this.formGroup.value.SettledPersonnelId.Id;\r\n ReadInvoiceModel.UntilTime = this.formGroup.value.UntilTime;\r\n ReadInvoiceModel.InvoiceIds = this.model.InvoiceIds;\r\n if (invoicekind === SettlementReadInvoiceEnum.Debit) {\r\n ReadInvoiceModel.InvoiceIds = this.model.DebitInvoiceIds;\r\n }\r\n if (invoicekind === SettlementReadInvoiceEnum.Credit) {\r\n ReadInvoiceModel.InvoiceIds = this.model.CreditInvoiceIds;\r\n }\r\n if (invoicekind === SettlementReadInvoiceEnum.DriverShippingCostReduced) {\r\n ReadInvoiceModel.InvoiceIds = this.model.DriverShippingCostReducedIds;\r\n }\r\n if (invoicekind === SettlementReadInvoiceEnum.PaymentLink) {\r\n ReadInvoiceModel.InvoiceIds = this.model.PaymentLinkIds;\r\n }\r\n if (invoicekind === SettlementReadInvoiceEnum.OnlinePayment) {\r\n ReadInvoiceModel.InvoiceIds = this.model.OnlinePaymentIds;\r\n }\r\n if (!ReadInvoiceModel.InvoiceIds || ReadInvoiceModel.InvoiceIds.length === 0) return;\r\n this.dialogService\r\n .open(\r\n InvoicesModalComponent,\r\n {\r\n ReadInvoiceModel: ReadInvoiceModel,\r\n defaultFilters: [],\r\n },\r\n {\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {}),\r\n 500;\r\n }\r\n removePayment(index: number) {\r\n const findIndex = this.model.ReceiptPayments.findIndex((f) => f.Index === index);\r\n this.model.ReceiptPayments.splice(findIndex, 1);\r\n this.formGroup.removeControl(`PaymentMethodId${index}`);\r\n this.formGroup.removeControl(`receivedmoney${index}`);\r\n this.calculate();\r\n }\r\n\r\n calculate() {\r\n this.model.TotalReciptPayment = 0;\r\n this.model.AllowedDeficit = 0;\r\n let isPosPaymentMethod = null;\r\n const selectedPersonnelId = this.formGroup.controls[\"SettledPersonnelId\"].value;\r\n const selectedPersonnel = this.userLookup.find((user) => (user as DriverLookup).PersonnelId === selectedPersonnelId) as DriverLookup;\r\n\r\n const hasTerminalNumber = !!selectedPersonnel?.TerminalNumber;\r\n if (hasTerminalNumber) {\r\n this.model.TerminalNumber = selectedPersonnel?.TerminalNumber;\r\n this.setValue(\"TerminalNumber\", selectedPersonnel?.TerminalNumber || \"\");\r\n }\r\n\r\n for (let index = 0; index < this.model.ReceiptPayments?.length; index++) {\r\n const i = this.model.ReceiptPayments[index].Index;\r\n const money = this.formGroup.controls[`receivedmoney${i}`];\r\n const paymentMethodId = this.formGroup.controls[`PaymentMethodId${i}`]?.value;\r\n if (money?.value) {\r\n const receiptPaymentId = this.formGroup.controls[`ReceiptPaymentTypeId${i}`].value;\r\n const isPayment = this.receiptPaymentType.find((x) => x.Id === receiptPaymentId)?.Code === ReceiptPaymentTypeEnum.Payment;\r\n\r\n if (isPayment) {\r\n this.model.TotalReciptPayment -= Number(money.value);\r\n } else {\r\n this.model.TotalReciptPayment += Number(money.value);\r\n }\r\n }\r\n const selectedPaymentMethod = this.model.ReceiptPayments[index].PaymentMethod.find((pm) => pm.Id === paymentMethodId);\r\n isPosPaymentMethod = selectedPaymentMethod?.PaymentMethodCode === PaymentMethodType.Pos;\r\n this.model.ReceiptPayments[index].PaymentMethodCode = selectedPaymentMethod.PaymentMethodCode;\r\n this.model.ReceiptPayments[index].hasTerminal = hasTerminalNumber && isPosPaymentMethod;\r\n }\r\n this.model.AllowedDeficit = Number(this.formGroup.controls[`AllowedDeficit`].value);\r\n this.model.Remain = this.model.TotalPayment - (this.model.TotalReciptPayment ? this.model.TotalReciptPayment : 0) - this.model.AllowedDeficit;\r\n this.setValue(\"Remain\", this.model.Remain);\r\n this.checkValidation();\r\n }\r\n\r\n //اضافه کردن به فرم گروپ\r\n addGroup() {\r\n if (!this.model.ReceiptPayments || this.model.ReceiptPayments.length <= 0) {\r\n const ReceiptModel = new ReceiptPaymentModel();\r\n const index = Math.floor(Math.random() * 10000000);\r\n ReceiptModel.ReceiptPaymentType = JSON.parse(JSON.stringify(this.receiptPaymentType));\r\n ReceiptModel.PaymentMethod = JSON.parse(JSON.stringify(this.PaymentMethod));\r\n ReceiptModel.Index = index;\r\n if (!this.model.ReceiptPayments) this.model.ReceiptPayments = [];\r\n this.model.ReceiptPayments.push(ReceiptModel);\r\n this.setValue(`PaymentMethodId${index}`, this.PaymentMethod[0].Id, true);\r\n this.setValue(`ReceiptPaymentTypeId${index}`, this.receiptPaymentType[1].Id, true);\r\n this.setValue(`receivedmoney${index}`, this.model.TotalPayment, true);\r\n } else {\r\n if (this.model.ReceiptPayments && this.model.ReceiptPayments.length > 0 && !this.formGroup) {\r\n for (let i = 0; i < this.model.ReceiptPayments.length; i++) {\r\n const index = Math.floor(Math.random() * 10000000);\r\n this.model.ReceiptPayments[i].Index = index;\r\n this.setValue(`PaymentMethodId${index}`, this.model.ReceiptPayments[i].PaymentMethodId, true);\r\n this.setValue(`ReceiptPaymentTypeId${index}`, this.model.ReceiptPayments[i].ReceiptPaymentTypeId, true);\r\n this.setValue(`receivedmoney${index}`, this.model.ReceiptPayments[i].Amount, true);\r\n if (this.model.ReceiptPayments[i].PaymentMethod.length === 1) this.setValue(`PaymentMethodId${index}`, this.PaymentMethod[0].Id, true);\r\n }\r\n } else {\r\n if (this.model.ReceiptPayments && this.model.ReceiptPayments.length > 0) {\r\n const index = this.model.ReceiptPayments.length - 1;\r\n const i = Math.floor(Math.random() * 10000000);\r\n this.setValue(`PaymentMethodId${i}`, this.PaymentMethod[0].Id, true);\r\n this.setValue(`ReceiptPaymentTypeId${i}`, this.receiptPaymentType[1].Id, true);\r\n this.setValue(`receivedmoney${i}`, this.model.ReceiptPayments[index].Amount, true);\r\n this.model.ReceiptPayments[index].State = RowState.New;\r\n this.model.ReceiptPayments[index].Index = i;\r\n if (this.model.ReceiptPayments[index].PaymentMethod.length === 1) this.setValue(`PaymentMethodId${i}`, this.PaymentMethod[0].Id, true);\r\n else {\r\n if (this.model.ReceiptPayments[index].PaymentMethodId) {\r\n this.setValue(`PaymentMethodId${i}`, this.model.ReceiptPayments[index].PaymentMethodId, true);\r\n this.setValue(`ReceiptPaymentTypeId${i}`, this.model.ReceiptPayments[index].ReceiptPaymentTypeId, true);\r\n this.setValue(`receivedmoney${i}`, this.model.ReceiptPayments[index].Amount, true);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.checkValidation();\r\n this.calculate();\r\n }\r\n // فعال کردن دکمه تسویه\r\n checkValidation() {\r\n const controls = this.formGroup.controls;\r\n const debit = controls[\"Debit\"].value || 0;\r\n const credit = controls[\"Credit\"].value || 0;\r\n const paymentLink = controls[\"PaymentLink\"].value || 0;\r\n const totalDeposit = controls[\"TotalDeposit\"].value || 0;\r\n const onlinePayment = controls[\"OnlinePayment\"].value || 0;\r\n const totalPayment = controls[\"TotalPayment\"].value || 0;\r\n const payableTotal = controls[\"PayableTotal\"].value || 0;\r\n const allowedDeficit = controls[\"AllowedDeficit\"].value || 0;\r\n const combinedPayment = debit + credit + paymentLink + totalDeposit + onlinePayment;\r\n if (\r\n (this.formGroup?.valid && totalPayment > 0 && (this.model.ReceiptPayments.length > 0 || allowedDeficit > 0)) ||\r\n (this.formGroup?.valid && totalPayment > 0 && payableTotal === totalPayment) ||\r\n (this.formGroup?.valid && debit > 0 && payableTotal === debit) ||\r\n (this.formGroup?.valid && combinedPayment > 0 && payableTotal === combinedPayment)\r\n ) {\r\n this.deactivateSave = false;\r\n } else {\r\n this.deactivateSave = true;\r\n // this.isSaved = false;\r\n }\r\n }\r\n clear(value: any) {\r\n if (value === 0) {\r\n this.formGroup.controls[`receivedmoney`].setValue(0);\r\n this.calculate();\r\n }\r\n if (value === 1) {\r\n this.formGroup.controls[`AllowedDeficit`].setValue(0);\r\n this.calculate();\r\n }\r\n }\r\n addPayment() {\r\n const SettlementDetail = new ReceiptPaymentModel();\r\n const index = Math.floor(Math.random() * 10000000);\r\n SettlementDetail.ReceiptPaymentType = JSON.parse(JSON.stringify(this.receiptPaymentType));\r\n SettlementDetail.PaymentMethod = JSON.parse(JSON.stringify(this.PaymentMethod));\r\n SettlementDetail.Index = index;\r\n this.model.ReceiptPayments.push(SettlementDetail);\r\n this.addGroup();\r\n }\r\n async saveSettlement(model: DriverSettlementModel) {\r\n this.splashFormService.openDialog();\r\n if (!this.model.FiscalYearId && this.accountService.authService.currentFiscalYear)\r\n this.model.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n this.model.Invoices = [];\r\n //this.model.ReceiptPayments = [];\r\n this.model.Invoice.forEach((element) => {\r\n const set = new SettlementInvoiceModel();\r\n set.InvoiceId = element.Id;\r\n this.model.Invoices.push(set);\r\n });\r\n for (let index = 0; index < this.model.ReceiptPayments.length; index++) {\r\n const i = this.model.ReceiptPayments[index].Index;\r\n this.model.ReceiptPayments[index].PaymentMethodId = this.formGroup.controls[`PaymentMethodId${i}`].value;\r\n this.model.ReceiptPayments[index].Amount = this.formGroup.controls[`receivedmoney${i}`].value;\r\n this.model.ReceiptPayments[index].ReceiptPaymentTypeId = this.formGroup.controls[`ReceiptPaymentTypeId${i}`].value;\r\n this.model.ReceiptPayments[index].BranchId = this.accountService.authService.currentBranchId;\r\n }\r\n /// \r\n /// برای معماری قبلی بود که الان احتیاجی بهش نداریم\r\n //if (this.formGroup.controls[`Remain`].value > 0) {\r\n // const SettlementDetail = new ReceiptPaymentModel();\r\n // SettlementDetail.IsRemain = true;\r\n // SettlementDetail.Amount = - Number(this.formGroup.controls[`Remain`].value);\r\n // this.model.ReceiptPayments.push(SettlementDetail);\r\n //}\r\n this.model.ReceiptPayments = JSON.parse(JSON.stringify(this.model.ReceiptPayments));\r\n this.sts.showToast(\"info\", \"\", this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.SavingChanges\"));\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n this.model.TotalPayment = this.formGroup.controls[\"TotalPayment\"].value;\r\n this.model.PayableTotalPrice = this.model.PayableTotal;\r\n this.model.Description = this.formGroup.controls[\"Description\"].value;\r\n this.model.DriverFirstNameTitle = this.userLookup?.find((f) => f.Id === this.formGroup.controls[\"SettledPersonnelId\"].value)?.Title;\r\n this.model.DriverLastNameTitle = this.userLookup?.find((f) => f.Id === this.formGroup.controls[\"SettledPersonnelId\"].value)?.Title;\r\n this.httpCommonService\r\n .create(\"DriverSettlement\", this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n data;\r\n this.splashFormService.closeLoading();\r\n this.close();\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showToast(\"danger\", \"\", `${Utilities.getHttpResponseMessage(error)}`);\r\n }\r\n );\r\n this.isClosing = false;\r\n this.submitted = true;\r\n // this._tabsservice.tabItemonRefreshData.next('DriverSettlement');\r\n // this.model.Invoice = JSON.parse(JSON.stringify(this.invoice));\r\n this.sts.showToast(\r\n \"success\",\r\n this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.successful\"),\r\n `${this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.InformationChanges\")} ${this.label} ${this.translate(\r\n \"ClientApp.FrontOffice.Financial.DriverSettlement.SavedSuccessfully\"\r\n )} `\r\n );\r\n this.result = true;\r\n }\r\n async save() {\r\n const ShippingCostReducedKindId = this.accountService.authService.currentBranch.ShippingCostReducedKindId;\r\n if (ShippingCostReducedKindId) this.ShippingCostReducedKindCode = this.lookupservice.getLookupbyId(ShippingCostReducedKindId).Code;\r\n if (this.model.TerminalNumber) {\r\n this.model.TerminalNumber = this.formGroup.controls[\"TerminalNumber\"].value;\r\n }\r\n if (\r\n this.ShippingCostReducedKindCode != ShippingCostReducedKind.NoReduced &&\r\n this.model.CostSpentFormSettingViewModel &&\r\n this.hasAccountingModule &&\r\n !this.model.CostSpentFormSettingViewModel.Subledger &&\r\n !this.model.CostSpentFormSettingViewModel.DetailLedger\r\n ) {\r\n this.sts.showDialog(this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.SelectPreferenceInSpendingCost\"), \"\");\r\n this.close();\r\n return;\r\n }\r\n if (\r\n this.model.CostSpentFormSettingViewModel &&\r\n this.hasAccountingModule &&\r\n this.model.CostSpentFormSettingViewModel.Subledger &&\r\n !this.model.CostSpentFormSettingViewModel.DetailLedger &&\r\n this.hasDetailLedger\r\n ) {\r\n this.sts.showDialog(this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.SelectPaymentPreference\"), \"\");\r\n this.close();\r\n return;\r\n }\r\n if (this.model.DriverSettlementFormSettingModel?.CostGroupId && !this.model.DriverSettlementFormSettingModel?.CostId) {\r\n this.dialogService\r\n .open(\r\n DriversettlementsettingFormComponent,\r\n { currentrow: this.model.DriverSettlementFormSettingModel, hasDefaultCostId: false },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n closeOnEscape: false,\r\n }\r\n )\r\n .subscribe((model: any) => {\r\n if (model?.CostId) {\r\n this.model.DriverSettlementFormSettingModel.CostId = model.CostId;\r\n this.model.DriverSettlementFormSettingModel.CostGroupId = model.CostGroupId;\r\n this.model.DriverSettlementFormSettingModel.DeductionForSettlement = model.DeductionForSettlement;\r\n this.saveSettlement(this.model);\r\n } else this.sts.showToast(\"danger\", this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.SelectFeeFirst\"));\r\n return;\r\n });\r\n } else {\r\n this.saveSettlement(this.model);\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Financial.DriverSettlement.ReceiveInformation\" | translate }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n {{ \"ClientApp.FrontOffice.Financial.DriverSettlement.NewRecive\" | translate }} +\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { UserSettlementModel } from \"../../model/usersettlement.model\";\r\nimport { DriverSettlementFormComponent } from \"../driversettlement-form/driversettlement-form.component\";\r\nimport { GridFilter, LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { DriverSettlementMenuComponent } from \"../driverSettlementSetting\";\r\nimport { DriverSettlementFormSettingModel } from \"../driversettlementformsetting.model\";\r\nimport { Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\n\r\n@Component({\r\n selector: \"ngx-driversettlement-list.component\",\r\n templateUrl: \"./driversettlement-list.component.html\",\r\n styleUrls: [\"./driversettlement-list.component.scss\"],\r\n})\r\nexport class DriverSettlementListComponent extends BaseListComponent {\r\n menu = DriverSettlementMenuComponent;\r\n driverSettlementformsetting: DriverSettlementFormSettingModel;\r\n settlementList: UserSettlementModel[];\r\n unSortableFilterable: string[] = [];\r\n formVisible: boolean = true;\r\n protected storage: LocalStoreManager;\r\n filters: GridFilter[] = [\r\n {\r\n Filed: \"Code\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"desc\",\r\n Type: \"S\",\r\n },\r\n ];\r\n constructor() {\r\n super();\r\n this.inputEditorform = DriverSettlementFormComponent;\r\n if (!this.accountService.userHasPermission(`General:DriverSettlementFormSetting`, Permission.viewPermission)) {\r\n this.sts.showToast(\"danger\", \"\", this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.DoNotHaveAccessSection\"));\r\n this.formVisible = false;\r\n }\r\n }\r\n ngOnInit() {\r\n this.apiName = \"DriverSettlement\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.ReceiveByCourier\");\r\n if (\r\n (this.accountService.authService.currentInformation().BranchingAdvancedEnabled ||\r\n this.accountService.authService.currentInformation().BranchingLightEnabled ||\r\n this.accountService.authService.currentInformation().RestaurantCallCenter) &&\r\n !this.accountService.authService.currentBranch?.AccessToAllBranches\r\n ) {\r\n this.filters.push({\r\n Filed: \"BranchId\",\r\n Value: this.accountService.authService.currentBranchId,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n });\r\n }\r\n const columnsToExclude = [\"TotalReceipt\", \"TotalPay\", \"NewRemainValue\"];\r\n\r\n this.unSortableFilterable.push(...columnsToExclude);\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n\r\nexport class DriverSettlementFormSettingModel extends EntityBase {\r\n public CostId :number;\r\n public CostGroupId : number;\r\n public DeductionForSettlement : boolean;\r\n constructor(){\r\n super();\r\n this.CostGroupId = 0;\r\n this.CostId = 0;\r\n this.DeductionForSettlement = false;\r\n }\r\n}","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormSettingModel } from \"projects/sepidz-web-framework/src/lib/models/formsettingmodel\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { DriverSettlementFormSettingModel } from \"../driversettlementformsetting.model\";\r\nimport { LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { Cost } from \"src/app/frontoffice/cost/model/cost.model\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"ngx-driversettlementsetting-form\",\r\n templateUrl: \"./driversettlementsetting-form.component.html\",\r\n styleUrls: [\"./driversettlementsetting-form.component.scss\"],\r\n})\r\nexport class DriversettlementsettingFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, public storage: LocalStoreManager) {\r\n super(selectorService, cd);\r\n }\r\n driverSettlementformsetting: DriverSettlementFormSettingModel;\r\n costList: Cost[] = [];\r\n hasDefaultCostId: boolean = true;\r\n async ngOnInit() {\r\n this.apiName = \"DriverSettlementFormSetting\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.Settings\");\r\n this.customColumnInfoApi = \"DriverSettlementFormSetting/GetFormColumnInfo\";\r\n this.changeNoCheck = true;\r\n\r\n super.ngOnInit();\r\n this.FillData();\r\n }\r\n ngOnDestroy(): void {}\r\n\r\n valueChangeByApiName($event) {\r\n if ($event && $event.apiName === \"CostId\") {\r\n this.costList = $event.data;\r\n this.selectorService.setDataList(\"CostId\", Object.assign([], this.costList));\r\n }\r\n if ($event && $event.KeyName === \"CostGroupId\") {\r\n if (this.formGroup?.controls[\"CostGroupId\"].value) {\r\n var FindList = this.costList.filter((f) => f.CostGroupId === this.formGroup.controls[\"CostGroupId\"].value || f.CostGroupId === 0);\r\n if (FindList?.length == 0) {\r\n this.selectorService.setDataList(\"CostId\", []);\r\n this.formGroup.controls[\"CostId\"].disable();\r\n } else {\r\n this.formGroup.controls[\"CostId\"].enable();\r\n }\r\n this.selectorService.setDataList(\"CostId\", Object.assign([], FindList));\r\n }\r\n this.cd.markForCheck();\r\n }\r\n }\r\n CompleteData($event) {\r\n if ($event && $event.apiName === \"Cost\") {\r\n this.costList = $event.data;\r\n this.selectorService.setDataList(\"CostId\", Object.assign([], this.costList));\r\n }\r\n if (this.formGroup?.controls[\"CostGroupId\"].value) {\r\n var FindList = this.costList.filter((f) => f.CostGroupId === this.formGroup.controls[\"CostGroupId\"].value || f.CostGroupId === 0);\r\n if (FindList?.length == 0) {\r\n this.selectorService.setDataList(\"CostId\", []);\r\n this.formGroup.controls[\"CostId\"].disable();\r\n } else {\r\n this.formGroup.controls[\"CostId\"].enable();\r\n }\r\n this.selectorService.setDataList(\"CostId\", Object.assign([], FindList));\r\n }\r\n this.formGroup?.controls[\"CostId\"].setValue(this.driverSettlementformsetting.CostId);\r\n this.formGroup?.controls[\"CostGroupId\"].setValue(this.driverSettlementformsetting.CostGroupId);\r\n this.formGroup?.controls[\"DeductionForSettlement\"].setValue(this.driverSettlementformsetting.DeductionForSettlement);\r\n }\r\n FillData() {\r\n this.httpCommonService\r\n .getList(\"DriverSettlementFormSetting\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((result: any[]) => {\r\n if (result?.length > 0) {\r\n this.driverSettlementformsetting = result[0];\r\n this.storage.savePermanentData(result[0], ClearableCache.FormSetting);\r\n }\r\n });\r\n this.addControl();\r\n }\r\n addControl() {\r\n if (!this.currentrow && !this.currentrow.CostGroupId) this.formGroup?.get(\"CostId\").disable();\r\n }\r\n async saveForm() {\r\n this.result = JSON.parse(JSON.stringify(this.formGroup.value));\r\n if (!this.hasDefaultCostId) this.formGroup.controls[\"CostId\"].setValue(null);\r\n this.save();\r\n }\r\n refreshSetting() {\r\n this.httpCommonService\r\n .getList(\"DriverSettlementFormSetting\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((result: any[]) => {\r\n if (result?.length > 0) {\r\n this.storage.savePermanentData(result[0], ClearableCache.FormSetting);\r\n }\r\n });\r\n }\r\n\r\n public saveSuccessHelper(row?: any) {\r\n this.isClosing = false;\r\n this.submitted = true;\r\n this.selectorService.submitted$.next(this.submitted);\r\n if (row) {\r\n this.model[\"Id\"] = row;\r\n this.id = row;\r\n }\r\n this.isSaving = false;\r\n this.showValidationErrors = false;\r\n if (this.isNewRow)\r\n this.sts.showToast(\r\n \"success\",\r\n this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.successful\"),\r\n `${this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.Information\")} ${this.label} ${this.translate(\r\n \"ClientApp.FrontOffice.Financial.DriverSettlement.SuccessfullyCreated\"\r\n )}`\r\n );\r\n else\r\n this.sts.showToast(\r\n \"success\",\r\n this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.successful\"),\r\n `${this.translate(\"ClientApp.FrontOffice.Financial.DriverSettlement.Information\")} ${this.label} ${this.translate(\r\n \"ClientApp.FrontOffice.Financial.DriverSettlement.SavedSuccessfully\"\r\n )} `\r\n );\r\n if (this.changesSavedCallback) this.changesSavedCallback();\r\n this.currentrow = this.model;\r\n this.afterupdate();\r\n this.isSaved = true;\r\n if (this.isCloseable()) this.close();\r\n this.selectorService.submitted$.next(false);\r\n }\r\n\r\n override canDeactivate(): boolean | Observable {\r\n this.closeForm(true);\r\n return true;\r\n }\r\n}\r\n","\r\n\r\n","import { ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { FormControl, UntypedFormGroup } from \"@angular/forms\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridFilter, PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Invoice, PaymentLinkState } from \"src/app/frontoffice/order/model/invoice.model\";\r\nimport { ReceiptPaymentModel } from \"src/app/frontoffice/order/model/receiptpayment.model\";\r\nimport { SettlementReadInvoiceEnum, SettlementReadInvoiceModel } from \"../../model/settlementreadinvoice.model\";\r\nimport { CashierSettlementModel } from \"../../model/usersettlement.model\";\r\n\r\n@Component({\r\n selector: \"settlementinvoicesmodal\",\r\n templateUrl: \"./invoicesmodal.component.html\",\r\n styleUrls: [\"./invoicesmodal.component.scss\"],\r\n})\r\nexport class InvoicesModalComponent extends BaseFormComponent {\r\n invoices: any;\r\n CostSpents: any;\r\n settlement: PagingDataResult;\r\n reciptpayment: PagingDataResult;\r\n currentData: PagingDataResult = new PagingDataResult();\r\n hasColumns: boolean = false;\r\n // SettledPersonnelId: number;\r\n // invoicekind: number;\r\n @ViewChild(KGridComponent) grid: KGridComponent;\r\n ReadInvoiceModel: SettlementReadInvoiceModel;\r\n defaultFilters: GridFilter[];\r\n filters: GridFilter[] = [\r\n {\r\n Filed: \"CreatedDate\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"desc\",\r\n Type: \"S\",\r\n },\r\n {\r\n Filed: \"SaleMethodBranchId\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"desc\",\r\n Type: \"S\",\r\n },\r\n ];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.label = this.translate(\"ClientApp.FrontOffice.Financial.InvoicesModal.Invoices\");\r\n this.areaName = \"RestaurantSale\";\r\n }\r\n async ngOnInit() {\r\n const newGroup: any = {};\r\n this.formGroup = new UntypedFormGroup(newGroup);\r\n this.FillData(undefined);\r\n this.filters.push({\r\n Filed: \"CreatedDate\",\r\n Value: null,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"desc\",\r\n Type: \"S\",\r\n });\r\n this.filters.push({\r\n Filed: \"SaleMethodBranchId\",\r\n Value: null,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"desc\",\r\n Type: \"S\",\r\n });\r\n }\r\n\r\n FillData(event: GridFilter[]) {\r\n let ReadInvoiceModel = new SettlementReadInvoiceModel();\r\n ReadInvoiceModel.SettledUserlId = this.ReadInvoiceModel.SettledUserlId;\r\n ReadInvoiceModel.UntilDate = this.ReadInvoiceModel.UntilDate;\r\n ReadInvoiceModel.Status = this.ReadInvoiceModel.Status;\r\n ReadInvoiceModel.UntilTime = this.ReadInvoiceModel.UntilTime;\r\n ReadInvoiceModel.InvoiceIds = this.ReadInvoiceModel.InvoiceIds;\r\n if (!event) {\r\n event = [];\r\n let BranchId = this.accountService.getCurrentUser().CurrentBranchId;\r\n if (BranchId !== undefined)\r\n event.push({\r\n Filed: \"BranchId\",\r\n Type: \"F\",\r\n Value: BranchId,\r\n Operator: \"eq\",\r\n Logic: \"and\",\r\n Skip: event[0]?.Skip ?? 0,\r\n Take: event[0]?.Take ?? 10,\r\n });\r\n }\r\n ReadInvoiceModel.Filters = [...this.defaultFilters, ...event];\r\n if (this.grid && this.grid.isRefreshing) return;\r\n if (this.grid) this.grid.isRefreshing = true;\r\n this.httpCommonService\r\n .create(\"CashierSettlemet/GetInvoicesList\", ReadInvoiceModel)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: SettlementReadInvoiceModel) => {\r\n if (data?.Invoices?.Data?.length) this.setPaymentLinkStateString(data.Invoices);\r\n switch (data.Status) {\r\n case SettlementReadInvoiceEnum.Cleard:\r\n this.currentData = data.Invoices;\r\n this.invoices = data.Invoices;\r\n break;\r\n case SettlementReadInvoiceEnum.Pending:\r\n this.invoices = data.Invoices;\r\n this.currentData = data.Invoices;\r\n break;\r\n case SettlementReadInvoiceEnum.Passive:\r\n this.invoices = data.Invoices;\r\n this.currentData = data.Invoices;\r\n break;\r\n case SettlementReadInvoiceEnum.Cancelled:\r\n this.invoices = data.Invoices;\r\n this.currentData = data.Invoices;\r\n break;\r\n case SettlementReadInvoiceEnum.Deleted:\r\n this.invoices = data.Invoices;\r\n this.currentData = data.Invoices;\r\n break;\r\n case SettlementReadInvoiceEnum.Customer:\r\n this.reciptpayment = data.ReceiptPayments;\r\n this.currentData = data.ReceiptPayments;\r\n break;\r\n case SettlementReadInvoiceEnum.Personnel:\r\n this.currentData = data.Settlements;\r\n this.settlement = data.Settlements;\r\n break;\r\n case SettlementReadInvoiceEnum.PaymentPersonnel:\r\n this.currentData = data.Settlements;\r\n this.settlement = data.Settlements;\r\n break;\r\n case SettlementReadInvoiceEnum.Delivery:\r\n this.invoices = data.Invoices;\r\n this.currentData = data.Invoices;\r\n break;\r\n case SettlementReadInvoiceEnum.Discount:\r\n this.invoices = data.Invoices;\r\n this.currentData = data.Invoices;\r\n break;\r\n case SettlementReadInvoiceEnum.CostSpent:\r\n this.CostSpents = data.CostSpents;\r\n this.currentData = data.CostSpents;\r\n break;\r\n default:\r\n this.invoices = data.Invoices;\r\n this.currentData = data.Invoices;\r\n break;\r\n }\r\n if (!this.hasColumns) this.setColumns();\r\n });\r\n }\r\n\r\n setPaymentLinkStateString(Invoices: PagingDataResult) {\r\n Invoices.Data = Invoices.Data.map((x) => {\r\n x.PaymentLinkState = this.getPaymentLinkStateString(x.PaymentLinkState) as any;\r\n return x;\r\n });\r\n }\r\n\r\n public getPaymentLinkStateString(paymentLinkState: number): string {\r\n let paymentLinkStateString = \"\";\r\n\r\n switch (this.getStatusOfLinkPayment(paymentLinkState)) {\r\n case PaymentLinkState.Nothing:\r\n paymentLinkStateString = this.translate(\"ClientApp.FrontOffice.Financial.InvoicesModal.Sending\");\r\n break;\r\n case PaymentLinkState.SentLink:\r\n paymentLinkStateString = this.translate(\"ClientApp.FrontOffice.Financial.InvoicesModal.LinkSent\");\r\n break;\r\n case PaymentLinkState.DeliveredLink:\r\n paymentLinkStateString = this.translate(\"ClientApp.FrontOffice.Financial.InvoicesModal.LinkReceived\");\r\n break;\r\n case PaymentLinkState.Paying:\r\n paymentLinkStateString = this.translate(\"ClientApp.FrontOffice.Financial.InvoicesModal.Paying\");\r\n break;\r\n case PaymentLinkState.Paid:\r\n paymentLinkStateString = this.translate(\"ClientApp.FrontOffice.Financial.InvoicesModal.Paid\");\r\n break;\r\n case PaymentLinkState.FailPayment:\r\n paymentLinkStateString = this.translate(\"ClientApp.FrontOffice.Financial.InvoicesModal.ProblemPaying\");\r\n break;\r\n case PaymentLinkState.OpenFactorLink:\r\n paymentLinkStateString = this.translate(\"ClientApp.FrontOffice.Financial.InvoicesModal.OpeningPaymentLinkByCustomer\");\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return paymentLinkStateString;\r\n }\r\n\r\n public getStatusOfLinkPayment(paymentLinkState: number | null): number {\r\n if (paymentLinkState === null) {\r\n return -1000; //A Value that cannot be used\r\n }\r\n\r\n const numberStr = paymentLinkState.toString();\r\n const restOfDigitsStr = numberStr.substring(1, 3);\r\n return parseInt(restOfDigitsStr, 10);\r\n }\r\n\r\n async setColumns() {\r\n this.hasColumns = true;\r\n let api: string;\r\n if (this.invoices) {\r\n api = \"Invoice\";\r\n // this.currentData = this.invoices;\r\n }\r\n if (this.settlement) {\r\n api = \"CashierSettlemet\";\r\n this.currentData = this.settlement;\r\n }\r\n if (this.reciptpayment) {\r\n api = \"ReceiptPayment\";\r\n this.currentData = this.reciptpayment;\r\n }\r\n if (this.CostSpents) {\r\n api = \"CostSpent\";\r\n this.currentData = this.CostSpents;\r\n }\r\n if (!api) api = \"Invoice\";\r\n this.httpCommonService\r\n .getControlsList(api)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: form_control[]) => {\r\n if (data) {\r\n if (api === \"Invoice\") {\r\n data.findIndex((x) => x.name === \"\");\r\n }\r\n this.columns = data;\r\n this.columns.forEach((x) => {\r\n if (x.name === \"NumberingInDate\") {\r\n x.order = 0;\r\n }\r\n if (x.name === \"BranchTitle\") {\r\n x.order = 1;\r\n }\r\n if (x.name === \"BranchTitle\") {\r\n x.order = 1;\r\n }\r\n if (x.name === \"StatusTitle\") {\r\n x.order = 1;\r\n }\r\n if (x.name === \"CustomerNumber\") {\r\n x.order = 1;\r\n }\r\n if (x.name === \"CustomerDisplayName\") {\r\n x.order = 1;\r\n }\r\n if (x.name === \"ShamsiCreatedDate\") {\r\n x.order = 1;\r\n }\r\n if (x.name === \"CreatedDateTime\") {\r\n x.order = 1;\r\n }\r\n if (x.name === \"PayableTotal\") {\r\n x.order = 1;\r\n }\r\n if (x.name === \"SaleMethodBranchTitle\") {\r\n x.order = 1;\r\n }\r\n });\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n }\r\n });\r\n }\r\n onDataStateChanged(event: GridFilter[]) {\r\n this.FillData(event);\r\n }\r\n cancel() {\r\n this.closeModal();\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n
0\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
","import { AccountingDocumentFormSettingComponent } from './accounting-document/accounting-document-form-setting/accounting-document-form-setting.component';\r\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { ThemeModule } from \"projects/sepidz-web-framework-shell/src/lib/@theme/theme.module\";\r\nimport { DriverSettlementFormComponent } from \"./driversettlement/driversettlement-form/driversettlement-form.component\";\r\nimport { DriverSettlementListComponent } from \"./driversettlement/driversettlement-list/driversettlement-list.component\";\r\nimport { PaymentMethodFormComponent } from \"./paymentmethod/payment-method-form/payment-method-form.component\";\r\nimport { PaymentMethodListComponent } from \"./paymentmethod/payment-method-list/payment-method-list.component\";\r\nimport { InvoicesModalComponent } from \"./driversettlement/invoicesmodal/invoicesmodal.component\";\r\nimport { CashierSettlementFormComponent } from \"./driversettlement/cashiersettlement-form/cashiersettlement-form.component\";\r\nimport { CasheirSettlementListComponent } from \"./driversettlement/cashiersettlement-list/casheirsettlement-list.component\";\r\nimport { SettlementFormSettingFormComponent } from \"./driversettlement/cashiersettlement-form/settlementformsetting/settlementformsetting-form.component\";\r\nimport { AccountingSettingListComponent } from \"./accounting-setting/accounting-setting-list/accounting-setting-list.component\";\r\nimport { AccountingSettingFormComponent } from \"./accounting-setting/accounting-setting-form/accounting-setting-form.component\";\r\nimport { DriversettlementsettingFormComponent } from \"./driversettlement/driversettlementsetting-form/driversettlementsetting-form.component\";\r\nimport { DriverSettlementMenuComponent } from \"./driversettlement/driverSettlementSetting\";\r\nimport { AccountingDocumentFormComponent } from \"./accounting-document/accounting-document-form/accounting-document-form.component\";\r\nimport { AccountingDocumentListComponent } from \"./accounting-document/accounting-document-list/accounting-document-list.component\";\r\nimport { AccountingDocumentSettingMenuComponent } from './accounting-document/accounting-document-setting-menu.component';\r\n\r\nconst components = [\r\n DriverSettlementFormComponent,\r\n DriverSettlementListComponent,\r\n CashierSettlementFormComponent,\r\n CasheirSettlementListComponent,\r\n PaymentMethodFormComponent,\r\n PaymentMethodListComponent,\r\n InvoicesModalComponent,\r\n SettlementFormSettingFormComponent,\r\n AccountingSettingListComponent,\r\n AccountingSettingFormComponent,\r\n DriversettlementsettingFormComponent,\r\n DriverSettlementMenuComponent,\r\n AccountingDocumentFormComponent,\r\n AccountingDocumentListComponent,\r\n AccountingDocumentFormSettingComponent,\r\n AccountingDocumentSettingMenuComponent\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class FinancialModule {}\r\n","export enum PaymentMethodType {\r\n Cash = 1,\r\n Pos = 2,\r\n Internet = 3,\r\n Check = 4,\r\n TabletPos = 5\r\n}\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { Invoice } from \"../../order/model/invoice.model\";\r\n\r\nexport class SettlementInvoiceModel extends EntityBase {\r\n InvoiceId: number;\r\n SettlementId: number;\r\n NotDisplay: boolean;\r\n // Invoice:Invoice;\r\n}\r\n","import { GridFilter, PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { CostSpent } from \"../../cost/model/costspent.model\";\r\nimport { Invoice } from \"../../order/model/invoice.model\";\r\nimport { ReceiptPaymentModel } from \"../../order/model/receiptpayment.model\";\r\nimport { GenderEnum } from \"../../parties/model/customer.model\";\r\nimport { CashierSettlementModel } from \"./usersettlement.model\";\r\n\r\nexport class SettlementReadInvoiceModel {\r\n Status: number;\r\n SettledUserlId: number;\r\n UntilDate: Date;\r\n UntilTime: string;\r\n InvoiceIds: number[];\r\n Invoices: PagingDataResult;\r\n CostSpents: PagingDataResult;\r\n ReceiptPayments: PagingDataResult;\r\n Settlements: PagingDataResult;\r\n Filters: GridFilter[];\r\n constructor() {\r\n this.Invoices = null;\r\n this.ReceiptPayments = null;\r\n this.Settlements = null;\r\n }\r\n}\r\n\r\nexport enum SettlementReadInvoiceEnum {\r\n Passive = 0,\r\n Pending = 1,\r\n Cancelled = 2,\r\n Cleard = 3,\r\n Personnel = 4,\r\n Customer = 5,\r\n Delivery = 6,\r\n Debit = 7,\r\n Credit = 8,\r\n Discount = 9,\r\n Deleted = 10,\r\n CostSpent = 11,\r\n DriverShippingCostReduced = 12,\r\n PaymentPersonnel = 13,\r\n PaymentLink = 14,\r\n OnlinePayment = 15,\r\n Deposit = 16,\r\n}\r\n","import { EntityBase } from 'projects/sepidz-web-framework/src/lib/models/entity-base.model';\r\n\r\nexport class SettlementReferenceModel extends EntityBase {\r\n SettlementId :number;\r\n SettlementRefrenceId :number;\r\n}","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { Invoice } from \"../../order/model/invoice.model\";\r\nimport { SettlementReferenceModel } from \"./settlementreference.model\";\r\nimport { SettlementInvoiceModel } from \"./settlementinvoice.model\";\r\nimport { ReceiptPaymentModel } from \"../../order/model/receiptpayment.model\";\r\nimport { Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { CostSpent } from \"../../cost/model/costspent.model\";\r\nimport { DriverSettlementFormSettingModel } from \"../driversettlement/driversettlementformsetting.model\";\r\nimport { CostSpentFormSettingModel } from \"../../cost/spentcost/costspentformsetting.model\";\r\n\r\nexport class UserSettlementModel extends EntityBase {\r\n SettledPersonnelId: number;\r\n SettledUserlId: number;\r\n Code: number;\r\n TotalDiscount: number;\r\n ClearedInvoicesTotal: number;\r\n TotalTax: number;\r\n PayableTotal: number;\r\n CustomerNumber: string;\r\n InvoiceDebit: number;\r\n InvoiceCredit: number;\r\n Description: string;\r\n InvoicesDiscount: number;\r\n AllowedDeficit: number;\r\n ShippingCostReducePrice: number;\r\n UntilDate?: Date;\r\n UntilTime: string;\r\n OldRemain: number;\r\n Remain: number;\r\n NewRemainValue: number;\r\n Amount: number;\r\n TotalPayment: number;\r\n TotalDeposit: number;\r\n TotalReciptPayment: number;\r\n PaymentMethodTypeId: number;\r\n PaymentMethodTypeIndex: number;\r\n PaymentMethodTitle: string;\r\n Invoice: Invoice[];\r\n ReceiptPayments: ReceiptPaymentModel[];\r\n ReceiptPaymentTypeTitle: string;\r\n SettlementReferences: SettlementReferenceModel[];\r\n Invoices: SettlementInvoiceModel[];\r\n public AccVoucherFixNumber?: number;\r\n public AccVoucherNo?: number;\r\n public FiscalYearId: number;\r\n public CustomerClearedTotal: number;\r\n PaymentLink: number;\r\n DebitInvoiceIds: number[];\r\n PaymentLinkIds: number[];\r\n OnlinePaymentIds: number[];\r\n CreditInvoiceIds: number[];\r\n DepositReceiptPaymentIds: number[];\r\n DiscountInvoiceIds: number[];\r\n CostSpentIds: number[];\r\n SettlementTypeId: number;\r\n SettlementType: Lookup[];\r\n PayableTotalPrice: number;\r\n DriverShippingCostReducedIds: number[];\r\n\r\n constructor() {\r\n super();\r\n this.TotalReciptPayment = 0;\r\n this.TotalPayment = 0;\r\n this.PayableTotal = 0;\r\n this.AllowedDeficit = 0;\r\n this.ReceiptPayments = [];\r\n this.SettlementReferences = [];\r\n }\r\n}\r\nexport class DriverSettlementModel extends UserSettlementModel {\r\n CourierShippingCost: number;\r\n ShippingCost: number;\r\n ShippingAddress: string;\r\n PayableWithCourierShippingCost: number;\r\n PayableWithShippingCost: number;\r\n TerminalNumber: string;\r\n OnlinePayment: number;\r\n DriverFirstNameTitle: string;\r\n DriverLastNameTitle: string;\r\n InvoiceIds: number[];\r\n AccFixNo: number;\r\n DriverSettlementFormSettingModel: DriverSettlementFormSettingModel;\r\n CostSpentFormSettingViewModel: CostSpentFormSettingModel = new CostSpentFormSettingModel();\r\n constructor() {\r\n super();\r\n }\r\n}\r\nexport class CashierSettlementModel extends UserSettlementModel {\r\n PendingInvoicesTotal: number;\r\n CancelledInvoicesTotal: number;\r\n DeletedInvoicesTotal: number;\r\n PassiveInvoicesTotal: number;\r\n CustomerClearedInvoicesTotal: number;\r\n PersonnelClearedInvoicesTotal: number;\r\n PersonnelReceiptPaymentPaid: number = 0;\r\n TipTotal: number;\r\n DebitTotal: number;\r\n CreditTotal: number;\r\n InvoicesTotal: number;\r\n AddSettlementForPending: boolean;\r\n CashierFirstNameTitle: string;\r\n CashierLastNameTitle: string;\r\n PersonnelClearedInvoices: CashierSettlementModel[];\r\n PersonnelReceiptPayments: ReceiptPaymentModel[];\r\n ClearedInvoiceIds: number[];\r\n CancelledInvoiceIds: number[];\r\n DeletedInvoiceIds: number[];\r\n CustomerClearedIds: number[];\r\n PassiveInvoiceIds: number[];\r\n PendingInvoiceIds: number[];\r\n PersonnelClearedIds: number[];\r\n public AccVoucherFixNumber?: number;\r\n public AccVoucherNo?: number;\r\n public FiscalYearId: number;\r\n Description: string;\r\n ReceiptPayments: ReceiptPaymentModel[];\r\n SettlementReferences: SettlementReferenceModel[];\r\n TotalAccount: number;\r\n CashierSpentCost: number;\r\n CostSpents: CostSpent;\r\n AccVoucherId: number;\r\n AccFixNo: number;\r\n constructor() {\r\n super();\r\n this.SettlementReferences = [];\r\n }\r\n}\r\nexport class CustomerSettlementModel extends UserSettlementModel {\r\n CustomerTitle: string;\r\n DebitTotal?: number;\r\n}\r\nexport enum SettlementType {\r\n DriverSettlement = 1,\r\n CashierSettlement = 2,\r\n CustomerSettlement = 3,\r\n}\r\nexport class SettlementDateViewModel {\r\n UntilDate?: Date;\r\n UntilTime: string;\r\n}\r\n\r\nexport interface DriverLookup extends Lookup {\r\n Id: number;\r\n Title: string;\r\n PersonnelId: number;\r\n TerminalNumber: string;\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { PaymentMethod } from \"../../model/payment-method.model\";\r\nimport { PaymentMethodType } from \"../../model/payment-method.enum\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { log } from \"console\";\r\n\r\n@Component({\r\n selector: \"ngx-payment-method-form.component\",\r\n templateUrl: \"./payment-method-form.component.html\",\r\n styleUrls: [\"./payment-method-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PaymentMethodFormComponent extends BaseFormComponent {\r\n paymentMethodType = PaymentMethodType;\r\n deactivateSave: boolean = false;\r\n paymentMethodTypeItems: Lookup[];\r\n PaymentMethodTypeSubscription: Subscription;\r\n ipPattern: string = \"^(?:[0-9]{1,3}.){3}[0-9]{1,3}$\";\r\n portPattern: string = \"^[0-9]{1,5}$\";\r\n hasRahkaran: boolean = false;\r\n\r\n constructor(private lookupservice: LookupService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.FillData();\r\n this.hasRahkaranSetting();\r\n }\r\n\r\n async FillData() {\r\n const info = this.accountService.authService.currentInformation();\r\n if (info.BranchingLightEnabled || info.BranchingAdvancedEnabled) {\r\n const hasBranchCommunication = JSON.parse(localStorage.getItem(\"HasBranchCommunication\"));\r\n if (hasBranchCommunication == null) {\r\n this.httpCommonService\r\n .getList(`Branch/HasBranchCommunication/${this.accountService.authService.currentBranchId}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n async (hbc: boolean) => {\r\n if (hbc === true) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n } else if (hasBranchCommunication) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n }\r\n }\r\n if (this.model.IsActive === undefined) this.model.IsActive = true;\r\n if (!this.model.PaymentMethodTypeId) {\r\n this.lookupservice\r\n .getLookupbyCategory(\"SALE\", \"PaymentMethodType\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (data) => {\r\n this.paymentMethodTypeItems = data;\r\n const cashData = data.find((x) => x.Code == this.paymentMethodType.Cash);\r\n this.model.PaymentMethodTypeId = cashData?.Id;\r\n this.model.PaymentMethodTypeCode = cashData?.Code;\r\n this.model.PaymentMethodTypeTitle = cashData?.Title;\r\n this.setValue(\"PaymentMethodTypeId\", cashData?.Id);\r\n this.setValue(\"PaymentMethodTypeCode\", cashData?.Code);\r\n this.setValue(\"PaymentMethodTypeTitle\", cashData?.Title);\r\n setTimeout(() => {\r\n this.formGroup.controls[\"PaymentMethodTypeId\"].valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((id) => {\r\n this.onPaymentMethodTypeIdChanges(id);\r\n });\r\n }, 500);\r\n });\r\n } else if (this.model.PaymentTerminalProviderId) {\r\n this.model.PaymentMethodTypeCode = this.paymentMethodType.Pos;\r\n }\r\n\r\n setTimeout(() => {\r\n this.setValue(\"IsWebService\", this.model?.IsWebService);\r\n this.formGroup.controls[\"IsWebService\"].valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((value) => {\r\n this.showHideIpAndPort(value);\r\n });\r\n }, 200);\r\n }\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n if (!this.model) return;\r\n const currentInfo = this.accountService.authService.currentInformation();\r\n const accountingInstalled =\r\n currentInfo.AccountingKind === SoftWareLicenseKind.AccountingAdvancedWeb ||\r\n currentInfo.AccountingKind === SoftWareLicenseKind.AccountingToAdvancedWeb ||\r\n currentInfo.AccountingKind === SoftWareLicenseKind.AccountingWeb;\r\n const isPos = this.model.PaymentMethodTypeCode === PaymentMethodType.Pos;\r\n const isTabletPos = this.model.PaymentMethodTypeCode === PaymentMethodType.TabletPos;\r\n const isCash = this.model.PaymentMethodTypeCode === PaymentMethodType.Cash;\r\n const isCheck = this.model.PaymentMethodTypeCode === PaymentMethodType.Check;\r\n const isInternet = this.model.PaymentMethodTypeCode === PaymentMethodType.Internet;\r\n const controlsNameToShowInPosMode = [\r\n \"Ip\",\r\n \"Port\",\r\n \"PosTimeOut\",\r\n \"IsMultMierchantPos\",\r\n \"PaymentTerminalProviderId\",\r\n \"UserName\",\r\n \"Password\",\r\n \"IsWebService\",\r\n \"CashId\",\r\n ];\r\n this.orignalColumns.forEach((x) => {\r\n if (controlsNameToShowInPosMode.includes(x.name)) {\r\n x.formVisible = isPos;\r\n x.required = isPos && x.name !== \"IsMultMierchantPos\";\r\n }\r\n\r\n if (x.name === \"Ip\") x.patternKey = this.ipPattern;\r\n\r\n if (x.name === \"Port\") x.patternKey = this.portPattern;\r\n\r\n if (x.name === \"PaymentTerminalProviderId\") x.formVisible = isTabletPos || isPos;\r\n\r\n if (x.name === \"IBANCode\") x.formVisible = isPos || isTabletPos || isInternet;\r\n\r\n if (x.name === \"IsMultiMerchantPos\") x.formVisible = isPos || isTabletPos || isInternet;\r\n\r\n if (x.name === \"TerminalId\") x.formVisible = isPos || isTabletPos || isInternet;\r\n\r\n if (x.name.includes(\"UserName\")) x.required = false;\r\n\r\n if (x.name.includes(\"Password\")) {\r\n x.textType = \"password\";\r\n x.required = false;\r\n }\r\n if (x.name.includes(\"CashId\")) {\r\n x.required = false;\r\n x.formVisible = false;\r\n }\r\n if (x.name === \"CashId\" && this.hasRahkaran) x.formVisible = true;\r\n if (\r\n !accountingInstalled &&\r\n (x.name === \"InterfaceAccountSubLedgerId\" || x.name === \"PaymentMethodTypeSubLedgerId\" || x.name === \"PaymentMethodTypeDetailLedgerId\")\r\n ) {\r\n x.formVisible = false;\r\n }\r\n\r\n if (!accountingInstalled && x.name === \"TrsConcernId\") {\r\n x.formVisible = false;\r\n }\r\n });\r\n\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.cd.markForCheck();\r\n }\r\n\r\n beforupdate(): void {\r\n if (this.model.PaymentMethodTypeCode !== PaymentMethodType.Pos) {\r\n this.formGroup.controls[\"Ip\"].setValue(\"\");\r\n this.formGroup.controls[\"Port\"].setValue(\"\");\r\n }\r\n }\r\n\r\n addControl() {\r\n if (!this.currentrow || !this.currentrow.Id) {\r\n this.model.IsActive = true;\r\n this.setValue(\"IsActive\", true);\r\n }\r\n if (this.model.PaymentMethodTypeCode === this.paymentMethodType.Pos)\r\n this.setValue(\"PaymentTerminalProviderId\", this.model.PaymentTerminalProviderId, true);\r\n this.setColumnAttribute();\r\n this.setColumnNumber;\r\n this.cd.markForCheck();\r\n }\r\n\r\n isValid() {\r\n if (this.formGroup.controls[\"PaymentMethodTypeId\"].dirty && !this.formGroup.controls[\"PaymentMethodTypeId\"]?.value) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.SellNotEntered\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.Error\")\r\n );\r\n this.selectorService.submitted$.next(true);\r\n return false;\r\n }\r\n if (!this.formGroup.controls[\"Title\"].value) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.Error\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.TitleNotEntered\")\r\n );\r\n return false;\r\n }\r\n if (this.model.PaymentMethodTypeCode === this.paymentMethodType.Pos) {\r\n if (!this.formGroup.controls[\"PaymentTerminalProviderId\"]?.value) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.Error\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.ProviderNotEntered\")\r\n );\r\n return false;\r\n }\r\n if (!this.formGroup.controls[\"Ip\"].value) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.Error\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.IPNotEntered\")\r\n );\r\n return false;\r\n }\r\n if (!this.formGroup.controls[\"PosTimeOut\"].value) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.Error\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.PosWaitTimeNotEntered\")\r\n );\r\n return false;\r\n }\r\n if (!this.formGroup.controls[\"Port\"].value) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.Error\"),\r\n this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.PortNotEntered\")\r\n );\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n private onPaymentMethodTypeIdChanges(id: any): void {\r\n const findData = this.paymentMethodTypeItems.find((item) => item.Id === id);\r\n if (findData) {\r\n if (this.formGroup.controls[\"Ip\"]) {\r\n this.formGroup.controls[\"Ip\"].clearValidators();\r\n this.formGroup.controls[\"Ip\"].setErrors(null);\r\n this.formGroup.controls[\"Ip\"].updateValueAndValidity();\r\n }\r\n if (this.formGroup.controls[\"Port\"]) {\r\n this.formGroup.controls[\"Port\"].clearValidators();\r\n this.formGroup.controls[\"Port\"].setErrors(null);\r\n this.formGroup.controls[\"Port\"].updateValueAndValidity();\r\n }\r\n if (this.formGroup.controls[\"PosTimeOut\"]) {\r\n this.formGroup.controls[\"PosTimeOut\"].clearValidators();\r\n this.formGroup.controls[\"PosTimeOut\"].setErrors(null);\r\n this.formGroup.controls[\"PosTimeOut\"].updateValueAndValidity();\r\n }\r\n this.model.PaymentMethodTypeCode = findData.Code;\r\n this.model.PaymentMethodTypeTitle = findData.Title;\r\n if (this.formGroup.controls[\"PaymentTerminalProviderId\"]) {\r\n this.formGroup.controls[\"PaymentTerminalProviderId\"].clearValidators();\r\n this.formGroup.controls[\"PaymentTerminalProviderId\"].setErrors(null);\r\n this.formGroup.controls[\"PaymentTerminalProviderId\"].updateValueAndValidity();\r\n }\r\n if (findData.Code !== this.paymentMethodType.Pos) {\r\n this.model.PaymentTerminalProviderId = null;\r\n if (this.formGroup.controls[\"PaymentTerminalProviderId\"])\r\n this.setValue(\"PaymentTerminalProviderId\", this.model.PaymentTerminalProviderId, false);\r\n }\r\n if (this.model.PaymentMethodTypeCode === this.paymentMethodType.Pos)\r\n this.setValue(\"PaymentTerminalProviderId\", this.model.PaymentTerminalProviderId, true);\r\n else this.setValue(\"PaymentTerminalProviderId\", this.model.PaymentTerminalProviderId, false);\r\n this.setColumnAttribute();\r\n this.isValid();\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n showHideIpAndPort(value: boolean) {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"Ip\" || x.name === \"Port\" || x.name === \"PosTimeOut\") {\r\n x.formVisible = !value && this.model.PaymentMethodTypeCode === PaymentMethodType.Pos;\r\n if (value) {\r\n this.formGroup.controls[x.name].clearValidators();\r\n this.formGroup.controls[x.name].setErrors(undefined);\r\n }\r\n }\r\n });\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.cd.markForCheck();\r\n }\r\n hasRahkaranSetting() {\r\n this.httpCommonService\r\n .get(\"Rahkaran/GetRahkaranSetting\")\r\n .pipe(take(1))\r\n .subscribe((x: boolean) => {\r\n this.hasRahkaran = x;\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { PaymentMethodFormComponent } from \"../payment-method-form/payment-method-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-payment-method-list.component\",\r\n templateUrl: \"./payment-method-list.component.html\",\r\n styleUrls: [\"./payment-method-list.component.scss\"],\r\n})\r\nexport class PaymentMethodListComponent extends BaseListComponent {\r\n isAdd: boolean = false;\r\n isEdit: boolean = false;\r\n isDelete: boolean = false;\r\n\r\n constructor() {\r\n super();\r\n this.inputEditorform = PaymentMethodFormComponent;\r\n this.FillData();\r\n }\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n\r\n ngOnInit() {\r\n this.apiName = \"PaymentMethod\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.PaymentMethod\");\r\n }\r\n async FillData() {\r\n const info = this.accountService.authService.currentInformation();\r\n if (!this.isMultiBranch) {\r\n this.isAdd = true;\r\n this.isEdit = true;\r\n this.isDelete = true;\r\n }\r\n if (info.BranchingLightEnabled || info.BranchingAdvancedEnabled) {\r\n const hasBranchCommunication = JSON.parse(localStorage.getItem(\"HasBranchCommunication\"));\r\n if (hasBranchCommunication == null) {\r\n this.httpCommonService\r\n .getList(`Branch/HasBranchCommunication/${this.accountService.authService.currentBranchId}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (hbc: boolean) => {\r\n if (hbc === true) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.HasBranchCommunication\");\r\n }\r\n });\r\n } else if (hasBranchCommunication) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Financial.PaymentMethod.HasBranchCommunication\");\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n
","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { InvDailyFormComponent } from \"./inv-daily-header/inv-daily-form/inv-daily-form.component\";\r\nimport { InvDailyListComponent } from \"./inv-daily-header/inv-daily-list/inv-daily-list.component\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { InvDailyRemainFormComponent } from \"./inv-daily-remain/inv-daily-remain-form/inv-daily-remain-form.component\";\r\nimport { InvDailyRemainListComponent } from \"./inv-daily-remain/inv-daily-remain-list/inv-daily-remain-list.component\";\r\nimport { InvDailyWasteFormComponent } from \"./inv-daily-waste/inv-daily-waste-form/inv-daily-waste-form.component\";\r\nimport { InvDailyWasteListComponent } from \"./inv-daily-waste/inv-daily-waste-list/inv-daily-waste-list.component\";\r\nimport { InvDailyWarehouseComponent } from \"./inv-daily-warehouse/inv-daily-warehouse.component\";\r\nimport { InvDailyWasteSettingComponent } from \"./inv-daily-waste/inv-daily-waste-setting/inv-daily-waste-setting.component\";\r\nimport { InvDailyWasteMenuComponent } from \"./inv-daily-waste/inv-daily-waste-menu.component\";\r\nimport { InvDailyListDialogComponent } from \"./inv-daily-header/inv-daily-listdialog/inv-daily-listdialog.component\";\r\nimport { InvCreateInvVoucherListComponent } from \"./inv-CreateInvVoucher/inv-CreateInVoucher-list/inv-CreateInvVoucher-list.component\";\r\nimport { InvCreateInvVoucherFormComponent } from \"./inv-CreateInvVoucher/inv-CreateInVoucher-form/inv-CreateInvVoucher-form.component\";\r\nimport { InvDailyBalanceComponent } from \"./inv-daily-balance/inv-daily-balance.component\";\r\nimport { InvDailySettingComponent } from \"./inv-daily-header/inv-daily-setting/inv-daily-setting.component\";\r\nimport { InvDailyHeaderMenuComponent } from \"./inv-daily-header/inv-daily-header-menu.component\";\r\nimport { InvCreateInVoucherMenuComponent } from \"./inv-CreateInvVoucher/inv-createIn-voucher-menu.component\";\r\nimport { InvCreateInVoucherSettingComponent } from \"./inv-CreateInvVoucher/inv-CreateInVoucher-setting/inv-CreateInVoucher-setting.component\";\r\nimport { InvDailyUsageComponent } from \"./inv-daily-usage/inv-daily-usage.component\";\r\nconst components = [\r\n InvDailyRemainFormComponent,\r\n InvDailyRemainListComponent,\r\n InvDailyWasteFormComponent,\r\n InvDailyWasteListComponent,\r\n InvDailyWasteSettingComponent,\r\n InvDailyWasteMenuComponent,\r\n InvDailyFormComponent,\r\n InvDailyListComponent,\r\n InvDailyWarehouseComponent,\r\n InvDailyListComponent,\r\n InvDailyListDialogComponent,\r\n InvCreateInvVoucherListComponent,\r\n InvCreateInvVoucherFormComponent,\r\n InvDailyBalanceComponent,\r\n InvDailySettingComponent,\r\n InvDailyHeaderMenuComponent,\r\n InvCreateInVoucherMenuComponent,\r\n InvCreateInVoucherSettingComponent,\r\n InvDailyUsageComponent,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class InvModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport * as moment from \"moment\";\r\nimport { InvCreateInvVoucher } from \"../../model/inv-CreateInvVoucher.model\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-CreateInVoucher-form\",\r\n templateUrl: \"./inv-CreateInvVoucher-form.component.html\",\r\n styleUrls: [\"./inv-CreateInvVoucher-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvCreateInvVoucherFormComponent extends BaseFormComponent {\r\n itemColumns: form_control[];\r\n DateNow: string;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"InvCreateInvVoucher\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.InvCreateInvVoucher\");\r\n super.ngOnInit();\r\n const m = moment();\r\n this.DateNow = m.locale(\"fa\").format(\"YYYY/MM/DD\");\r\n }\r\n\r\n setdefault(): void {\r\n if (!this.isMultiBranch) {\r\n this.formGroup.get(\"SendBranchId\")?.enable();\r\n this.cd.markForCheck();\r\n } else {\r\n this.setValue(\"SendBranchId\", this.accountService.authService.currentBranch?.Id);\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"Number\", this.model.Code);\r\n this.setValue(\"FiscalYearId\", this.accountService.authService.currentFiscalYear.Id);\r\n this.setValue(\"BranchId\", this.accountService.authService.currentBranchId);\r\n this.setValue(\"FromDate\", this.model.FromDate);\r\n this.setValue(\"ToDate\", this.model.ToDate);\r\n this.setValue(\"SendBranchId\", this.model.SendBranchId);\r\n this.setValue(\"SendInvDepositWareHouse\", this.model.SendInvDepositWareHouse);\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { InvCreateInvVoucherFormComponent } from \"../inv-CreateInVoucher-form/inv-CreateInvVoucher-form.component\";\r\nimport { InvCreateInVoucherSetting } from \"../../model/inv-CreateInvVoucher.model\";\r\nimport { ContextMenuEnum } from \"src/app/frontoffice/order/model/contextMenuenum\";\r\nimport { InvCreateInVoucherMenuComponent } from \"../inv-createIn-voucher-menu.component\";\r\nimport { Subject } from \"rxjs\";\r\nimport { UntypedFormControl, UntypedFormGroup } from \"@angular/forms\";\r\nimport { Branch } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridFilter, LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormSettingModel } from \"projects/sepidz-web-framework/src/lib/models/formsettingmodel\";\r\nimport { take } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-CreateInVoucher-list\",\r\n templateUrl: \"./inv-CreateInvVoucher-list.component.html\",\r\n styleUrls: [\"./inv-CreateInvVoucher-list.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvCreateInvVoucherListComponent extends BaseListComponent {\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n formVisible: boolean;\r\n hasPermission: boolean = false;\r\n InvCreateInVoucherSetting: InvCreateInVoucherSetting;\r\n public contextmenuEnum: typeof ContextMenuEnum = ContextMenuEnum;\r\n menu = InvCreateInVoucherMenuComponent;\r\n settingChanges$ = new Subject();\r\n formGroup = new UntypedFormGroup({\r\n branchFilter: new UntypedFormControl(),\r\n });\r\n\r\n allBranchesExceptCallCenter: Branch[] = [];\r\n\r\n onFilter: GridFilter[] = [];\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, public storage: LocalStoreManager) {\r\n super();\r\n this.inputEditorform = InvCreateInvVoucherFormComponent;\r\n this.formVisible = !this.isMultiBranch;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.apiName = \"InvCreateInvVoucher\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.InvCreateInvVoucher\");\r\n this.getSetting();\r\n this.settingChanges$.pipe(take(1)).subscribe((x) => {\r\n this.getSetting();\r\n });\r\n this.httpCommonService\r\n .getList(\"Branch/GetAllBranch\")\r\n .pipe(take(1))\r\n .subscribe(async (data: Branch[]) => {\r\n this.allBranchesExceptCallCenter = data.filter((x) => !x.AccessToAllBranches);\r\n });\r\n if (this.isMultiBranch) {\r\n this.onBranchFilterClear();\r\n }\r\n }\r\n\r\n getSetting() {\r\n this.httpCommonService\r\n .getList(\"InvCreateInVoucherFormSetting/GetSetting\")\r\n .pipe(take(1))\r\n .subscribe((res: FormSettingModel) => {\r\n this.InvCreateInVoucherSetting = res;\r\n });\r\n }\r\n\r\n public onBranchFilterClear(): void {\r\n this.onFilter = [\r\n {\r\n Filed: \"BranchId\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n },\r\n ];\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { InvCreateInvVoucher } from \"../../model/inv-CreateInvVoucher.model\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-CreateInVoucher-setting\",\r\n templateUrl: \"./inv-CreateInVoucher-setting.component.html\",\r\n styleUrls: [\"./inv-CreateInVoucher-setting.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvCreateInVoucherSettingComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"InvCreateInVoucherFormSetting\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Inv.CreateInvVoucher.Settings\");\r\n this.customColumnInfoApi = \"InvCreateInVoucherFormSetting/GetFormColumnInfo\";\r\n super.ngOnInit();\r\n }\r\n\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n\r\n override canDeactivate(): boolean | Observable {\r\n this.closeForm(true);\r\n return true;\r\n }\r\n}\r\n","\r\n\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { MenuPackage } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu-injector\";\r\nimport { ContextMenuService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu.service\";\r\nimport { MenuComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/menu.component\";\r\nimport { AccountService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { InvCreateInVoucherSettingComponent } from \"./inv-CreateInVoucher-setting/inv-CreateInVoucher-setting.component\";\r\n@Component({\r\n selector: \"simple-menu\",\r\n // add your menu html\r\n template: `\r\n \r\n {{ \"ClientApp.FrontOffice.Inv.CreateInvVoucher.Settings\" | translate }}\r\n \r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvCreateInVoucherMenuComponent extends MenuComponent {\r\n // this module does not have animations, set lazy false\r\n lazy = false;\r\n\r\n constructor(\r\n public menuPackage: MenuPackage,\r\n public contextMenuService: ContextMenuService,\r\n public dialogService: SimpleModalService,\r\n public common: CommonService,\r\n public accountService: AccountService,\r\n protected sts: ShowToastrService\r\n ) {\r\n super(menuPackage, contextMenuService);\r\n // grab any required menu context passed via menuContext input\r\n }\r\n\r\n async handleClick(value: any) {\r\n this.contextMenuService.closeAll();\r\n this.dialogService\r\n .open(InvCreateInVoucherSettingComponent, { currentrow: value }, { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false })\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n this.menuPackage.context.settingChanges$?.next(true);\r\n });\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { Branch } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { InvDailyBalance } from \"../model/inv-daily-balance.model\";\r\nimport { PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-daily-balance\",\r\n templateUrl: \"./inv-daily-balance.component.html\",\r\n styleUrls: [\"./inv-daily-balance.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvDailyBalanceComponent extends BaseFormComponent {\r\n dataList: InvDailyBalance[] = [];\r\n BranchLookUp: Branch[] = [];\r\n goodsList: any[];\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, __id: FormContainerModel, _tabsservice: TabularService) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"InvDailyBalance\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.InvDailyBalance\");\r\n super.ngOnInit();\r\n await this.FillData();\r\n }\r\n\r\n async FillData() {\r\n const data = await (>this.httpCommonService.getList(\"Branch\").pipe(take(1)).toPromise());\r\n if (this.isMultiBranch) this.BranchLookUp = data.filter((x) => !x.AccessToAllBranches && x.IsActive);\r\n else this.BranchLookUp = data.filter((x) => x.Id == this.accountService.authService.currentBranchId);\r\n\r\n if (this.isMultiBranch) {\r\n this.httpCommonService\r\n .get(\"Item/ReadInvDailyGoodsLookUpPaging\")\r\n .pipe(take(1))\r\n .subscribe((res: PagingDataResult) => {\r\n this.goodsList = res.Data;\r\n this.selectorService.setDataList(\"GoodsId\", this.goodsList);\r\n });\r\n }\r\n }\r\n\r\n setdefault(): void {\r\n if (!this.isMultiBranch) {\r\n this.model.BranchId = this.accountService.authService.currentBranch?.Id;\r\n this.loadInvDailyBalances();\r\n }\r\n }\r\n\r\n setColumnAttribute(): void {\r\n const goodsIdControl = this.columns.find((x) => x.name === \"GoodsId\");\r\n const goodsTitleControl = this.columns.find((x) => x.name === \"GoodsTitle\");\r\n if (goodsIdControl && !goodsIdControl[\"custom\"]) {\r\n goodsIdControl.name = \"GoodsTitle\";\r\n goodsIdControl[\"custom\"] = true;\r\n }\r\n if (goodsTitleControl && !goodsTitleControl[\"custom\"]) {\r\n goodsTitleControl.name = \"GoodsId\";\r\n goodsTitleControl[\"custom\"] = true;\r\n goodsTitleControl.listVisible = false;\r\n }\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"BranchId\", this.model.BranchId);\r\n if (!this.isMultiBranch) this.formGroup.controls[\"BranchId\"].disable();\r\n }\r\n\r\n loadInvDailyBalances(): void {\r\n const branchId = this.formGroup.controls[\"BranchId\"].value;\r\n if (branchId) {\r\n this.httpCommonService\r\n .get(\"InvDailyBalance/GetAllBalance?branchId=\" + branchId)\r\n .pipe(take(1))\r\n .subscribe((res: InvDailyBalance[]) => {\r\n this.dataList = res;\r\n if (this.isMultiBranch) {\r\n const list = this.goodsList.filter((x) => x.BranchId == branchId || x.BranchId == 0);\r\n this.selectorService.setDataList(\"GoodsId\", list);\r\n }\r\n this.cd.markForCheck();\r\n });\r\n }\r\n }\r\n\r\n public async save(): Promise {\r\n try {\r\n this.preSave();\r\n if (!this.isSaving) {\r\n if (this.isValid()) {\r\n this.beforupdate();\r\n this.sts.showToast(\"info\", \"\", this.translate(\"ClientApp.FrontOffice.Inv.DailyBalance.SavingChanges\"));\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n this.dataList.forEach((x) => {\r\n x.BranchId = this.formGroup.controls[\"BranchId\"].value;\r\n });\r\n this.httpCommonService\r\n .create(\"InvDailyBalance/SaveBalance\", this.dataList)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then(\r\n (row) => this.saveSuccessHelper(row),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } catch (e) {\r\n this.saveFailedHelper(e);\r\n }\r\n }\r\n\r\n isValid(): boolean {\r\n if (!this.formGroup.controls[\"BranchId\"].value) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyBalance.EnteringBranchRequired\"),\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyBalance.Attention\")\r\n );\r\n return false;\r\n }\r\n if (!this.dataList.length) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyBalance.EnterRequiredMinimizeItem\"),\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyBalance.Attention\")\r\n );\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.selectorService.dataList[\"GoodsId\"] = null;\r\n delete this.selectorService.dataList[\"GoodsId\"];\r\n super.ngOnDestroy();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { UntypedFormControl } from \"@angular/forms\";\r\nimport * as moment from \"moment\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { Branch } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Datatransfer } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models/form-control.model\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { InvDailyDetail, InvDailyHeader } from \"../../model/inv-daily-header.model\";\r\nimport { InvDailyKindEnum } from \"../inv-daily-kind.enum\";\r\nimport { InvDailyListDialogComponent } from \"../inv-daily-listdialog/inv-daily-listdialog.component\";\r\nimport { PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-daily-voucher-form\",\r\n templateUrl: \"./inv-daily-form.component.html\",\r\n styleUrls: [\"./inv-daily-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvDailyFormComponent extends BaseFormComponent {\r\n itemColumns: form_control[];\r\n DateNow: string;\r\n BranchLookUp: Branch[] = [];\r\n goodsList: any[];\r\n invDailyKindEnum = InvDailyKindEnum;\r\n constructor(\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n __id: FormContainerModel,\r\n private _tabsservice: TabularService,\r\n private datatransfer: Datatransfer\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.currentrow = this.datatransfer?.currentrow;\r\n this.tabsservice = _tabsservice;\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"InvDailyHeader\";\r\n this.pathPreFix = \"SALE\";\r\n this.reportName = \"InvDailyDetails\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.InvDailyHeader\");\r\n super.ngOnInit();\r\n const m = moment();\r\n this.DateNow = m.locale(\"fa\").format(\"YYYY/MM/DD\");\r\n await this.FillData();\r\n }\r\n\r\n async FillData() {\r\n const data = await (>this.httpCommonService.getList(\"Branch\").pipe(take(1)).toPromise());\r\n if (this.isMultiBranch) {\r\n this.BranchLookUp = data.filter((x) => !x.AccessToAllBranches && x.IsActive);\r\n } else this.BranchLookUp = data.filter((x) => x.Id == this.accountService.authService.currentBranch?.Id);\r\n\r\n if (this.isMultiBranch) {\r\n this.httpCommonService\r\n .get(\"Item/ReadInvDailyGoodsLookUpPaging\")\r\n .pipe(take(1))\r\n .subscribe((res: PagingDataResult) => {\r\n this.goodsList = res.Data;\r\n this.selectorService.setDataList(\"GoodsId\", this.goodsList);\r\n });\r\n }\r\n }\r\n\r\n setdefault(): void {\r\n if (!this.model.InvDailyDetails) this.model.InvDailyDetails = [];\r\n if (!this.model.VoucherDate) this.model.VoucherDate = this.DateNow as any;\r\n if (!this.model.FiscalYearId) this.model.FiscalYearId = this.accountService.authService.currentFiscalYear?.Id;\r\n if (!this.isMultiBranch) this.model.BranchId = this.accountService.authService.currentBranch?.Id;\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"VoucherDate\", this.model.VoucherDate);\r\n this.setValue(\"InvVoucherHeaderId\", this.model.InvVoucherHeaderId);\r\n this.setValue(\"Code\", this.model.Code);\r\n this.setValue(\"BranchId\", this.model.BranchId);\r\n this.setValue(\"Kind\", this.model.Kind);\r\n this.setValue(\"WarehouseId\", this.model.WarehouseId);\r\n this.setValue(\"FiscalYearId\", this.model.FiscalYearId);\r\n this.setValue(\"Description\", this.model.Description);\r\n if (!this.isMultiBranch || (this.isMultiBranch && this.currentrow)) this.formGroup.controls[\"BranchId\"].disable();\r\n if (this.currentrow && this.currentrow.InvVoucherHeaderId) {\r\n this.formGroup.controls[\"VoucherDate\"].disable();\r\n this.formGroup.controls[\"Description\"].disable();\r\n }\r\n }\r\n\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.selectorService.setTakeValue(\"GoodsId\", 1000);\r\n this.itemColumns = this.getDetailControlModels(\"InvDailyDetails\");\r\n const goodsIdControl = this.itemColumns.find((x) => x.name === \"GoodsId\");\r\n const goodsTitleControl = this.itemColumns.find((x) => x.name === \"GoodsTitle\");\r\n if (goodsIdControl && !goodsIdControl[\"custom\"]) {\r\n goodsIdControl.name = \"GoodsTitle\";\r\n goodsIdControl[\"custom\"] = true;\r\n }\r\n if (goodsTitleControl && !goodsTitleControl[\"custom\"]) {\r\n goodsTitleControl.name = \"GoodsId\";\r\n goodsTitleControl[\"custom\"] = true;\r\n }\r\n }\r\n\r\n onLookupRowSelect(group: any) {\r\n console.log(group);\r\n }\r\n\r\n isValid() {\r\n if (!this.model.InvDailyDetails.filter((x) => x.State !== RowState.Detached && x.State !== RowState.Delete).length) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyHeader.EnterRequiredMinimizeItem\"),\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyHeader.Attention\")\r\n );\r\n return false;\r\n }\r\n if (this.model.InvDailyDetails.filter((x) => x.State !== RowState.Detached && x.State !== RowState.Delete).find((x) => x.Amount <= 0)) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyHeader.InSomeRowsValueZeroOrNegative\"),\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyHeader.Attention\")\r\n );\r\n return false;\r\n }\r\n return super.isValid();\r\n }\r\n\r\n beforupdate() {\r\n if (this.model.InvDailyDetails && this.model.InvDailyDetails?.length > 0) {\r\n this.model.InvDailyDetails = this.model.InvDailyDetails?.filter((x) => x.State !== RowState.Detached);\r\n if (!this.formGroup.controls[\"InvDailyDetails\"])\r\n this.formGroup.addControl(\"InvDailyDetails\", new UntypedFormControl(this.model?.InvDailyDetails));\r\n else this.formGroup.controls[\"InvDailyDetails\"].setValue(this.model?.InvDailyDetails);\r\n this.formGroup.updateValueAndValidity();\r\n }\r\n this.model.InvDailyDetails.forEach((x) => {\r\n if (!x.InvDailyHeaderId) x.InvDailyHeaderId = this.model.Id;\r\n });\r\n }\r\n\r\n protected isCloseable(): boolean {\r\n this.selectorService.submitted$.next(false);\r\n this.formGroup?.markAsUntouched();\r\n return true;\r\n }\r\n\r\n removeEmptyValues() {\r\n this.model.InvDailyDetails = this.model.InvDailyDetails.filter((x) => x.Amount !== 0);\r\n this.cd.markForCheck();\r\n }\r\n\r\n ShowList() {\r\n this.dialogService\r\n .open(InvDailyListDialogComponent as any, { closeOnClickOutside: true })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((details: InvDailyDetail[]) => {\r\n if (details?.length) {\r\n this.model.InvDailyDetails = details;\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n\r\n reject() {\r\n this.model.Kind = InvDailyKindEnum.Reject;\r\n this.setValue(\"Kind\", this.model.Kind);\r\n this.model.State = RowState.Modify;\r\n this.save().then();\r\n }\r\n\r\n confirm() {\r\n this.model.Kind = InvDailyKindEnum.Confirm;\r\n this.setValue(\"Kind\", this.model.Kind);\r\n this.model.State = RowState.Modify;\r\n this.save().then();\r\n }\r\n\r\n onBranchChanges(branch: any) {\r\n if (this.isMultiBranch && branch) {\r\n const BranchId = branch.Id;\r\n const list = this.goodsList.filter((x) => x.BranchId == BranchId || !x.branchId);\r\n const goodsWithBranchZero = list.filter((g) => g.BranchId === 0);\r\n const goodsToRemove: any[] = [];\r\n\r\n goodsWithBranchZero.forEach((good) => {\r\n const equivalentGood = list.find((g) => g.Id === good.Id && g.BranchId !== 0);\r\n if (equivalentGood) goodsToRemove.push(good);\r\n });\r\n\r\n goodsToRemove.forEach((goodToRemove) => {\r\n const index = list.findIndex((g) => g.Id === goodToRemove.Id);\r\n if (index !== -1) {\r\n goodsToRemove.splice(index, 1);\r\n }\r\n });\r\n this.selectorService.setDataList(\"GoodsId\", list);\r\n }\r\n }\r\n\r\n onRowSelected() {\r\n if (this.isMultiBranch) {\r\n if (!this.formGroup.controls[\"BranchId\"].value) {\r\n this.sts.showDialog(this.translate(\"ClientApp.FrontOffice.Inv.DailyHeader.SelectDesiredBranchFirst\"), \"\");\r\n } else this.formGroup.controls[\"BranchId\"].disable();\r\n }\r\n }\r\n afterDeleted() {\r\n if (!this.isMultiBranch && !this.model.InvDailyDetails.filter((x) => x.State !== RowState.Detached && x.State !== RowState.Delete).length) {\r\n this.formGroup.controls[\"BranchId\"].enable();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.selectorService.dataList[\"GoodsId\"] = null;\r\n delete this.selectorService.dataList[\"GoodsId\"];\r\n super.ngOnDestroy();\r\n }\r\n}\r\n","\r\n 0\">\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { MenuPackage } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu-injector\";\r\nimport { ContextMenuService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu.service\";\r\nimport { MenuComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/menu.component\";\r\nimport { AccountService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { InvDailySettingComponent } from \"./inv-daily-setting/inv-daily-setting.component\";\r\n\r\n@Component({\r\n selector: \"simple-menu\",\r\n // add your menu html\r\n template: `\r\n \r\n {{ \"ClientApp.FrontOffice.Inv.DailyHeader.Settings\" | translate }}\r\n \r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvDailyHeaderMenuComponent extends MenuComponent {\r\n DepositMenuComponent;\r\n // this module does not have animations, set lazy false\r\n lazy = false;\r\n\r\n constructor(\r\n public menuPackage: MenuPackage,\r\n public contextMenuService: ContextMenuService,\r\n public dialogService: SimpleModalService,\r\n public common: CommonService,\r\n public accountService: AccountService,\r\n protected sts: ShowToastrService\r\n ) {\r\n super(menuPackage, contextMenuService);\r\n // grab any required menu context passed via menuContext input\r\n }\r\n\r\n async handleClick(value: any) {\r\n this.contextMenuService.closeAll();\r\n this.dialogService\r\n .open(InvDailySettingComponent, { currentrow: value }, { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false })\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n this.menuPackage.context.settingChanges$?.next(true);\r\n });\r\n }\r\n}\r\n","export enum InvDailyKindEnum {\r\n Manual = 0,\r\n Confirm = 1,\r\n ConfirmedBySima = 2,\r\n Reject = 3,\r\n}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { InvDailyFormComponent } from \"../inv-daily-form/inv-daily-form.component\";\r\nimport { SimpleModalComponent } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.component\";\r\nimport { UntypedFormGroup, UntypedFormControl } from \"@angular/forms\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { Branch } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridFilter, LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { InvDailyHeaderSetting } from \"../../model/inv-daily-header.model\";\r\nimport { Subject } from \"rxjs\";\r\nimport { InvDailyHeaderMenuComponent } from \"../inv-daily-header-menu.component\";\r\nimport { ContextMenuEnum } from \"src/app/frontoffice/order/model/contextMenuenum\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormSettingModel } from \"projects/sepidz-web-framework/src/lib/models/formsettingmodel\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-daily-list\",\r\n templateUrl: \"./inv-daily-list.component.html\",\r\n styleUrls: [\"./inv-daily-list.component.scss\"],\r\n})\r\nexport class InvDailyListComponent extends BaseListComponent {\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n noToolBar = false;\r\n hideToolbar = false;\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n formVisible: boolean;\r\n hasPermission: boolean = false;\r\n InvDailyHeaderSetting: InvDailyHeaderSetting;\r\n unSortableFilterable: string[] = [];\r\n public contextmenuEnum: typeof ContextMenuEnum = ContextMenuEnum;\r\n menu = InvDailyHeaderMenuComponent;\r\n settingChanges$ = new Subject();\r\n closerCallback: (component: SimpleModalComponent) => Promise;\r\n\r\n formGroup = new UntypedFormGroup({\r\n branchFilter: new UntypedFormControl(),\r\n });\r\n\r\n allBranchesExceptCallCenter: Branch[] = [];\r\n\r\n onFilter: GridFilter[] = [\r\n {\r\n Filed: \"Code\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 15,\r\n Operator: \"desc\",\r\n Type: \"S\",\r\n },\r\n ];\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, public storage: LocalStoreManager) {\r\n super();\r\n this.inputEditorform = InvDailyFormComponent;\r\n this.formVisible = !this.isMultiBranch;\r\n }\r\n\r\n ngOnInit() {\r\n this.apiName = \"InvDailyHeader\";\r\n this.areaName = \"RestaurantSale\";\r\n this.reportName = \"InvDailyHeader\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.InvDailyHeader\");\r\n this.httpCommonService\r\n .getList(\"Branch/GetAllBranch\")\r\n .pipe(take(1))\r\n .subscribe(async (data: Branch[]) => {\r\n this.allBranchesExceptCallCenter = data.filter((x) => !x.AccessToAllBranches);\r\n });\r\n if (this.isMultiBranch) {\r\n this.onBranchFilterClear();\r\n }\r\n this.getSetting();\r\n this.settingChanges$.pipe(take(1)).subscribe((x) => {\r\n this.getSetting();\r\n });\r\n const columnsToExclude = [\"KindString\"];\r\n\r\n this.unSortableFilterable.push(...columnsToExclude);\r\n }\r\n\r\n public onBranchFilterChanged(branches: Branch[]): void {\r\n if (branches.length) this.filterBranchWithOrOperator(branches);\r\n else this.onBranchFilterClear();\r\n }\r\n\r\n public onBranchFilterClear(): void {\r\n this.onFilter = [\r\n {\r\n Filed: \"BranchId\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n },\r\n ];\r\n }\r\n\r\n getSetting() {\r\n this.httpCommonService\r\n .getList(\"InvDailyHeaderFormSetting/GetSetting\")\r\n .pipe(take(1))\r\n .subscribe((res: FormSettingModel) => {\r\n this.InvDailyHeaderSetting = res;\r\n });\r\n }\r\n\r\n private filterBranchWithOrOperator(branches: Branch[]): void {\r\n this.onFilter = Object.assign([], []);\r\n branches.forEach((branch) => {\r\n const branchFilter: GridFilter = {\r\n Filed: \"BranchId\",\r\n Value: branch.Id,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n\r\n if (branches.length > 1) {\r\n branchFilter.Logic = \"or\";\r\n }\r\n this.onFilter.push(...[branchFilter]);\r\n });\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { Component, ChangeDetectorRef } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { InvDailyDetail, InvDailyHeader } from \"../../model/inv-daily-header.model\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-daily-listdialog\",\r\n templateUrl: \"./inv-daily-listdialog.component.html\",\r\n styleUrls: [\"./inv-daily-listdialog.component.scss\"],\r\n})\r\nexport class InvDailyListDialogComponent extends BaseFormComponent {\r\n selectedRowDetails: InvDailyDetail[];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"InvDailyHeader\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.InvDailyHeader\");\r\n }\r\n\r\n close() {\r\n this.closeModal();\r\n }\r\n\r\n confirm() {\r\n if (!this.selectedRowDetails) {\r\n this.sts.showToast(\"warning\", this.translate(\"ClientApp.FrontOffice.Inv.DailyHeader.NoneOfRowsSelected\"));\r\n return;\r\n }\r\n this.selectedRowDetails.forEach((x) => {\r\n x.Id = 0;\r\n x.Amount = 0;\r\n });\r\n this.result = this.selectedRowDetails;\r\n this.closeModal();\r\n }\r\n\r\n showInfo(e: InvDailyHeader) {\r\n e.InvDailyDetails.forEach((x) => {\r\n x.Id = 0;\r\n x.Amount = 0;\r\n });\r\n this.result = e.InvDailyDetails;\r\n this.closeModal();\r\n }\r\n\r\n onRowSelected(e: InvDailyHeader) {\r\n this.selectedRowDetails = e.InvDailyDetails;\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { InvDailyHeaderSetting } from \"../../model/inv-daily-header.model\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-daily-setting\",\r\n templateUrl: \"./inv-daily-setting.component.html\",\r\n styleUrls: [\"./inv-daily-setting.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvDailySettingComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"InvDailyHeaderFormSetting\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Inv.DailyHeader.DailyWarehouseChargeSettings\");\r\n this.customColumnInfoApi = \"InvDailyHeaderFormSetting/GetFormColumnInfo\";\r\n super.ngOnInit();\r\n }\r\n\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n\r\n override canDeactivate(): boolean | Observable {\r\n this.closeForm(true);\r\n return true;\r\n }\r\n}\r\n","\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { InvDailyRemain } from \"../../model/inv-daily-remain.model\";\r\nimport { Branch, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport * as moment from \"moment\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { Datatransfer } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { PagingDataResult, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-daily-remain-form\",\r\n templateUrl: \"./inv-daily-remain-form.component.html\",\r\n styleUrls: [\"./inv-daily-remain-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvDailyRemainFormComponent extends BaseFormComponent {\r\n itemColumns: form_control[];\r\n DateNow: string;\r\n BranchLookUp: Branch[] = [];\r\n goodsList: any[];\r\n constructor(\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n __id: FormContainerModel,\r\n private _tabsservice: TabularService,\r\n private splashFormService: SplashFormService,\r\n private datatransfer: Datatransfer\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n this.currentrow = this.datatransfer?.currentrow;\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"InvDailyRemain\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.InvDailyRemain\");\r\n super.ngOnInit();\r\n const m = moment();\r\n this.DateNow = m.locale(\"fa\").subtract(1, \"days\").format(\"YYYY/MM/DD\");\r\n await this.FillData();\r\n }\r\n\r\n async FillData() {\r\n const data = await (>this.httpCommonService.getList(\"Branch\").pipe(take(1)).toPromise());\r\n if (this.isMultiBranch) this.BranchLookUp = data.filter((x) => !x.AccessToAllBranches && x.IsActive);\r\n else this.BranchLookUp = data.filter((x) => x.Id == this.accountService.authService.currentBranchId);\r\n if (this.isMultiBranch) {\r\n this.httpCommonService\r\n .get(\"Item/ReadInvDailyGoodsLookUpPaging\")\r\n .pipe(take(1))\r\n .subscribe((res: PagingDataResult) => {\r\n this.goodsList = res.Data;\r\n this.selectorService.setDataList(\"GoodsId\", this.goodsList);\r\n });\r\n }\r\n }\r\n\r\n setdefault(): void {\r\n if (!this.model.InvDailyRemainDetaillList) this.model.InvDailyRemainDetaillList = [];\r\n if (!this.model.VoucherDate) this.model.VoucherDate = this.DateNow as any;\r\n if (!this.model.FiscalYearId) this.model.FiscalYearId = this.accountService.authService.currentFiscalYear?.Id;\r\n if (!this.isMultiBranch) this.model.BranchId = this.accountService.authService.currentBranch?.Id;\r\n }\r\n\r\n isValid() {\r\n if (!this.model.InvDailyRemainDetaillList.filter((x) => x.State !== RowState.Detached && x.State !== RowState.Delete).length) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyRemain.EnterRequiredMinimizeItem\"),\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyRemain.Attention\")\r\n );\r\n return false;\r\n }\r\n if (this.model.InvDailyRemainDetaillList.filter((x) => x.State !== RowState.Detached && x.State !== RowState.Delete).find((x) => x.Remain <= 0)) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyRemain.InSomeRowsValueZeroOrNegative\"),\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyRemain.Attention\")\r\n );\r\n return false;\r\n }\r\n if (!this.formGroup.controls[\"VoucherDate\"].value) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyRemain.Attention\"),\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyRemain.DateNotEntered\")\r\n );\r\n return false;\r\n }\r\n return super.isValid();\r\n }\r\n addControl(): void {\r\n this.setValue(\"InvVoucherHeaderId\", this.model.InvVoucherHeaderId);\r\n this.setValue(\"BranchId\", this.model.BranchId);\r\n this.setValue(\"BranchCode\", this.model.BranchCode);\r\n this.setValue(\"BranchTitle\", this.model.BranchTitle);\r\n this.setValue(\"WarehouseId\", this.model.WarehouseId);\r\n this.setValue(\"FiscalYearId\", this.model.FiscalYearId);\r\n this.setValue(\"Year\", this.model.Year);\r\n this.setValue(\"VoucherDate\", this.model.VoucherDate);\r\n this.setValue(\"ShamsiVoucherDate\", this.model.ShamsiVoucherDate);\r\n this.setValue(\"Description\", this.model.Description);\r\n if (!this.isMultiBranch || (this.isMultiBranch && this.currentrow)) this.formGroup.controls[\"BranchId\"].disable();\r\n }\r\n\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.selectorService.setTakeValue(\"GoodsId\", 1000);\r\n this.itemColumns = this.getDetailControlModels(\"InvDailyRemainDetaillList\");\r\n const goodsIdControl = this.itemColumns.find((x) => x.name === \"GoodsId\");\r\n const goodsTitleControl = this.itemColumns.find((x) => x.name === \"GoodsTitle\");\r\n if (goodsIdControl && !goodsIdControl[\"custom\"]) {\r\n goodsIdControl.name = \"GoodsTitle\";\r\n goodsIdControl[\"custom\"] = true;\r\n }\r\n if (goodsTitleControl && !goodsTitleControl[\"custom\"]) {\r\n goodsTitleControl.name = \"GoodsId\";\r\n goodsTitleControl[\"custom\"] = true;\r\n }\r\n }\r\n\r\n onGridValueChanges(changedData: { newValue: any; oldValue: any; field: string; formGroup: FormGroup }): void {\r\n if (changedData.field === \"RemainAmount\" || changedData.field === \"BalanceAmount\") {\r\n const values = changedData.formGroup.getRawValue();\r\n changedData.formGroup.controls[\"Remain\"].setValue(values.RemainAmount + values.BalanceAmount);\r\n }\r\n }\r\n\r\n beforupdate() {\r\n this.model.InvDailyRemainDetaillList = this.model.InvDailyRemainDetaillList?.filter((x) => x.State !== RowState.Detached);\r\n this.model.InvDailyRemainDetaillList.forEach((x) => {\r\n if (!x.InvDailyRemainId) x.InvDailyRemainId = this.model.Id;\r\n });\r\n }\r\n\r\n loadItems() {\r\n const controls = this.formGroup.controls;\r\n if (controls[\"VoucherDate\"].value && controls[\"BranchId\"].value) {\r\n this.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Inv.DailyRemain.GettingInformation\"));\r\n this.httpCommonService\r\n .get(`InvDailyRemain/GetInvRemainItems?date=${controls[\"VoucherDate\"].value.toISOString()}&branchId=${controls[\"BranchId\"].value}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: any) => {\r\n this.model.InvDailyRemainDetaillList = data;\r\n this.splashFormService.closeLoading();\r\n this.cd.markForCheck();\r\n },\r\n (err) => {\r\n let message = Utilities.getHttpResponseMessage(err);\r\n this.sts.showDialog(`${message}`, this.translate(\"ClientApp.FrontOffice.Inv.DailyRemain.ErrorMessage\"));\r\n this.splashFormService.closeLoading();\r\n }\r\n );\r\n }\r\n }\r\n\r\n removeEmptyValues() {\r\n this.model.InvDailyRemainDetaillList = this.model.InvDailyRemainDetaillList.filter((x) => x.RemainAmount !== 0);\r\n this.cd.markForCheck();\r\n }\r\n\r\n protected isCloseable(): boolean {\r\n this.selectorService.submitted$.next(false);\r\n this.formGroup?.markAsUntouched();\r\n return true;\r\n }\r\n\r\n onBranchChanges(branch: any) {\r\n if (this.isMultiBranch && branch) {\r\n const BranchId = branch.Id;\r\n const list = this.goodsList.filter((x) => x.BranchId == BranchId || !x.branchId);\r\n const goodsWithBranchZero = list.filter((g) => g.BranchId === 0);\r\n const goodsToRemove: any[] = [];\r\n\r\n goodsWithBranchZero.forEach((good) => {\r\n const equivalentGood = list.find((g) => g.Id === good.Id && g.BranchId !== 0);\r\n if (equivalentGood) goodsToRemove.push(good);\r\n });\r\n\r\n goodsToRemove.forEach((goodToRemove) => {\r\n const index = list.findIndex((g) => g.Id === goodToRemove.Id);\r\n if (index !== -1) {\r\n goodsToRemove.splice(index, 1);\r\n }\r\n });\r\n this.selectorService.setDataList(\"GoodsId\", list);\r\n }\r\n }\r\n\r\n onRowSelected() {\r\n if (this.isMultiBranch) {\r\n if (!this.formGroup.controls[\"BranchId\"].value) {\r\n this.sts.showDialog(this.translate(\"ClientApp.FrontOffice.Inv.DailyRemain.SelectDesiredBranchFirst\"), \"\");\r\n } else this.formGroup.controls[\"BranchId\"].disable();\r\n }\r\n }\r\n afterDeleted() {\r\n if (\r\n !this.isMultiBranch &&\r\n !this.model.InvDailyRemainDetaillList.filter((x) => x.State !== RowState.Detached && x.State !== RowState.Delete).length\r\n ) {\r\n this.formGroup.controls[\"BranchId\"].enable();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.selectorService.dataList[\"GoodsId\"] = null;\r\n delete this.selectorService.dataList[\"GoodsId\"];\r\n super.ngOnDestroy();\r\n }\r\n}\r\n","\r\n 0\">\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { InvDailyRemainFormComponent } from \"../inv-daily-remain-form/inv-daily-remain-form.component\";\r\nimport { UntypedFormGroup, UntypedFormControl } from \"@angular/forms\";\r\nimport { Branch } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { take } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-daily-remain-list\",\r\n templateUrl: \"./inv-daily-remain-list.component.html\",\r\n styleUrls: [\"./inv-daily-remain-list.component.scss\"],\r\n})\r\nexport class InvDailyRemainListComponent extends BaseListComponent {\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n formGroup = new UntypedFormGroup({\r\n branchFilter: new UntypedFormControl(),\r\n });\r\n\r\n allBranchesExceptCallCenter: Branch[] = [];\r\n\r\n onFilter: GridFilter[] = [\r\n {\r\n Filed: \"CreatedDate\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 15,\r\n Operator: \"desc\",\r\n Type: \"S\",\r\n },\r\n ];\r\n\r\n constructor() {\r\n super();\r\n this.inputEditorform = InvDailyRemainFormComponent;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.apiName = \"InvDailyRemain\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Inv.DailyRemain.Leftover\");\r\n this.httpCommonService\r\n .getList(\"Branch/GetAllBranch\")\r\n .pipe(take(1))\r\n .subscribe(async (data: Branch[]) => {\r\n this.allBranchesExceptCallCenter = data.filter((x) => !x.AccessToAllBranches);\r\n });\r\n if (this.isMultiBranch) {\r\n this.onBranchFilterClear();\r\n }\r\n }\r\n\r\n public onBranchFilterChanged(branches: Branch[]): void {\r\n if (branches.length) this.filterBranchWithOrOperator(branches);\r\n else this.onBranchFilterClear();\r\n }\r\n\r\n public onBranchFilterClear(): void {\r\n this.onFilter = [\r\n {\r\n Filed: \"BranchId\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n },\r\n ];\r\n }\r\n\r\n private filterBranchWithOrOperator(branches: Branch[]): void {\r\n this.onFilter = Object.assign([], []);\r\n branches.forEach((branch) => {\r\n const branchFilter: GridFilter = {\r\n Filed: \"BranchId\",\r\n Value: branch.Id,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n\r\n if (branches.length > 1) {\r\n branchFilter.Logic = \"or\";\r\n }\r\n this.onFilter.push(...[branchFilter]);\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup } from \"@angular/forms\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { AccountService, HttpCommonService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { take } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-daily-usage\",\r\n templateUrl: \"./inv-daily-usage.component.html\",\r\n styleUrls: [\"./inv-daily-usage.component.scss\"],\r\n})\r\nexport class InvDailyUsageComponent implements OnInit {\r\n formGroup: UntypedFormGroup;\r\n columns: form_control[] = [];\r\n itemLists: any;\r\n isMultiBranch: Boolean;\r\n\r\n constructor(\r\n fb: UntypedFormBuilder,\r\n private httpCommonService: HttpCommonService,\r\n private accountService: AccountService,\r\n private translate: TranslateService\r\n ) {\r\n const info = this.accountService.authService.currentInformation();\r\n this.isMultiBranch =\r\n (info.BranchingAdvancedEnabled || info.BranchingLightEnabled || info.RestaurantCallCenter) &&\r\n this.accountService.authService.currentBranch?.AccessToAllBranches;\r\n this.formGroup = fb.group({\r\n Goods: \"\",\r\n BranchId: \"\",\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.setHeaderColumns();\r\n }\r\n setHeaderColumns() {\r\n this.columns.push({\r\n label: this.translate.instant(\"ClientApp.FrontOffice.Inv.DailyUsage.ProductCode\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ItemCode\",\r\n textType: \"text\",\r\n disabled: false,\r\n name: \"ItemCode\",\r\n order: 0,\r\n formVisible: false,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.columns.push({\r\n label: this.translate.instant(\"ClientApp.FrontOffice.Inv.DailyUsage.ItemTitle\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ItemTitle\",\r\n disabled: false,\r\n name: \"ItemTitle\",\r\n textType: \"text\",\r\n order: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: this.translate.instant(\"ClientApp.FrontOffice.Inv.DailyUsage.MeasurementUnit\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"UnitTitle\",\r\n disabled: false,\r\n name: \"UnitTitle\",\r\n textType: \"text\",\r\n order: 2,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: this.translate.instant(\"ClientApp.FrontOffice.Inv.DailyUsage.Amount\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"TotalAmount\",\r\n disabled: false,\r\n name: \"TotalAmount\",\r\n textType: \"text\",\r\n order: 3,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: this.translate.instant(\"ClientApp.FrontOffice.Inv.DailyUsage.ItemType\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsKindTitle\",\r\n disabled: false,\r\n name: \"GoodsKindTitle\",\r\n textType: \"text\",\r\n order: 3,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n }\r\n\r\n getData() {\r\n const branchId = this.formGroup.controls[\"BranchId\"].value !== \"\" ? this.formGroup.controls[\"BranchId\"].value : null;\r\n const goodsId = this.formGroup.controls[\"Goods\"].value;\r\n this.httpCommonService\r\n .get(`MaterialUseInProduct/GetGoodsUsage/${goodsId}/${branchId}`)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: (res) => {\r\n this.itemLists = res;\r\n },\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { Branch, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { take } from \"rxjs/operators\";\r\nimport { InvDailyWarehouse } from \"../model/inv-daily-warehouse.model\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport * as moment from \"moment\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-daily-warehouse\",\r\n templateUrl: \"./inv-daily-warehouse.component.html\",\r\n styleUrls: [\"./inv-daily-warehouse.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvDailyWarehouseComponent extends BaseFormComponent {\r\n itemColumns: form_control[] = [];\r\n dataList: InvDailyWarehouse[] = [];\r\n BranchLookUp: Branch[];\r\n DateNow: string;\r\n\r\n constructor(\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n private splashFormService: SplashFormService,\r\n __id: FormContainerModel,\r\n _tabsservice: TabularService\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"InvDailyHeader/GetWarehouseStockColumns\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.InvDailyWarehouse\");\r\n const m = moment();\r\n this.DateNow = m.locale(\"fa\").format(\"YYYY/MM/DD\");\r\n this.getItemColumns();\r\n await this.FillData();\r\n super.ngOnInit();\r\n }\r\n\r\n async FillData() {\r\n const data = await (>this.httpCommonService.getList(\"Branch\").pipe(take(1)).toPromise());\r\n if (this.isMultiBranch) this.BranchLookUp = data.filter((x) => !x.AccessToAllBranches && x.IsActive);\r\n else this.BranchLookUp = data.filter((x) => x.Id == this.accountService.authService.currentBranchId);\r\n }\r\n\r\n setdefault(): void {\r\n if (!this.model.VoucherDate) this.model.VoucherDate = this.DateNow as any;\r\n if (!this.isMultiBranch) this.model.BranchId = this.accountService.authService.currentBranch?.Id;\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"VoucherDate\", this.model.VoucherDate);\r\n this.setValue(\"BranchId\", this.model.BranchId);\r\n if (!this.isMultiBranch) this.formGroup.controls[\"BranchId\"].disable();\r\n }\r\n\r\n getItemColumns(): void {\r\n this.httpCommonService\r\n .get(\"InvDailyHeader/GetWarehouseStockColumns\")\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n this.itemColumns = res;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n loadItems() {\r\n const controls = this.formGroup.controls;\r\n if (controls[\"VoucherDate\"].value && controls[\"BranchId\"].value) {\r\n this.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Inv.DailyWarehouse.GettingInformation\"));\r\n const date = new Date(controls[\"VoucherDate\"].value.setHours(23, 59, 59, 999)).toISOString();\r\n this.httpCommonService\r\n .get(\"InvDailyHeader/GetWarehouseStockItems?date=\" + date + \"&branchId=\" + controls[\"BranchId\"].value)\r\n .pipe(take(1))\r\n .subscribe(\r\n (res: InvDailyWarehouse[]) => {\r\n this.dataList = res.filter((x) => x.EntryAmount > 0 || x.PrevRemainAmount);\r\n this.splashFormService.closeLoading();\r\n this.cd.markForCheck();\r\n },\r\n (err) => {\r\n let message = Utilities.getHttpResponseMessage(err);\r\n this.sts.showDialog(`${message}`, this.translate(\"ClientApp.FrontOffice.Inv.DailyWarehouse.ErrorMessage\"));\r\n this.splashFormService.closeLoading();\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { InvDailyWaste } from \"../inv-daily-waste.model\";\r\nimport { Branch, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport * as moment from \"moment\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { Datatransfer } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { AuthService } from \"projects/sepidz-web-framework/src/lib/services/auth.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-daily-waste-form\",\r\n templateUrl: \"./inv-daily-waste-form.component.html\",\r\n styleUrls: [\"./inv-daily-waste-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvDailyWasteFormComponent extends BaseFormComponent {\r\n itemColumns: form_control[];\r\n DateNow: string;\r\n BranchLookUp: Branch[] = [];\r\n goodsList: any[];\r\n constructor(\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n __id: FormContainerModel,\r\n public authService: AuthService,\r\n private _tabsservice: TabularService,\r\n private datatransfer: Datatransfer\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n this.currentrow = this.datatransfer?.currentrow;\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"InvDailyWaste\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.InvDailyWaste\");\r\n await this.FillData();\r\n super.ngOnInit();\r\n const m = moment();\r\n this.DateNow = m.locale(\"fa\").format(\"YYYY/MM/DD\");\r\n }\r\n\r\n setdefault(): void {\r\n if (!this.model.InvDailyWasteDetailList) this.model.InvDailyWasteDetailList = [];\r\n if (!this.model.VoucherDate) this.model.VoucherDate = this.DateNow as any;\r\n if (!this.model.FiscalYearId) this.model.FiscalYearId = this.accountService.authService.currentFiscalYear?.Id;\r\n if (!this.isMultiBranch) this.model.BranchId = this.accountService.authService.currentBranch?.Id;\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"InvVoucherHeaderId\", this.model.InvVoucherHeaderId);\r\n this.setValue(\"BranchId\", this.model.BranchId);\r\n this.setValue(\"BranchCode\", this.model.BranchCode);\r\n this.setValue(\"BranchTitle\", this.model.BranchTitle);\r\n this.setValue(\"WarehouseId\", this.model.WarehouseId);\r\n this.setValue(\"FiscalYearId\", this.model.FiscalYearId);\r\n this.setValue(\"Year\", this.model.Year);\r\n this.setValue(\"VoucherDate\", this.model.VoucherDate);\r\n this.setValue(\"ShamsiVoucherDate\", this.model.ShamsiVoucherDate);\r\n this.setValue(\"Description\", this.model.Description);\r\n if (!this.isMultiBranch || (this.isMultiBranch && this.currentrow)) this.formGroup.controls[\"BranchId\"].disable();\r\n }\r\n\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.selectorService.setTakeValue(\"GoodsId\", 1000);\r\n this.itemColumns = this.getDetailControlModels(\"InvDailyWasteDetailList\");\r\n const goodsIdControl = this.itemColumns.find((x) => x.name === \"GoodsId\");\r\n const goodsTitleControl = this.itemColumns.find((x) => x.name === \"GoodsTitle\");\r\n if (goodsIdControl && !goodsIdControl[\"custom\"]) {\r\n goodsIdControl.name = \"GoodsTitle\";\r\n goodsIdControl[\"custom\"] = true;\r\n }\r\n if (goodsTitleControl && !goodsTitleControl[\"custom\"]) {\r\n goodsTitleControl.name = \"GoodsId\";\r\n goodsTitleControl[\"custom\"] = true;\r\n }\r\n }\r\n\r\n beforupdate() {\r\n this.model.InvDailyWasteDetailList = this.model.InvDailyWasteDetailList?.filter((x) => x.State !== RowState.Detached);\r\n this.model.InvDailyWasteDetailList.forEach((x) => {\r\n if (!x.InvDailyWasteId) x.InvDailyWasteId = this.model.Id;\r\n });\r\n }\r\n isValid() {\r\n if (!this.model.InvDailyWasteDetailList.filter((x) => x.State !== RowState.Detached && x.State !== RowState.Delete).length) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyWaste.EnterRequiredMinimizeItem\"),\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyWaste.Attention\")\r\n );\r\n return false;\r\n }\r\n if (this.model.InvDailyWasteDetailList.filter((x) => x.State !== RowState.Detached && x.State !== RowState.Delete).find((x) => x.Amount <= 0)) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyWaste.InSomeRowsValueZeroOrNegative\"),\r\n this.translate(\"ClientApp.FrontOffice.Inv.DailyWaste.Attention\")\r\n );\r\n return false;\r\n }\r\n return super.isValid();\r\n }\r\n\r\n protected isCloseable(): boolean {\r\n this.selectorService.submitted$.next(false);\r\n this.formGroup?.markAsUntouched();\r\n return true;\r\n }\r\n\r\n async FillData() {\r\n const data = await (>this.httpCommonService.getList(\"Branch\").pipe(take(1)).toPromise());\r\n if (this.isMultiBranch) this.BranchLookUp = data.filter((x) => !x.AccessToAllBranches && x.IsActive);\r\n else this.BranchLookUp = data.filter((x) => x.Id == this.accountService.authService.currentBranchId);\r\n if (this.isMultiBranch) {\r\n this.httpCommonService\r\n .get(\"Item/ReadInvDailyGoodsLookUpPaging\")\r\n .pipe(take(1))\r\n .subscribe((res: PagingDataResult) => {\r\n this.goodsList = res.Data;\r\n this.selectorService.setDataList(\"GoodsId\", this.goodsList);\r\n });\r\n }\r\n }\r\n\r\n onBranchChanges(branch: any) {\r\n if (this.isMultiBranch && branch) {\r\n const BranchId = branch.Id;\r\n const list = this.goodsList.filter((x) => x.BranchId == BranchId || !x.branchId);\r\n const goodsWithBranchZero = list.filter((g) => g.BranchId === 0);\r\n const goodsToRemove: any[] = [];\r\n\r\n goodsWithBranchZero.forEach((good) => {\r\n const equivalentGood = list.find((g) => g.Id === good.Id && g.BranchId !== 0);\r\n if (equivalentGood) goodsToRemove.push(good);\r\n });\r\n\r\n goodsToRemove.forEach((goodToRemove) => {\r\n const index = list.findIndex((g) => g.Id === goodToRemove.Id);\r\n if (index !== -1) {\r\n goodsToRemove.splice(index, 1);\r\n }\r\n });\r\n this.selectorService.setDataList(\"GoodsId\", list);\r\n }\r\n }\r\n\r\n onRowSelected() {\r\n if (this.isMultiBranch) {\r\n if (!this.formGroup.controls[\"BranchId\"].value) {\r\n this.sts.showDialog(this.translate(\"ClientApp.FrontOffice.Inv.DailyWaste.SelectDesiredBranchFirst\"), \"\");\r\n } else this.formGroup.controls[\"BranchId\"].disable();\r\n }\r\n }\r\n afterDeleted() {\r\n if (\r\n !this.isMultiBranch &&\r\n !this.model.InvDailyWasteDetailList.filter((x) => x.State !== RowState.Detached && x.State !== RowState.Delete).length\r\n ) {\r\n this.formGroup.controls[\"BranchId\"].enable();\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.selectorService.dataList[\"GoodsId\"] = null;\r\n delete this.selectorService.dataList[\"GoodsId\"];\r\n super.ngOnDestroy();\r\n }\r\n}\r\n","\r\n 0\">\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n
\r\n\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { InvDailyWasteFormComponent } from \"../inv-daily-waste-form/inv-daily-waste-form.component\";\r\nimport { InvDailyWasteSetting } from \"../inv-daily-waste.model\";\r\nimport { ContextMenuEnum } from \"src/app/frontoffice/order/model/contextMenuenum\";\r\nimport { InvDailyWasteMenuComponent } from \"../inv-daily-waste-menu.component\";\r\nimport { OrderService } from \"src/app/frontoffice/order/order.service\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { GridFilter, LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { FormSettingModel } from \"projects/sepidz-web-framework/src/lib/models/formsettingmodel\";\r\nimport { Subject } from \"rxjs\";\r\nimport { UntypedFormGroup, UntypedFormControl } from \"@angular/forms\";\r\nimport { Branch } from \"projects/sepidz-web-framework/src/lib/models\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-daily-waste-list\",\r\n templateUrl: \"./inv-daily-waste-list.component.html\",\r\n styleUrls: [\"./inv-daily-waste-list.component.scss\"],\r\n})\r\nexport class InvDailyWasteListComponent extends BaseListComponent {\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n formVisible: boolean;\r\n hasPermission: boolean = false;\r\n invDailyWasteSetting: InvDailyWasteSetting;\r\n public contextmenuEnum: typeof ContextMenuEnum = ContextMenuEnum;\r\n menu = InvDailyWasteMenuComponent;\r\n settingChanges$ = new Subject();\r\n formGroup = new UntypedFormGroup({\r\n branchFilter: new UntypedFormControl(),\r\n });\r\n\r\n allBranchesExceptCallCenter: Branch[] = [];\r\n\r\n onFilter: GridFilter[] = [\r\n {\r\n Filed: \"CreatedDate\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 15,\r\n Operator: \"desc\",\r\n Type: \"S\",\r\n },\r\n ];\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, public storage: LocalStoreManager) {\r\n super();\r\n this.inputEditorform = InvDailyWasteFormComponent;\r\n this.formVisible = !this.isMultiBranch;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.apiName = \"InvDailyWaste\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.InvDailyWaste\");\r\n this.getSetting();\r\n this.settingChanges$.pipe(take(1)).subscribe((x) => {\r\n this.getSetting();\r\n });\r\n this.httpCommonService\r\n .getList(\"Branch/GetAllBranch\")\r\n .pipe(take(1))\r\n .subscribe(async (data: Branch[]) => {\r\n this.allBranchesExceptCallCenter = data.filter((x) => !x.AccessToAllBranches);\r\n });\r\n if (this.isMultiBranch) {\r\n this.onBranchFilterClear();\r\n }\r\n }\r\n\r\n public onBranchFilterChanged(branches: Branch[]): void {\r\n if (branches.length) this.filterBranchWithOrOperator(branches);\r\n else this.onBranchFilterClear();\r\n }\r\n\r\n public onBranchFilterClear(): void {\r\n this.onFilter = [\r\n {\r\n Filed: \"BranchId\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n },\r\n ];\r\n }\r\n\r\n private filterBranchWithOrOperator(branches: Branch[]): void {\r\n this.onFilter = Object.assign([], []);\r\n branches.forEach((branch) => {\r\n const branchFilter: GridFilter = {\r\n Filed: \"BranchId\",\r\n Value: branch.Id,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n\r\n if (branches.length > 1) {\r\n branchFilter.Logic = \"or\";\r\n }\r\n this.onFilter.push(...[branchFilter]);\r\n });\r\n }\r\n\r\n getSetting() {\r\n this.httpCommonService\r\n .getList(\"InvDailyWasteFormSetting/GetSetting\")\r\n .pipe(take(1))\r\n .subscribe((res: FormSettingModel) => {\r\n this.invDailyWasteSetting = res;\r\n });\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { MenuPackage } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu-injector\";\r\nimport { ContextMenuService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu.service\";\r\nimport { MenuComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/menu.component\";\r\nimport { AccountService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { InvDailyWasteSettingComponent } from \"./inv-daily-waste-setting/inv-daily-waste-setting.component\";\r\nimport { take } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"simple-menu\",\r\n // add your menu html\r\n template: `\r\n \r\n {{ \"ClientApp.FrontOffice.Inv.DailyWaste.Settings\" | translate }}\r\n \r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvDailyWasteMenuComponent extends MenuComponent {\r\n DepositMenuComponent;\r\n // this module does not have animations, set lazy false\r\n lazy = false;\r\n\r\n constructor(\r\n public menuPackage: MenuPackage,\r\n public contextMenuService: ContextMenuService,\r\n public dialogService: SimpleModalService,\r\n public common: CommonService,\r\n public accountService: AccountService,\r\n protected sts: ShowToastrService\r\n ) {\r\n super(menuPackage, contextMenuService);\r\n // grab any required menu context passed via menuContext input\r\n }\r\n\r\n async handleClick(value: any) {\r\n this.contextMenuService.closeAll();\r\n this.dialogService\r\n .open(InvDailyWasteSettingComponent, { currentrow: value }, { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false })\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n this.menuPackage.context.settingChanges$?.next(true);\r\n });\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { InvDailyWasteSetting } from \"../inv-daily-waste.model\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"ngx-inv-daily-waste-setting\",\r\n templateUrl: \"./inv-daily-waste-setting.component.html\",\r\n styleUrls: [\"./inv-daily-waste-setting.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvDailyWasteSettingComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"InvDailyWasteFormSetting\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Inv.DailyWaste.Settings\");\r\n this.customColumnInfoApi = \"InvDailyWasteFormSetting/GetFormColumnInfo\";\r\n super.ngOnInit();\r\n }\r\n\r\n setdefault(): void {\r\n if (!this.isMultiBranch) {\r\n this.formGroup.get(\"InvBranchId\")?.enable();\r\n this.cd.markForCheck();\r\n } else {\r\n this.setValue(\"InvBranchId\", this.accountService.authService.currentBranch?.Id);\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n addControl() {\r\n this.setValue(\"InvBranchId\", this.model.BranchId);\r\n this.setValue(\"InvVoucherId\", this.model.BranchId);\r\n this.setValue(\"InvWareHouseId\", this.model.BranchId);\r\n if (!this.isMultiBranch) {\r\n this.formGroup.get(\"InvBranchId\")?.enable();\r\n } else {\r\n this.setValue(\"InvBranchId\", this.accountService.authService.currentBranch?.Id);\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n override canDeactivate(): boolean | Observable {\r\n this.closeForm(true);\r\n return true;\r\n }\r\n}\r\n","\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SaleFormula, SaleFormulaDetail } from \"../model/sale-formula.model\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { FormGroup } from \"@angular/forms\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { AppInjector } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SaleItemListComponent } from \"./sale-item-list/sale-item-list.component\";\r\nimport { VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\n\r\n@Component({\r\n selector: \"ngx-sale-formula\",\r\n templateUrl: \"./sale-formula.component.html\",\r\n styleUrls: [\"./sale-formula.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SaleFormulaComponent extends BaseFormComponent {\r\n @ViewChild(\"grid\") headerGrid: KGridComponent;\r\n public headerColumns: form_control[] = [];\r\n detailsColumns: form_control[] = [];\r\n headersColumns: form_control[] = [];\r\n selectedRow: SaleFormula;\r\n formulas: SaleFormula[] = [];\r\n itemId: number;\r\n itemTitle: string;\r\n addGoods: boolean = false;\r\n erroremessage: string;\r\n haserror: boolean;\r\n\r\n constructor(\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n _VoucherKIndInfo: VoucherKindInfo,\r\n __id: FormContainerModel\r\n ) {\r\n super(selectorService, cd);\r\n this.tabsservice = AppInjector.get(TabularService);\r\n if (_VoucherKIndInfo[\"formulas\"]) this.formulas = _VoucherKIndInfo[\"formulas\"];\r\n if (_VoucherKIndInfo[\"ItemId\"]) this.itemId = _VoucherKIndInfo[\"ItemId\"];\r\n if (_VoucherKIndInfo[\"itemTitle\"]) this.itemTitle = _VoucherKIndInfo[\"itemTitle\"];\r\n this._id = __id;\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"SaleFormula\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.ComponentsOfGoods\");\r\n super.ngOnInit();\r\n this.setHeaderColumns();\r\n this.setDetailColumns();\r\n if (this.formulas?.length) this.selectedRow = this.formulas[0];\r\n }\r\n\r\n setHeaderColumns() {\r\n this.headersColumns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.Goods\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"ItemId\",\r\n textType: \"number\",\r\n disabled: false,\r\n name: \"ItemId\",\r\n order: 0,\r\n formVisible: false,\r\n listVisible: false,\r\n required: true,\r\n });\r\n this.headersColumns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.EffectiveDate\"),\r\n controlType: FormControlTypes.datePicker,\r\n modelName: \"EffectDate\",\r\n disabled: false,\r\n name: \"EffectDate\",\r\n textType: \"date\",\r\n order: 7,\r\n userClass: \"effect-date\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.headersColumns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.Branch\"),\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"BranchId\",\r\n disabled: false,\r\n name: \"BranchId\",\r\n textType: \"text\",\r\n order: 8,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n apiName: \"Branch/ReadLookUp\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n });\r\n this.headersColumns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.AnalysisItems\"),\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"SaleFormulaDetails\",\r\n disabled: false,\r\n name: \"SaleFormulaDetails\",\r\n textType: \"text\",\r\n order: 10,\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n }\r\n setDetailColumns() {\r\n this.detailsColumns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.Formula\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"SaleFormulaId\",\r\n textType: \"number\",\r\n disabled: true,\r\n name: \"SaleFormulaId\",\r\n order: 0,\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n this.detailsColumns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.ItemCode\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsCode\",\r\n disabled: true,\r\n name: \"GoodsCode\",\r\n textType: \"text\",\r\n order: 1,\r\n formVisible: false,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.detailsColumns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.Goods\"),\r\n controlType: FormControlTypes.lookup,\r\n modelName: \"GoodsId\",\r\n textType: \"text\",\r\n disabled: false,\r\n name: \"GoodsId\",\r\n order: 2,\r\n formVisible: false,\r\n listVisible: true,\r\n required: true,\r\n apiName: \"SaleFormula/GetAnalysisGoodsPaging\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n columnsName: \"Code,Title,UnitTitle,GoodsKindTitle\",\r\n });\r\n this.detailsColumns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.ItemTitle\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsTitle\",\r\n disabled: true,\r\n name: \"GoodsTitle\",\r\n textType: \"text\",\r\n order: 3,\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n this.detailsColumns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.ProductTypeCode\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsKindCode\",\r\n disabled: true,\r\n name: \"GoodsKindCode\",\r\n textType: \"text\",\r\n order: 3,\r\n formVisible: false,\r\n listVisible: false,\r\n required: false,\r\n });\r\n this.detailsColumns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.Amount\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Amount\",\r\n textType: \"number\",\r\n min: 0.00001,\r\n max: 999999999999,\r\n disabled: false,\r\n name: \"Amount\",\r\n order: 5,\r\n tabOrder: 5,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n isFloat: null,\r\n isDecimal: true,\r\n withComma: true,\r\n });\r\n this.detailsColumns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.MeasurementUnit\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsUnitTitle\",\r\n textType: \"text\",\r\n disabled: true,\r\n name: \"GoodsUnitTitle\",\r\n order: 4,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.detailsColumns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.ProductTypeTitle\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"GoodsKindTitle\",\r\n disabled: true,\r\n name: \"GoodsKindTitle\",\r\n textType: \"text\",\r\n order: 3,\r\n formVisible: false,\r\n listVisible: true,\r\n required: false,\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n }\r\n\r\n onDetailRowChanges(changedData: { newValue: SaleFormulaDetail; oldValue: SaleFormulaDetail; field: string; formGroup: FormGroup }) {\r\n if (!changedData.formGroup.value.SaleFormulaId) changedData.formGroup.controls[\"SaleFormulaId\"].setValue(0);\r\n }\r\n\r\n onHeaderChanges(group: FormGroup) {\r\n this.showHideActions();\r\n if (group && group.controls) {\r\n if (!group?.value.SaleFormulaDetails) group.controls[\"SaleFormulaDetails\"].setValue([]);\r\n if (!group?.value.ItemId) group.controls[\"ItemId\"].setValue(this.itemId);\r\n this.selectedRow = group?.getRawValue();\r\n }\r\n }\r\n\r\n onLookupChanges(change: { event: any; key: string; valueMember: string; displayMember: string; dataItem: any; formGroup: FormGroup }) {\r\n if (change.key === \"GoodsId\") {\r\n change.dataItem.GoodsKindTitle = change.event?.GoodsKindTitle;\r\n change.dataItem.GoodsKindCode = change.event?.GoodsKindCode;\r\n change.dataItem.GoodsUnitTitle = change.event?.GoodsUnitTitle;\r\n change.formGroup.controls[\"GoodsKindTitle\"].setValue(change.event?.GoodsKindTitle);\r\n change.formGroup.controls[\"GoodsKindCode\"].setValue(change.event?.GoodsKindCode);\r\n change.formGroup.controls[\"GoodsUnitTitle\"].setValue(change.event?.GoodsUnitTitle);\r\n }\r\n }\r\n\r\n public openGoodsForm() {\r\n let menu = {\r\n title: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.ItemList\"),\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n data: [],\r\n componentType: SaleItemListComponent,\r\n hasbadge: false,\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n\r\n setdefault(): void {\r\n this.showHideActions();\r\n }\r\n\r\n isValid(): boolean {\r\n this.erroremessage = undefined;\r\n this.haserror = false;\r\n if (!this.formulas.length) {\r\n this.haserror = true;\r\n this.sts.showToast(\"warning\", \"\", this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.EnterAtLeastOneAnalysis\"), 3500);\r\n }\r\n if (this.formulas.some((x) => x.State !== RowState.Delete && x.SaleFormulaDetails.filter((z) => z.State !== RowState.Delete).length === 0)) {\r\n this.haserror = true;\r\n this.sts.showToast(\"warning\", \"\", this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.EnterAtLeastOneIngredient\"), 3500);\r\n }\r\n return !this.haserror;\r\n }\r\n\r\n public async save(): Promise {\r\n try {\r\n if (this.isValid()) {\r\n this.beforupdate();\r\n this.sts.showToast(\"info\", \"\", this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.SavingChanges\"));\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n this.formulas.forEach((formula) => {\r\n formula.SaleFormulaDetails = formula.SaleFormulaDetails?.filter((x) => x.State !== RowState.Detached);\r\n const hasEditAndInsertDetail = formula.SaleFormulaDetails.some((x) => x.State !== RowState.NoChange && !!formula.Id);\r\n if (hasEditAndInsertDetail) formula.State = RowState.Modify;\r\n if (formula.Id) {\r\n formula.SaleFormulaDetails.forEach((x) => {\r\n x.SaleFormulaId = formula.Id;\r\n });\r\n this.addGoods = true;\r\n }\r\n });\r\n const res = await this.httpCommonService.create(\"SaleFormula/SaveFormulas\", this.formulas).pipe(take(1)).toPromise();\r\n this.saveSuccessHelper(res);\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } catch (error) {\r\n this.saveFailedHelper(error);\r\n }\r\n }\r\n\r\n showHideActions() {\r\n setTimeout(() => {\r\n this.addGoods = !!this.headerGrid.dataList.length;\r\n this.cd.markForCheck();\r\n }, 0);\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Inv.SaleFormula.ProductAnalysis\" | translate }}\r\n \r\n \r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Inv.SaleFormula.ProductComponents\" | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { InvGoodsKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { Goods } from \"src/app/backoffice/inv/models/goods.model\";\r\ninterface SaleFormulaCoding {\r\n Code: number;\r\n Kind: InvGoodsKind;\r\n}\r\n@Component({\r\n selector: \"ngx-sale-item-form\",\r\n templateUrl: \"./sale-item-form.component.html\",\r\n styleUrls: [\"./sale-item-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SaleItemFormComponent extends BaseFormComponent {\r\n codingList: SaleFormulaCoding[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"SaleFormula/Goods\";\r\n this.customColumnInfoApi = \"SaleFormula/GetFormColumnInfo\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.Goods\");\r\n super.ngOnInit();\r\n this.codingList = await this.httpCommonService.get(\"SaleFormula/GoodsCoding\").toPromise();\r\n }\r\n\r\n setdefault(): void {}\r\n\r\n addControl(): void {}\r\n\r\n onFieldsChanges(value: any) {\r\n if (this.codingList.length && value?.Category === \"GoodsKind\") {\r\n if (this.currentrow?.GoodsKindId !== value.Id) {\r\n const code = this.codingList.find((x) => x.Kind == value.Code)?.Code?.toString();\r\n if (code) {\r\n this.model.Code = code;\r\n this.setValue(\"Code\", code);\r\n }\r\n } else if (this.currentrow) {\r\n this.model.Code = this.currentrow.Code;\r\n this.setValue(\"Code\", this.currentrow.Code);\r\n }\r\n }\r\n }\r\n\r\n public async save() {\r\n try {\r\n if (this.isValid()) {\r\n this.beforupdate();\r\n this.sts.showToast(\"info\", \"\", this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.SavingChanges\"));\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n if (this.isNewRow || this.id === undefined || this.id === 0 || Number.isNaN(this.id) || this.id === null) {\r\n await this.httpCommonService\r\n .create(\"SaleFormula/CreateGoods\", this.getDataFromFormGroup())\r\n .pipe(take(1))\r\n .toPromise()\r\n .then(\r\n (row) => this.saveSuccessHelper(row),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n } else {\r\n await this.httpCommonService\r\n .update(\"SaleFormula/UpdateGoods\", this.getDataFromFormGroup())\r\n .pipe(take(1))\r\n .toPromise()\r\n .then(\r\n (response) => this.saveSuccessHelper(),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } catch (e) {\r\n this.saveFailedHelper(e);\r\n }\r\n }\r\n}\r\n","\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { LocalStoreManager, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SaleItemFormComponent } from \"../sale-item-form/sale-item-form.component\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { Goods } from \"src/app/backoffice/inv/models/goods.model\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\n\r\n@Component({\r\n selector: \"ngx-sale-item-list\",\r\n templateUrl: \"./sale-item-list.component.html\",\r\n styleUrls: [\"./sale-item-list.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SaleItemListComponent extends BaseListComponent {\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n columns: form_control[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, public storage: LocalStoreManager) {\r\n super();\r\n this.inputEditorform = SaleItemFormComponent;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.apiName = \"\";\r\n this.areaName = \"RestaurantSale\";\r\n this.setHeaderColumns();\r\n }\r\n\r\n setHeaderColumns() {\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.ItemCode\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Code\",\r\n textType: \"text\",\r\n disabled: false,\r\n name: \"Code\",\r\n order: 0,\r\n formVisible: false,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.Title\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"Title\",\r\n disabled: false,\r\n name: \"Title\",\r\n textType: \"text\",\r\n order: 1,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.MeasurementUnit\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"UnitTitle\",\r\n disabled: false,\r\n name: \"UnitTitle\",\r\n textType: \"text\",\r\n order: 2,\r\n formVisible: true,\r\n listVisible: true,\r\n required: false,\r\n });\r\n }\r\n\r\n deleteGoods(row: Goods) {\r\n let message = `${this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.SureToDeleteData\")}`;\r\n this.sts.showDialog(message, this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.DeleteInformation\"), DialogType.confirm, () =>\r\n this.remove(row.Id)\r\n );\r\n }\r\n\r\n remove(id: number) {\r\n this.httpCommonService\r\n .delete(\"SaleFormula/DeleteGoods\", id)\r\n .pipe(take(1))\r\n .subscribe(\r\n (res) => {\r\n this.grid.refreshData();\r\n },\r\n (err) => {\r\n this.sts.showDialog(\r\n `${this.label}: ${Utilities.getHttpResponseMessage(err)}`,\r\n this.translate(\"ClientApp.FrontOffice.Inv.SaleFormula.ErrorRemovingProduct\")\r\n );\r\n }\r\n );\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { LocalStoreManager, LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { take, takeUntil, timeout } from \"rxjs/operators\";\r\nimport { LocalSetting, LocalSettingKind } from \"../local-setting-model\";\r\nimport { TabletPosService } from \"../../order/providers/tabletpos.service\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\n\r\n@Component({\r\n selector: \"ngx-local-setting-form\",\r\n templateUrl: \"./local-setting-form.component.html\",\r\n styleUrls: [\"./local-setting-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class LocalSettingFormComponent extends BaseFormComponent {\r\n constructor(\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n private lookupservice: LookupService,\r\n private storage: LocalStoreManager,\r\n private tabletPosService: TabletPosService,\r\n private splashFormService: SplashFormService\r\n ) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"LocalSetting\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.LocalSetting.LocalSettings\");\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (this.model.IsActive === undefined) this.model.IsActive = true;\r\n if (this.model.LocalSettingKindCode === LocalSettingKind.TabletPos) {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"TestTabletPos\") x.formVisible = true;\r\n });\r\n }\r\n if (this.model.LocalSettingKindCode === LocalSettingKind.PosScale) {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"Test_btn\") x.formVisible = true;\r\n });\r\n }\r\n if (!this.model.LocalSettingKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"SALE\", \"LocalSettingKind\", LocalSettingKind.Pos)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.LocalSettingKindId = x.Id;\r\n this.model.LocalSettingKindCode = x.Code;\r\n this.model.LocalSettingKindTitle = x.Title;\r\n this.setValue(\"LocalSettingKindId\", x.Id);\r\n this.setValue(\"LocalSettingKindCode\", x.Code);\r\n this.setValue(\"LocalSettingKindTitle\", x.Title);\r\n this.setComputerName();\r\n this.setColumnAttribute();\r\n });\r\n }\r\n }\r\n setComputerName() {\r\n this.httpCommonService\r\n .get(\"LocalSetting/GetMachinName\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.model.ComputerName = data[\"ComputerName\"];\r\n this.setValue(\"ComputerName\", data[\"ComputerName\"]);\r\n if (!this.model.Id) {\r\n this.setValue(\"Ip\", data[\"IpAddress\"]);\r\n }\r\n },\r\n (error) => {}\r\n );\r\n }\r\n async valueChange(event: any) {\r\n if (event.Category && event.Category === \"LocalSettingKind\") {\r\n if (event.Code === LocalSettingKind.TabletPos) {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"TestTabletPos\") x.formVisible = true;\r\n });\r\n } else {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"TestTabletPos\") x.formVisible = false;\r\n });\r\n }\r\n if (event.Code === LocalSettingKind.PosScale) {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"Test_btn\") x.formVisible = true;\r\n });\r\n } else {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"Test_btn\") x.formVisible = false;\r\n });\r\n }\r\n this.model.LocalSettingKindCode = event.Code;\r\n this.model.LocalSettingKindTitle = event.Title;\r\n this.setValue(\"LocalSettingKindCode\", event.Code);\r\n this.setValue(\"LocalSettingKindTitle\", event.Title);\r\n this.setColumnAttribute();\r\n this.cd.markForCheck();\r\n }\r\n if (event === \"Test_btn\") {\r\n this.ConnectionTest();\r\n }\r\n if (event === \"TestTabletPos\") {\r\n this.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.LocalSetting.Communicating\"));\r\n await this.tabletPosService.tabletPosTest().then(\r\n (resolve) => this.splashFormService.closeLoading(),\r\n (reject) => this.splashFormService.closeLoading()\r\n );\r\n }\r\n if (event === \"GetPrinters\") {\r\n this.getPrinters();\r\n }\r\n }\r\n ConnectionTest() {\r\n if (!this.formGroup.controls[\"Ip\"].value || !this.formGroup.controls[\"Port\"].value) {\r\n this.sts.showToast(\r\n null,\r\n this.translate(\"ClientApp.FrontOffice.LocalSetting.ProblemInCommunicationTest\"),\r\n this.translate(\"ClientApp.FrontOffice.LocalSetting.NotEnoughInformationToCommunicate\")\r\n );\r\n return;\r\n }\r\n const url = \"http://\" + this.formGroup.controls[\"Ip\"].value + \":\" + this.formGroup.controls[\"Port\"].value + \"/TestConnection\";\r\n this.httpCommonService\r\n .getCustom(url)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n if (data) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.LocalSetting.ConnectionSuccessful\"),\r\n this.translate(\"ClientApp.FrontOffice.LocalSetting.Attention\")\r\n );\r\n this.selectorService.setDataList(\"PrintTemplateTypeId\", data);\r\n }\r\n },\r\n (err) => {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.LocalSetting.ErrorsInConnectionWithService\"),\r\n this.translate(\"ClientApp.FrontOffice.LocalSetting.Attention\")\r\n );\r\n console.log(err);\r\n }\r\n );\r\n }\r\n tabletPosConnectionTest() {\r\n if (!this.formGroup.controls[\"Ip\"].value || !this.formGroup.controls[\"Port\"].value) {\r\n this.sts.showToast(\r\n null,\r\n this.translate(\"ClientApp.FrontOffice.LocalSetting.ProblemInCommunicationTest\"),\r\n this.translate(\"ClientApp.FrontOffice.LocalSetting.NotEnoughInformationToCommunicate\")\r\n );\r\n return;\r\n }\r\n const url = \"http://\" + this.formGroup.controls[\"Ip\"].value + \":\" + this.formGroup.controls[\"Port\"].value + \"/TestConnection\";\r\n this.httpCommonService\r\n .getCustom(url)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n if (data) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.LocalSetting.ConnectionSuccessful\"),\r\n this.translate(\"ClientApp.FrontOffice.LocalSetting.Attention\")\r\n );\r\n this.selectorService.setDataList(\"PrintTemplateTypeId\", data);\r\n }\r\n },\r\n (err) => {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.LocalSetting.ErrorsInConnectionWithService\"),\r\n this.translate(\"ClientApp.FrontOffice.LocalSetting.Attention\")\r\n );\r\n console.log(err);\r\n }\r\n );\r\n }\r\n getPrinters() {\r\n if (!this.formGroup.controls[\"Ip\"].value || !this.formGroup.controls[\"Port\"].value) {\r\n this.sts.showToast(\r\n null,\r\n this.translate(\"ClientApp.FrontOffice.LocalSetting.CommunicationTrouble\"),\r\n this.translate(\"ClientApp.FrontOffice.LocalSetting.NotEnoughInformationToCommunicate\")\r\n );\r\n return;\r\n }\r\n const url = \"http://\" + this.formGroup.controls[\"Ip\"].value + \":\" + this.formGroup.controls[\"Port\"].value + \"/GetPrinters\";\r\n this.httpCommonService\r\n .getCustom(url)\r\n .pipe(take(1),timeout(1500))\r\n .subscribe(\r\n (data: any) => {\r\n if (data) {\r\n this.selectorService.setDataList(\"printers\", data);\r\n }\r\n },\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n if (!this.orignalColumns.some((s) => s.name === \"TestTabletPos\")) {\r\n const testBtn = new form_control();\r\n testBtn.name = \"TestTabletPos\";\r\n testBtn.label = this.translate(\"ClientApp.FrontOffice.LocalSetting.TabletPosConnectionTest\");\r\n testBtn.formVisible = true;\r\n testBtn.userClass = \"test-tablet-btn\";\r\n testBtn.columnNumber = 1;\r\n testBtn.order = 8;\r\n testBtn.formVisible = false;\r\n testBtn.controlType = FormControlTypes.Button;\r\n this.orignalColumns.push(testBtn);\r\n }\r\n if (!this.orignalColumns.some((s) => s.name === \"Test_btn\")) {\r\n const testBtn = new form_control();\r\n testBtn.name = \"Test_btn\";\r\n testBtn.label = this.translate(\"ClientApp.FrontOffice.LocalSetting.PosScaleConnectionTest\");\r\n testBtn.formVisible = true;\r\n testBtn.userClass = \"test-tablet-btn\";\r\n testBtn.columnNumber = 1;\r\n testBtn.order = 8;\r\n testBtn.formVisible = false;\r\n testBtn.controlType = FormControlTypes.Button;\r\n this.orignalColumns.push(testBtn);\r\n }\r\n\r\n this.orignalColumns.forEach((x) => {\r\n if (\r\n x.name.includes(\"IsMultiMerchantPos\") ||\r\n x.name.includes(\"IBANCode\") ||\r\n x.name.includes(\"PosTimeOut\") ||\r\n x.name.includes(\"PaymentTerminalProviderId\") ||\r\n x.name.includes(\"UserName\") ||\r\n x.name.includes(\"Password\") ||\r\n x.name.includes(\"TerminalId\") ||\r\n x.name.includes(\"IsWebService\")\r\n )\r\n x.formVisible = this.model.LocalSettingKindCode === LocalSettingKind.Pos;\r\n // if (x.name === \"IsWebService\" && x.formVisible == true)\r\n if (x.name.includes(\"ReceiveOnlineInvoice\") || x.name.includes(\"ShowOnlineInvoice\"))\r\n x.formVisible = this.model.LocalSettingKindCode === LocalSettingKind.Delino;\r\n if (x.name.includes(\"PaymentTerminalProviderId\"))\r\n x.formVisible = this.model.LocalSettingKindCode === LocalSettingKind.TabletPos || this.model.LocalSettingKindCode === LocalSettingKind.Pos;\r\n if (x.name.includes(\"LocalServiceIpAddress\") || x.name.includes(\"PrintTemplateTypeId\"))\r\n x.formVisible = this.model.LocalSettingKindCode === LocalSettingKind.Printer;\r\n if (x.name === \"PaymentMethodId\")\r\n x.formVisible = this.model.LocalSettingKindCode === LocalSettingKind.TabletPos || this.model.LocalSettingKindCode === LocalSettingKind.Pos;\r\n if (x.name.includes(\"Ip\") || x.name.includes(\"Port\")) x.formVisible = this.model.LocalSettingKindCode === LocalSettingKind.PosScale;\r\n if (x.name.includes(\"Password\")) x.textType = \"password\";\r\n });\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n\r\n public async save(): Promise {\r\n await super.save();\r\n const computerName: string = this.storage.getData(ClearableCache.ComputerName);\r\n const data = await this.httpCommonService\r\n .get(\"LocalSetting/GetLocalSetting\" + (computerName ? \"?ComputerName=\" + computerName : \"\"))\r\n .pipe(take(1))\r\n .toPromise();\r\n this.storage.savePermanentData(data, ClearableCache.LocalSetting);\r\n }\r\n}\r\n","\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { LocalSettingFormComponent } from \"../local-setting-form/local-setting-form.component\";\r\nimport { LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\n\r\n@Component({\r\n selector: \"ngx-local-setting-list\",\r\n templateUrl: \"./local-setting-list.component.html\",\r\n styleUrls: [\"./local-setting-list.component.scss\"],\r\n})\r\nexport class LocalSettingListComponent extends BaseListComponent {\r\n filterInfo: NameValue[] = [];\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n constructor(private storage: LocalStoreManager) {\r\n super();\r\n this.inputEditorform = LocalSettingFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"LocalSetting\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.LocalSetting.LocalSettings\");\r\n const computerName: string = this.storage.getData(ClearableCache.ComputerName);\r\n this.filterInfo.push({ Name: \"ComputerName\", Value: computerName, Operator: \"eq\" });\r\n }\r\n}\r\n","
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [areaName]=\"areaName\"\r\n [name]=\"apiName\"\r\n [defaultFilterKey]=\"filterInfo\"\r\n reportName=\"LocalSetting\"\r\n pathPreFix=\"SALE\"\r\n [inputEditorform]=\"inputEditorform\"\r\n [isAdd]=\"isAdd\"\r\n [isEdit]=\"isEdit\"\r\n [isDelete]=\"isDelete\">\r\n \r\n
","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n\r\nexport class LocalSetting extends EntityBase {\r\n public LocalSettingKindId;\r\n public LocalSettingKindTitle: string;\r\n public LocalSettingKindCode?: number;\r\n public ComputerName: string;\r\n public UserName: string;\r\n public Password: string;\r\n public IsWebService: boolean;\r\n // public PaymentTerminalProviderId?:number ;\r\n // public PaymentTerminalProviderTitle:string ;\r\n public Ip: string;\r\n public Port: string;\r\n // public PosTimeOut:number ;\r\n // public IBANCode:string ;\r\n // public IsMultiMerchantPos:boolean ;\r\n public IsActive: boolean;\r\n public ReceiveOnlineInvoice: boolean;\r\n public ShowOnlineInvoice: boolean;\r\n public PaymentMethodId: number;\r\n // public HasLocal: boolean;\r\n // public LocalServiceIp: string;\r\n // public PrintTemplateTypeId: string;\r\n // public LocalServiceIpAddress:number;\r\n}\r\n\r\nexport enum LocalSettingKind {\r\n /// \r\n /// چاپگر\r\n /// \r\n Printer = 1,\r\n /// \r\n /// کارتخوان\r\n /// \r\n Pos = 2,\r\n /// \r\n /// دلینو\r\n /// \r\n Delino = 3,\r\n /// \r\n /// تیلت پوز\r\n /// \r\n TabletPos = 4,\r\n /// \r\n /// ترازو\r\n /// \r\n PosScale = 5\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LocalSettingListComponent } from './local-setting-list/local-setting-list.component';\r\nimport { LocalSettingFormComponent } from './local-setting-form/local-setting-form.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\n\r\nconst components =\r\n [\r\n LocalSettingListComponent,\r\n LocalSettingFormComponent\r\n ]\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule,\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class LocalSettingModule { }\r\n","import { Injectable, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { AuthService, HttpCommonService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Subject } from \"rxjs\";\r\nimport { SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ReportInfo, StimulSoftReportComponent } from \"../../stimul-soft-report/stimul-soft-report.component\";\r\nimport { ReportKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Injectable()\r\nexport class LocalSettingService implements OnInit, OnDestroy {\r\n public tabsservice: TabularService;\r\n protected ngUnsubscribe = new Subject();\r\n constructor(public httpCommonService: HttpCommonService, public authService: AuthService, private translate: TranslateService) {}\r\n ngOnInit() {}\r\n print(saveReportFile: SaveReportFile, apiName: string, dataList: any[]) {\r\n let reportInfo: ReportInfo = {};\r\n reportInfo.reportKind = ReportKind.print;\r\n reportInfo.apiName = apiName;\r\n reportInfo.reportName = saveReportFile.FileName;\r\n reportInfo.dataList = dataList;\r\n reportInfo.saveReportFile = saveReportFile;\r\n reportInfo.pathPreFix = \"FrontOffice\";\r\n const menu = {\r\n title: saveReportFile.ReportTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n printData(data: any) {\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.translate.instant(\"ClientApp.FrontOffice.LocalSetting.CustomerPrint\");\r\n saveReportFile.FileName = data.PrintTemplateName;\r\n saveReportFile.SystemKindName = \"SALE\";\r\n saveReportFile.CategoryName = \"Invoice\";\r\n this.print(saveReportFile, \"Invoice\", [data]);\r\n\r\n //this.httpCommonService.create(\"LocalSetting/GetPrintPolicy\", model)\r\n // .pipe(takeUntil(this.ngUnsubscribe))\r\n // .subscribe((x: PrintPolicy) => {\r\n // if (x) {\r\n // let saveReportFile: SaveReportFile = {};\r\n // saveReportFile.ReportTitle = \"چاپ مشتری\";\r\n // saveReportFile.FileName = x.PrintTemplateName;\r\n // saveReportFile.SystemKindName = \"SALE\";\r\n // saveReportFile.CategoryName = \"Invoice\";\r\n // }\r\n // }, error => { });\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Unit } from \"src/app/backoffice/inv/models/unit.model\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\n\r\n@Component({\r\n selector: \"ngx-unit-form\",\r\n templateUrl: \"./MeasurementUnit-form.component.html\",\r\n styleUrls: [\"./MeasurementUnit-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MeasurementUnitFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.FillData();\r\n }\r\n deactivateSave: boolean = false;\r\n async ngOnInit() {\r\n this.apiName = \"MeasurementUnit\";\r\n this.label = this.translate(\"ClientApp.BackOffice.INV.Unit.Unit\");\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n async FillData() {\r\n const currentInformation = this.accountService.authService.currentInformation();\r\n if (currentInformation.BranchingLightEnabled || currentInformation.BranchingAdvancedEnabled) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Unit\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (hbc: CheckBrachAccessModel) => {\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.MeasurementUnit.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.MeasurementUnit.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.MeasurementUnit.HasCallCenterCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.MeasurementUnit.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n }\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n}\r\n","\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { MeasurementUnitFormComponent } from \"../MeasurementUnit-form/MeasurementUnit-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-unit-list\",\r\n templateUrl: \"./MeasurementUnit-list.component.html\",\r\n styleUrls: [\"./MeasurementUnit-list.component.scss\"],\r\n})\r\nexport class MeasurementUnitListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = MeasurementUnitFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"MeasurementUnit\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.BackOffice.INV.Unit.UnitList\");\r\n }\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n async FillData() {\r\n const currentInformation = this.accountService.authService.currentInformation();\r\n if (currentInformation.BranchingLightEnabled || currentInformation.BranchingAdvancedEnabled) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Unit\")\r\n .pipe(take(1))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.MeasurementUnit.HasBranchCommunication\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.MeasurementUnit.HasCallCenterCommunication\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n\r\n
\r\n\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { MeasurementUnitFormComponent } from \"./MeasurementUnit-form/MeasurementUnit-form.component\";\r\nimport { MeasurementUnitListComponent } from \"./MeasurementUnit-list/MeasurementUnit-list-list.component\";\r\n\r\nconst components = [MeasurementUnitFormComponent, MeasurementUnitListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class MeasurementUnitModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GROUP_ITEMS } from \"../messaging-tokens\";\r\nimport { MessageInput, PurchaseFilterType, ReadLookup } from \"../model/message-input.model\";\r\nimport { Message } from \"../model/message.model\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { GridFilter, PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models/form-control.model\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { MessageTemplate } from \"../model/message-template.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\n\r\ninterface InfoModel {\r\n RemainCredit: number;\r\n}\r\n@Component({\r\n selector: \"ngx-group-message\",\r\n templateUrl: \"./group-message.component.html\",\r\n styleUrls: [\"./group-message.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GroupMessageComponent extends BaseFormComponent {\r\n currentMessageTemplate: MessageTemplate;\r\n currentData: PagingDataResult = new PagingDataResult();\r\n groupItems: NameValue[] = GROUP_ITEMS;\r\n purchaseFilterTypeList: ReadLookup[] = [];\r\n messageInput: MessageInput = {};\r\n purchaseFilterType: PurchaseFilterType;\r\n currentPurchaseFilterTypeId: number;\r\n tryToSendSgain: boolean = false;\r\n selected: string = \"\";\r\n info: InfoModel;\r\n get PurchaseFilterTypeId() {\r\n return this.formGroup.controls[\"PurchaseFilterTypeId\"].value;\r\n }\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, _tabsservice: TabularService, __id: FormContainerModel) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Message\";\r\n this.areaName = \"General\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.SendingGroupMessage\");\r\n //super.ngOnInit();\r\n this.purchaseFilterTypeList;\r\n let rl: ReadLookup = {};\r\n rl.Id = 1;\r\n rl.Title = this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.BuyerCustomers\");\r\n this.purchaseFilterTypeList.push(rl);\r\n rl = {};\r\n rl.Id = 2;\r\n rl.Title = this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.CustomersWithoutPurchase\");\r\n this.purchaseFilterTypeList.push(rl);\r\n this.setColumns();\r\n this.getContactInfo();\r\n this.setdefault();\r\n }\r\n async setColumns() {\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.CustomerName\"),\r\n name: \"CustomerDisplayName\",\r\n order: 0,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"text\",\r\n modelName: \"CustomerDisplayName\",\r\n maxLength: 256,\r\n controlType: FormControlTypes.textbox,\r\n disabled: true,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.CustomerCode\"),\r\n name: \"Number\",\r\n order: 1,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"text\",\r\n modelName: \"Number\",\r\n controlType: FormControlTypes.textbox,\r\n maxLength: 20,\r\n minLength: 6,\r\n disabled: false,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.CustomerGroup\"),\r\n name: \"CustomerCategory\",\r\n order: 2,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"text\",\r\n modelName: \"CustomerCategory\",\r\n controlType: FormControlTypes.textbox,\r\n maxLength: 20,\r\n minLength: 6,\r\n disabled: false,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.MaxPurchase\"),\r\n name: \"MaximumPurchaseAmount\",\r\n order: 3,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"number\",\r\n modelName: \"MaximumPurchaseAmount\",\r\n controlType: FormControlTypes.textbox,\r\n maxLength: 20,\r\n minLength: 6,\r\n disabled: false,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.SumPurchase\"),\r\n name: \"TotalPurchaseAmount\",\r\n order: 3,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"number\",\r\n modelName: \"TotalPurchaseAmount\",\r\n controlType: FormControlTypes.textbox,\r\n maxLength: 20,\r\n minLength: 6,\r\n disabled: false,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.QtyPurchase\"),\r\n name: \"TotalPurchaseCount\",\r\n order: 3,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"number\",\r\n modelName: \"TotalPurchaseCount\",\r\n controlType: FormControlTypes.textbox,\r\n maxLength: 20,\r\n minLength: 6,\r\n disabled: false,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.SumPurchaseWithDate\"),\r\n name: \"PeriodPurchaseAmount\",\r\n order: 3,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"number\",\r\n modelName: \"PeriodPurchaseAmount\",\r\n controlType: FormControlTypes.textbox,\r\n maxLength: 20,\r\n minLength: 6,\r\n disabled: false,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.QtyPurchaseWithDate\"),\r\n name: \"PeriodPurchaseCount\",\r\n order: 3,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"number\",\r\n modelName: \"PeriodPurchaseCount\",\r\n controlType: FormControlTypes.textbox,\r\n maxLength: 20,\r\n minLength: 6,\r\n disabled: false,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.DateCreate\"),\r\n name: \"ShamsiCreationDateTime\",\r\n order: 3,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"text\",\r\n modelName: \"ShamsiCreationDateTime\",\r\n controlType: FormControlTypes.textbox,\r\n maxLength: 20,\r\n minLength: 6,\r\n disabled: false,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.DatePurchase\"),\r\n name: \"ShamsiLastPurchaseDateTime\",\r\n order: 3,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"text\",\r\n modelName: \"ShamsiLastPurchaseDateTime\",\r\n controlType: FormControlTypes.textbox,\r\n maxLength: 20,\r\n minLength: 6,\r\n disabled: false,\r\n });\r\n this.orignalColumns = this.columns;\r\n this.loadData();\r\n }\r\n loadData() {\r\n let _model = this.messageInput;\r\n if (!_model) _model = {};\r\n _model.CustomerIds = null;\r\n if (!_model.pageSize || _model.pageSize === 0) {\r\n _model.skip = 0;\r\n _model.pageSize = 10;\r\n }\r\n this.httpCommonService\r\n .create(this.apiName + \"/ReceiverList\", _model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x: PagingDataResult) => {\r\n this.currentData = x;\r\n this.cd.markForCheck();\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n setdefault() {\r\n this.messageInput = {};\r\n if (!this.messageInput.ExpirationTime) this.messageInput.ExpirationTime = \"02:00:00\";\r\n this.setFormGroup(this.messageInput);\r\n if (!this.accountService.authService.currentInformation().HasShortMessage) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.LicensedForSection\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.SoftwareLicense\")\r\n );\r\n this.close();\r\n }\r\n }\r\n addControl() {\r\n this.setValue(\"GenderIds\", this.messageInput.GenderIds);\r\n this.setValue(\"ZoneIds\", this.messageInput.ZoneIds);\r\n this.setValue(\"CustomerCategoryIds\", this.messageInput.CustomerCategoryIds);\r\n this.setValue(\"PurchaseFilterTypeId\", this.messageInput.PurchaseFilterTypeId);\r\n this.setValue(\"FromPurchaseAmount\", this.messageInput.FromPurchaseAmount);\r\n this.setValue(\"ToPurchaseAmount\", this.messageInput.ToPurchaseAmount);\r\n this.setValue(\"FromTotalPurchaseAmount\", this.messageInput.FromTotalPurchaseAmount);\r\n this.setValue(\"ToTotalPurchaseAmount\", this.messageInput.ToTotalPurchaseAmount);\r\n this.setValue(\"FromPurchaseCount\", this.messageInput.FromPurchaseCount);\r\n this.setValue(\"ToPurchaseCount\", this.messageInput.ToPurchaseCount);\r\n this.setValue(\"MessageTypeId\", this.model.MessageTypeId);\r\n this.setValue(\"Text\", this.messageInput.Text);\r\n this.setValue(\"ExpirationTime\", this.messageInput.ExpirationTime);\r\n this.setValue(\"PurchaseEndTime\", this.messageInput.PurchaseEndTime);\r\n this.setValue(\"PurchaseStartTime\", this.messageInput.PurchaseStartTime);\r\n this.setValue(\"RegistrationStartTime\", this.messageInput.RegistrationStartTime);\r\n this.setValue(\"RegistrationEndTime\", this.messageInput.RegistrationEndTime);\r\n }\r\n isValid() {\r\n return (\r\n (this.messageInput.Text !== undefined || this.model.MessageTypeId !== undefined) &&\r\n this.currentData !== undefined &&\r\n this.currentData.TotalPage > 0 &&\r\n this.info &&\r\n this.info.RemainCredit &&\r\n this.info.RemainCredit > 0\r\n );\r\n }\r\n onChanged($event) {\r\n if ($event && $event.apiName && $event.data && $event.data.Id && $event.apiName.includes(\"CustomerCategory/ReadLookUp\")) {\r\n this.messageInput.PurchaseFilterTypeCode = $event.data.Code;\r\n this.messageInput.PurchaseFilterTypeTitle = $event.data.Title;\r\n }\r\n }\r\n change(event) {\r\n if (event && event.Text) {\r\n this.messageInput.Text = event.Text;\r\n }\r\n }\r\n toggleDirection(event) {\r\n this.tryToSendSgain = event;\r\n }\r\n getContactInfo() {\r\n this.httpCommonService\r\n .get(this.apiName + \"/GetAccountInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (info: InfoModel) => (this.info = info),\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n submitForm() {\r\n if (this.isValid()) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.AboutSendingGroupSMS\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.ConfirmAndSend\"),\r\n DialogType.confirm,\r\n () => this.SendMessage()\r\n );\r\n this.sts.showToast(\r\n \"info\",\r\n this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.ConfirmAndSend\"),\r\n this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.SendingGroupSMS\")\r\n );\r\n }\r\n }\r\n SendMessage() {\r\n if (this.isValid()) {\r\n let _model = this.messageInput;\r\n if (!this.messageInput.PurchaseFilterTypeId) {\r\n _model = {};\r\n _model.Text = this.messageInput.Text;\r\n _model.CustomerIds = this.messageInput.CustomerIds;\r\n }\r\n if (_model.CustomerIds && _model.CustomerIds.length < 1) _model.CustomerIds = null;\r\n _model.ExpirationTime = this.messageInput.ExpirationTime;\r\n\r\n this.httpCommonService\r\n .create(this.apiName + \"/SendGroupMessage\", _model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.sts.showToast(\r\n \"success\",\r\n this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.ConfirmAndSend\"),\r\n this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.OperationWasSuccessful\")\r\n );\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n onRowsSelected(event) {\r\n if (event) {\r\n this.messageInput.CustomerIds = [];\r\n event.forEach((element) => {\r\n this.messageInput.CustomerIds.push(element.Id);\r\n });\r\n }\r\n }\r\n ApplayFilter() {\r\n this.messageInput.skip = 0;\r\n this.messageInput.pageSize = 10;\r\n this.messageInput.GenderIds = this.formGroup.value.GenderIds;\r\n this.messageInput.ZoneIds = this.formGroup.value.ZoneIds;\r\n this.messageInput.PurchaseStartTime = this.formGroup.value.PurchaseStartTime;\r\n this.messageInput.PurchaseEndTime = this.formGroup.value.PurchaseEndTime;\r\n this.messageInput.CustomerCategoryIds = this.formGroup.value.CustomerCategoryIds;\r\n this.messageInput.PurchaseFilterTypeId = this.formGroup.value.PurchaseFilterTypeId;\r\n this.messageInput.FromPurchaseAmount = this.formGroup.value.FromPurchaseAmount;\r\n this.messageInput.ToPurchaseAmount = this.formGroup.value.ToPurchaseAmount;\r\n this.messageInput.FromTotalPurchaseAmount = this.formGroup.value.FromTotalPurchaseAmount;\r\n this.messageInput.ToTotalPurchaseAmount = this.formGroup.value.ToTotalPurchaseAmount;\r\n this.messageInput.FromPurchaseCount = this.formGroup.value.FromPurchaseCount;\r\n this.messageInput.ToPurchaseCount = this.formGroup.value.ToPurchaseCount;\r\n this.model.MessageTypeId = this.formGroup.value.MessageTypeId;\r\n this.messageInput.Text = this.formGroup.value.Text;\r\n this.messageInput.ExpirationTime = this.formGroup.value.ExpirationTime;\r\n this.messageInput.RegistrationStartTime = this.formGroup.value.RegistrationStartTime;\r\n this.messageInput.RegistrationEndTime = this.formGroup.value.RegistrationEndTime;\r\n this.loadData();\r\n }\r\n onPageChanged(event: GridFilter[]) {\r\n this.messageInput.skip = !event || !event.length ? 0 : event[0].Skip;\r\n this.messageInput.pageSize = !event || !event.length ? 10 : event[0].Take;\r\n this.loadData();\r\n }\r\n setSelectedFilter(filter: string) {\r\n if (this.selected === filter) this.selected = \"\";\r\n else this.selected = filter;\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Messaging.GroupMessage.Buy\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Messaging.GroupMessage.Gender\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Messaging.GroupMessage.Zone\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Messaging.GroupMessage.CustomersCategory\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Messaging.GroupMessage.RegistrationTime\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Messaging.GroupMessage.RemainCredit\" | translate }}:\r\n {{ info?.RemainCredit | number }} \r\n  {{ \"ClientApp.FrontOffice.Messaging.GroupMessage.UnitPrice\" | translate }} \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { GroupMessageComponent } from './group-message.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\n\r\nconst components =\r\n [\r\n GroupMessageComponent\r\n ]\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class GroupMessageModule { }\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { Branch, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { AccountService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ManagementMessage } from \"../../model/management-message.model\";\r\n\r\n@Component({\r\n selector: \"ngx-management-message-list\",\r\n templateUrl: \"./management-message-list.component.html\",\r\n styleUrls: [\"./management-message-list.component.scss\"],\r\n})\r\nexport class ManagementMessageListComponent extends BaseFormComponent {\r\n //#region properties\r\n\r\n hcolumns: form_control[];\r\n currentBranch: Branch;\r\n dataList: ManagementMessage[];\r\n\r\n //#endregion\r\n\r\n //#region Ctor\r\n\r\n constructor(\r\n sts: ShowToastrService,\r\n __id: FormContainerModel,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n _tabsservice: TabularService,\r\n private account: AccountService\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Public Methods\r\n\r\n async ngOnInit() {\r\n this.apiName = \"ManagementMessage\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Messaging.GroupMessage.ManagementMessage\");\r\n this.areaName = \"RestaurantSale\";\r\n super.ngOnInit();\r\n this.orignalColumns.find((x) => {\r\n if (x.name === \"Text\") x.disabled = true;\r\n });\r\n }\r\n\r\n async setColumns() {\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n if (data) {\r\n this.orignalColumns = (data as form_control[]).filter((f) => f.name === \"BranchId\");\r\n if (this.orignalColumns.length && !this.isMultiBranch) {\r\n this.orignalColumns[0].formVisible = false;\r\n this.orignalColumns[0].required = false;\r\n const currentBranch = this.accountService.authService.currentBranch;\r\n this.currentBranch = currentBranch;\r\n this.model.BranchId = currentBranch.Id;\r\n this.loadData(currentBranch);\r\n }\r\n this.hcolumns = this.orignalColumns;\r\n this.columns = data as form_control[];\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnAttribute();\r\n if (this.accountService.getCurrentUser().UserName !== \"SepidzUser\") {\r\n data.forEach((x) => {\r\n if (x.name === \"Text\") x.disabled = true;\r\n });\r\n }\r\n this.setFormGroup(this.model);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n\r\n onChange($event: Branch) {\r\n if ($event) {\r\n this.currentBranch = $event;\r\n this.model.BranchId = $event.Id;\r\n this.loadData($event);\r\n }\r\n }\r\n\r\n loadData(event: Branch) {\r\n this.httpCommonService\r\n .getList(this.apiName + \"/GetByBranchId/\" + event.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => (this.dataList = row as []),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n\r\n beforupdate() {\r\n this.dataList.forEach((x) => {\r\n x.BranchId = this.currentBranch.Id;\r\n x.BranchTitle = this.currentBranch.Title;\r\n });\r\n }\r\n\r\n public async save() {\r\n if (!this.isSaving) {\r\n this.beforupdate();\r\n if (this.isValid()) {\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n if (this.dataList && this.dataList.length > 0) {\r\n this.httpCommonService\r\n .createlist(this.apiName + \"/BulkIsertUpdateDelete\", this.dataList)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => this.saveSuccessHelper(row),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n //#endregion\r\n}\r\n","\r\n 0\">\r\n \r\n \r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ManagementMessageListComponent } from './management-message-list/management-message-list.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nconst components =\r\n [\r\n ManagementMessageListComponent,\r\n ]\r\n@NgModule({\r\n declarations: [...components,],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class ManagementMessageModule { }\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { Message } from \"../model/message.model\";\r\nimport { GridFilter, PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MessageFilteredQuery } from \"../model/message-filtered-query.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\n\r\n@Component({\r\n selector: \"ngx-message-list\",\r\n templateUrl: \"./message-list.component.html\",\r\n styleUrls: [\"./message-list.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MessageListComponent extends BaseFormComponent {\r\n messageFilteredQuery: MessageFilteredQuery;\r\n currentData: PagingDataResult = new PagingDataResult();\r\n selected: string = \"\";\r\n @ViewChild(KGridComponent) grid: KGridComponent;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Message\";\r\n this.areaName = \"General\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Messaging.ListMessage.MessagesList\");\r\n this.setdefault();\r\n this.setColumns();\r\n this.onClosing(undefined);\r\n if (\r\n (this.accountService.authService.currentInformation().BranchingAdvancedEnabled ||\r\n this.accountService.authService.currentInformation().BranchingLightEnabled ||\r\n this.accountService.authService.currentInformation().RestaurantCallCenter) &&\r\n !this.accountService.authService.currentBranch?.AccessToAllBranches\r\n ) {\r\n this.messageFilteredQuery.BranchList.push(this.accountService.authService.currentBranchId);\r\n }\r\n }\r\n async setColumns() {\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (data) {\r\n this.orignalColumns = data as form_control[];\r\n this.columns = (data as form_control[]).filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.listVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.columns.forEach((x) => {\r\n if (x.name === \"To\") x.required = false;\r\n });\r\n this.setFormGroup(this.messageFilteredQuery);\r\n }\r\n });\r\n }\r\n\r\n loadData(event: GridFilter[]) {\r\n if (this.grid && this.grid.isRefreshing) return;\r\n if (this.grid) this.grid.isRefreshing = true;\r\n this.httpCommonService\r\n .create(this.apiName + \"/ReadMessageList\", this.messageFilteredQuery)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x: PagingDataResult) => {\r\n this.currentData = x;\r\n this.cd.markForCheck();\r\n },\r\n (error) => {\r\n this.getFailedHelper(error);\r\n }\r\n );\r\n }\r\n setdefault() {\r\n if (!this.messageFilteredQuery) this.messageFilteredQuery = {};\r\n this.messageFilteredQuery.StatusList = [];\r\n this.messageFilteredQuery.TypeList = [];\r\n this.messageFilteredQuery.BranchList = [];\r\n let currentDate = new Date();\r\n this.messageFilteredQuery.StartTime = currentDate;\r\n this.messageFilteredQuery.StartTime.setDate(currentDate.getDate() - 10);\r\n this.messageFilteredQuery.EndTime = new Date();\r\n }\r\n addControl() {\r\n this.setValue(\"To\", this.messageFilteredQuery.To);\r\n this.setValue(\"TypeList\", this.messageFilteredQuery.TypeList);\r\n this.setValue(\"BranchList\", this.messageFilteredQuery.BranchList);\r\n this.setValue(\"StatusList\", this.messageFilteredQuery.StatusList);\r\n this.setValue(\"StartTime\", this.messageFilteredQuery.StartTime);\r\n this.setValue(\"EndTime\", this.messageFilteredQuery.EndTime);\r\n this.cd.markForCheck();\r\n }\r\n onPageChanged(event: GridFilter[]) {\r\n let skip: number = 0;\r\n let take: number = 10;\r\n if (!event) {\r\n let event1: GridFilter[] = [];\r\n event = event1;\r\n } else {\r\n skip = event[0]?.Skip;\r\n take = event[0]?.Take;\r\n }\r\n const filteredQuery = this.messageFilteredQuery;\r\n if (filteredQuery.To && event.some((x) => x.Filed === \"To\"))\r\n event.push({ Filed: \"To\", Type: \"F\", Value: filteredQuery.To, Operator: \"contains\", Logic: \"and\", Skip: skip, Take: take });\r\n if (filteredQuery.StatusList && event.some((x) => x.Filed === \"StatusList\"))\r\n event.push({ Filed: \"StatusList\", Type: \"F\", Value: filteredQuery.StatusList, Operator: \"eq\", Logic: \"and\", Skip: skip, Take: take });\r\n if (filteredQuery.TypeList && event.some((x) => x.Filed === \"TypeList\"))\r\n event.push({ Filed: \"TypeList\", Type: \"F\", Value: filteredQuery.TypeList, Operator: \"eq\", Logic: \"and\", Skip: skip, Take: take });\r\n if (filteredQuery.BranchList && event.some((x) => x.Filed === \"BranchList\"))\r\n event.push({ Filed: \"BranchList\", Type: \"F\", Value: filteredQuery.BranchList, Operator: \"eq\", Logic: \"and\", Skip: skip, Take: take });\r\n if (filteredQuery.StartTime && event.some((x) => x.Filed === \"StartTime\"))\r\n event.push({ Filed: \"StartTime\", Type: \"F\", Value: filteredQuery.StartTime, Operator: \"gte\", Logic: \"and\", Skip: skip, Take: take });\r\n if (filteredQuery.EndTime && event.some((x) => x.Filed === \"EndTime\"))\r\n event.push({ Filed: \"EndTime\", Type: \"F\", Value: filteredQuery.EndTime, Operator: \"lte\", Logic: \"and\", Skip: skip, Take: take });\r\n\r\n this.loadData(event);\r\n }\r\n ApplayFilter() {\r\n this.messageFilteredQuery.StartTime = this.formGroup.value.StartTime;\r\n this.messageFilteredQuery.EndTime = this.formGroup.value.EndTime;\r\n this.messageFilteredQuery.To = this.formGroup.value.To;\r\n this.messageFilteredQuery.StatusList = this.formGroup.value.StatusList;\r\n this.messageFilteredQuery.TypeList = this.formGroup.value.TypeList;\r\n this.messageFilteredQuery.BranchList = this.formGroup.value.BranchList;\r\n if (this.messageFilteredQuery.StatusList && this.messageFilteredQuery.StatusList.length <= 0) this.messageFilteredQuery.StatusList = null;\r\n if (this.messageFilteredQuery.TypeList && this.messageFilteredQuery.TypeList.length <= 0) this.messageFilteredQuery.TypeList = null;\r\n if (this.messageFilteredQuery.BranchList && this.messageFilteredQuery.BranchList.length <= 0) this.messageFilteredQuery.BranchList = null;\r\n this.onPageChanged(undefined);\r\n }\r\n setSelectedFilter(filter: string) {\r\n if (this.selected === filter) this.selected = \"\";\r\n else this.selected = filter;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Messaging.ListMessage.Branch\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Messaging.ListMessage.State\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Messaging.ListMessage.MessageType\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\" class=\"h-100\">\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MessageListComponent } from './message-list.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\n\r\nconst components =\r\n [\r\n MessageListComponent\r\n ]\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class MessageListModule { }\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { Branch, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { MessageManagementTelephone } from \"../../model/message-management-telephone.model\";\r\n\r\n@Component({\r\n selector: \"ngx-message-management-telephone-list\",\r\n templateUrl: \"./message-management-telephone-list.component.html\",\r\n styleUrls: [\"./message-management-telephone-list.component.scss\"],\r\n})\r\nexport class MessageManagementTelephoneListComponent extends BaseFormComponent {\r\n //#region properties\r\n\r\n hcolumns: form_control[];\r\n currentBranch: Branch;\r\n dataList: MessageManagementTelephone[];\r\n DefaultValues: Dictionary = [];\r\n\r\n //#endregion\r\n\r\n //#region Ctor\r\n\r\n constructor(\r\n sts: ShowToastrService,\r\n __id: FormContainerModel,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n _tabsservice: TabularService\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Public Methods\r\n\r\n async ngOnInit() {\r\n this.apiName = \"MessageManagementTelephone\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Messaging.MessageManagmentTelephone.ManagementPhones\");\r\n this.areaName = \"RestaurantSale\";\r\n this.DefaultValues[\"Active\"] = true;\r\n super.ngOnInit();\r\n }\r\n\r\n async setColumns() {\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.orignalColumns = (data as form_control[]).filter((f) => f.name === \"BranchId\");\r\n if (this.orignalColumns.length && !this.isMultiBranch) {\r\n this.orignalColumns[0].formVisible = false;\r\n this.orignalColumns[0].required = false;\r\n const currentBranch = this.accountService.authService.currentBranch;\r\n this.currentBranch = currentBranch;\r\n this.model.BranchId = currentBranch.Id;\r\n this.loadData(currentBranch);\r\n }\r\n this.hcolumns = this.orignalColumns;\r\n this.columns = data as form_control[];\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnAttribute();\r\n this.setFormGroup(this.model);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n\r\n onChange($event: Branch) {\r\n if ($event) {\r\n this.currentBranch = $event;\r\n this.model.BranchId = $event.Id;\r\n this.loadData($event);\r\n }\r\n }\r\n\r\n loadData(event: Branch) {\r\n this.httpCommonService\r\n .getList(this.apiName + \"/GetByBranchId/\" + event.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => (this.dataList = row as []),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n\r\n beforupdate() {\r\n this.dataList.forEach((x) => {\r\n x.BranchId = this.currentBranch.Id;\r\n x.BranchTitle = this.currentBranch.Title;\r\n });\r\n }\r\n\r\n public async save() {\r\n if (!this.isSaving) {\r\n this.beforupdate();\r\n if (this.isValid()) {\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n if (this.dataList && this.dataList.length > 0) {\r\n this.httpCommonService\r\n .createlist(this.apiName + \"/BulkIsertUpdateDelete\", this.dataList)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => this.saveSuccessHelper(row),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n //#endregion\r\n}\r\n","\r\n 0\">\r\n \r\n \r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { MessageManagementTelephoneListComponent } from './message-management-telephone-list/message-management-telephone-list.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nconst components =\r\n [\r\n MessageManagementTelephoneListComponent,\r\n ]\r\n@NgModule({\r\n declarations: [...components,],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class MessageManagementTelephoneModule { }\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { MessageTemplate } from \"../../model/message-template.model\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { GROUP_ITEMS, OCCASION_ITEMS, MessageTemplateType } from \"../../messaging-tokens\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\n\r\n@Component({\r\n selector: \"ngx-message-template-form\",\r\n templateUrl: \"./message-template-form.component.html\",\r\n styleUrls: [\"./message-template-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class MessageTemplateFormComponent extends BaseFormComponent {\r\n occasionItems: NameValue[] = OCCASION_ITEMS;\r\n groupItems: NameValue[] = GROUP_ITEMS;\r\n messageTemplateType = MessageTemplateType;\r\n occasionMessageTemplate: Lookup;\r\n groupMessageTemplate: Lookup;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private lookupservice: LookupService) {\r\n super(selectorService, cd);\r\n this.FillData();\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"MessageTemplate\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Messaging.TemplateMessage.MessagePlatform\");\r\n super.ngOnInit();\r\n }\r\n ngOnChanges() {\r\n if (this.model.IsDefault) {\r\n this.formGroup.get(\"MessageTemplateTypeId\").disable();\r\n } else {\r\n this.formGroup.get(\"MessageTemplateTypeId\").enable();\r\n }\r\n }\r\n async FillData() {\r\n if (!this.model.NumberOfDaysBeforeSending) this.model.NumberOfDaysBeforeSending = 0;\r\n if (!this.model.MessageTemplateTypeTitle) {\r\n this.lookupservice\r\n .getLookupbyCategory(\"SALE\", \"MessageTemplateType\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (x) => {\r\n this.occasionMessageTemplate = x.find((c) => c.Code === MessageTemplateType.occasion);\r\n this.groupMessageTemplate = x.find((c) => c.Code === MessageTemplateType.groups);\r\n this.model.MessageTemplateTypeId = this.occasionMessageTemplate?.Id;\r\n this.model.MessageTemplateTypeCode = this.occasionMessageTemplate?.Code;\r\n this.model.MessageTemplateTypeTitle = this.occasionMessageTemplate?.Title;\r\n this.setValue(\"MessageTemplateTypeId\", this.occasionMessageTemplate?.Id);\r\n if (this.model.IsDefault) this.formGroup.controls[\"MessageTemplateTypeId\"].disable();\r\n this.setValue(\"MessageTemplateTypeCode\", this.occasionMessageTemplate?.Code);\r\n this.setValue(\"MessageTemplateTypeTitle\", this.occasionMessageTemplate?.Title);\r\n });\r\n }\r\n }\r\n setdefault() {\r\n if (this.model && !this.model.Id) {\r\n //اگر در مد ایجاد بودیم\r\n this.model.IsActive = true;\r\n }\r\n if (!this.formGroup) this.setFormGroup(this.model);\r\n }\r\n addControl() {\r\n if (this.formGroup) {\r\n this.setValue(\"Text\", this.model.Text);\r\n }\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name == \"NumberOfDaysBeforeSending\") {\r\n x.formVisible = this.model.MessageTemplateTypeCode === MessageTemplateType.occasion;\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n isValid(): boolean {\r\n let flag = true;\r\n if(!this.formGroup.controls[\"Text\"].value)\r\n {\r\n flag = false;\r\n this.sts.showToast(\"danger\", \"\", this.translate(\"ClientApp.FrontOffice.Messaging.TemplateMessage.InvalidText\"));\r\n }\r\n return flag;\r\n }\r\n valueChange(event: any) {\r\n if (this.model.IsDefault && event === this.groupMessageTemplate?.Id) {\r\n this.model.MessageTemplateTypeId = this.occasionMessageTemplate?.Id;\r\n this.model.MessageTemplateTypeCode = this.occasionMessageTemplate?.Code;\r\n this.model.MessageTemplateTypeTitle = this.occasionMessageTemplate?.Title;\r\n this.setValue(\"MessageTemplateTypeId\", this.occasionMessageTemplate?.Id);\r\n this.setValue(\"MessageTemplateTypeCode\", this.occasionMessageTemplate?.Code);\r\n this.setValue(\"MessageTemplateTypeTitle\", this.occasionMessageTemplate?.Title);\r\n } else {\r\n if ((event && event === this.occasionMessageTemplate?.Id) || event === this.groupMessageTemplate?.Id) {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name == \"NumberOfDaysBeforeSending\") {\r\n x.formVisible = event === this.occasionMessageTemplate?.Id;\r\n this.columns = this.orignalColumns.filter(\r\n (f) =>\r\n ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n }\r\n }\r\n ngAfterViewInit(): void {\r\n this.FillData();\r\n }\r\n}\r\n"," \r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { MessageTemplateFormComponent } from \"../message-template-form/message-template-form.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { MessageTemplate } from \"../../model/message-template.model\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\n\r\n@Component({\r\n selector: \"ngx-message-template-list\",\r\n templateUrl: \"./message-template-list.component.html\",\r\n styleUrls: [\"./message-template-list.component.scss\"],\r\n})\r\nexport class MessageTemplateListComponent extends BaseListComponent {\r\n @ViewChild(KGridComponent) grid: KGridComponent;\r\n loadMessageTemplate: boolean = false;\r\n constructor() {\r\n super();\r\n this.inputEditorform = MessageTemplateFormComponent;\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"MessageTemplate\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Messaging.TemplateMessage.MessagePlatform\");\r\n this.loadData(this.accountService.authService.currentBranchId);\r\n }\r\n deleteHandler(data:MessageTemplate) {\r\n if (data.IsDefault) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Messaging.TemplateMessage.DefaultMessagesCantDelete\")\r\n );\r\n this.grid.refreshData();\r\n return;\r\n }\r\n else\r\n {\r\n this.deleteFormHelper(data);\r\n this.grid.refreshData();\r\n }\r\n }\r\n deleteFormHelper(dataItem: any) {\r\n this.dataList.forEach(x => {\r\n if (((dataItem.Id > 0 && x.Id === dataItem.Id) || x === dataItem)) {\r\n if (x.State === RowState.New)\r\n x.State = RowState.Detached;\r\n else\r\n x.State = RowState.Delete;\r\n }\r\n });\r\n this.sts.showToast('primary', '', 'در حال حذف...');\r\n this.httpCommonService.delete('MessageTemplate', dataItem.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(results => {\r\n this.sts.showToast('success', '', 'اطلاعات با موفیت حذف شد.');\r\n },\r\n error => {\r\n this.sts.showDialog(`${this.label}: ${Utilities.getHttpResponseMessage(error)}`, 'خطا در حذف اطلاعات');\r\n });\r\n }\r\n async loadData(branchId: number) {\r\n this.httpCommonService\r\n .getList(this.apiName + \"/GetDefaultMessageTemplate/\" + branchId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => {\r\n this.dataList = row as [];\r\n this.loadMessageTemplate = true;\r\n },\r\n (error) => {}\r\n );\r\n }\r\n}\r\n","
\r\n \r\n\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nimport { MessageTemplateFormComponent } from './message-template-form/message-template-form.component';\r\nimport { MessageTemplateListComponent } from './message-template-list/message-template-list.component';\r\n\r\nconst components =\r\n [\r\n MessageTemplateFormComponent,\r\n MessageTemplateListComponent\r\n ]\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class MessagingModule { }\r\n","import { NameValue } from 'projects/sepidz-web-framework/src/lib/models/name-value';\r\n\r\nexport const OCCASION_ITEMS: NameValue[] = [\r\n {Name: 'عنوان مشتری', Value: '[CustomerTitle]'},\r\n {Name: 'نام مشتری', Value: '[CustomerName]'},\r\n {Name: 'عنوان رستوران', Value: '[RestaurantTitle]'},\r\n {Name: 'تلفن رستوران', Value: '[RestaurantPhoneNumber]'},\r\n {Name: 'آدرس رستوران', Value: '[RestaurantAddress]'},\r\n];\r\n\r\nexport const GROUP_ITEMS: NameValue[] = [\r\n ...OCCASION_ITEMS,\r\n {Name: 'جمع خرید', Value: '[TotalPurchase]'},\r\n {Name: 'گروه مشتری', Value: '[CustomerCategory]'},\r\n {Name: 'تعداد خرید', Value: '[PurchaseCount]'},\r\n];\r\n\r\nexport enum MessageTemplateType\r\n{\r\n occasion=1,\r\n groups=2\r\n}","import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { Customer, CustomerAddress } from \"../../../parties/model/customer.model\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"order-customeraddress\",\r\n templateUrl: \"./customeraddressorder.component.html\",\r\n styleUrls: [\"./customeraddressorder.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CustomerAddressOrderComponent extends BaseFormComponent {\r\n @Input() errorMessage: string = this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderAddress.Trial\");\r\n @Input() _zoneId: number;\r\n _courierShippingCost: number;\r\n @Input() _address: string;\r\n @Input() _isDefault: boolean;\r\n @Input() _AddressId: number;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Customer\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderAddress.Title\");\r\n this.setColumns();\r\n this.model = this.currentrow;\r\n }\r\n\r\n addControl() {\r\n if (this.formGroup) {\r\n this.setValue(\"_zoneId\", this._zoneId);\r\n this.setValue(\"_address\", this._address);\r\n this.setValue(\"_isDefault\", this._isDefault);\r\n }\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderAddress.Region\"),\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"_zoneId\",\r\n disabled: false,\r\n name: \"_zoneId\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: false,\r\n required: true,\r\n apiName: \"Zone/GetZones\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n userClass: \"select-sm\",\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderAddress.Address\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"_address\",\r\n disabled: false,\r\n name: \"_address\",\r\n order: 1,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n userClass: \"select-md\",\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderAddress.Remember\"),\r\n name: \"_isDefault\",\r\n order: 2,\r\n listVisible: true,\r\n formVisible: true,\r\n required: false,\r\n textType: \"checkbox\",\r\n modelName: \"_isDefault\",\r\n controlType: FormControlTypes.checkbox,\r\n });\r\n this.orignalColumns = this.columns;\r\n this.setFormGroup(this.model);\r\n }\r\n async save() {\r\n if (this.formGroup?.valid) {\r\n let temp = Object.assign({}, this.formGroup.value);\r\n let customer: Customer = this.model;\r\n let customerAddress = new CustomerAddress();\r\n if (temp._isDefault) {\r\n customer.Addresses.forEach((x) => {\r\n x.State = RowState.Modify;\r\n x.IsDefault = false;\r\n });\r\n customerAddress.IsDefault = true;\r\n }\r\n customerAddress.State = RowState.New;\r\n if (!this._AddressId) {\r\n customerAddress.ZoneId = temp._zoneId;\r\n customerAddress.Address = temp._address;\r\n customerAddress.IsDefault = temp._isDefault;\r\n customerAddress.CustomerId = customer.Id;\r\n customer.Addresses.push(customerAddress);\r\n } else {\r\n customerAddress = customer.Addresses.find((x) => x.Id === this._AddressId);\r\n customerAddress.ZoneId = temp._zoneId;\r\n customerAddress.Address = temp._address;\r\n customerAddress.IsDefault = temp._isDefault;\r\n customerAddress.State = RowState.Modify;\r\n }\r\n\r\n if (!customer.Addresses) customer.Addresses = [];\r\n\r\n this.result = customer.Address;\r\n this.httpCommonService\r\n .update(this.apiName, this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (response) => {\r\n this.saveSuccessHelper();\r\n this.result = this.model;\r\n this.closeModal();\r\n },\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n this.closeModal();\r\n } else {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderAddress.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderAddress.FormInformationIsInvalid\")\r\n );\r\n }\r\n this.result = this.model;\r\n }\r\n\r\n cancel() {\r\n this.closeModal();\r\n }\r\n isConfirm(): boolean {\r\n return true;\r\n }\r\n submit(flag: boolean) {}\r\n get message() {\r\n return this.errorMessage;\r\n }\r\n AddNewCustomerAddress() {\r\n alert(this._zoneId);\r\n }\r\n}\r\n","\r\n\r\n","import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { CustomerAddress, CustomerContactNumber, CustomerDetailInfoViewModel } from \"../../../parties/model/customer.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CustomerAddressOrderComponent } from \"../customeraddressorder/customeraddressorder.component\";\r\nimport { CustomerNumberOrderComponent } from \"../customernumberorder/customernumberorder.component\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { CustomerOrderService } from \"../customerorder.service\";\r\n\r\n@Component({\r\n selector: \"order-customerdetails\",\r\n templateUrl: \"./customerdetailsorder.component.html\",\r\n styleUrls: [\"./customerdetailsorder.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CustomerDetailsOrderComponent extends BaseListComponent {\r\n @Output() onStateChange: EventEmitter = new EventEmitter();\r\n @Input() customerOrder: CustomerOrderService;\r\n constructor(public cd: ChangeDetectorRef, public dialog: SimpleModalService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.FillData();\r\n }\r\n\r\n FillData() {\r\n this.customerOrder.areaName = this.areaName;\r\n this.customerOrder.cd = this.cd;\r\n }\r\n\r\n //----------------------------------------------Address----------------------------------------------\r\n //نمایش وعدم نمایش زمان تارسیدن وپرکردن فیلد آدرس انتخاب شده\r\n ShowMinutesToDelivery(event, address: CustomerAddress) {\r\n if (event.target.checked) {\r\n this.customerOrder.currentCustomer.SelectedAddressId = address.Id;\r\n } else {\r\n this.customerOrder.currentCustomer.MinutesToDelivery = 0;\r\n }\r\n }\r\n\r\n //نمایش پاپ آپ ایجاد آدرس جدید\r\n ShowAddressDialog(data: CustomerDetailInfoViewModel) {\r\n this.dialog\r\n .open(\r\n CustomerAddressOrderComponent,\r\n {\r\n currentrow: data,\r\n errorMessage: \"NotFound!!!\",\r\n },\r\n {\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {\r\n this.customerOrder.GetCustomerDetails(model.Id);\r\n });\r\n }\r\n //نمایش پاپ آپ ویرایش آدرس جدید\r\n ShowAddressEditDialog(data: CustomerDetailInfoViewModel) {\r\n var address = data.Addresses.find((x) => x.Id == data.SelectedAddressId);\r\n this.dialog\r\n .open(\r\n CustomerAddressOrderComponent,\r\n {\r\n currentrow: data,\r\n _address: address.Address,\r\n _zoneId: address.ZoneId,\r\n _isDefault: address.IsDefault,\r\n _AddressId: address.Id,\r\n errorMessage: \"NotFound!!!\",\r\n },\r\n {\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {\r\n if (model && model.Addresses && model.Addresses.length > 0) {\r\n this.customerOrder.isEditing = true;\r\n this.customerOrder.GetCustomerDetails(data.Id);\r\n }\r\n });\r\n }\r\n\r\n //-----------------------------------------------Phone-----------------------------------------------\r\n //پر کردن فیلد تلفن انتخاب شده\r\n SetSelectedPhoneId(phone: CustomerContactNumber) {\r\n if (phone) {\r\n this.customerOrder.currentCustomer.SelectedPhoneId = phone.Id;\r\n }\r\n }\r\n //نمایش پاپ آپ ایجاد شماره تلفن جدید\r\n ShowPhoneDialog(data: CustomerDetailInfoViewModel) {\r\n this.dialog\r\n .open(\r\n CustomerNumberOrderComponent,\r\n {\r\n currentrow: data,\r\n errorMessage: \"NotFound!!!\",\r\n },\r\n {\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {\r\n this.customerOrder.GetCustomerDetails(data.Id);\r\n }),\r\n 500;\r\n }\r\n //نمایش پاپ آپ ویرایش شماره تلفن جدید\r\n ShowEditPhoneDialog(data: CustomerDetailInfoViewModel) {\r\n var numbers = data.Numbers.find((x) => x.Id == data.SelectedPhoneId);\r\n this.dialog\r\n .open(\r\n CustomerNumberOrderComponent,\r\n {\r\n currentrow: data,\r\n errorMessage: \"NotFound!!!\",\r\n _numberTypeId: numbers.NumberTypeId,\r\n _number: numbers.Number,\r\n _isDefault: numbers.IsDefault,\r\n _PhoneId: numbers.Id,\r\n },\r\n {\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {\r\n if (model && model.Numbers && model.Numbers.length > 0) {\r\n this.customerOrder.isEditing = true;\r\n this.customerOrder.GetCustomerDetails(data.Id);\r\n }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{ customerOrder.currentCustomer?.DisplayName }}

\r\n
\r\n
{{ customerOrder.currentCustomer?.Number }}
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.CustomerOrder.CustomerDetailsOrder.LimitCredit\" | translate }}\r\n {{ customerOrder.currentCustomer?.CreditLimit | number }}\r\n
\r\n
\r\n {{ customerOrder.debitTitle | translate }} \r\n {{ customerOrder.currentCustomer?.DebitRate | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.CustomerOrder.CustomerDetailsOrder.TimeArrive\" | translate }} \r\n 0\" class=\"spnLeft\"\r\n >{{ customerOrder?.currentCustomer?.MinutesToDelivery }}\r\n {{ \"ClientApp.FrontOffice.Order.CustomerOrder.CustomerDetailsOrder.Minutes\" | translate }}\r\n
\r\n
\r\n
\r\n \r\n

{{ \"ClientApp.FrontOffice.Order.CustomerOrder.CustomerDetailsOrder.PurchaseInformation\" | translate }}

\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.CustomerOrder.CustomerDetailsOrder.LastPurchase\" | translate }} \r\n {{ customerOrder.currentCustomer?.LastBuy | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.CustomerOrder.CustomerDetailsOrder.TimeOfLastPurchase\" | translate }}\r\n {{ customerOrder.currentCustomer?.LastBuyDate }}\r\n
\r\n\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.CustomerOrder.CustomerDetailsOrder.PurchaseCount\" | translate }}\r\n {{ customerOrder.currentCustomer?.CountBuy | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.CustomerOrder.CustomerDetailsOrder.MostPurchases\" | translate }} \r\n {{ customerOrder.currentCustomer?.MaximumBuy | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.CustomerOrder.CustomerDetailsOrder.LeastPurchase\" | translate }}\r\n {{ customerOrder.currentCustomer?.MinimumBuy | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.CustomerOrder.CustomerDetailsOrder.SumPurchase\" | translate }} \r\n {{ customerOrder.currentCustomer?.TotalBuy | number }}\r\n
\r\n
\r\n
\r\n \r\n

{{ \"ClientApp.FrontOffice.Order.CustomerOrder.CustomerDetailsOrder.Address\" | translate }}

\r\n
\r\n
\r\n
\r\n \r\n {{ address.Address }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{ \"ClientApp.FrontOffice.Order.CustomerOrder.CustomerDetailsOrder.PhoneNumbers\" | translate }}

\r\n
\r\n
\r\n
\r\n \r\n {{ phone.Number }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, Input, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { form_control, Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { NumberType, RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { Customer, CustomerContactNumber } from \"../../../parties/model/customer.model\";\r\nimport { Validators } from \"@angular/forms\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Utilities } from \"../../../../../../projects/sepidz-web-framework/src/lib/services\";\r\n\r\n@Component({\r\n selector: \"order-customernumber\",\r\n templateUrl: \"./customernumberorder.component.html\",\r\n styleUrls: [\"./customernumberorder.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CustomerNumberOrderComponent extends BaseFormComponent {\r\n @Input() errorMessage: string = this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderNumber.Trial\");\r\n @Input() _numberTypeId: number;\r\n @Input() _number: string;\r\n @Input() _isDefault: boolean;\r\n @Input() _PhoneId: number;\r\n NumberTypeLookup: Lookup[];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Customer\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderNumber.Title\");\r\n this.setColumns();\r\n this.model = this.currentrow;\r\n }\r\n\r\n addControl() {\r\n if (this.formGroup) {\r\n this.setValue(\"_numberTypeId\", this._numberTypeId);\r\n this.setValue(\"_number\", this._number);\r\n this.setValue(\"_isDefault\", this._isDefault);\r\n }\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderNumber.NumberTypeId\"),\r\n controlType: FormControlTypes.dropdown,\r\n modelName: \"_numberTypeId\",\r\n disabled: false,\r\n name: \"_numberTypeId\",\r\n order: 0,\r\n textType: \"text\",\r\n formVisible: true,\r\n listVisible: false,\r\n required: true,\r\n apiName: \"Lookup\",\r\n systemName: \"SALE\",\r\n category: \"NumberType\",\r\n valueMember: \"Id\",\r\n displayMember: \"Title\",\r\n userClass: \"select-sm\",\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderNumber.Number\"),\r\n controlType: FormControlTypes.textbox,\r\n modelName: \"_number\",\r\n disabled: false,\r\n name: \"_number\",\r\n order: 1,\r\n textType: \"text\",\r\n isNumberOnly: true,\r\n isDecimal: false,\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n userClass: \"select-sm\",\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderNumber.Remember\"),\r\n name: \"_isDefault\",\r\n order: 2,\r\n listVisible: true,\r\n formVisible: true,\r\n required: false,\r\n textType: \"checkbox\",\r\n modelName: \"_isDefault\",\r\n controlType: FormControlTypes.checkbox,\r\n });\r\n this.orignalColumns = this.columns;\r\n this.setFormGroup(this.model);\r\n this.cd.markForCheck();\r\n }\r\n async save() {\r\n if (this.formGroup?.valid) {\r\n let temp = Object.assign({}, this.formGroup.value);\r\n let customer: Customer = this.model;\r\n let customerNumbers = new CustomerContactNumber();\r\n if (temp._isDefault) {\r\n customer.Numbers.forEach((x) => {\r\n x.State = RowState.Modify;\r\n x.IsDefault = false;\r\n });\r\n customerNumbers.IsDefault = true;\r\n }\r\n customerNumbers.State = RowState.New;\r\n if (!this._PhoneId) {\r\n customerNumbers.NumberTypeId = temp._numberTypeId;\r\n customerNumbers.Number = temp._number;\r\n customerNumbers.IsDefault = temp._isDefault;\r\n customerNumbers.CustomerId = customer.Id;\r\n customerNumbers.State = RowState.New;\r\n customer.Numbers.push(customerNumbers);\r\n } else {\r\n customerNumbers = customer.Numbers.find((x) => x.Id == this._PhoneId);\r\n customerNumbers.NumberTypeId = temp._numberTypeId;\r\n customerNumbers.Number = temp._number;\r\n customerNumbers.IsDefault = temp._isDefault;\r\n customerNumbers.State = RowState.Modify;\r\n }\r\n if (!customer.Numbers) customer.Numbers = [];\r\n\r\n this.result = customer.Numbers;\r\n\r\n this.httpCommonService\r\n .update(this.apiName, this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (response) => {\r\n this.saveSuccessHelper();\r\n this.result = this.model;\r\n this.closeModal();\r\n },\r\n (error) => {\r\n this.sts.showDialog(\r\n `${this.label}: ${Utilities.getHttpResponseMessage(error)}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderNumber.ErrorDeletingInformation\")\r\n );\r\n this.result = this.model;\r\n }\r\n );\r\n this.closeModal();\r\n } else {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderNumber.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerOrderNumber.FormInformationIsInvalid\")\r\n );\r\n }\r\n }\r\n SetPattern(event) {\r\n if (event && event.Code) {\r\n this.SetPatternKey(event.Code);\r\n }\r\n }\r\n SetPatternKey(Code: number) {\r\n let patternKey = \"^[0-9]\\\\d{3,7}\";\r\n if (Code === NumberType.Mobile) {\r\n patternKey = \"^[0-0][9-9]\\\\d{9}\";\r\n }\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"_number\") x.patternKey = patternKey;\r\n });\r\n if (this.formGroup.controls[\"_number\"]) {\r\n this.formGroup.controls[\"_number\"].clearValidators();\r\n this.formGroup.controls[\"_number\"].setErrors(null);\r\n this.formGroup.controls[\"_number\"].setValidators([Validators.required, Validators.pattern(patternKey)]);\r\n this.formGroup.controls[\"_number\"].setValue(this.formGroup.controls[\"_number\"].value);\r\n }\r\n }\r\n cancel() {\r\n this.closeModal();\r\n }\r\n isConfirm(): boolean {\r\n return true;\r\n }\r\n submit(flag: boolean) {}\r\n get message() {\r\n return this.errorMessage;\r\n }\r\n}\r\n","\r\n\r\n","import { Component, ViewChild, ChangeDetectorRef, ChangeDetectionStrategy, OnDestroy } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { Customer, CustomerGridViewModel } from \"../../parties/model/customer.model\";\r\nimport { filter, take, takeUntil } from \"rxjs/operators\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models/form-control.model\";\r\nimport { CustomerDetailsEnum } from \"../model/customerdetailenum\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { NotificationService } from \"projects/sepidz-web-framework/src/lib/services/notification.service\";\r\nimport { CallRead } from \"../model/call-read.model\";\r\nimport { GridFilter, PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { CustomerFormComponent } from \"../../parties/customer/customer-form.component\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { CustomerLoadModel, CustomerOrderService } from \"./customerorder.service\";\r\nimport { ColumnBase } from \"@progress/kendo-angular-grid\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\n// import { InvoiceService } from \"../orderpage/invoice/invoice.service\";\r\n\r\n@Component({\r\n selector: \"order-customer\",\r\n templateUrl: \"./customerorder.component.html\",\r\n styleUrls: [\"./customerorder.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CustomerOrderComponent extends BaseListComponent implements OnDestroy {\r\n currentData: PagingDataResult = new PagingDataResult();\r\n _customers: CustomerGridViewModel[];\r\n isShowGrid: boolean = true;\r\n calls: CallRead[] = [];\r\n customerId: number;\r\n CurrentCallNumber: string = \"\";\r\n currentGridFilter: GridFilter[];\r\n hasCallerIdNumber: boolean = false;\r\n @ViewChild(\"kgrid\") grid: KGridComponent;\r\n\r\n constructor(\r\n public dialog: SimpleModalService,\r\n public customerOrder: CustomerOrderService,\r\n private cd: ChangeDetectorRef,\r\n private customerService: CustomerOrderService,\r\n private notification: NotificationService,\r\n private splashFormService: SplashFormService // private invoiceService: InvoiceService\r\n ) {\r\n super();\r\n this.NoLog = true;\r\n this.inputEditorform = CustomerFormComponent;\r\n this.CurrentCallNumber = \"\";\r\n this.customerOrder.CallerIdNumber = \"\";\r\n }\r\n\r\n ngOnInit() {\r\n this.areaName = \"RestaurantSale\";\r\n this.apiName = \"Customer/GetCustomers\";\r\n this.init();\r\n this.FillData();\r\n this.ReadListCallerIdNotification();\r\n }\r\n\r\n FillData() {\r\n this._customers = [];\r\n this.customerOrder.currentCustomerDetailsEnum = CustomerDetailsEnum.Details;\r\n this.getcolumns();\r\n }\r\n\r\n private ReadListCallerIdNotification() {\r\n if (this.calls && this.calls.length > 0) return;\r\n this.httpCommonService\r\n .getList(`CallerId/ReadList/${this.customerOrder.order.logInBranch.Id}`)\r\n .pipe(take(1))\r\n .subscribe((data) => {\r\n if (data) {\r\n this.calls = (data as CallRead[]).sort((a, b) => Number(a.Line) - Number(b.Line));\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n private init(): void {\r\n this.CurrentCallNumber = undefined;\r\n this.notification.init();\r\n this.notification.notification$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((value) => {\r\n if (value.Key === \"CallerIdNotification\") {\r\n this.calls = value.Message.sort((a, b) => Number(a.Line) - Number(b.Line));\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n getcolumns() {\r\n this.httpCommonService\r\n .getControlsList(\"Customer\")\r\n .pipe(take(1))\r\n .subscribe((data) => {\r\n if (data) {\r\n this.columns = (data as form_control[]).sort((a, b) => a.order - b.order);\r\n }\r\n this.cd.markForCheck();\r\n });\r\n }\r\n answer(call: CallRead) {\r\n this.CurrentCallNumber = call.Number?.length > 10 ? call.Number.substring(call.Number.length - 10, call.Number.length) : call.Number;\r\n this.customerService.CallerIdNumber = call.Number?.length > 10 ? call.Number.substring(call.Number.length - 10, call.Number.length) : call.Number;\r\n if (!this.currentGridFilter) this.currentGridFilter = [];\r\n const CallerIdNumber: string = call.Number?.length > 10 ? call.Number.substring(call.Number.length - 10, call.Number.length) : call.Number;\r\n this.grid.isRefreshing = false;\r\n this.customerOrder.group.controls[\"Numbers\"].setValue(CallerIdNumber);\r\n this.currentGridFilter.push({ Filed: \"PhoneNumber\", Type: \"F\", Value: CallerIdNumber, Operator: \"eq\", Logic: \"and\", Skip: 0, Take: 10 });\r\n this.httpCommonService\r\n .create(\"CallerId/Answer\", { Id: call.Id })\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n this.hasCallerIdNumber = true;\r\n });\r\n }\r\n onGetDataComplete($event) {\r\n if ($event && this.CurrentCallNumber !== undefined && this.hasCallerIdNumber) {\r\n if ($event.length === 1) {\r\n if ($event[0].Number !== 0) {\r\n this.customerId = $event[0].Id;\r\n if (!this.customerOrder.currentCustomer || this.customerOrder.currentCustomer.Id !== this.customerId)\r\n this.customerOrder.GetCustomerDetails(this.customerId, true, this.CurrentCallNumber);\r\n else this.customerOrder.setCostomerInfo();\r\n } else {\r\n this.hasCallerIdNumber = false;\r\n return;\r\n }\r\n } else {\r\n this.currentGridFilter = null;\r\n this.currentGridFilter = [];\r\n this.currentGridFilter.push({ Filed: \"Party.Number\", Type: \"F\", Value: 0, Operator: \"eq\", Logic: \"and\", Skip: 0, Take: 10 });\r\n return;\r\n }\r\n }\r\n if (!this.hasCallerIdNumber) this.currentGridFilter = null;\r\n this.hasCallerIdNumber = false;\r\n }\r\n onDataStateChanged(event: GridFilter[]) {\r\n this.currentGridFilter = event;\r\n }\r\n\r\n //انتخاب یک سطر از لیست مشترکین جهت نمایش جزئیات\r\n getRowSelectedData(data: Customer) {\r\n this.customerOrder.currentCustomerDetailsEnum = CustomerDetailsEnum.Details;\r\n if (!this.customerId || this.customerId !== data.Id) this.customerId = data.Id;\r\n this.customerOrder.GetCustomerDetails(data.Id);\r\n }\r\n //پرکردن اطلاعات مشتری در فاکتور با دابل کلیک برروی ردیف ورفتن به صفحه فاکتور\r\n onDoubleClick(customer?: Customer) {\r\n this.splashFormService.openDialog();\r\n this.customerOrder.customerDetailsIsLoaded$\r\n .pipe(\r\n takeUntil(this.ngUnsubscribe),\r\n filter((customerLoadModel: CustomerLoadModel) => customerLoadModel.type === \"Loaded\" && customerLoadModel.customerId === customer.Id),\r\n take(1)\r\n )\r\n .subscribe(() => {\r\n this.customerOrder.doubleClickUnsubscribe$.next();\r\n this.customerId = customer?.Id;\r\n this.customerOrder.setCostomerInfo();\r\n\r\n this.customerOrder.order.calculate();\r\n this.splashFormService.closeLoading();\r\n this.clearFilters();\r\n });\r\n }\r\n //پرکردن فیلد آدرس انتخاب شده\r\n FillSelectedAddressId(event) {\r\n this.customerOrder.currentCustomer.SelectedAddressId = event;\r\n }\r\n //پر کردن فیلد تلفن انتخاب شده\r\n FillSelectedPhoneId(event) {\r\n this.customerOrder.currentCustomer.SelectedPhoneId = event;\r\n }\r\n onEdit($event) {\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n { currentrow: $event, apiName: this.apiName, areaName: this.areaName, label: this.label },\r\n { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((_model: Customer) => {\r\n this.grid?.refreshData();\r\n });\r\n }\r\n\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.getGridInfo(this.grid.grid.columns.toArray()));\r\n });\r\n }\r\n\r\n getGridInfo(columns: ColumnBase[]): GridColumnInfoDetail[] {\r\n return columns\r\n .filter((x) => !x.hidden)\r\n .map((x) => {\r\n const info = new GridColumnInfoDetail();\r\n info.name = x[\"field\"];\r\n info.hidden = x.hidden;\r\n info.orderindex = x.orderIndex;\r\n info.title = x.title;\r\n return info;\r\n });\r\n }\r\n\r\n clearFilters() {\r\n const filterService = this.grid.grid[\"filterService\"];\r\n\r\n if (filterService) {\r\n filterService.filter({\r\n logic: \"and\",\r\n filters: [],\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
0\" [class.has_callerid]=\"calls?.length > 0\">\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { ChangeDetectorRef, Injectable } from \"@angular/core\";\r\nimport { FormControl, FormGroup, Validators } from \"@angular/forms\";\r\nimport { BaseService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-service.component\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { SimpleModalService } from \"../../../../../projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { CustomerFormComponent } from \"../../parties/customer/customer-form.component\";\r\nimport { CustomerAddress, CustomerDetailInfoViewModel } from \"../../parties/model/customer.model\";\r\nimport { ActivePageEnum } from \"../model/activepage.enum\";\r\nimport { CustomerDetailsEnum } from \"../model/customerdetailenum\";\r\nimport { OrderService } from \"../order.service\";\r\nimport { AddressPhoneFormComponent } from \"../orderpage/fastaccess/address-phone-form/address-phone-form.component\";\r\nimport { BehaviorSubject, Subject } from \"rxjs\";\r\nimport { DiscountTypeEnum } from \"../model/invoice.model\";\r\nimport { CustomerCategory } from \"../../parties/model/customer-categories.model\";\r\n\r\nexport type CustomerLoadModel = {\r\n type: \"NotLoaded\" | \"Pending\" | \"Loaded\";\r\n customerId?: number;\r\n};\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class CustomerOrderService extends BaseService {\r\n CallerIdNumber: string;\r\n currentCustomer: CustomerDetailInfoViewModel;\r\n customerDetailsEnum: typeof CustomerDetailsEnum = CustomerDetailsEnum;\r\n currentCustomerDetailsEnum: CustomerDetailsEnum = CustomerDetailsEnum.Details;\r\n isEditing: boolean;\r\n _showNewCustomerForm;\r\n // currentSaleMethodBranch: SaleMethodBranchModel;\r\n areaName: string;\r\n debitTitle: string = this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.TotalDebit\");\r\n group: FormGroup;\r\n cd: ChangeDetectorRef;\r\n customerDetailsIsLoaded$ = new BehaviorSubject({ type: \"NotLoaded\" });\r\n doubleClickUnsubscribe$ = new Subject();\r\n\r\n constructor(public order: OrderService, public dialog: SimpleModalService, public common: CommonService) {\r\n super();\r\n let groupmodel: any = {};\r\n groupmodel[\"Numbers\"] = new FormControl(undefined, Validators.maxLength(200));\r\n this.group = new FormGroup(groupmodel);\r\n this.CallerIdNumber = \"\";\r\n }\r\n //دریافت اطلاعات مشتری انتخاب شده در جدول به همراه جزئیات مربوطه\r\n GetCustomerDetails(id, loadCostomerInfo?: boolean, CallerIdNumber?: string) {\r\n this.customerDetailsIsLoaded$.next({ type: \"Pending\" });\r\n if (id) {\r\n this._showNewCustomerForm = false;\r\n this.httpCommonService\r\n .getItem(\"Customer/GetCustomerDetails\", id)\r\n .pipe(take(1), takeUntil(this.doubleClickUnsubscribe$))\r\n .subscribe(\r\n async (customer: CustomerDetailInfoViewModel) => {\r\n customer.Addresses = customer.Addresses.sort((a, b) => a.Order - b.Order);\r\n customer.Numbers = customer.Numbers.sort((a, b) => a.Order - b.Order);\r\n let phoneNumber = customer.Numbers.find((x) => x.IsDefault);\r\n let defaultAddress = customer.Addresses.find((x) => x.IsDefault);\r\n if (customer.Addresses.length === 1) {\r\n this.getMinutesToDelivery(customer, defaultAddress);\r\n }\r\n if (!this.isEditing) customer.SelectedPhoneId = phoneNumber?.Id;\r\n if (CallerIdNumber) {\r\n const finditem = customer.Numbers.find((x) => x.Number === CallerIdNumber)?.Id;\r\n if (finditem) customer.SelectedPhoneId = customer.Numbers.find((x) => x.Number === CallerIdNumber)?.Id;\r\n }\r\n this.isEditing = false;\r\n this.currentCustomer = customer;\r\n if (loadCostomerInfo) this.setCostomerInfo(CallerIdNumber);\r\n if (customer.DebitRate < 0) {\r\n this.debitTitle = this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.TotalCredit\");\r\n } else {\r\n this.debitTitle = this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.TotalDebit\");\r\n }\r\n this.customerDetailsIsLoaded$.next({ type: \"Loaded\", customerId: customer.Id });\r\n this.cd.markForCheck();\r\n },\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n }\r\n\r\n private getMinutesToDelivery(customer: CustomerDetailInfoViewModel, defaultAddress: CustomerAddress) {\r\n customer.SelectedAddressId = defaultAddress?.Id;\r\n if (defaultAddress?.DefaultBranchId) {\r\n const zoneBranch = defaultAddress.Zone?.Branches?.find((branch) => branch.BranchId === defaultAddress.DefaultBranchId);\r\n customer.MinutesToDelivery = zoneBranch?.MinutesToDelivery;\r\n } else {\r\n const zoneBranch = defaultAddress.Zone?.Branches?.find((branch) => branch.IsDefault);\r\n customer.MinutesToDelivery = zoneBranch?.MinutesToDelivery;\r\n }\r\n this.order.defaultMinutesToDelivery = customer.MinutesToDelivery;\r\n }\r\n //پرکردن اطلاعات مشتری در فاکتور ورفتن به صفحه فاکتور\r\n setCostomerInfo(CallerIdNumber?: string, customer?: CustomerDetailInfoViewModel) {\r\n /// For Free Shipping\r\n if (\r\n this.order.invoice?.CustomerAddress?.Zone?.MinimumPurchaseForFreeShipping > 0 &&\r\n this.order.invoice?.CustomerAddress?.Zone?.MinimumPurchaseForFreeShipping < this.order.invoice.Total &&\r\n this.order.invoice.PayableTotal > 0 &&\r\n (this.order.invoice.DiscountPrice <= 0 || this.order.invoice.DiscountPrice == this.order.invoice.ShippingCost)\r\n ) {\r\n this.order.invoice.Discount = 0;\r\n this.order.invoice.TotalDiscount = 0;\r\n this.order.invoice.DiscountPrice = 0;\r\n this.order.invoice.IsDiscountPercent = false;\r\n this.order.invoice.IgnoreShippingCost = false;\r\n this.order.setValue(\"Discount\", 0);\r\n }\r\n this.order.invoice.Debit = 0;\r\n this.order.invoice.Credit = 0;\r\n\r\n this.order.setValue(\"Debit\", 0);\r\n this.order.freeShippingCostDiscount = null;\r\n if (customer) {\r\n this.currentCustomer = customer;\r\n }\r\n if (this.currentCustomer?.Addresses.length === 1) {\r\n const defaultAddress = this.currentCustomer?.Addresses.find((x) => x.IsDefault);\r\n const isActiveCategory: boolean = this.order.customerInActiveCategory(defaultAddress.Id, this.currentCustomer);\r\n if (isActiveCategory) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.PossibilityOfPlacingOrderSelectedCustomer\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.ErrorMessage\")\r\n );\r\n return;\r\n }\r\n }\r\n\r\n if (!this.currentCustomer?.IsActive) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerSelectedBecause\")} ${\r\n this.currentCustomer.DeactivationReason\r\n } ${this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.ItIsDisabled\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.ErrorMessage\")\r\n );\r\n return;\r\n }\r\n\r\n if (!this.currentCustomer) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerNotSelected\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.ErrorMessage\")\r\n );\r\n return;\r\n } else if (this.currentCustomer?.Addresses.length === 1) {\r\n this.setCustomerInfoAfterSelectAddress();\r\n }\r\n //با هماهنگی نیما کامنت شد\r\n if (this.currentCustomer?.IsActive /*&& this.currentCustomer?.Id !== this.order.invoice.Customer?.Id*/) {\r\n /// For Open FastAcess Always\r\n if (this.currentCustomer?.Addresses.length > 1 && !this.currentCustomer?.SelectedAddressId) {\r\n this.dialog\r\n .open(\r\n AddressPhoneFormComponent,\r\n {\r\n model: JSON.parse(JSON.stringify(this.currentCustomer)),\r\n apiName: \"Customer\",\r\n areaName: this.areaName,\r\n CallerIdNumber: CallerIdNumber,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.ChoosingCustomerAddressAndTelephoneNumber\"),\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (model) => {\r\n if (model) {\r\n const isActiveCategory: boolean = this.order.customerInActiveCategory(model[\"AddressId\"], this.currentCustomer);\r\n if (isActiveCategory) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.PossibilityOfPlacingOrderSelectedCustomer\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.ErrorMessage\")\r\n );\r\n return;\r\n }\r\n this.setCustomerInfoAfterSelectAddress();\r\n this.order.invoice.CustomerAddress = this.currentCustomer?.Addresses.find((x) => x.Id === model[\"AddressId\"]);\r\n this.order.invoice.AddressId = model[\"AddressId\"];\r\n this.order.invoice.PhoneNumber = this.currentCustomer?.Numbers.find((x) => x.Id === model[\"PhoneId\"]).Number;\r\n this.order.invoice.MultiPhoneNumber = this.currentCustomer?.Numbers.map((e) => e.Number).join(\"-\");\r\n this.order.invoice.PhoneId = model[\"PhoneId\"];\r\n this.order.invoiceChanged = true;\r\n this.order._opened = false;\r\n this.order.formGroup.controls[\"ShippingCost\"].setValue(this.order.invoice.ShippingCost);\r\n const address = this.order.invoice.CustomerAddress;\r\n this.order.invoice.CustomerAddres = address.Address;\r\n this.order.freeShippingCostDiscount = null;\r\n this.setDefaultBranchId();\r\n this.order.setInvoiceHasFactorAndHasPaymentLink();\r\n this.setDefaultCosts(address);\r\n this.getMinutesToDelivery(this.order.invoice.Customer, address);\r\n this.common.isMobileMode ? this.order.setActivePage(ActivePageEnum.OrderItem) : this.order.setActivePage(ActivePageEnum.Order);\r\n this.currentCustomer = null;\r\n\r\n this.order.calculate(true);\r\n this.order.cd.markForCheck();\r\n }\r\n },\r\n (error) => {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.CustomerPhoneNotSelected\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.ErrorMessage\")\r\n );\r\n this.isEditing = false;\r\n return;\r\n }\r\n );\r\n } else {\r\n if (this.currentCustomer?.Addresses.length === 1 && !this.currentCustomer?.SelectedAddressId)\r\n this.currentCustomer.SelectedAddressId = this.currentCustomer?.Addresses?.find((x) => x.IsDefault).Id;\r\n\r\n if (this.currentCustomer?.Numbers?.some((x) => x.IsDefault) && !this.currentCustomer?.SelectedPhoneId && !this.isEditing)\r\n this.currentCustomer.SelectedPhoneId = this.currentCustomer?.Numbers?.find((x) => x.IsDefault).Id;\r\n this.isEditing = false;\r\n if (this.order.invoice.CustomerId !== this.currentCustomer?.Id || this.currentCustomer.Number === 0) {\r\n this.order.invoice.Customer.Addresses = this.currentCustomer?.Addresses;\r\n this.order.invoice.AddressId = this.currentCustomer?.SelectedAddressId;\r\n this.order.invoice.CustomerAddress = this.currentCustomer?.Addresses?.find((x) => x.Id === this.currentCustomer?.SelectedAddressId);\r\n this.order.invoice.CustomerAddres = this.order.invoice.CustomerAddress?.Address;\r\n this.order.invoice.ShippingCost = this.order.invoice.CustomerAddress?.ShippingCost;\r\n this.order.formGroup.controls[\"ShippingCost\"].setValue(this.order.invoice.ShippingCost);\r\n\r\n this.order.invoice.PhoneId = this.currentCustomer?.SelectedPhoneId;\r\n this.order.invoice.PhoneNumber = this.currentCustomer?.Numbers.find((x) => x.Id === this.currentCustomer?.SelectedPhoneId)?.Number;\r\n this.order.invoice.MultiPhoneNumber = this.currentCustomer?.Numbers.map((e) => e.Number).join(\"-\");\r\n this.order.invoiceChanged = true;\r\n } else {\r\n if (this.order.invoice.AddressId !== this.currentCustomer?.SelectedAddressId) {\r\n this.order.invoice.AddressId = this.currentCustomer?.SelectedAddressId;\r\n this.order.invoice.CustomerAddress = this.currentCustomer?.Addresses?.find((x) => x.Id === this.currentCustomer?.SelectedAddressId);\r\n this.order.invoice.CustomerAddres = this.order.invoice.CustomerAddress?.Address;\r\n this.order.invoice.ShippingCost =\r\n this.order.invoice.CustomerAddress?.ShippingCost > 0\r\n ? this.order.invoice.CustomerAddress?.ShippingCost\r\n : this.order.invoice.ShippingCost;\r\n this.order.formGroup.controls[\"ShippingCost\"].setValue(this.order.invoice.ShippingCost);\r\n\r\n this.order.invoiceChanged = true;\r\n }\r\n if (this.order.invoice.PhoneId !== this.currentCustomer?.SelectedPhoneId) {\r\n this.order.invoice.PhoneId = this.currentCustomer?.SelectedPhoneId;\r\n if (this.currentCustomer?.Numbers?.length > 0) {\r\n this.order.invoice.PhoneNumber = this.currentCustomer?.Numbers?.find((x) => x.Id === this.currentCustomer?.SelectedPhoneId)?.Number;\r\n this.order.invoice.MultiPhoneNumber = this.currentCustomer?.Numbers.map((e) => e.Number).join(\"-\");\r\n }\r\n this.order.invoiceChanged = true;\r\n }\r\n }\r\n this.setDefaultBranchId();\r\n this.setDefaultCosts(this.order.invoice.Customer?.Addresses[0] ? this.order.invoice.Customer?.Addresses[0] : null);\r\n this.common.isMobileMode ? this.order.setActivePage(ActivePageEnum.OrderItem) : this.order.setActivePage(ActivePageEnum.Order);\r\n this.currentCustomer = null;\r\n this.order.setInvoiceHasFactorAndHasPaymentLink();\r\n\r\n this.order.calculate();\r\n }\r\n } else {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.TargetCustomerBecause\")} \"` +\r\n this.currentCustomer?.DeactivationReason +\r\n `\" ${this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.InactiveCannotSelected\")}`,\r\n \"پیغام خطا\"\r\n );\r\n }\r\n }\r\n\r\n stateChange() {\r\n this.dialogService\r\n .open(\r\n CustomerFormComponent,\r\n {\r\n CallerIdNumber: this.CallerIdNumber,\r\n apiName: \"Customer\",\r\n areaName: \"RestaurantSale\",\r\n label: this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.Customer\"),\r\n },\r\n {\r\n closeOnClickOutside: false,\r\n autoFocus: false,\r\n closeOnEscape: true,\r\n }\r\n )\r\n .subscribe((ele) => {\r\n if (ele) {\r\n this.httpCommonService\r\n .getItem(\"Customer/GetCustomerDetails\", ele.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: CustomerDetailInfoViewModel) => {\r\n this.setCostomerInfo(null, data);\r\n this.order.detectChanges();\r\n });\r\n }\r\n });\r\n }\r\n\r\n private setCustomerInfoAfterSelectAddress() {\r\n this.order.invoice.Customer = JSON.parse(JSON.stringify(this.currentCustomer));\r\n const customer = this.order.invoice?.Customer;\r\n this.order.invoice.CustomerId = customer?.Id;\r\n this.order.invoice.IsDiscountPercent = true;\r\n this.order.invoice.Discount = customer?.PercentDiscount;\r\n this.order.invoice.customerDiscountValue = customer.PercentDiscount;\r\n if (customer?.PercentDiscount) {\r\n this.order.invoice.IsDiscountPercent = true;\r\n this.order.invoice.DiscountType = DiscountTypeEnum.Subscription;\r\n }\r\n this.order.setValue(\"Discount\", customer?.PercentDiscount);\r\n this.order.invoice.CustomerDisplayName = customer?.Party?.DisplayName;\r\n this.order.invoice.Debit =\r\n this.currentCustomer?.AutomaticDebtor && this.order.currentSaleMethodNature === this.order.SaleMethodNature.Delivery\r\n ? this.order.invoice.PayableTotal\r\n : 0;\r\n if (this.order.invoice.Debit > 0) this.order.formGroup.controls[\"Debit\"].setValue(this.order.invoice.Debit);\r\n this.order.invoice.Customer.HasCredit = this.currentCustomer?.HasCredit;\r\n this.order.invoice.CustomerNumber = this.currentCustomer?.Number;\r\n this.currentCustomer = JSON.parse(JSON.stringify(this.order.invoice.Customer));\r\n }\r\n\r\n private setDefaultCosts(address: CustomerAddress): void {\r\n const branchFromZone = address?.Zone.Branches.find((x) => x.BranchId === this.order.invoice.BranchId);\r\n this.order.invoice.ShippingCost = address?.ShippingCost || branchFromZone?.ShippingCost;\r\n this.order.invoice.CourierShippingCost = address?.CourierShippingCost || branchFromZone?.CourierShippingCost;\r\n this.order.setValue(\"ShippingCost\", this.order.invoice.ShippingCost);\r\n this.order.setValue(\"CourierShippingCost\", this.order.invoice.CourierShippingCost);\r\n if (this.order.defaultBranch?.Suspend) {\r\n this.order.setValue(\"BranchId\", null);\r\n this.order.invoice.BranchId = null;\r\n this.order.ChangeBranch(null);\r\n }\r\n }\r\n\r\n private setDefaultBranchId(): void {\r\n if (!this.order.isMultiBranch) return;\r\n if (this.order.itemCategoryListAll?.length) {\r\n let defaultBranchId = this.order.logInBranch.Id;\r\n if (!!this.order.isMultiBranch) {\r\n defaultBranchId = this?.order?.invoice?.CustomerAddress?.DefaultBranchId\r\n ? this?.order?.invoice?.CustomerAddress?.DefaultBranchId\r\n : this?.order?.invoice?.CustomerAddress?.Zone?.Branches?.find((f) => f.IsDefault)?.BranchId;\r\n }\r\n this.order.defaultBranch = this.order.Branches.find((x) => x.Id === defaultBranchId);\r\n if (this.order.defaultBranch && !this.order.defaultBranch.IsActive) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.BranchCorrespondingSelectedSubscriberInactive\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.Attention\")\r\n );\r\n defaultBranchId = null;\r\n }\r\n this.order.setValue(\"BranchId\", defaultBranchId);\r\n this.order.ChangeBranch(defaultBranchId);\r\n } else {\r\n setTimeout(() => {\r\n this.setDefaultBranchId();\r\n }, 200);\r\n }\r\n }\r\n}\r\n","import { Component, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, Input } from \"@angular/core\";\r\n\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { UntypedFormGroup, Validators, UntypedFormControl } from \"@angular/forms\";\r\nimport { Customer, CustomerAddress, CustomerContactNumber, GenderEnum, PersonalityKindEnum } from \"src/app/frontoffice/parties/model/customer.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { NumberType, RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { CustomerCategory } from \"src/app/frontoffice/parties/model/customer-categories.model\";\r\nimport { Zone } from \"src/app/frontoffice/parties/model/zone.model\";\r\nimport { CustomerNumberOrderComponent } from \"../customernumberorder/customernumberorder.component\";\r\nimport { CustomerAddressOrderComponent } from \"../customeraddressorder/customeraddressorder.component\";\r\n\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { CustomerOrderService } from \"../customerorder.service\";\r\n\r\n@Component({\r\n selector: \"order-newcustomer\",\r\n templateUrl: \"./newcustomerorder.component.html\",\r\n styleUrls: [\"./newcustomerorder.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NewCustomerOrderComponent extends BaseListComponent {\r\n // @Output() onStateChange: EventEmitter = new EventEmitter();\r\n @Output() onRefresh: EventEmitter = new EventEmitter();\r\n @Input() customerOrder: CustomerOrderService;\r\n customer: Customer;\r\n lookup: any;\r\n gender: Lookup[];\r\n customerCategory: CustomerCategory[];\r\n personalityKind: Lookup[];\r\n zone: Zone[];\r\n numbersVisibility: boolean;\r\n Model: any;\r\n\r\n constructor(private lookupService: LookupService, public dialog: SimpleModalService, protected cd: ChangeDetectorRef) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.apiName = \"Customer\";\r\n this.fillData();\r\n }\r\n\r\n protected getDataFromFormGroup() {\r\n Object.keys(this.group.controls).forEach((key) => {\r\n this.customer[key] = this.group.controls[key].value;\r\n });\r\n return this.customer;\r\n }\r\n\r\n //پر کردن اطلاعات اولیه\r\n fillData() {\r\n this.setMaxCode();\r\n this.group = null;\r\n let group: any = {};\r\n this.numbersVisibility = false;\r\n\r\n this.customer = new Customer();\r\n this.customer.Numbers = [];\r\n this.customer.Party = null;\r\n this.customer.Occasions = null;\r\n this.customer.Addresses = [];\r\n\r\n group[\"FirstName\"] = new UntypedFormControl(undefined, [Validators.maxLength(200)]);\r\n group[\"LastName\"] = new UntypedFormControl(undefined, [Validators.maxLength(200), Validators.required]);\r\n group[\"Number\"] = new UntypedFormControl(undefined, Validators.maxLength(200));\r\n group[\"Title\"] = new UntypedFormControl(undefined, Validators.maxLength(200));\r\n group[\"Gender\"] = new UntypedFormControl(undefined, [Validators.maxLength(200), Validators.required]);\r\n group[\"Addresses\"] = new UntypedFormControl(undefined, [Validators.maxLength(200), Validators.required]);\r\n group[\"ZoneId\"] = new UntypedFormControl(undefined, [Validators.maxLength(200), Validators.required]);\r\n group[\"ShippingCost\"] = new UntypedFormControl(undefined, [Validators.maxLength(200), Validators.required]);\r\n group[\"CategoryId\"] = new UntypedFormControl(undefined, [Validators.maxLength(200), Validators.required]);\r\n group[\"NumberTypeId\"] = new UntypedFormControl(undefined, [Validators.maxLength(200), Validators.required]);\r\n // group['Numbers'] = new FormControl(undefined, [Validators.maxLength(200), Validators.required]);\r\n group[\"PersonalityKindId\"] = new UntypedFormControl(undefined, [Validators.maxLength(200), Validators.required]);\r\n this.group = new UntypedFormGroup(group);\r\n this.group.controls[\"ShippingCost\"].disable();\r\n\r\n this.httpCommonService\r\n .getList(\"Zone/GetZones\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: Zone[]) => {\r\n this.zone = data;\r\n if (this.zone && this.zone.length === 1) {\r\n this.group.controls[\"ZoneId\"].setValue(this.zone[0].Id);\r\n this.group.controls[\"ShippingCost\"].setValue(this.zone[0].ShippingCost);\r\n }\r\n });\r\n\r\n this.httpCommonService\r\n .getItem(\"CustomerCategory/GetCustomersCategory\", this.customerOrder.order.saleMethodBranch.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: CustomerCategory[]) => {\r\n this.customerCategory = data;\r\n if (this.customerCategory && this.customerCategory.length === 1) this.group.controls[\"CategoryId\"].setValue(this.customerCategory[0].Id);\r\n });\r\n\r\n this.lookupService\r\n .getLookupbyCategory(\"GNR\", \"PersonalityKind\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: Lookup[]) => {\r\n this.personalityKind = data;\r\n const find = data.find((f) => f.Code === PersonalityKindEnum.Realperson);\r\n this.group.controls[\"PersonalityKindId\"].setValue(find.Id);\r\n });\r\n\r\n this.lookupService\r\n .getLookupbyCategory(\"GNR\", \"Gender\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: Lookup[]) => {\r\n this.gender = data;\r\n const find = data.find((f) => f.Code === GenderEnum.Male);\r\n this.group.controls[\"Gender\"].setValue(find.Id);\r\n });\r\n }\r\n\r\n //برگشت به صفحه جزئیات مشتری\r\n stateChange() {\r\n this.customerOrder.currentCustomerDetailsEnum = this.customerOrder.customerDetailsEnum.Details;\r\n this.cd.markForCheck();\r\n }\r\n\r\n //تنظیم کد مشتری\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.customer) this.customer = new Customer();\r\n if (data) {\r\n this.customer.Number = data as number;\r\n this.group.controls[\"Number\"].setValue(data);\r\n }\r\n });\r\n }\r\n\r\n //ثبت مشتری جدید\r\n submit() {\r\n this.group.markAllAsTouched();\r\n if (!this.group.controls[\"ZoneId\"].value || !this.group.controls[\"Addresses\"].value) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.NewCustomerOrder.CustomerDefaultAddressNotSelected\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.NewCustomerOrder.ErrorMessage\")\r\n );\r\n return;\r\n }\r\n if (!this.customerOrder.group.controls[\"Numbers\"].value || !this.group.controls[\"NumberTypeId\"].value) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.NewCustomerOrder.DefaultCustomerPhoneIsNotSelected\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.NewCustomerOrder.ErrorMessage\")\r\n );\r\n return;\r\n }\r\n if (this.group.invalid) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.NewCustomerOrder.FillInFieldsWithAsterisks\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.NewCustomerOrder.ErrorMessage\")\r\n );\r\n return;\r\n }\r\n this.customer.FirstName = this.group.controls[\"FirstName\"].value;\r\n this.customer.LastName = this.group.controls[\"LastName\"].value;\r\n this.customer.Number = this.group.controls[\"Number\"].value;\r\n this.customer.Title = this.group.controls[\"Title\"].value;\r\n this.customer.GenderId = this.group.controls[\"Gender\"].value;\r\n this.customer.IsActive = true;\r\n this.customer.State = RowState.New;\r\n this.customer.Party.PersonalityKindId = this.group.controls[\"PersonalityKindId\"].value;\r\n this.customer.CategoryId = this.group.controls[\"CategoryId\"].value;\r\n\r\n //this.customer.NumberTypeId = this.group.controls['NumberTypeId'].value;\r\n this.customer.PhoneNumber = this.customerOrder.group.controls[\"Numbers\"].value;\r\n this.customer.ZoneId = this.group.controls[\"ZoneId\"].value;\r\n this.customer.Address = this.group.controls[\"Addresses\"].value;\r\n this.customer.ShippingCost = this.zone.find((f) => f.Id === this.group.controls[\"ZoneId\"].value)?.ShippingCost;\r\n\r\n const Address = new CustomerAddress();\r\n Address.Address = this.group.controls[\"Addresses\"].value;\r\n Address.ZoneId = this.group.controls[\"ZoneId\"].value;\r\n Address.ShippingCost = this.customer.ShippingCost;\r\n Address.IsDefault = true;\r\n Address.State = RowState.New;\r\n Address.IsDefault = true;\r\n this.customer.Addresses.push(Address);\r\n\r\n const phone = new CustomerContactNumber();\r\n phone.Number = this.customerOrder.group.controls[\"Numbers\"].value;\r\n const numberType: Lookup = this.group.controls[\"NumberTypeId\"].value;\r\n phone.NumberTypeId = numberType.Id;\r\n phone.IsDefault = true;\r\n phone.State = RowState.New;\r\n this.customer.Numbers.forEach((x) => {\r\n x.State = RowState.Modify;\r\n x.IsDefault = false;\r\n });\r\n this.customer.Numbers.push(phone);\r\n this.customer.NumberTypeId = null;\r\n this.httpCommonService\r\n .create(this.apiName, this.customer)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: number) => {\r\n if (data) {\r\n this.customerOrder.GetCustomerDetails(data, true);\r\n this.customerOrder.group.controls[\"Numbers\"].setValue(\"\");\r\n //this.httpCommonService.getItem(\"Customer\", data)\r\n // .pipe(takeUntil(this.ngUnsubscribe))\r\n // .subscribe((customer: Customer) => {\r\n // this.customerOrder.currentCustomer = customer;\r\n // this.customerOrder.setCostomerInfo();\r\n //this.customerOrder.order.invoice.Customer = customer;\r\n //this.customerOrder.order.invoice.CustomerId = customer.Id;\r\n //this.customerOrder.order.invoice.AddressId = customer.Addresses[0].Id;\r\n //this.customerOrder.order.invoice.Customer.Addresses = customer.Addresses;\r\n //this.customerOrder.order.invoice.CustomerAddress = customer.Addresses[0];\r\n //this.customerOrder.order.invoice.CustomerAddres = customer.Addresses[0].Address;\r\n //this.customerOrder.order.invoice.PhoneId = customer.Numbers[0].Id;\r\n //this.customerOrder.order.invoice.Customer.Numbers = customer.Numbers;\r\n //this.customerOrder.order.invoice.CustomerAddres = customer.Addresses[0].Address;\r\n //this.customerOrder.order.invoice.PhoneNumber = customer.Numbers[0].Number;\r\n //this.customerOrder.order.invoice.CustomerDisplayName = customer.DisplayName;\r\n //this.customerOrder.order.invoice.Customer.Addresses = customer.Addresses;\r\n //this.customerOrder.order.invoice.CustomerName = customer.Party.FirstName;\r\n //this.customerOrder.order.invoice.CustomerLastName = customer.Party.LastName;\r\n //this.customerOrder.order.invoice.CustomerNumber=customer.Party.Number;\r\n //this.customerOrder.order.invoiceChanged = true;\r\n //this.customerOrder.order.setActivePage(ActivePageEnum.Order);\r\n //});\r\n }\r\n //this.fillData();\r\n //this.sts.showToast(\"success\", '', \"عملیات با موفقیت انجام شد\");\r\n //this.onRefresh.emit();\r\n },\r\n (error) => {\r\n this.sts.showDialog(\r\n `${Utilities.getHttpResponseMessage(error)}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerOrder.NewCustomerOrder.ErrorMessage\")\r\n );\r\n }\r\n );\r\n const findIndexOfCurrentAddress = this.customer.Addresses.findIndex((x) => x.Address === this.group.controls[\"Addresses\"].value);\r\n if (!(findIndexOfCurrentAddress < 0)) {\r\n this.customer.Addresses.splice(findIndexOfCurrentAddress, 1);\r\n }\r\n let findIndexOfCurrentPhone = this.customer.Numbers.findIndex((x) => x.Number === this.customerOrder.group.controls[\"Numbers\"].value);\r\n if (!(findIndexOfCurrentPhone < 0)) {\r\n this.customer.Numbers.splice(findIndexOfCurrentPhone, 1);\r\n }\r\n }\r\n\r\n //تنظیم کرایه با تغییر محله\r\n onChanged(zone: Zone) {\r\n this.group.controls[\"ShippingCost\"].setValue(zone.ShippingCost);\r\n this.group.controls[\"Addresses\"].setValue(zone.Title);\r\n }\r\n\r\n //انجام تنظیمات شماره تلفن با تغییر نوع شماره تلفن\r\n onNumberTypeChanged(data: Lookup) {\r\n if (!data) {\r\n this.numbersVisibility = false;\r\n this.customerOrder.group.controls[\"Numbers\"].setValue(\"\");\r\n return;\r\n } else {\r\n this.numbersVisibility = true;\r\n this.setPatternKey(data.Code);\r\n }\r\n }\r\n\r\n //نمایش پاپ آپ ایجاد شماره تلفن جدید\r\n ShowPhoneDialog() {\r\n const data = new Customer();\r\n data.Numbers = [];\r\n data.Numbers[0] = new CustomerContactNumber();\r\n this.dialog\r\n .open(\r\n CustomerNumberOrderComponent,\r\n {\r\n currentrow: data,\r\n errorMessage: \"NotFound!!!\",\r\n },\r\n {\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {\r\n // this.Model = model;\r\n this.customer.Numbers.push(model[1]);\r\n console.log(model);\r\n this.cd.markForCheck();\r\n // if (model && model.Numbers && model.Numbers.length > 0)\r\n // this.customer.Numbers.push(model.Numbers[1]);\r\n });\r\n }\r\n\r\n //نمایش پاپ آپ ایجاد آدرس جدید\r\n ShowAddressDialog() {\r\n const data = new CustomerAddress();\r\n this.dialog\r\n .open(CustomerAddressOrderComponent, {\r\n context: {\r\n currentrow: data,\r\n errorMessage: \"NotFound!!!\",\r\n },\r\n closeOnBackdropClick: false,\r\n })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: any) => {\r\n if (model && model.Addresses && model.Addresses.length > 0) this.customer.Addresses.push(model.Addresses[0]);\r\n }),\r\n 500;\r\n }\r\n\r\n //حذف تلفن\r\n DeleteSelectedPhone(phone: CustomerContactNumber) {\r\n if (phone) {\r\n let phoneFindIndex = this.customer.Numbers.findIndex((x) => x.Number == phone.Number);\r\n if (!(phoneFindIndex < 0)) {\r\n this.customer.Numbers.splice(phoneFindIndex, 1);\r\n }\r\n }\r\n }\r\n\r\n setPatternKey(Code: number) {\r\n let patternKey = \"^[1-9]\\\\d{3,7}\";\r\n if (Code === NumberType.Mobile) {\r\n patternKey = \"^[0-0][9-9]\\\\d{9}\";\r\n }\r\n if (this.customerOrder.group.controls[\"Numbers\"]) {\r\n this.customerOrder.group.controls[\"Numbers\"].clearValidators();\r\n this.customerOrder.group.controls[\"Numbers\"].setErrors(null);\r\n this.customerOrder.group.controls[\"Numbers\"].setValidators([Validators.required, Validators.pattern(patternKey)]);\r\n this.customerOrder.group.controls[\"Numbers\"].setValue(this.customerOrder.group.controls[\"Numbers\"].value);\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n\r\n

{{ \"ClientApp.FrontOffice.Order.CustomerOrder.NewCustomerOrder.NewCustomer\" | translate }}

\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{ \"ClientApp.FrontOffice.Order.CustomerOrder.NewCustomerOrder.HeaderTitle\" | translate }}

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n

{{ \"ClientApp.FrontOffice.Order.CustomerOrder.NewCustomerOrder.Region\" | translate }}

\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{ \"ClientApp.FrontOffice.Order.CustomerOrder.NewCustomerOrder.Address\" | translate }}

\r\n
\r\n
\r\n \r\n
\r\n
1\">\r\n
\r\n
\r\n \r\n
\r\n \r\n {{ address.Address }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n

{{ \"ClientApp.FrontOffice.Order.CustomerOrder.NewCustomerOrder.Phone\" | translate }}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
0\">\r\n
\r\n \r\n
\r\n \r\n {{ number.Number }}\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.CustomerOrder.NewCustomerOrder.New\" | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { DeliveredListInvoice, InvoiceDelivered, InvoiceDeliveredItem } from \"../model/delivered.model\";\r\nimport { SaleMethodNature } from \"src/app/frontoffice/sales/model/sale-method-branch.model\";\r\nimport { FormControl, FormGroup } from \"@angular/forms\";\r\nimport { debounceTime, take, takeUntil } from \"rxjs/operators\";\r\nimport { PrintPolicy, PrintPolicyPrintTimeEnum } from \"src/app/frontoffice/prints/model/print-policy.model\";\r\nimport * as moment from \"moment\";\r\nimport { DeliveredInvoiceTypeEnum } from \"../model/delivered-status.enum\";\r\nimport { NotificationService } from \"projects/sepidz-web-framework/src/lib/services/notification.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\n\r\n@Component({\r\n selector: \"delivered\",\r\n templateUrl: \"./delivered.component.html\",\r\n styleUrls: [\"./delivered.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DeliveredComponent extends BaseListComponent {\r\n activeTabTitle: string;\r\n SaleMethodNatureEnum = SaleMethodNature;\r\n SaleMethodBranchList: any[] = [];\r\n PrintPoliciesList: any[] = [];\r\n invoiceDeliveredList: InvoiceDelivered[] = [];\r\n formattedTime: string;\r\n showKitchenGrid: boolean = true;\r\n showDriverGrid: boolean = false;\r\n showCustomerGrid: boolean = false;\r\n checkBoxValue: boolean = false;\r\n MaxCookingTime: number = 0;\r\n public __id: string;\r\n formGroup: FormGroup = new FormGroup({\r\n PrintPolicies: new FormControl(null),\r\n SaleMethodBranchIds: new FormControl(null),\r\n checkBoxValue: new FormControl(null),\r\n });\r\n DeliveredListInvoicePending: DeliveredListInvoice[] = [];\r\n DeliveredListInvoiceDriver: DeliveredListInvoice[] = [];\r\n DeliveredListInvoiceKitchen: DeliveredListInvoice[] = [];\r\n data: any;\r\n public invoiceByBarCode: DeliveredListInvoice[] = [];\r\n public deliveredBarcodeName: string;\r\n private intervalId: any;\r\n constructor(\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n private notification: NotificationService,\r\n _id: FormContainerModel\r\n ) {\r\n super();\r\n this.__id = _id.metadata.id;\r\n this.formGroup.addControl(\"barcodeInput\" + this.__id, new FormControl(null));\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.Delivered\");\r\n this.areaName = \"\";\r\n this.loadInvoices();\r\n this.loadSaleMethods();\r\n this.loadPrintPolicies();\r\n this.getInvoiceDelivered();\r\n super.ngOnInit();\r\n this.focusInput();\r\n this.cd.detectChanges();\r\n this.startTimer();\r\n this.init();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n if (this.intervalId) clearInterval(this.intervalId);\r\n }\r\n private init(): void {\r\n this.notification.init();\r\n this.notification.notification$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((value) => {\r\n if (value.Key === \"InvoiceChanges\") {\r\n this.loadInvoices(false);\r\n this.cd.markForCheck();\r\n this.cd.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n normalizeBarcodeInput(input: string): string {\r\n return input.replace(/إ/g, \"B\");\r\n }\r\n\r\n barCodeFinder(BarCode: any, tab: string) {\r\n let foundInvoicePending: DeliveredListInvoice;\r\n let foundInvoiceKitchen: DeliveredListInvoice;\r\n let foundInvoiceDriver: DeliveredListInvoice;\r\n\r\n try {\r\n const normalizedBarCode = this.normalizeBarcodeInput(BarCode);\r\n\r\n if (normalizedBarCode && normalizedBarCode.startsWith(\"B0\")) {\r\n const numberingInDateCode = normalizedBarCode.slice(2); // حذف \"B0\"\r\n if (tab === \"kitchen\") {\r\n foundInvoicePending = this.DeliveredListInvoicePending?.find((inv) => inv.NumberingInDate === Number(numberingInDateCode));\r\n } else if (tab === \"driver\") {\r\n foundInvoiceDriver = this.DeliveredListInvoiceDriver?.find((inv) => inv.NumberingInDate === Number(numberingInDateCode));\r\n } else {\r\n foundInvoiceKitchen = this.DeliveredListInvoiceKitchen?.find((inv) => inv.NumberingInDate === Number(numberingInDateCode));\r\n }\r\n if (foundInvoicePending || foundInvoiceKitchen || foundInvoiceDriver) {\r\n // انجام عملیات‌های مرتبط با پیدا کردن فاکتور\r\n this.deliveredInvoice(foundInvoicePending || foundInvoiceKitchen || foundInvoiceDriver, false);\r\n this.formGroup.controls[`barcodeInput${this.__id}`].setValue(\"\");\r\n } else {\r\n this.formGroup.controls[`barcodeInput${this.__id}`].setValue(\"\");\r\n }\r\n }\r\n } catch (error) {\r\n throw new Error(\"The error message:\" + error);\r\n }\r\n\r\n this.cd.markForCheck();\r\n }\r\n\r\n focus(id: string) {\r\n const input: HTMLInputElement = document.getElementById(id) as HTMLInputElement;\r\n if (input) {\r\n input.focus();\r\n input.select();\r\n }\r\n }\r\n public focusInput() {\r\n setTimeout(() => {\r\n this.focus(`barcodeInput${this.__id}`);\r\n }, 500);\r\n }\r\n\r\n changeTabAction(input: string) {\r\n if (input) {\r\n if (input == \"driver\") {\r\n this.showDriverGrid = true;\r\n this.showKitchenGrid = false;\r\n this.showCustomerGrid = false;\r\n } else if (input == \"kitchen\") {\r\n this.showKitchenGrid = true;\r\n this.showCustomerGrid = false;\r\n this.showDriverGrid = false;\r\n } else {\r\n this.showCustomerGrid = true;\r\n this.showKitchenGrid = false;\r\n this.showDriverGrid = false;\r\n }\r\n }\r\n }\r\n startTimer() {\r\n this.intervalId = setInterval(() => {\r\n this.getElapsedTime();\r\n }, 60000);\r\n }\r\n async getElapsedTime() {\r\n this.httpCommonService\r\n .getList(\"InvoiceDelivered/GetElpasedTime\")\r\n .pipe(take(1))\r\n .subscribe((invoices: DeliveredListInvoice[]) => {\r\n invoices.forEach((x) => {\r\n if (this.DeliveredListInvoiceKitchen.some((i) => i.Id == x.Id))\r\n this.DeliveredListInvoiceKitchen.find((i) => i.Id == x.Id).DeliverStringTime = x.DeliverStringTime;\r\n if (this.DeliveredListInvoicePending.some((i) => i.Id == x.Id))\r\n this.DeliveredListInvoicePending.find((i) => i.Id == x.Id).FactorStringTime = x.FactorStringTime;\r\n });\r\n this.DeliveredListInvoicePending.forEach((invoice) => {\r\n invoice.Items.forEach((item) => {\r\n this.MaxCookingTime = item.CookingTime > this.MaxCookingTime ? item.CookingTime : this.MaxCookingTime;\r\n });\r\n if (Number(invoice.FactorStringTime) > this.MaxCookingTime && this.MaxCookingTime != 0) {\r\n invoice.HasExpired = true;\r\n this.MaxCookingTime = 0;\r\n }\r\n });\r\n this.DeliveredListInvoiceKitchen.forEach((invoice) => {\r\n invoice.Items.forEach((item) => {\r\n this.MaxCookingTime = item.CookingTime > this.MaxCookingTime ? item.CookingTime : this.MaxCookingTime;\r\n });\r\n if (Number(invoice.FactorStringTime) > this.MaxCookingTime && this.MaxCookingTime != 0) {\r\n invoice.HasExpired = true;\r\n this.MaxCookingTime = 0;\r\n }\r\n });\r\n this.cd.markForCheck();\r\n });\r\n }\r\n itemOnChange(invoice: DeliveredListInvoice) {\r\n if (!invoice.Items.some((c) => c.Checked == false)) {\r\n this.deliveredInvoice(invoice, false);\r\n }\r\n }\r\n loadInvoices(shouldBeSetValueCheckboxes = true) {\r\n this.httpCommonService\r\n .getList(\"InvoiceDelivered/DeliverdInvoicesList\")\r\n .pipe(take(1))\r\n .subscribe((invoices: DeliveredListInvoice[]) => {\r\n this.data = invoices;\r\n this.DeliveredListInvoicePending = this.data\r\n .filter((e) => e.DeliveredInvoiceType == DeliveredInvoiceTypeEnum.Pending)\r\n .sort((a, b) => {\r\n if (b.NumberingInDate !== a.NumberingInDate) {\r\n return a.NumberingInDate - b.NumberingInDate;\r\n } else {\r\n return a.FactorStringTime - b.FactorStringTime;\r\n }\r\n });\r\n this.DeliveredListInvoiceKitchen = this.data\r\n .filter((e) => e.DeliveredInvoiceType == DeliveredInvoiceTypeEnum.DeliveredKitchen && e.SaleMethodNatureCode != SaleMethodNature.Delivery)\r\n .sort((a, b) => {\r\n if (b.NumberingInDate !== a.NumberingInDate) {\r\n return a.NumberingInDate - b.NumberingInDate;\r\n } else {\r\n return a.FactorStringTime - b.FactorStringTime;\r\n }\r\n });\r\n this.DeliveredListInvoiceDriver = this.data\r\n .filter((e) => e.DeliveredInvoiceType == DeliveredInvoiceTypeEnum.DeliveredKitchen && e.SaleMethodNatureCode == SaleMethodNature.Delivery)\r\n .sort((a, b) => {\r\n if (b.NumberingInDate !== a.NumberingInDate) {\r\n return a.NumberingInDate - b.NumberingInDate;\r\n } else {\r\n return a.FactorStringTime - b.FactorStringTime;\r\n }\r\n });\r\n this.DeliveredListInvoicePending.forEach((invoice) => {\r\n invoice.Items.forEach((item) => {\r\n if (shouldBeSetValueCheckboxes) this.setValue(`ItemChecked${item.ItemId} ${invoice.Id}`, item.Checked);\r\n this.MaxCookingTime = item.CookingTime > this.MaxCookingTime ? item.CookingTime : this.MaxCookingTime;\r\n });\r\n if (Number(invoice.FactorStringTime) > this.MaxCookingTime && this.MaxCookingTime != 0) {\r\n invoice.HasExpired = true;\r\n this.MaxCookingTime = 0;\r\n }\r\n });\r\n this.DeliveredListInvoiceKitchen.forEach((invoice) => {\r\n invoice.Items.forEach((item) => {\r\n if (shouldBeSetValueCheckboxes) this.setValue(`ItemChecked${item.ItemId} ${invoice.Id}`, item.Checked);\r\n this.MaxCookingTime = item.CookingTime > this.MaxCookingTime ? item.CookingTime : this.MaxCookingTime;\r\n });\r\n if (Number(invoice.FactorStringTime) > this.MaxCookingTime && this.MaxCookingTime != 0) {\r\n invoice.HasExpired = true;\r\n this.MaxCookingTime = 0;\r\n }\r\n });\r\n this.DeliveredListInvoiceDriver.forEach((invoice) => {\r\n invoice.Items.forEach((item) => {\r\n if (shouldBeSetValueCheckboxes) this.setValue(`ItemChecked${item.ItemId} ${invoice.Id}`, item.Checked);\r\n this.MaxCookingTime = item.CookingTime > this.MaxCookingTime ? item.CookingTime : this.MaxCookingTime;\r\n });\r\n if (Number(invoice.FactorStringTime) > this.MaxCookingTime && this.MaxCookingTime != 0) {\r\n invoice.HasExpired = true;\r\n this.MaxCookingTime = 0;\r\n }\r\n });\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n deliveredInvoice(invoice: DeliveredListInvoice, shouldBeSetValueCheckboxes = true, directDeliver: boolean = false) {\r\n try {\r\n const sendData: InvoiceDelivered = new InvoiceDelivered();\r\n sendData.InvoiceId = invoice.Id;\r\n sendData.SaleMethodNatureCode = invoice.SaleMethodNatureCode;\r\n const items = invoice.Items.filter((f) => f.Checked).map((x) => {\r\n const i = new InvoiceDeliveredItem();\r\n i.InvoiceItemId = x.ItemId;\r\n return i;\r\n });\r\n if (items.length == invoice.Items.length || items.length == 0 || (directDeliver && items.length != invoice.Items.length))\r\n sendData.DeliveredInvoiceType = DeliveredInvoiceTypeEnum.DeliveredKitchen;\r\n else if (items.length >= 0 && items.length < invoice.Items.length) sendData.DeliveredInvoiceType = DeliveredInvoiceTypeEnum.Pending;\r\n if (items.length && items.length < invoice.Items.length) sendData.InvoiceDeliveredItemList = items;\r\n this.httpCommonService\r\n .create(`InvoiceDelivered/DeliveredInvoice`, sendData)\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n this.loadInvoices(shouldBeSetValueCheckboxes);\r\n });\r\n } catch (error) {}\r\n this.cd.markForCheck();\r\n }\r\n\r\n public SaleMethodChange(): void {\r\n if (this.formGroup.value?.SaleMethodBranchIds?.length && this.data.length) {\r\n this.DeliveredListInvoicePending = this.data\r\n .filter((invoice) => this.formGroup.value?.SaleMethodBranchIds.includes(invoice.SaleMethodBranchId))\r\n .sort((a, b) => {\r\n if (b.NumberingInDate !== a.NumberingInDate) {\r\n return a.NumberingInDate - b.NumberingInDate;\r\n } else {\r\n return a.FactorStringTime - b.FactorStringTime;\r\n }\r\n });\r\n } else if (!this.formGroup.value?.SaleMethodBranchIds?.length) {\r\n this.DeliveredListInvoicePending = this.data.sort((a, b) => {\r\n if (b.NumberingInDate !== a.NumberingInDate) {\r\n return a.NumberingInDate - b.NumberingInDate;\r\n } else {\r\n return a.FactorStringTime - b.FactorStringTime;\r\n }\r\n });\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n public PrintSettingChange(): void {\r\n if (this.formGroup.value?.PrintPolicies?.length) {\r\n const selectedPolicies = this.PrintPoliciesList.filter((x) => this.formGroup.value?.PrintPolicies.includes(x.Title));\r\n selectedPolicies.forEach((policy) => {\r\n const filteredData = this.data.filter((invoice) => {\r\n let filterIsPassed = true;\r\n if (policy.SaleMethodBranches.length) filterIsPassed = policy.SaleMethodBranches.includes(invoice.SaleMethodBranchId);\r\n if (filterIsPassed && policy.Salons.length) filterIsPassed = policy.Salons.includes(invoice.SalonId);\r\n if (filterIsPassed && (policy.Categories.length || policy.Items.length)) {\r\n const filteredItems = [];\r\n if (policy.Categories.length) {\r\n const items = invoice.Items.filter((item) => policy.Categories.includes(item.CategoryId));\r\n if (items.length) filteredItems.push(...items);\r\n }\r\n if (policy.Items.length) {\r\n const items = invoice.Items.filter((item) => policy.Items.includes(item.ItemId));\r\n if (items.length) filteredItems.push(...items);\r\n }\r\n if (filteredItems.length) invoice.Items = filteredItems;\r\n else filterIsPassed = false;\r\n }\r\n if (filterIsPassed && policy.IgnoredItems.length) invoice.Items.filter((x) => !policy.IgnoredItems.includes(x.ItemId));\r\n\r\n return filterIsPassed;\r\n });\r\n if (filteredData.length) {\r\n this.DeliveredListInvoicePending = [];\r\n this.DeliveredListInvoicePending.push(...filteredData);\r\n }\r\n });\r\n } else if (!this.formGroup.value?.SaleMethodBranchIds?.length) this.DeliveredListInvoicePending = this.data;\r\n this.cd.markForCheck();\r\n }\r\n\r\n public getInvoiceDelivered(): void {\r\n this.httpCommonService\r\n .getList(\"InvoiceDelivered/GetDeliveredInvoices\")\r\n .pipe(take(1))\r\n .subscribe((data: InvoiceDelivered[]) => {\r\n if (data) {\r\n this.invoiceDeliveredList = data;\r\n }\r\n });\r\n }\r\n\r\n private loadPrintPolicies(): void {\r\n this.httpCommonService\r\n .getList(\"PrintPolicy/GetLookupPrintPolicies\")\r\n .pipe(take(1))\r\n .subscribe((data: PrintPolicy[]) => {\r\n if (data) {\r\n const filteredPrinterList = data.filter((f) => {\r\n let x = f.PrintTimeCode === PrintPolicyPrintTimeEnum.PreparationPrint;\r\n return x;\r\n });\r\n this.PrintPoliciesList = filteredPrinterList;\r\n }\r\n });\r\n }\r\n\r\n private loadSaleMethods(): void {\r\n this.httpCommonService\r\n .getList(\"SaleMethodBranch/GetActiveSaleMethodBranchId\")\r\n .pipe(take(1))\r\n .subscribe((data: any[]) => {\r\n if (data) this.SaleMethodBranchList = data;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n\r\n isActiveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n}\r\n","
\r\n
\r\n {{ \"ClientApp.Pages.PageMenu.DeliveredCustomer\" | translate }}\r\n
\r\n
\r\n {{ \"ClientApp.Pages.PageMenu.DeliveredDriver\" | translate }}\r\n
\r\n
\r\n {{ \"ClientApp.Pages.PageMenu.DeliveredKitchen\" | translate }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.Delivered.Invoice\" | translate }}: \r\n
\r\n \r\n {{ invoice.NumberingInDate }} - \r\n {{ invoice.SaleMethodBranchTitle }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{ \"ClientApp.FrontOffice.Order.Delivered.ProductName\" | translate }}{{ \"ClientApp.FrontOffice.Order.Delivered.Number\" | translate }}{{ \"ClientApp.FrontOffice.Order.Delivered.Delivery\" | translate }}
{{ item.ItemTitle }}{{ item.Quantity }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.Delivered.Description\" | translate }}:\r\n {{ invoice.Description }}\r\n
\r\n
\r\n
{{ invoice.CustomerDisplayName }} -
\r\n
{{ invoice.SalonTitle }} -
\r\n
\r\n
\r\n
{{ invoice.FactorStringTime | formatTimeFromBackend }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.Delivered.Invoice\" | translate }} \r\n
\r\n \r\n {{ invoice.NumberingInDate }} - \r\n {{ invoice.SaleMethodBranchTitle }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{ \"ClientApp.FrontOffice.Order.Delivered.ProductName\" | translate }}{{ \"ClientApp.FrontOffice.Order.Delivered.Number\" | translate }}
{{ item.ItemTitle }}{{ item.Quantity }}
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.Delivered.Description\" | translate }}:\r\n {{ invoice.Description }}\r\n
\r\n
\r\n
{{ invoice.CustomerDisplayName }} -
\r\n
{{ invoice.SalonTitle }} -
\r\n
\r\n
\r\n
{{ invoice.FactorStringTime | formatTimeFromBackend }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
0\">\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.Delivered.Invoice\" | translate }} \r\n
\r\n \r\n {{ invoice.NumberingInDate }} - \r\n {{ invoice.SaleMethodBranchTitle }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
{{ \"ClientApp.FrontOffice.Order.Delivered.ProductName\" | translate }}{{ \"ClientApp.FrontOffice.Order.Delivered.Number\" | translate }}
{{ item.ItemTitle }}{{ item.Quantity }}
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.Delivered.Description\" | translate }}:\r\n {{ invoice.Description }}\r\n
\r\n
\r\n
{{ invoice.CustomerDisplayName }} -
\r\n
{{ invoice.SalonTitle }} -
\r\n
\r\n
\r\n
{{ invoice.FactorStringTime | formatTimeFromBackend }}
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport * as moment from \"moment\";\r\n\r\n@Pipe({\r\n name: \"formatTimeFromBackend\",\r\n})\r\nexport class FormatTimeFromBackendPipe implements PipeTransform {\r\n transform(value: any, args?: any): any {\r\n return this.formatTimeFromBackend(value);\r\n }\r\n\r\n formatTimeFromBackend(timeString: string) {\r\n const minutes = parseInt(timeString, 10);\r\n const duration = moment.duration(minutes, \"minutes\");\r\n const formattedTime = moment.utc(duration.asMilliseconds()).format(\"HH:mm\");\r\n return formattedTime;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewChild } from \"@angular/core\";\r\nimport { OrderService } from \"../order.service\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { filter, take, takeUntil } from \"rxjs/operators\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { SaleMethodBranchModel, SaleMethodNature } from \"../../sales/model/sale-method-branch.model\";\r\nimport { DiscountTypeEnum, Invoice, InvoiceCommand, InvoiceEntry, InvoiceItem, InvoiceStatus, PaymentLinkState } from \"../model/invoice.model\";\r\nimport { ActivePageEnum } from \"../model/activepage.enum\";\r\nimport { MapObjectPipe } from \"projects/sepidz-web-framework/src/lib/pipes/mapobject.pipe\";\r\nimport { Branch, EntityListAction, form_control, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { AccountService, GridFilter, PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { LocalSettingService } from \"../../local-setting/local-setting.service\";\r\nimport { InvoiceActionService } from \"../providers/invoiceaction.service\";\r\nimport { RowState } from \"../../../../../projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { DataCenterProcess } from \"src/app/gnr/data-center-process/data-center-process.model\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { UntypedFormControl, UntypedFormGroup } from \"@angular/forms\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { InvoiceExportExcelModel } from \"../model/ItemCategoryOrder.model\";\r\nimport { ConfirmDateValue, DateDialogComponent } from \"../../dateDialog/dateDialog.component\";\r\nimport { Subject } from \"rxjs\";\r\nimport { TotalPriceService } from \"../orderpage/invoice/totalprice/totalprice.service\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { ColumnBase } from \"@progress/kendo-angular-grid\";\r\nimport { DepositModel } from \"../../catalog/model/deposit.model\";\r\nimport { EnumModel } from \"../orderpage/item/deposit/deposit.component\";\r\nimport { MealEnum } from \"../../catalog/model/deposit.enum\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport * as moment from \"moment\";\r\nimport { Customer } from \"../../parties/model/customer.model\";\r\n\r\ntype NewType = GridFilter;\r\n\r\n@Component({\r\n selector: \"order-invoices\",\r\n templateUrl: \"./invoices.component.html\",\r\n styleUrls: [\"./invoices.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvoicesComponent extends BaseListComponent {\r\n @ViewChild(\"invoiceGrid\") invoiceGrid: KGridComponent;\r\n @ViewChild(\"itemGrid\") itemGrid: KGridComponent;\r\n @Input() currentSaleMethodBranch: SaleMethodBranchModel;\r\n @Input() currentFilter: any;\r\n actions: EntityListAction[] = [];\r\n filterInfo: GridFilter[] = [];\r\n unSortableFilterable: string[] = [];\r\n InvoiceItemColumns: form_control[] = [];\r\n InvoiceItems: InvoiceItem[];\r\n onFilter: GridFilter[] = [];\r\n invoicestatus: typeof InvoiceStatus = InvoiceStatus;\r\n selectedFilter: any;\r\n invoices: PagingDataResult = new PagingDataResult();\r\n isFinishedData: boolean = false;\r\n erroremessage: string;\r\n invoice: Invoice;\r\n IgnoreDeletePermission: boolean = false;\r\n MealTimeDataList: EnumModel[];\r\n InvoiceIdList: number[] = [];\r\n invoiceFilter: any[] = [\r\n {\r\n key: 1,\r\n title: this.translate(\"ClientApp.FrontOffice.Order.Invoices.Temporary\"),\r\n count: 0,\r\n selected: false,\r\n value: InvoiceStatus.Pending,\r\n },\r\n {\r\n key: 2,\r\n title: this.translate(\"ClientApp.FrontOffice.Order.Invoices.Order\"),\r\n count: 0,\r\n selected: false,\r\n value: InvoiceStatus.Ordering,\r\n },\r\n {\r\n key: 3,\r\n title: this.translate(\"ClientApp.FrontOffice.Order.Invoices.Unsettled\"),\r\n count: 0,\r\n selected: false,\r\n value: InvoiceStatus.Clearing,\r\n },\r\n {\r\n key: 4,\r\n title: this.translate(\"ClientApp.FrontOffice.Order.Invoices.Settled\"),\r\n count: 0,\r\n selected: false,\r\n value: InvoiceStatus.Cleared,\r\n },\r\n ];\r\n\r\n formGroup = new UntypedFormGroup({\r\n branchFilter: new UntypedFormControl(),\r\n invoiceFilter: new UntypedFormControl(),\r\n MealTime: new UntypedFormControl(),\r\n });\r\n\r\n allBranchesExceptCallCenter = this.order.Branches.filter((x) => !x.AccessToAllBranches);\r\n depositFilterIsSelected = false;\r\n\r\n constructor(\r\n public order: OrderService,\r\n protected cd: ChangeDetectorRef,\r\n __id: FormContainerModel,\r\n private localSettingService: LocalSettingService,\r\n private tabsservice: TabularService,\r\n public invoiceAction: InvoiceActionService,\r\n public accountService: AccountService,\r\n public totalPriceService: TotalPriceService,\r\n private splashFormService: SplashFormService\r\n ) {\r\n super();\r\n this.NoLog = true;\r\n this.currentTabId = __id.metadata.id;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n this.areaName = \"RestaurantSale\";\r\n this.apiName = \"Invoice/ReadGetAllInvoices\";\r\n if (!this.order.HasAccess(\"InvoicesList\")) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Invoices.AccessToThisPage\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.ErrorMessage\")\r\n );\r\n return;\r\n }\r\n this.GetColumns();\r\n if (this.order.currentSaleMethodNature === SaleMethodNature.Delivery)\r\n this.invoiceFilter.push({\r\n key: 5,\r\n title: this.translate(\"ClientApp.FrontOffice.Order.Invoices.NotAssigned\"),\r\n count: 0,\r\n selected: false,\r\n value: InvoiceStatus.Ordering,\r\n });\r\n this.localSettingService.tabsservice = this.tabsservice;\r\n this.unSortableFilterable = [];\r\n this.unSortableFilterable.push(\"TotalService_ShippingCost\");\r\n this.unSortableFilterable.push(\"VoucherNumber\");\r\n this.unSortableFilterable.push(\"SettlementInvoiceCreatedDateTime\");\r\n if (!this.order.common.isMobileMode) this.setactions();\r\n if (!this.order.HasAccess(\"InvoicesListPreviousDays\")) {\r\n this.httpCommonService\r\n .get(\"UserLocalSetting/CurrentDate\")\r\n .pipe(take(1))\r\n .subscribe((data: Invoice) => {\r\n this.filterInfo.push({\r\n Filed: \"CreatedDate\",\r\n Value: data,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"gte\",\r\n Type: \"F\",\r\n Logic: \"and\",\r\n });\r\n this.filterInfo.push({\r\n Filed: \"CreatedDate\",\r\n Value: data,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"asc\",\r\n Type: \"S\",\r\n });\r\n this.fillData();\r\n });\r\n } else {\r\n this.fillData();\r\n }\r\n if (this.order.saleMethodBranch.HasDeposit && this.order.depositListGridFilter) {\r\n this.onFilter = Object.assign([], this.filterInfo);\r\n this.onFilter.push(...this.order.depositListGridFilter);\r\n this.depositFilterIsSelected = true;\r\n }\r\n }\r\n\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n return new Promise((resolve, reject) => {\r\n const confirmValue: Subject = new Subject();\r\n confirmValue\r\n .pipe(\r\n take(1),\r\n filter((x) => !!x)\r\n )\r\n .subscribe((value) => {\r\n const sendData: InvoiceExportExcelModel = {\r\n BranchIds: this.order.isMultiBranch ? this.formGroup.get(\"branchFilter\").value : [this.order.logInBranch.Id],\r\n SaleMethodId: this.order.saleMethodBranch.SaleMethod.Id,\r\n StartDate: value.StartDate,\r\n EndDate: value.EndDate,\r\n InvoiceGridInfo: this.getGridInfo(this.invoiceGrid.grid.columns.toArray()),\r\n ItemGridInfo: this.getGridInfo(this.itemGrid.grid.columns.toArray()),\r\n };\r\n resolve(sendData);\r\n });\r\n this.dialogService.open(DateDialogComponent, { confirmValue }, {});\r\n });\r\n }\r\n\r\n getGridInfo(columns: ColumnBase[]): GridColumnInfoDetail[] {\r\n return columns\r\n .filter((x) => !x.hidden)\r\n .map((x) => {\r\n const info = new GridColumnInfoDetail();\r\n info.name = x[\"field\"];\r\n info.hidden = x.hidden;\r\n info.orderindex = x.orderIndex;\r\n info.title = x.title;\r\n return info;\r\n });\r\n }\r\n\r\n fillData() {\r\n if (!this.order.isMultiBranch) {\r\n this.filterInfo.push({\r\n Filed: \"SaleMethodId\",\r\n Value: this.currentSaleMethodBranch.SaleMethodId,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n });\r\n this.filterInfo.push({\r\n Filed: \"SaleMethodBranchId\",\r\n Value: this.currentSaleMethodBranch.Id,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n });\r\n }\r\n\r\n if (this.accountService.authService.currentFiscalYear)\r\n this.filterInfo.push({\r\n Filed: \"FiscalYearId\",\r\n Value: this.accountService.authService.currentFiscalYear.Id,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n });\r\n else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x)\r\n this.filterInfo.push({\r\n Filed: \"FiscalYearId\",\r\n Value: this.accountService.authService.currentFiscalYear.Id,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n });\r\n });\r\n if (!this.order.HasAccess(\"InvoicesListForOtherUsers\")) {\r\n this.filterInfo.push({\r\n Filed: \"CreatedUserId\",\r\n Value: this.accountService.authService.currentUser.Id,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n });\r\n }\r\n if (!this.order.HasAccess(\"InvoicesListForCleared\")) {\r\n this.filterInfo.push({\r\n Filed: \"StatusCode\",\r\n Value: InvoiceStatus.Cleared,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"lt\",\r\n Type: \"F\",\r\n });\r\n }\r\n this.filterInfo.push({\r\n Filed: \"StatusCode\",\r\n Value: InvoiceStatus.Deleted,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"neq\",\r\n Type: \"F\",\r\n });\r\n if (!this.order.isMultiBranch) {\r\n this.filterInfo.push({\r\n Filed: \"BranchId\",\r\n Value: this.order.logInBranch.Id,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n });\r\n }\r\n this.onFilter = Object.assign([], this.filterInfo);\r\n if (this.currentFilter) {\r\n this.setFilter(this.currentFilter);\r\n }\r\n const a = new DataCenterProcess();\r\n a.BranchId = this.order.logInBranch.Id;\r\n a.MainTableName = \"Invoices\";\r\n this.setDefaultBranch();\r\n const hasBranchCommunication = JSON.parse(localStorage.getItem(\"HasBranchCommunication\"));\r\n if (hasBranchCommunication == null) {\r\n this.httpCommonService\r\n .getList(`Branch/HasBranchCommunication/${this.order.logInBranch.Id}`)\r\n .pipe(take(1))\r\n .subscribe((hbc: boolean) => {\r\n localStorage.setItem(\"HasBranchCommunication\", JSON.stringify(hbc));\r\n if (hbc) {\r\n this.getDataTransferInfo(a);\r\n }\r\n });\r\n } else if (hasBranchCommunication) {\r\n this.getDataTransferInfo(a);\r\n }\r\n this.MealTimeDataList = this.enumToEnumModelArray(MealEnum);\r\n }\r\n getDataTransferInfo(a: DataCenterProcess) {\r\n this.httpCommonService\r\n .create(`DataCenterProcess/GetDataTransferInfo`, a)\r\n .pipe(take(1))\r\n .subscribe((hbc: boolean) => {\r\n if (hbc === true) {\r\n if (a.TransferKindCode !== 1 && a.TransferKindCode !== 4 && a.TransferKindCode !== 3) {\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Order.Invoices.HasBranchCommunication\");\r\n }\r\n } else {\r\n if (a.TransferKindCode !== 2 && a.TransferKindCode !== 5 && a.TransferKindCode !== 3) {\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Order.Invoices.HasCallCenterCommunication\");\r\n }\r\n }\r\n });\r\n }\r\n\r\n enumToEnumModelArray(enumObj: any): EnumModel[] {\r\n return Object.keys(enumObj)\r\n .filter((key) => !isNaN(Number(enumObj[key])))\r\n .map((key) => ({ Id: enumObj[key], Title: key }));\r\n }\r\n async GetColumns() {\r\n await this.httpCommonService\r\n .getControlsList(\"Invoice\")\r\n .pipe(take(1))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n if (data) {\r\n this.columns = data as form_control[];\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n const status = this.columns.find((x) => x.name === \"StatusTitle\");\r\n if (status) {\r\n status.controlType = FormControlTypes.colorPicker;\r\n status.getBgColor = (invoice: Invoice) => {\r\n if ((invoice.StatusTitle as any) == this.translate(\"ClientApp.FrontOffice.Order.Invoices.Cancel\")) {\r\n return \"cell-custom-status danger\";\r\n }\r\n };\r\n }\r\n const linkCol = this.columns.find((x) => x.name === \"PaymentLinkState\");\r\n if (linkCol) {\r\n linkCol.controlType = FormControlTypes.colorPicker;\r\n linkCol.getBgColor = (invoice: Invoice) => {\r\n if ((invoice.PaymentLinkState as any) == this.translate(\"ClientApp.FrontOffice.Order.Invoices.Paid\")) {\r\n return \"cell-custom-state positive\";\r\n }\r\n if ((invoice.PaymentLinkState as any) == this.translate(\"ClientApp.FrontOffice.Order.Invoices.ProblemPaying\")) {\r\n return \"cell-custom-state danger\";\r\n } else return \"\";\r\n };\r\n }\r\n this.InvoiceItemColumns = this.getDetailControlModels(\"Items\") as form_control[];\r\n this.InvoiceItemColumns = this.InvoiceItemColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n getDetailControlModels(keyName: string) {\r\n if (this.columns?.find((x) => x.name === keyName)?.DetailControlModels)\r\n return this.columns.find((x) => x.name === keyName).DetailControlModels[keyName];\r\n return [];\r\n }\r\n deleteFormHelper(row: any) {\r\n let test = 0;\r\n }\r\n\r\n public onBranchFilterChanged(branches: Branch[]): void {\r\n if (branches.length) this.filterBranchWithOrOperator(branches);\r\n else this.onBranchFilterClear();\r\n }\r\n\r\n public onBranchFilterClear(): void {\r\n this.onFilter = [\r\n {\r\n Filed: \"BranchId\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n },\r\n ];\r\n }\r\n\r\n onActionClick(action: EntityListAction, onRowSelected: Invoice, onRowsSelected: Invoice[], isAllSelected: boolean, gridFilter: NewType[]) {\r\n if (!onRowSelected) return;\r\n if (\r\n onRowSelected.StatusCode == InvoiceStatus.Pending &&\r\n !(\r\n action.name === \"CustomerPrint\" ||\r\n action.name === \"PreparationPrint\" ||\r\n action.name === \"ChangeCustomerPrintTemplate\" ||\r\n action.name === \"PrintReceipt\"\r\n )\r\n ) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.AccessToThisArea\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.Attention\")\r\n );\r\n return;\r\n } else if (\r\n onRowSelected.StatusCode == InvoiceStatus.Pending &&\r\n (action.name === \"CustomerPrint\" ||\r\n (!this.accountService.authService?.currentInformation()?.OrderServices && !this.order.saleMethodBranch?.HasDeposit) ||\r\n action.name === \"PreparationPrint\" ||\r\n action.name === \"ChangeCustomerPrintTemplate\")\r\n ) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.UnableToReprintInTemporaryState\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.Attention\")\r\n );\r\n return;\r\n }\r\n\r\n if (onRowSelected && (!onRowsSelected || onRowsSelected.length <= 0)) onRowsSelected = [onRowSelected];\r\n\r\n this.order.splashFormService.openDialog(\"\", \" \");\r\n this.httpCommonService\r\n .get(`Invoice/GetInvoiceById/${onRowsSelected[0].Id}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: Invoice) => {\r\n if (action.name === \"SendInvoiceSms\") {\r\n this.sendInvoiceSms(data);\r\n this.order.splashFormService.closeLoading();\r\n return;\r\n } else if (action.name === \"PrintReceipt\" || this.order.saleMethodBranch?.HasDeposit) {\r\n this.httpCommonService\r\n .getItem(\"Deposit/GetByInvoiceId\", data.Id)\r\n .pipe(take(1))\r\n .subscribe((invoiceDeposit: DepositModel) => {\r\n this.order.splashFormService.closeLoading();\r\n if (data) {\r\n data.Deposit = invoiceDeposit;\r\n data.MultiPhoneNumber = onRowSelected.MultiPhoneNumber;\r\n this.afterActionClick(action, data);\r\n }\r\n }),\r\n () => {\r\n this.order.splashFormService.closeLoading();\r\n };\r\n } else {\r\n this.afterActionClick(action, data);\r\n this.order.splashFormService.closeLoading();\r\n }\r\n },\r\n (error) => {\r\n this.order.splashFormService.closeLoading();\r\n }\r\n );\r\n }\r\n\r\n private afterActionClick(action: EntityListAction, data: Invoice) {\r\n if (\r\n action.name === \"CustomerPrint\" ||\r\n action.name === \"PreparationPrint\" ||\r\n action.name === \"CustomerFinancialPrint\" ||\r\n action.name === \"ChangeCustomerPrintTemplate\" ||\r\n action.name === \"PrintReceipt\"\r\n ) {\r\n const invoice = this.checkInvoiceState(JSON.parse(JSON.stringify(data)), action.name);\r\n if (action.name === \"PreparationPrint\") {\r\n if (this.order.HasAccess(\"KitchenRePrint\")) this.invoiceAction.SaveInvoice(invoice.CommandCode, invoice, true, this.order);\r\n else\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.AccessToThisArea\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.Attention\")\r\n );\r\n }\r\n if (action.name === \"ChangeCustomerPrintTemplate\") this.totalPriceService.changePrintTemplate(invoice);\r\n\r\n if (action.name === \"CustomerPrint\") {\r\n if (this.order.HasAccess(\"CustomerRePrint\")) this.invoiceAction.SaveInvoice(invoice.CommandCode, invoice, true, this.order);\r\n else\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.AccessToThisArea\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.Attention\")\r\n );\r\n }\r\n\r\n if (action.name === \"CustomerFinancialPrint\") this.invoiceAction.SaveInvoice(invoice.CommandCode, invoice, true, this.order);\r\n if (action.name === \"PrintReceipt\") {\r\n invoice.IsReceiptPrint = true;\r\n this.invoiceAction.SaveInvoice(invoice.CommandCode, invoice, true, this.order);\r\n }\r\n }\r\n this.invoiceAction.saveEnd.pipe(takeUntil(this.ngUnsubscribe)).subscribe((data) => {\r\n this.order.splashFormService.closeLoading();\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n });\r\n }\r\n\r\n /// چک کردن استیت فاکتور\r\n checkInvoiceState(invoice: Invoice, commond: string): Invoice {\r\n switch (this.order.currentSaleMethodNature) {\r\n case this.order.SaleMethodNature.Restaurant:\r\n switch (commond) {\r\n case \"CustomerPrint\":\r\n if (\r\n invoice.StatusCode === InvoiceStatus.New ||\r\n invoice.StatusCode === InvoiceStatus.Pending ||\r\n invoice.StatusCode === InvoiceStatus.Ordering\r\n ) {\r\n invoice.StatusCode = InvoiceStatus.Clearing;\r\n invoice.CommandCode = InvoiceCommand.CustomerPrint;\r\n } else {\r\n invoice.CommandCode = InvoiceCommand.ReprintForCustomer;\r\n }\r\n break;\r\n case \"ChangeCustomerPrintTemplate\":\r\n if (\r\n invoice.StatusCode === InvoiceStatus.New ||\r\n invoice.StatusCode === InvoiceStatus.Pending ||\r\n invoice.StatusCode === InvoiceStatus.Ordering\r\n ) {\r\n invoice.StatusCode = InvoiceStatus.Clearing;\r\n invoice.CommandCode = InvoiceCommand.CustomerPrint;\r\n } else {\r\n invoice.CommandCode = InvoiceCommand.ReprintForCustomer;\r\n }\r\n break;\r\n case \"PreparationPrint\":\r\n if (invoice.StatusCode === InvoiceStatus.New || invoice.StatusCode === InvoiceStatus.Pending) {\r\n invoice.StatusCode = InvoiceStatus.Ordering;\r\n invoice.CommandCode = InvoiceCommand.PreparationPrint;\r\n } else invoice.CommandCode = InvoiceCommand.ReprintForPreparation;\r\n break;\r\n default:\r\n }\r\n\r\n break;\r\n case this.order.SaleMethodNature.Delivery:\r\n switch (commond) {\r\n case \"PrintReceipt\":\r\n invoice.CommandCode = InvoiceCommand.ReceiptPrint;\r\n break;\r\n case \"CustomerPrint\":\r\n if (invoice.StatusCode === InvoiceStatus.New || invoice.StatusCode === InvoiceStatus.Pending) {\r\n invoice.CommandCode = InvoiceCommand.CustomerPrint;\r\n invoice.StatusCode = InvoiceStatus.Ordering;\r\n } else {\r\n invoice.CommandCode = InvoiceCommand.ReprintForCustomer;\r\n }\r\n break;\r\n case \"ChangeCustomerPrintTemplate\":\r\n if (invoice.StatusCode === InvoiceStatus.New || invoice.StatusCode === InvoiceStatus.Pending) {\r\n invoice.CommandCode = InvoiceCommand.CustomerPrint;\r\n invoice.StatusCode = InvoiceStatus.Ordering;\r\n } else {\r\n invoice.CommandCode = InvoiceCommand.ReprintForCustomer;\r\n }\r\n break;\r\n case \"PreparationPrint\":\r\n if (invoice.StatusCode === InvoiceStatus.New || invoice.StatusCode === InvoiceStatus.Pending) {\r\n invoice.CommandCode = InvoiceCommand.PreparationPrint;\r\n invoice.StatusCode = InvoiceStatus.Ordering;\r\n } else {\r\n invoice.CommandCode = InvoiceCommand.ReprintForPreparation;\r\n }\r\n default:\r\n }\r\n break;\r\n case this.order.SaleMethodNature.FastFood:\r\n switch (commond) {\r\n case \"CustomerPrint\":\r\n if (\r\n invoice.StatusCode === InvoiceStatus.New ||\r\n invoice.StatusCode === InvoiceStatus.Pending ||\r\n invoice.StatusCode === InvoiceStatus.Ordering\r\n ) {\r\n invoice.StatusCode = InvoiceStatus.Cleared;\r\n invoice.CommandCode = InvoiceCommand.CustomerPrint;\r\n } else invoice.CommandCode = InvoiceCommand.ReprintForCustomer;\r\n break;\r\n case \"ChangeCustomerPrintTemplate\":\r\n if (\r\n invoice.StatusCode === InvoiceStatus.New ||\r\n invoice.StatusCode === InvoiceStatus.Pending ||\r\n invoice.StatusCode === InvoiceStatus.Ordering\r\n ) {\r\n invoice.StatusCode = InvoiceStatus.Cleared;\r\n invoice.CommandCode = InvoiceCommand.CustomerPrint;\r\n } else invoice.CommandCode = InvoiceCommand.ReprintForCustomer;\r\n break;\r\n case \"PreparationPrint\":\r\n if (invoice.StatusCode === InvoiceStatus.New || invoice.StatusCode === InvoiceStatus.Pending) {\r\n invoice.StatusCode = InvoiceStatus.Ordering;\r\n invoice.CommandCode = InvoiceCommand.PreparationPrint;\r\n } else invoice.CommandCode = InvoiceCommand.ReprintForPreparation;\r\n break;\r\n default:\r\n }\r\n break;\r\n default:\r\n }\r\n return invoice;\r\n }\r\n //دریافت اطلاعات فاکتور با دابل کلیک برروی فاکتور\r\n onDoubleClick(invoice: Invoice) {\r\n this.order.splashFormService.openDialog(\"\", \" \");\r\n if (!this.accountService.userHasPermission(`RestaurantSale:Invoice_${this.order.saleMethodBranch.SaleMethodId}`, Permission.editPermission)) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.ItNotAccess\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.ErrorDeletingInformation\")\r\n );\r\n this.order.splashFormService.closeLoading();\r\n return;\r\n }\r\n if (this.order.saleMethodBranch?.HasDelino && invoice.WebId) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.DelinoFactorCanNotBeEdited\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.ItNotAccess\")\r\n );\r\n this.order.splashFormService.closeLoading();\r\n return;\r\n }\r\n this.httpCommonService\r\n .getItem(\"Invoice/GetInvoiceById\", invoice.Id)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: Invoice) => {\r\n if (data) {\r\n if (this.accountService.authService?.currentInformation()?.OrderServices && this.order.saleMethodBranch.HasDeposit) {\r\n this.order.depositFormGroup.setValue(new DepositModel());\r\n this.order.depositPersonnelList = [];\r\n this.order.depositServiceAmountSummary = \"\";\r\n this.order.depositServiceAmount = 0;\r\n this.order.isShowDeposit = false;\r\n this.getDepositValue(data.Id);\r\n }\r\n\r\n if (data.StatusCode === InvoiceStatus.Assigned) {\r\n if (!this.order.HasAccess(\"InvoicesEditWithDriverAssignment\")) {\r\n this.order.splashFormService.closeLoading();\r\n this.sts.showToast(\r\n \"control\",\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.NoAccess\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.AccessToEditInvoicesAssignedToPackage\"),\r\n 5000\r\n );\r\n return;\r\n }\r\n }\r\n if (data.SettlementId) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Invoices.InvoiceIsClosedAndCannotBeEdited\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.ErrorMessage\")\r\n );\r\n this.order.splashFormService.closeLoading();\r\n return;\r\n }\r\n if (typeof data.PaymentLinkState === \"number\") {\r\n const status = this.order.getStatusOfLinkPayment(data.PaymentLinkState);\r\n switch (status) {\r\n case PaymentLinkState.Paid:\r\n if (this.order.currentSaleMethodNature === SaleMethodNature.Delivery && !this.order.saleMethodBranch.HasDeposit) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Invoices.InvoicePaidThroughLinkAndPossibleToEditInvoice\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.ErrorMessage\")\r\n );\r\n this.order.splashFormService.closeLoading();\r\n return;\r\n } else if (this.order.currentSaleMethodNature === SaleMethodNature.Restaurant && data.StatusCode == InvoiceStatus.Cleared) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Invoices.InvoicePaidThroughLink\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.Warning\")\r\n );\r\n }\r\n break;\r\n\r\n default:\r\n if (this.order.saleMethodBranch.IsPaymentLink && status > PaymentLinkState.Nothing) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Invoices.LinkDesiredInvoiceCustomer\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.Warning\"),\r\n DialogType.confirm,\r\n () => {\r\n //بعد از تایید کاربر جهت تغییر فاکتور می بایست در سیستم لاگ ثبت گردد که کاربر بعد از ارسال لینک اقدام به تغییر فاکتور نموده است\r\n },\r\n () => {\r\n //cancel call back\r\n this.order.newInvoice();\r\n this.order.setActivePage(ActivePageEnum.Invoices);\r\n }\r\n );\r\n }\r\n break;\r\n }\r\n }\r\n this.order.invoice = data;\r\n if (this.order.saleMethodBranch.ShowDescInvCustomer || this.order.saleMethodBranch.ShowDescInvKitchen) {\r\n const desResult = data.Description.split(\"///\");\r\n this.order.invoice.DescKitchen = desResult[0];\r\n this.order.invoice.DescCustomer = desResult[1];\r\n }\r\n\r\n this.order.invoice.Items.forEach((item) => {\r\n if (!!item.RowDiscount) item.showPercent = true;\r\n });\r\n\r\n let output = new InvoiceEntry();\r\n let mapper = new MapObjectPipe();\r\n this.order.invoice.OriginalValue = JSON.parse(JSON.stringify(mapper.transform(data, output)));\r\n this.order.invoice.OriginalValue.SaleMethodBranch = this.order.saleMethodList.find((z) => z.Id === data.SaleMethodBranchId);\r\n this.order.invoice.Items = JSON.parse(\r\n JSON.stringify(\r\n data.Items.sort(function (a, b) {\r\n return a.Index - b.Index;\r\n })\r\n )\r\n );\r\n this.order.invoice.Items = this.order.invoice.Items.filter((f) => f.State !== RowState.Delete);\r\n this.order.setValueformGroupControl();\r\n this.order.invoice.State = RowState.Modify;\r\n if (this.order.common.isMobileMode) this.order.setActivePage(ActivePageEnum.Invoice);\r\n else this.order.setActivePage(ActivePageEnum.Order);\r\n this.order.shouldActivateSalonPage = false;\r\n this.order.shouldActivateInvoicesPage = true;\r\n this.order.GetItemCategoryList();\r\n this.order.selectedInvoiceItem = Object.assign({}, this.order.invoice.Items[0]);\r\n this.order.selectedOrderItemIndex = Object.assign({}, this.order.invoice.Items[0].Index);\r\n this.order.shouldCalculateFreeShippingCost = false;\r\n this.order.setInvoiceHasFactorAndHasPaymentLink();\r\n this.order.freeShippingCostDiscount = null;\r\n this.order.setValue(\"BranchId\", this.order.invoice.BranchId);\r\n this.order.ChangeBranch(this.order.invoice.BranchId, false);\r\n this.order.invoiceChanged = false;\r\n this.order.itemQuantityChanged = false;\r\n this.order.calculate();\r\n this.order.splashFormService.closeLoading();\r\n this.order.shouldCalculateFreeShippingCost = true;\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n getDepositValue(InvoiceId: number) {\r\n this.httpCommonService\r\n .getItem(\"Deposit/GetByInvoiceId\", InvoiceId)\r\n .pipe(take(1))\r\n .subscribe((data: DepositModel) => {\r\n if (data) {\r\n const depositModel = new DepositModel();\r\n const mappedData: DepositModel = Object.prototype.CustomMap(data, depositModel);\r\n if (mappedData.ServingFoodDate) {\r\n mappedData.ServingFoodTime = moment(mappedData.ServingFoodDate).format(\"HH:mm\").toString();\r\n }\r\n this.order.originalDeposit = mappedData;\r\n this.order.depositFormGroup.setValue(mappedData);\r\n this.order.depositPersonnelList = data.DepositPersonnelList;\r\n this.order.calcDepositServiceAmount(this.order.depositPersonnelList);\r\n this.order.isShowDeposit = true;\r\n this.order.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n showDepositDateFilter(): void {\r\n if (this.depositFilterIsSelected) {\r\n this.onFilter = this.onFilter.filter((x) => x.Filed !== \"StartDate\");\r\n this.onFilter = this.onFilter.filter((x) => x.Filed !== \"EndDate\");\r\n this.onFilter = this.onFilter.filter((x) => x.Filed !== \"HasInvoiceService\");\r\n this.onFilter = Object.assign([], this.onFilter);\r\n this.depositFilterIsSelected = false;\r\n this.order.depositListGridFilter = null;\r\n this.cd.markForCheck();\r\n return;\r\n }\r\n const confirmValue: Subject = new Subject();\r\n confirmValue\r\n .pipe(\r\n take(1),\r\n filter((x) => !!x)\r\n )\r\n .subscribe((value: ConfirmDateValue) => {\r\n const startDateFilter: GridFilter = {\r\n Filed: \"StartDate\",\r\n Value: value.StartDate,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n const endDateDateFilter: GridFilter = {\r\n Filed: \"EndDate\",\r\n Value: value.EndDate,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n const HasInvoiceServiceFilter: GridFilter = {\r\n Filed: \"HasInvoiceService\",\r\n Value: value.HasInvoiceService,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n this.onFilter = Object.assign([], this.onFilter);\r\n const startAndEndDateFilters = [startDateFilter, endDateDateFilter, HasInvoiceServiceFilter];\r\n this.onFilter.push(...startAndEndDateFilters);\r\n this.order.depositListGridFilter = startAndEndDateFilters;\r\n this.depositFilterIsSelected = true;\r\n this.cd.markForCheck();\r\n });\r\n this.dialogService.open(\r\n DateDialogComponent,\r\n { confirmValue, label: this.translate(\"ClientApp.FrontOffice.Order.Invoices.DayOrderService\"), setDefaultDate: true, hasDeposit: true },\r\n {}\r\n );\r\n }\r\n\r\n retryLink() {\r\n if (!this.invoice || !this.invoice.Id) return;\r\n if (!this.invoice.PhoneNumber?.startsWith(\"09\")) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Invoices.InvoiceMobileNumber\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.ErrorMessage\")\r\n );\r\n return;\r\n }\r\n if (this.invoice.Debit === this.invoice.PayableTotal) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Invoices.EntireAmountInvoiceDebited\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.ErrorMessage\")\r\n );\r\n return;\r\n }\r\n if (this.invoice.AutomaticDebtor) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Invoices.SendLinkCustomerAutomaticallyInDebt\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.ErrorMessage\")\r\n );\r\n return;\r\n }\r\n this.order.splashFormService.openDialog(\"\", \" \");\r\n this.httpCommonService\r\n .get(`Invoice/RetryLink/${this.invoice.Id}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n () => {\r\n this.order.splashFormService.closeLoading();\r\n },\r\n () => {\r\n this.order.splashFormService.closeLoading();\r\n }\r\n );\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"CustomerPrint\",\r\n disabled: false,\r\n displayName: this.translate(\"ClientApp.FrontOffice.Order.Invoices.CustomerPrint\"),\r\n iconName: \"icon-print-o\",\r\n apiName: \"Invoice/GetInvoices\",\r\n areaName: \"RestaurantSale\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"PreparationPrint\",\r\n disabled: false,\r\n displayName: this.translate(\"ClientApp.FrontOffice.Order.Invoices.KitchenPrint\"),\r\n iconName: \"icon-print-f\",\r\n apiName: \"Invoice/GetInvoices\",\r\n areaName: \"RestaurantSale\",\r\n permission: Permission.samePermission,\r\n },\r\n {\r\n name: \"ChangeCustomerPrintTemplate\",\r\n disabled: false,\r\n displayName: this.translate(\"ClientApp.FrontOffice.Order.Invoices.ChangingTemplateTimeOfPrinting\"),\r\n iconName: \"icon icon-printer-bold\",\r\n apiName: \"Invoice/GetInvoices\",\r\n areaName: \"RestaurantSale\",\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n\r\n if (\r\n (this.order.saleMethodBranch.SaleMethodNatureCode == SaleMethodNature.Restaurant ||\r\n this.order.saleMethodBranch.SaleMethodNatureCode == SaleMethodNature.FastFood) &&\r\n !this.actions.some((c) => c.name === \"SendInvoiceSms\")\r\n ) {\r\n this.actions.push({\r\n name: \"SendInvoiceSms\",\r\n disabled: false,\r\n displayName: this.translate(\"ClientApp.FrontOffice.Order.Invoices.SendInvoiceSms\"),\r\n iconName: \"icon-sms\",\r\n apiName: \"Invoice/GetInvoices\",\r\n areaName: \"RestaurantSale\",\r\n permission: Permission.samePermission,\r\n });\r\n }\r\n\r\n if (this.order.saleMethodBranch.HasDeposit && !this.actions.some((c) => c.name === \"PrintReceipt\")) {\r\n this.actions.push({\r\n name: \"PrintReceipt\",\r\n disabled: false,\r\n displayName: this.translate(\"ClientApp.FrontOffice.Order.Invoices.PrintReceipt\"),\r\n iconName: \"icon icon-printer-regular\",\r\n apiName: \"Invoice/GetInvoices\",\r\n areaName: \"RestaurantSale\",\r\n permission: Permission.samePermission,\r\n });\r\n }\r\n }\r\n\r\n changePrintTemplate() {\r\n this.totalPriceService.changePrintTemplate(this.invoice);\r\n }\r\n onRowSelected(invoice: Invoice) {\r\n this.invoice = invoice;\r\n this.getInvoiceById(invoice);\r\n }\r\n private getInvoiceById(invoice: Invoice) {\r\n this.httpCommonService\r\n .getItem(\"Invoice/GetInvoiceById\", invoice.Id)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: Invoice) => {\r\n if (data) {\r\n this.invoice = data;\r\n this.InvoiceItems = data.Items;\r\n this.cd.markForCheck();\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n public setFilter($event): void {\r\n const key = $event.value;\r\n if (this.selectedFilter === key) {\r\n this.selectedFilter = null;\r\n this.onFilter = Object.assign([], this.filterInfo);\r\n return;\r\n }\r\n this.selectedFilter = key;\r\n this.onFilter = this.onFilter.filter((x) => x.Filed !== \"StatusCode\");\r\n this.onFilter = Object.assign([], this.onFilter);\r\n this.onFilter.push({\r\n Filed: \"StatusCode\",\r\n Value: key,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n });\r\n\r\n if (this.onFilter.length <= 0) this.onFilter = Object.assign([], this.filterInfo);\r\n }\r\n invoiceFilterClear() {\r\n this.onFilter = this.onFilter.filter((x) => x.Filed !== \"StatusCode\");\r\n if (this.onFilter.length <= 0) this.onFilter = Object.assign([], this.filterInfo);\r\n }\r\n GetInvoices() {\r\n this.isFinishedData = true;\r\n this.httpCommonService\r\n .create(\"Invoice/ReadGetAllInvoices\", this.filterInfo)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: PagingDataResult) => {\r\n this.invoices = data;\r\n this.isFinishedData = false;\r\n this.cd.markForCheck();\r\n setTimeout(() => {\r\n this.cd.markForCheck();\r\n }, 1000);\r\n },\r\n (err) => {\r\n this.isFinishedData = false;\r\n console.log(err);\r\n }\r\n );\r\n }\r\n onMealTimeChanged(mealTime: EnumModel[]) {\r\n this.onFilter = this.onFilter.filter((x) => x.Filed !== \"MealTime\");\r\n this.onFilter = Object.assign([], this.onFilter);\r\n mealTime.forEach((mealTime) => {\r\n const mealTimeFilter: GridFilter = {\r\n Filed: \"MealTime\",\r\n Value: mealTime.Id,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n this.onFilter.push(...[mealTimeFilter]);\r\n });\r\n }\r\n private filterBranchWithOrOperator(branches: Branch[]): void {\r\n if (branches.length > 1) {\r\n this.filterInfo.forEach((x) => (x.Logic = \"and\"));\r\n }\r\n this.onFilter = Object.assign([], this.filterInfo);\r\n branches.forEach((branch) => {\r\n const branchFilter: GridFilter = {\r\n Filed: \"BranchId\",\r\n Value: branch.Id,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n const SaleMethodBranch = this.order.saleMethodList.find(\r\n (f) => f.BranchId == branch.Id && f.SaleMethodId === this.order.saleMethodBranch.SaleMethodId\r\n );\r\n const SaleMethodFilter: GridFilter = {\r\n Filed: \"SaleMethodId\",\r\n Value: SaleMethodBranch.SaleMethodId,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n const SaleMethodBranchFilter: GridFilter = {\r\n Filed: \"SaleMethodBranchId\",\r\n Value: SaleMethodBranch.Id,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n if (branches.length > 1) {\r\n branchFilter.Logic = \"or\";\r\n SaleMethodFilter.Logic = \"or\";\r\n SaleMethodBranchFilter.Logic = \"or\";\r\n }\r\n this.onFilter.push(...[branchFilter, SaleMethodBranchFilter, SaleMethodFilter]);\r\n });\r\n }\r\n\r\n private setDefaultBranch(): void {\r\n if (this.order.currentSaleMethodNature === this.order.SaleMethodNature.Delivery && this.order.isMultiBranch) {\r\n const branchId = this.order.formGroup.get(\"BranchId\").value;\r\n if (branchId) {\r\n const branch = this.order.Branches.find((x) => x.Id === branchId);\r\n this.formGroup.get(\"branchFilter\").setValue([branchId]);\r\n this.onBranchFilterChanged([branch]);\r\n } else {\r\n this.onFilter = [\r\n {\r\n Filed: \"BranchId\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n },\r\n ];\r\n }\r\n }\r\n }\r\n\r\n pritFactors() {\r\n let invoices: Invoice[] = this.invoiceGrid?.grid?.data[\"data\"];\r\n let InvoiceIds = [];\r\n invoices.map((x) => InvoiceIds.push(x.Id));\r\n\r\n if (invoices.length) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Invoices.WantToPrint\")} ${invoices.length} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.Invoices.AreInvoice\"\r\n )}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.Warning\"),\r\n DialogType.confirm,\r\n () => {\r\n this.splashFormService.openDialog();\r\n this.httpCommonService\r\n .create(\"invoice/InvoicesPrint\", InvoiceIds)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: Invoice[]) => {\r\n this.splashFormService.closeLoading();\r\n invoices = data;\r\n if (this.order.logInBranch) {\r\n invoices.forEach(async (invoice) => {\r\n await this.invoiceAction.invoicePrintService.PrintLocalInvoice(invoice).then();\r\n });\r\n }\r\n },\r\n (err) => {\r\n this.splashFormService.closeLoading();\r\n console.log(err);\r\n }\r\n );\r\n }\r\n );\r\n }\r\n }\r\n\r\n private sendInvoiceSms(data: Invoice): void {\r\n if (data.PhoneNumber) {\r\n if (!data.PhoneNumber?.startsWith(\"09\")) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Invoices.InvoiceMobileNumber\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.ErrorMessage\")\r\n );\r\n } else {\r\n this.httpCommonService\r\n .getItem(\"Invoice/SendInvoiceSms\", data.Id)\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n console.log(\"SMS was sent to the customer\");\r\n });\r\n }\r\n } else {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.TheCustomerDoNotHaveMobile\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.Invoices.ItNotSendSMS\")\r\n );\r\n }\r\n }\r\n\r\n async deleteInvoiceExtra(event: boolean) {\r\n if (!event) return;\r\n if (this.invoice.DiscountType !== DiscountTypeEnum.Organization) return;\r\n if (this.invoice.Customer.Id !== this.order.invoice.Customer.Id) return;\r\n\r\n await this.updateCustomer();\r\n }\r\n async updateCustomer() {\r\n this.httpCommonService\r\n .getItem(\"Customer/GetCustomerDetails\", this.invoice.CustomerId)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: Customer) => {\r\n if (data) {\r\n this.invoice.Customer = data;\r\n this.order.invoice.Customer = data;\r\n this.cd.markForCheck();\r\n }\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n 0\"\r\n class=\"griddetail\"\r\n [label]=\"label\"\r\n [noAutoFitColumns]=\"true\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [groupable]=\"false\"\r\n [noToolBar]=\"true\"\r\n [hideToolber]=\"true\"\r\n [name]=\"InvoiceItems\"\r\n [showLoadingMessage]=\"false\"\r\n pathPreFix=\"SALE\"\r\n [filtering]=\"false\"\r\n [columns]=\"InvoiceItemColumns\"\r\n [dataList]=\"InvoiceItems\"\r\n [IgnoreDeletePermission]=\"IgnoreDeletePermission\"\r\n [isMulti]=\"false\">\r\n \r\n
\r\n
\r\n","import { Branch } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\n\r\nexport class InvoiceItemPrintModel {\r\n public RowNumber: number;\r\n public ItemTitle: string;\r\n public Quantity: number;\r\n public UnitPrice: number;\r\n public Price: number;\r\n public TotalPrice: number;\r\n public UnitAdditive: number;\r\n public UnitPriceDiscount: number;\r\n public UnitDiscount: number;\r\n public UnitToll: number;\r\n public UnitService: number;\r\n public UnitTax: number;\r\n public NewQuantity: number;\r\n public Title_En: string;\r\n public Free: boolean;\r\n public ItemId: number;\r\n public CategoryId?: number;\r\n public ParentCategoryId?: number;\r\n public Description: string;\r\n public Deleted: boolean;\r\n public HasDecimal?: boolean;\r\n public PrintDisplayOrder?: number;\r\n public Index?: number;\r\n public State?: RowState;\r\n public Debit: number;\r\n public PackingPrice: number;\r\n constructor() {\r\n this.ItemTitle = \"\";\r\n this.Free = false;\r\n this.Deleted = false;\r\n this.HasDecimal = false;\r\n this.Title_En = \"\";\r\n this.Description = \"\";\r\n this.Quantity = 0;\r\n this.PrintDisplayOrder = 0;\r\n this.Index = 0;\r\n this.State = 0;\r\n this.UnitPrice = 0;\r\n this.Price = 0;\r\n this.TotalPrice = 0;\r\n this.UnitAdditive = 0;\r\n this.UnitPriceDiscount = 0;\r\n this.UnitDiscount = 0;\r\n this.UnitToll = 0;\r\n this.UnitService = 0;\r\n this.UnitTax = 0;\r\n this.NewQuantity = 0;\r\n this.ItemId = 0;\r\n this.CategoryId = 0;\r\n this.ParentCategoryId = 0;\r\n this.Debit = null;\r\n this.PackingPrice = null;\r\n }\r\n}\r\nexport class InvoicePrintModel {\r\n public SaleMethodNatureCode: number;\r\n public IsBarCodeInvoice?: boolean;\r\n public IsMultiPrint: boolean;\r\n public IsReceiptPrint: boolean;\r\n public Title: string;\r\n public RestaurantTitle: string;\r\n public RestaurantEconomicalNumber: string;\r\n public RestaurantPostalCode: string;\r\n public MealTimeTitle: string;\r\n public DeliveryType: string;\r\n public CreateDate: Date;\r\n public RestaurantAddress: string;\r\n public RestaurantPhoneNumber: string;\r\n public MultiPhoneNumber: string;\r\n public CurrencyCode: number;\r\n public ClearType: string;\r\n public CurrencyTitle: string;\r\n public CustomerDisplayName: string;\r\n public CustomerTitle: string;\r\n public CustomerNumber: string;\r\n public Items: InvoiceItemPrintModel[];\r\n public CustomerPhoneNumber: string;\r\n public NumberOfGuests: number;\r\n public ShippingAddress: string;\r\n public ShippingCost: number;\r\n public PackingPrice: number;\r\n public Total: number;\r\n public TotalNet: number;\r\n public TotalDiscount: number;\r\n public TotalService: number;\r\n public TotalTax: number;\r\n public TotalToll: number;\r\n public PayableTotal: number;\r\n public ShamsiCreatedDate: string;\r\n public CreatedDateTime: string;\r\n public NumberingInDate?: number;\r\n public OldNumberingInDate?: number;\r\n public WaiterName: string;\r\n public CreatedUserName: string;\r\n public CreatedUserPhoneNumber: string;\r\n public TableTitle: string;\r\n public OldTableTitle: string;\r\n public DependentPrintPolicyTitles: string;\r\n public Corrective: boolean;\r\n public RePrint: boolean;\r\n public DriverDisplayName: string;\r\n public DriverCode?: number;\r\n public PrintTime: string;\r\n public PrintTimeCode: number;\r\n public RandomNumber: number;\r\n public Description: string;\r\n public DescCustomer: string;\r\n public DescKitchen: string;\r\n public Message: string;\r\n public DisplayLogoInPrintTemplates: boolean;\r\n public PolicyTitle: string;\r\n public IgnoreBlackBackground: boolean;\r\n public FreeShipping: boolean;\r\n public DisplayAddressInInvoice: boolean;\r\n public StatusCode?: number;\r\n public Debit?: number;\r\n public Credit?: number;\r\n public HasDecimal?: boolean;\r\n public Logo: any[];\r\n public State: RowState;\r\n public Branch: Branch;\r\n public Title_En: string;\r\n CustomerName: string;\r\n LocalServiceIp: string;\r\n public OldSaleMethodBranchId: number;\r\n public DaysOfWeek: string;\r\n public PrintDescription: string;\r\n OtherPrintTemplateId?: number;\r\n public BranchNationalCode: string;\r\n public CustomerRegistrationNumber: string;\r\n public CustomerEconomicCode?: number;\r\n public CustomerNationalCode: string;\r\n public CustomerNationalId: string;\r\n public CustomerPostalCode: string;\r\n public ServingFoodDate: string;\r\n public ServingFoodTime: string;\r\n public NumberOfPeople?: number;\r\n public ServicesAmount?: number;\r\n public HasTotalDebit: boolean;\r\n public HasDirectlyTaxpayer: boolean;\r\n public CustomerTotalDebit?: number;\r\n public DepositAmount?: number;\r\n public RemainingAmount?: number;\r\n public CooksServicesAmount: string;\r\n public CourierServicesAmount: string;\r\n public RemainingAmountToPersian: string;\r\n public IsPickUp: boolean;\r\n public TotalCalories?: number;\r\n public ItemCountDisplay: boolean;\r\n public ItemCount: string;\r\n PayableAmountToPersian: string;\r\n constructor() {\r\n this.State = 0;\r\n this.OldSaleMethodBranchId = 0;\r\n this.CustomerTotalDebit = null;\r\n this.SaleMethodNatureCode = 0;\r\n this.Title = \"\";\r\n this.TotalCalories = null;\r\n this.PrintDescription = \"\";\r\n this.RestaurantTitle = \"\";\r\n this.RestaurantEconomicalNumber = \"\";\r\n this.IsMultiPrint = false;\r\n this.IsReceiptPrint = false;\r\n this.RestaurantPostalCode = \"\";\r\n this.MealTimeTitle = \"\";\r\n this.RestaurantAddress = \"\";\r\n this.RestaurantPhoneNumber = \"\";\r\n this.CurrencyCode = 0;\r\n this.CurrencyTitle = \"\";\r\n this.CustomerDisplayName = \"\";\r\n this.CustomerTitle = \"\";\r\n this.CustomerNumber = \"\";\r\n this.CustomerPhoneNumber = \"\";\r\n this.NumberOfGuests = 0;\r\n this.ShippingAddress = \"\";\r\n this.Title_En = \"\";\r\n this.ShippingCost = 0;\r\n this.PackingPrice = 0;\r\n this.Total = 0;\r\n this.DaysOfWeek = \"\";\r\n this.TotalNet = 0;\r\n this.TotalDiscount = 0;\r\n this.TotalService = 0;\r\n this.TotalTax = 0;\r\n this.TotalToll = 0;\r\n this.CreatedUserPhoneNumber = \"\";\r\n this.PayableTotal = 0;\r\n this.ShamsiCreatedDate = \"\";\r\n this.CreatedDateTime = \"\";\r\n this.NumberingInDate = 0;\r\n this.OldNumberingInDate = 0;\r\n this.WaiterName = \"\";\r\n this.CreatedUserName = \"\";\r\n this.TableTitle = \"\";\r\n this.OldTableTitle = \"\";\r\n this.DependentPrintPolicyTitles = \"\";\r\n this.Corrective = false;\r\n this.RePrint = false;\r\n this.DriverDisplayName = \"\";\r\n this.PrintTime = null;\r\n this.Description = \"\";\r\n this.DescCustomer = \"\";\r\n this.DescKitchen = \"\";\r\n this.Message = \"\";\r\n this.DisplayLogoInPrintTemplates = false;\r\n this.PolicyTitle = \"\";\r\n this.IgnoreBlackBackground = false;\r\n this.FreeShipping = false;\r\n this.DisplayAddressInInvoice = false;\r\n this.StatusCode = 0;\r\n this.Debit = 0;\r\n this.Credit = 0;\r\n this.HasDecimal = false;\r\n this.Logo = [];\r\n this.BranchNationalCode = \"\";\r\n this.CustomerRegistrationNumber = \"\";\r\n this.CustomerEconomicCode = null;\r\n this.CustomerNationalCode = \"\";\r\n this.CustomerNationalId = \"\";\r\n this.CustomerPostalCode = \"\";\r\n this.ServingFoodDate = \"\";\r\n this.ServingFoodTime = \"\";\r\n this.NumberOfPeople = null;\r\n this.ServicesAmount = null;\r\n this.DepositAmount = null;\r\n this.RemainingAmount = null;\r\n }\r\n}\r\nexport class PrintDocumentInvoiceModel {\r\n public InvoicePrintModel: InvoicePrintModel[];\r\n public PrinterName: string;\r\n public TemplateName: string;\r\n public LocalServiceIp: string;\r\n constructor(lists: InvoicePrintModel[], printerName: string, templateName: string, localServiceIp: string) {\r\n this.InvoicePrintModel = lists;\r\n this.PrinterName = printerName;\r\n this.LocalServiceIp = localServiceIp;\r\n this.TemplateName = templateName;\r\n }\r\n}\r\n","import { EntityBase } from 'projects/sepidz-web-framework/src/lib/models/entity-base.model';\r\nimport { ItemDetailsOrder } from './ItemDetailsOrder.model';\r\nimport { Additive } from '../../catalog/model/additive.model';\r\nimport { Description } from '../../catalog/model/description.model';\r\n\r\nexport class ItemOrder extends EntityBase {\r\n public Code: string;\r\n public CategoryTitle: string;\r\n public Title: string;\r\n public UnitPrice: number;\r\n public MeasurementUnit: string;\r\n public ApplyTax?: boolean;\r\n public ApplyService?: boolean;\r\n public Additive: Additive[];\r\n public Desctiption: Description[];\r\n public ItemDetailsOrders: ItemDetailsOrder[];\r\n constructor() {\r\n super();\r\n this.Code = '';\r\n this.CategoryTitle = '';\r\n this.Title = '';\r\n this.UnitPrice = 0;\r\n this.MeasurementUnit = '';\r\n this.ApplyTax = false;\r\n this.ApplyService = false;\r\n this.Additive = [];\r\n this.Desctiption = [];\r\n this.ItemDetailsOrders = [];\r\n }\r\n}\r\nexport enum ItemDependencyType {\r\n Free = 1,\r\n Related = 2,\r\n}\r\n\r\n\r\nexport enum UnitKindEnum {\r\n NormalItem,\r\n PosScaleItem,\r\n}","export class ActionStateModel {\r\n /* */\r\n save: boolean;\r\n temporaryRegister: boolean;\r\n preparationPrint: boolean;\r\n customerPrint: boolean;\r\n print: boolean;\r\n clearWithoutPrint: boolean;\r\n clear: boolean;\r\n cancel: boolean;\r\n mixClear: boolean;\r\n delivered: boolean;\r\n constructor() {\r\n this.save = false;\r\n this.temporaryRegister = false;\r\n this.preparationPrint = false;\r\n this.customerPrint = false;\r\n this.print = false;\r\n this.clearWithoutPrint = false;\r\n this.cancel = false;\r\n this.clear = false;\r\n this.mixClear = false;\r\n this.delivered = false;\r\n }\r\n}\r\n","export enum ActivePageEnum {\r\n Order = 1,\r\n Customer = 2,\r\n Salon = 3,\r\n Invoices = 4,\r\n New = 5,\r\n OrderItem = 6,\r\n Invoice = 7,\r\n OnlineFactor = 8,\r\n ReserveOnline = 9,\r\n}\r\n\r\nexport enum SaleElementSize {\r\n Item = 1,\r\n Invoice = 2,\r\n}\r\n","export enum ChangeCachEnum {\r\n SaleMethod = 1,\r\n ItemcategoryList = 2,\r\n Branches = 3,\r\n CurrentUser = 4,\r\n WaiterList = 5,\r\n SalePriceType = 6,\r\n paymentMethodType = 7,\r\n Itemcategory = 8,\r\n Zone = 9,\r\n PrintPolicy = 10,\r\n PrintTemplate= 11 ,\r\n}\r\n","export enum ClubEnum {\r\n Code=1,\r\n UseCredit = 2,\r\n Mobile = 3,\r\n SupportNumber = 4\r\n}","export enum ClubConfirmationEnum {\r\n Save=1,\r\n Cancel = 2,\r\n Replace = 3,\r\n}","export enum ContextMenuEnum {\r\n Category = 1,\r\n Item = 2\r\n }\r\n ","export class CustomerFilter {\r\n public DisplayName: string;\r\n public Code: string;\r\n public PhoneNumber: string;\r\n public Address: string;\r\n}\r\n","export enum CustomerDetailsEnum {\r\n New = 1,\r\n Details = 2\r\n}\r\n","export class DelinoCheckCustomerAddressModel {\r\n Lat: number;\r\n Lng: number;\r\n ShippingCost: number;\r\n CustomerId: number;\r\n BranchId: number;\r\n Address: string;\r\n CustomerName: string;\r\n PhoneNumber: string;\r\n isPickup: boolean;\r\n}\r\n","\r\nexport enum DeliveredInvoiceTypeEnum {\r\n Pending = 0,\r\n DeliveredKitchen = 1,\r\n DeliveredCustomer = 2\r\n}\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { InvoiceCommand, InvoiceStatus } from \"./invoice.model\";\r\nimport { DeliveredInvoiceTypeEnum } from \"./delivered-status.enum\";\r\n\r\nexport class DeliveredListInvoice extends EntityBase {\r\n public Id: number;\r\n public NumberingInDate?: number;\r\n public SaleMethodBranchTitle: string;\r\n public Description: string;\r\n public CreateDateTime?: Date;\r\n public SaleMethodBranchId?: number;\r\n public SaleMethodNatureCode?: number;\r\n public Items: DeliveredListInvoiceItem[];\r\n public Quantity?: number;\r\n public InvoiceCommand: InvoiceCommand;\r\n public Status: InvoiceStatus;\r\n public DeliveredInvoiceType: number;\r\n public FactorStringTime: string;\r\n public DeliverStringTime: string;\r\n public CustomerDisplayName: string;\r\n public SalonTitle: string;\r\n public SalonId?: number;\r\n public HasExpired:boolean;\r\n}\r\n\r\nexport class DeliveredListInvoiceItem extends EntityBase {\r\n public ItemTitle: string;\r\n public Quantity?: number;\r\n public ItemId?: number;\r\n public CategoryId?: number;\r\n public Checked?: boolean;\r\n public CookingTime: number;\r\n}\r\n\r\nexport class InvoiceDelivered extends EntityBase {\r\n public InvoiceId?: number;\r\n public DeliveredTime: string;\r\n public SaleMethodNatureCode?: number;\r\n public DeliveredInvoiceType: number;\r\n public InvoiceDeliveredItemList: InvoiceDeliveredItem[];\r\n /**\r\n *\r\n */\r\n constructor() {\r\n super();\r\n this.InvoiceId = null;\r\n this.DeliveredTime = null;\r\n this.DeliveredInvoiceType = null;\r\n this.InvoiceDeliveredItemList = [];\r\n }\r\n}\r\n\r\nexport class InvoiceDeliveredItem extends EntityBase {\r\n public InvoiceItemId?: number;\r\n public InvoiceDeliveredId?: number;\r\n /**\r\n *\r\n */\r\n constructor() {\r\n super();\r\n this.InvoiceItemId = 0;\r\n this.InvoiceDeliveredId = 0;\r\n }\r\n}\r\n","export enum FastAccessEnum {\r\n Invoice = 1,\r\n Salon = 2,\r\n DriverAssignment = 3,\r\n Customer = 4,\r\n Waiter = 5,\r\n pager = 6,\r\n club = 7,\r\n PaymentLink = 8,\r\n DelinoOfflineFactor = 9,\r\n PosScale = 10,\r\n}\r\n","import { Branch, User, Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { TableRead } from \"src/app/frontoffice/salons/model/salon.model\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { SaleMethodBranchModel } from \"../../sales/model/sale-method-branch.model\";\r\nimport { SalePriceType } from \"../../catalog/model/sale-price-type.model\";\r\nimport { Customer, CustomerAddress } from \"../../parties/model/customer.model\";\r\nimport { ReceiptPaymentModel } from \"./receiptpayment.model\";\r\nimport { ClubViewModel } from \"./smartclub.model\";\r\nimport { PrintPolicyPrintTimeEnum } from \"../../prints/model/print-policy.model\";\r\nimport { DepositModel } from \"../../catalog/model/deposit.model\";\r\nimport { NumberValueAccessor } from \"@angular/forms\";\r\nimport { CustomerCategory } from \"../../parties/model/customer-categories.model\";\r\n\r\nexport class Invoice extends EntityBase {\r\n public OriginalValue: InvoiceEntry;\r\n public CommandId?: number;\r\n public CommandTitle: string;\r\n public CommandCode?: number;\r\n public IsMultiPrint: boolean;\r\n public IsReceiptPrint: boolean;\r\n public Changes: InvoiceChangesLookup[];\r\n public PayableChangeId?: number;\r\n public PayableChangeTitle: string;\r\n public PayableChangeCode?: number;\r\n public NumberOfGuests: number;\r\n public Description: string;\r\n public DescKitchen: string;\r\n public DescCustomer: string;\r\n public TaxRate: number;\r\n public TollRate: number;\r\n public ServiceRate: number;\r\n public ServiceTax: number;\r\n public posPaymentIndex: number;\r\n public ApplyTaxForService: boolean;\r\n public ApplyTaxForShippingCost: boolean;\r\n public IgnoreService: boolean;\r\n public IgnoreShippingCost: boolean;\r\n public PhoneId?: number;\r\n public PhoneNumber: string;\r\n public MultiPhoneNumber: string;\r\n public AddressId?: number;\r\n public ChangedByUser?: boolean;\r\n public CustomerAddres: string;\r\n public CustomerAddress: CustomerAddress;\r\n public Customer: Customer;\r\n public ShippingCost: number;\r\n public ShippingCostTax: number;\r\n public CourierShippingCost: number;\r\n public StatusId?: number;\r\n public StatusTitle: string;\r\n public StatusCode?: number;\r\n public DiscountType?: number;\r\n public OldStatusCode?: number;\r\n public TotalNet: number;\r\n public TotalService: number;\r\n public TotalTax: number;\r\n public TotalToll: number;\r\n public Discount: number;\r\n public TotalDiscount: number;\r\n public DiscountPrice: number;\r\n public IsDiscountPercent: boolean;\r\n public PreprationDeliveryTime: string;\r\n public Total: number;\r\n public hasChangedTable: boolean;\r\n public TotalWidthRowDiscount: number;\r\n public RoundingAmount: number;\r\n public RoundingTypeId?: number;\r\n public RoundingTypeTitle: string;\r\n public RoundingTypeCode?: number;\r\n public PayableTotal: number;\r\n public PayableTotalLessDiscount: number;\r\n public Debit: number;\r\n public isDebit: boolean;\r\n public AutomaticDebtor: boolean;\r\n public Credit: number;\r\n public Tip: number;\r\n public DriverAssingDate?: string;\r\n public DriverReturnDate?: Date;\r\n public ShamsiDriverReturnDate?: string;\r\n public ShamsiDriverExitDate?: string;\r\n public DriverReturnTime?: string;\r\n public NumberingInDate: number;\r\n public NewNumberingInDate: number;\r\n public User: User;\r\n public WaiterId?: number;\r\n public WaiterName: string;\r\n public CustomerId: number;\r\n public CustomerLastName: string;\r\n public CustomerName: string;\r\n public CustomerTitle: string;\r\n public CustomerNumber?: number;\r\n public CustomerDisplayName: string;\r\n public TableId?: number;\r\n public TableTitle: string;\r\n public SalonTitle: string;\r\n public TableRead: TableRead;\r\n public SaleMethodBranch: SaleMethodBranchModel;\r\n public SaleMethodNatureCode?: number;\r\n public SaleMethodBranchId: number;\r\n public OldSaleMethodBranchId: number;\r\n public SaleMethodBranchTitle: string;\r\n public CreatedUserName: string;\r\n public CreatedUserPhoneNumber: string;\r\n public BranchId: number;\r\n public ModifiedDateTime: string;\r\n public ModifiedDateTimeString: string;\r\n public Branch: Branch;\r\n public SalePriceTypeId: number;\r\n public SalePriceType: SalePriceType;\r\n public DriverAssignments: DriverAssignment;\r\n public ReceiptPayments: ReceiptPaymentModel[];\r\n public Items: InvoiceItem[];\r\n public Cleared: boolean;\r\n public Completed: boolean;\r\n public Code: number;\r\n public TabId: string;\r\n public SaleMethodId: number;\r\n public PaymentMethodTypeId: number;\r\n public PaymentMethodTypeIndex: number;\r\n public Selected: number;\r\n public HasChange: boolean;\r\n public SalonId?: number;\r\n public Command: Lookup;\r\n public Status: Lookup;\r\n public DeliveryCustomerPrintTimeCode: number;\r\n public PreparationPrintCount: number;\r\n public CustomerPrintCount: number;\r\n public LastInvoiceCode: number;\r\n public LastInvoiceAmount: number;\r\n public SettlementId: number;\r\n public HasLocalPrtinter: boolean;\r\n public FiscalYearId: number;\r\n public Year?: number;\r\n public SettlementRefrenceCode: number;\r\n public IsValidRemain?: boolean;\r\n public PackingPrice: number;\r\n public isPackingDisable: boolean;\r\n public isPackingAutoCalc: boolean;\r\n public isDebitDisable: boolean;\r\n public ClubPrice: number;\r\n public HasClub: boolean;\r\n public ClubCode: string;\r\n public ClubViewModel: ClubViewModel;\r\n public WebId?: number;\r\n public WebKindId?: number;\r\n public CurrentUserId: number;\r\n public CurrentBranchId: number;\r\n public RowVersion: any;\r\n public ShamsiCreatedDate: string;\r\n public SettlementTypeTitle: string;\r\n public SettlementCode: number;\r\n PrintPolicyPrintTime: PrintPolicyPrintTimeEnum;\r\n public HasDeliveryDiscount: boolean;\r\n public CreateDateTime: string;\r\n public ModifiedDateTimes: string;\r\n public LastModifiedUserId: number;\r\n public HasPaymentLink: boolean;\r\n public HasFactorLink: boolean;\r\n public ApplySnap: boolean;\r\n public createdUserPhoneNUmber: string;\r\n public InPerson: boolean;\r\n public PaymentLinkState: number;\r\n public DeliverCustomerTime: string;\r\n public OrderConfigurationTime: string;\r\n public PrintPolicyId?: number;\r\n public OtherPrintTemplateId?: number;\r\n public PrintDescription?: string;\r\n public Deposit: DepositModel;\r\n public DelinoFactor: boolean;\r\n public changeDiscountType?: boolean;\r\n public ClearedUserId?: number;\r\n public StartTimeTrip?: Date;\r\n public ComputerName: string;\r\n public OldTableTitle: string;\r\n public OldTableId?: number;\r\n public IsPickUp: boolean;\r\n public customerDiscountValue?: number;\r\n public CustomerTotalDebit?: number;\r\n public SelectedCustomerCategory?: CustomerCategory;\r\n Service: number;\r\n constructor() {\r\n super();\r\n this.ClubCode = null;\r\n this.RowVersion = null;\r\n this.HasClub = false;\r\n this.isDebit = false;\r\n this.DiscountType = null;\r\n this.LastInvoiceCode = 0;\r\n this.SettlementCode = 0;\r\n this.SettlementTypeTitle = \"\";\r\n this.CurrentUserId = 0;\r\n this.CurrentBranchId = 0;\r\n this.ClubPrice = 0;\r\n this.LastInvoiceAmount = 0;\r\n this.DiscountPrice = 0;\r\n this.OriginalValue = null;\r\n this.CommandId = null;\r\n this.CommandTitle = \"\";\r\n this.CommandCode = 0;\r\n this.hasChangedTable = false;\r\n this.Changes = [];\r\n this.PayableChangeId = null;\r\n this.PayableChangeTitle = \"\";\r\n this.PayableChangeCode = null;\r\n this.NumberOfGuests = 0;\r\n this.Description = \"\";\r\n this.DescKitchen = \"\";\r\n this.DescCustomer = \"\";\r\n this.PrintDescription = \"\";\r\n this.TaxRate = 0;\r\n this.TollRate = 0;\r\n this.ServiceRate = 0;\r\n this.ServiceTax = 0;\r\n this.ApplyTaxForService = false;\r\n this.ApplyTaxForShippingCost = false;\r\n this.IgnoreService = false;\r\n this.IgnoreShippingCost = false;\r\n this.IsDiscountPercent = true;\r\n this.PhoneId = null;\r\n this.PhoneNumber = \"\";\r\n this.AddressId = null;\r\n this.CustomerAddress = null;\r\n this.ShippingCost = 0;\r\n this.ShippingCostTax = 0;\r\n this.CourierShippingCost = 0;\r\n this.StatusId = null;\r\n this.StatusTitle = \"\";\r\n this.StatusCode = 0;\r\n this.TotalNet = 0;\r\n this.TotalService = null;\r\n this.TotalTax = 0;\r\n this.Discount = 0;\r\n this.TotalDiscount = 0;\r\n this.Total = 0;\r\n this.TotalWidthRowDiscount = 0;\r\n this.RoundingAmount = 0;\r\n this.RoundingTypeId = null;\r\n this.RoundingTypeTitle = \"\";\r\n this.DelinoFactor = false;\r\n this.RoundingTypeCode = null;\r\n this.PayableTotal = 0;\r\n this.Debit = 0;\r\n this.Credit = 0;\r\n this.Tip = 0;\r\n this.DriverAssingDate = null;\r\n this.DriverReturnDate = null;\r\n this.StartTimeTrip = null;\r\n this.ShamsiDriverReturnDate = null;\r\n this.ShamsiDriverExitDate = null;\r\n this.DriverReturnTime = null;\r\n this.NumberingInDate = 0;\r\n this.NewNumberingInDate = 0;\r\n this.WaiterId = null;\r\n this.CustomerId = 0;\r\n this.CustomerName = \"\";\r\n this.CustomerNumber = null;\r\n this.TableId = null;\r\n this.SaleMethodBranchId = 0;\r\n this.BranchId = 0;\r\n this.SalePriceTypeId = 0;\r\n this.ReceiptPayments = [];\r\n this.Items = [];\r\n this.Cleared = false;\r\n this.Completed = false;\r\n this.Code = 0;\r\n this.TabId = \"\";\r\n this.CustomerPrintCount = 0;\r\n this.PreparationPrintCount = 0;\r\n this.PackingPrice = null;\r\n this.ShamsiCreatedDate = \"\";\r\n this.CreateDateTime = null;\r\n this.ModifiedDateTime = \"\";\r\n this.LastModifiedUserId = 0;\r\n this.ShamsiCreatedDate = \"\";\r\n this.ModifiedDateTime = \"\";\r\n this.LastModifiedUserId = 0;\r\n this.HasPaymentLink = false;\r\n this.HasFactorLink = false;\r\n this.PaymentLinkState = null;\r\n this.DeliverCustomerTime = \"\";\r\n this.OrderConfigurationTime = \"\";\r\n this.PrintPolicyId = null;\r\n this.OtherPrintTemplateId = null;\r\n this.Deposit = null;\r\n this.CustomerTotalDebit = null;\r\n }\r\n}\r\nexport class DriverAssignInvoiceViewModel {\r\n public Invoices: AssignInvoiceViewModel[];\r\n public DriverId: number;\r\n}\r\nexport class AssignInvoiceViewModel extends Invoice {\r\n FactorTime?: Date;\r\n FactorStringTime: string;\r\n Address: string;\r\n DelayTime: boolean;\r\n TimeOver: boolean;\r\n CreatedUserName: string;\r\n AssignmentDateTime: string;\r\n DriverAssignmentStatus: DriverAssignmentStatus;\r\n IsPickUp: boolean;\r\n public DeliveryCustomerPrintTimeCode: number;\r\n DriverId: number;\r\n}\r\nexport class LastInvoiceInformation {\r\n public Code: number;\r\n public Amount: number;\r\n public DelinoInvoiceCount: number;\r\n public DayOfWeek: string;\r\n}\r\nexport class DriverAssignment extends EntityBase {\r\n public InvoiceId: number;\r\n public DriverId: number;\r\n public Invoice: AssignInvoiceViewModel;\r\n public DeliveredDateTime?: Date;\r\n public DriverReturnDate: Date;\r\n public DriverDisplayName : string;\r\n}\r\nexport class DriverAssignmentInvoices {\r\n DriverId: number;\r\n SelectedInvoices: number[];\r\n}\r\nexport class InvoiceItem extends EntityBase {\r\n public Index: number;\r\n public Quantity: number;\r\n public NewQuantity: number;\r\n public Free: boolean;\r\n public UnitPrice: number;\r\n public Price: number;\r\n public TotalPrice: number;\r\n public ItemTotal: number;\r\n public UnitKind?: number;\r\n public UnitDiscount: number;\r\n public AdditiveUnitDiscount: number;\r\n public AdditiveServiceUnitDiscount: number;\r\n public TotalDiscount: number;\r\n public RowDiscountPrice: number;\r\n public UnitService: number;\r\n public UnitTax: number;\r\n public UnitToll: number;\r\n public UnitAdditive: number;\r\n public UnitAdditiveApplyTaxPrice: number;\r\n public UnitAdditiveServicePrice: number;\r\n public UnitAdditiveRowDiscountPrice: number;\r\n public Description: string;\r\n public ApplyService: boolean;\r\n public ApplyTax: boolean;\r\n public ItemId: number;\r\n public ItemTitle: string;\r\n //public Item: Item;\r\n public InvoiceId: number;\r\n public InvoiceCode: number;\r\n public CategoryId?: number;\r\n public ParentCategoryId?: number;\r\n public GoodsId?: number;\r\n public ItemDependencyTypeCode?: number;\r\n public IsDependent: boolean;\r\n public Ingredients: string;\r\n public Ingredients_En: string;\r\n public Additives: InvoiceItemAdditive[];\r\n public Descriptions: InvoiceItemDescription[];\r\n public Tax: number;\r\n public Toll: number;\r\n public Service: number;\r\n public PackingPrice: number;\r\n public RowDiscount: number;\r\n public additivePrice: number;\r\n public showPercent: boolean;\r\n public IsClubItem: boolean;\r\n public PrintDisplayOrder: number;\r\n public SaleMethodBranchId: number;\r\n public CookingTime: number;\r\n public OrganizationalDiscount: number;\r\n public IsOrganizationalDiscount = false;\r\n constructor() {\r\n super();\r\n this.Index = 0;\r\n this.PrintDisplayOrder = 0;\r\n this.IsClubItem = false;\r\n this.AdditiveUnitDiscount = 0;\r\n this.UnitAdditiveRowDiscountPrice = 0;\r\n this.additivePrice = 0;\r\n this.Quantity = 0;\r\n this.Free = false;\r\n this.TotalPrice = 0;\r\n this.UnitPrice = 0;\r\n this.UnitDiscount = 0;\r\n this.RowDiscountPrice = 0;\r\n this.UnitService = 0;\r\n this.UnitTax = 0;\r\n this.UnitToll = 0;\r\n this.UnitAdditive = 0;\r\n this.Description = \"\";\r\n this.ApplyService = false;\r\n this.ApplyTax = false;\r\n this.ItemId = 0;\r\n // this.Item = new Item();\r\n this.InvoiceId = 0;\r\n this.Additives = [];\r\n this.Descriptions = [];\r\n this.IsDependent = false;\r\n this.Tax = 0;\r\n this.Toll = 0;\r\n this.PackingPrice = 0;\r\n this.RowDiscount = 0;\r\n this.RowDiscountPrice = 0;\r\n this.CookingTime = 0;\r\n this.OrganizationalDiscount = null;\r\n }\r\n}\r\nexport class InvoiceItemAdditive extends EntityBase {\r\n public Index: number;\r\n public UnitPrice: number;\r\n public MainPrice: number;\r\n public UnitTax: number;\r\n public UnitToll: number;\r\n public UnitService: number;\r\n public UnitRowDiscount: number;\r\n public RowDiscount: number;\r\n public UnitDiscount: number;\r\n public qty: number;\r\n public ApplyService: boolean;\r\n public ApplyTax: boolean;\r\n public InvoiceItemId: number;\r\n public AdditiveId: number;\r\n public AdditiveTitle: string;\r\n public Tax: number;\r\n public Toll: number;\r\n public Service: number;\r\n public PackingPrice: number;\r\n public RowDiscountPrice: number;\r\n}\r\nexport class InvoiceItemDescription extends EntityBase {\r\n public InvoiceItemId: number;\r\n public DescriptionId: number;\r\n public DescriptionTitle: string;\r\n}\r\nexport class InvoiceReceiptPaymentEntry {\r\n public Amount: number;\r\n public ReceiptPaymentTypeId: number;\r\n public ReceiptPaymentTypeTitle: string;\r\n public ReceiptPaymentTypeCode: number;\r\n public PaymentMethodTitle: string;\r\n public PaymentMethodId: number;\r\n}\r\nexport class InvoiceItemDescriptionEntry {\r\n public DescriptionId: string;\r\n}\r\nexport class InvoiceItemAdditiveEntry {\r\n public AdditiveId: number;\r\n}\r\nexport class InvoiceItemEntry {\r\n public Id: number;\r\n public Quantity: number;\r\n public Price: number;\r\n public Descriptions: InvoiceItemDescriptionEntry[];\r\n public Additives: InvoiceItemAdditiveEntry[];\r\n}\r\nexport class InvoiceEntry {\r\n public Discount: number;\r\n public TotalService: number;\r\n public SalePriceTypeId: number;\r\n public TableId?: number;\r\n public WaiterId?: number;\r\n public ShippingCost: number;\r\n public ApplyTaxForService?: boolean;\r\n public Debit: number;\r\n public Credit: number;\r\n public Tip: number;\r\n public CustomerId: number;\r\n public AddressId?: number;\r\n public Description: string;\r\n public PayableTotal: number;\r\n public TotalDiscount: number;\r\n public DiscountPrice: number;\r\n public IsDiscountPercent: boolean;\r\n public PackingPrice: number;\r\n public StatusCode: number;\r\n public Items: InvoiceItem[];\r\n public SaleMethodBranchId: number;\r\n public SaleMethodBranch: SaleMethodBranchModel;\r\n public ReceiptPayments: ReceiptPaymentModel[];\r\n public BranchId: number;\r\n HasClub: boolean;\r\n constructor() {\r\n this.Discount = 0;\r\n this.StatusCode = 0;\r\n this.TotalService = 0;\r\n this.SalePriceTypeId = 0;\r\n this.TableId = null;\r\n this.WaiterId = null;\r\n this.ShippingCost = 0;\r\n this.ApplyTaxForService = null;\r\n this.Debit = 0;\r\n this.Credit = 0;\r\n this.PackingPrice = 0;\r\n this.Tip = 0;\r\n this.CustomerId = 0;\r\n this.AddressId = null;\r\n this.Description = \"\";\r\n this.PayableTotal = 0;\r\n this.Items = [];\r\n this.TotalDiscount = 0;\r\n this.DiscountPrice = 0;\r\n this.SaleMethodBranchId = 0;\r\n this.IsDiscountPercent = false;\r\n this.ReceiptPayments = [];\r\n this.BranchId = 0;\r\n }\r\n //public ReceiptPayments: InvoiceReceiptPaymentEntry[];\r\n}\r\nexport class InvoiceChangesLookup extends EntityBase {\r\n public InvoiceId: number;\r\n public Invoice: Invoice;\r\n public LookupId: number;\r\n public LookupCode: number;\r\n public Lookup: Lookup;\r\n public SaleMethodBranch: SaleMethodBranchModel;\r\n}\r\nexport class Rounding extends EntityBase {\r\n public Amount: number;\r\n public RoundingTypeId?: number;\r\n public RoundingTypeTitle: string;\r\n public RoundingTypeCode?: number;\r\n}\r\nexport class DriverAssignmentRead {\r\n public InvoiceId: number;\r\n public DriverId: number;\r\n public DriverAssignmentId: number;\r\n public Number: number;\r\n public NumberingInDate: number;\r\n public InvoiceTotal: number;\r\n public CustomerName: string;\r\n public FactorTime?: Date;\r\n public FactorStringTime: string;\r\n public ShippingAddress: string;\r\n public DriverName: string;\r\n public AllowCancelAssignment: boolean;\r\n public Status: DriverAssignmentStatus;\r\n public InvoiceAssignedStatus: InvoiceAssigned;\r\n public CreatedDate?: Date;\r\n public AssignmentDateTime: string;\r\n}\r\nexport enum InvoiceStatus {\r\n New = 0,\r\n Pending = 1,\r\n Ordering = 2,\r\n Clearing = 3,\r\n Cleared = 4,\r\n Assigned = 5,\r\n Cancelled = 6,\r\n Completed = 7,\r\n Deleted = 8,\r\n}\r\nexport enum InvoiceCommand {\r\n Save = 1,\r\n PreparationPrint = 2,\r\n CustomerPrint = 3,\r\n Clear = 4,\r\n ClearWithoutPrint = 5,\r\n Print = 6,\r\n Assign = 7,\r\n Unassign = 8,\r\n Cancel = 9,\r\n ReprintForPreparation = 10,\r\n ReprintForCustomer = 11,\r\n TemporaryRegister = 12,\r\n Delete = 13,\r\n MixClear = 20,\r\n PosPayment = 14,\r\n TabletPos = 15,\r\n CustomerTabletPrint = 16,\r\n ReceiptPrint = 17,\r\n CustomerFinancialPrint = 21,\r\n CustomerA5Print = 22,\r\n CustomerFinancialA5Print = 23,\r\n}\r\nexport enum DiscountTypeEnum {\r\n None = 0,\r\n HappyHour = 1,\r\n User = 2,\r\n Subscription = 4,\r\n Organization = 5,\r\n}\r\nexport enum ItemStateEnum {\r\n Increase = 1,\r\n Decrease = 2,\r\n Remove = 3,\r\n Clear = 4,\r\n NoAction = 5,\r\n}\r\nexport enum DriverAssignmentStatus {\r\n Preparing = 0,\r\n DelayInPreparation = 1,\r\n ExcessivePreparationDelay = 2,\r\n}\r\nexport enum InvoiceAssigned {\r\n Assigned,\r\n NotAssigned,\r\n}\r\nexport enum InvoiceChanges {\r\n Discount = 1,\r\n SalePriceType = 2,\r\n Table = 3,\r\n Waiter = 4,\r\n ShippingCost = 5,\r\n Service = 6,\r\n Debit = 7,\r\n Credit = 8,\r\n Tip = 9,\r\n Customer = 10,\r\n ShippingAddress = 11,\r\n ItemQuantityPositive = 12,\r\n ItemQuantityNegative = 13,\r\n ItemUnitPrice = 14,\r\n ItemAdditivePositive = 15,\r\n ItemAdditiveNegative = 16,\r\n ItemDescription = 17,\r\n ReceiptPayment = 18,\r\n Club = 19,\r\n PackingPrice = 20,\r\n SaleMethodBranchId = 21,\r\n BranchId = 22,\r\n}\r\nexport enum InvoicePayableChange {\r\n Positive = 1,\r\n Negative = 2,\r\n}\r\nexport enum InvoiceMode {\r\n Insert,\r\n Update,\r\n}\r\nexport class DriverAssignGetInvoiceViewModel {\r\n UntilDate: Date;\r\n}\r\nexport class CurrentTime {\r\n CurrentTimeServer: Date;\r\n}\r\n\r\nexport enum PaymentLinkState {\r\n Nothing = 0,\r\n SentLink = 10,\r\n DeliveredLink = 20,\r\n OpenFactorLink = 30,\r\n Paying = 40,\r\n Paid = 50,\r\n FailPayment = 60,\r\n}\r\nexport class InvoicePrintLocal {\r\n public NumberingInDate: number;\r\n public CreateDateTime: string;\r\n}\r\n\r\nexport class PosPaymentResponse {\r\n public IsSuccess: boolean;\r\n public Message: string;\r\n}\r\nexport class DeleteDriverAssignment {\r\n public Id: number;\r\n public BranchId: number;\r\n public DriverId: number;\r\n public FiscalYearId: number;\r\n public UnAssignmentDesceription: string;\r\n}\r\n","import { User, Branch, Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { SalePriceType } from \"../../catalog/model/sale-price-type.model\";\r\nimport { CustomerAddress, Customer } from \"../../parties/model/customer.model\";\r\nimport { SaleMethodBranchModel } from \"../../sales/model/sale-method-branch.model\";\r\nimport { TableRead } from \"../../salons/model/salon.model\";\r\nimport { InvoiceEntry, InvoiceChangesLookup, DriverAssignment, InvoiceItem, InvoiceItemAdditive, InvoiceItemDescription } from \"./invoice.model\";\r\nimport { ReceiptPaymentModel } from \"./receiptpayment.model\";\r\nimport { DepositHistoryModel } from \"../../catalog/model/deposit.model\";\r\n\r\nexport class InvoiceHistory extends EntityBase {\r\n public InvoiceId?: number;\r\n public OriginalValue: InvoiceEntry;\r\n public CommandId?: number;\r\n public CommandTitle: string;\r\n public CommandCode?: number;\r\n public ChangesTitle: string;\r\n public Changes: InvoiceChangesLookup[];\r\n public PayableChangeId?: number;\r\n public PayableChangeTitle: string;\r\n public PayableChangeCode?: number;\r\n public NumberOfGuests: number;\r\n public Description: string;\r\n public TaxRate: number;\r\n public TollRate: number;\r\n public ServiceRate: number;\r\n public ServiceTax: number;\r\n public posPaymentIndex: number;\r\n public ApplyTaxForService: boolean;\r\n public ApplyTaxForShippingCost: boolean;\r\n public IgnoreService: boolean;\r\n public IgnoreShippingCost: boolean;\r\n public PhoneId?: number;\r\n public PhoneNumber: string;\r\n public AddressId?: number;\r\n public CustomerAddres: string;\r\n public CustomerAddress: CustomerAddress;\r\n public Customer: Customer;\r\n public ShippingCost: number;\r\n public ShippingCostTax: number;\r\n public CourierShippingCost: number;\r\n public StatusId?: number;\r\n public StatusTitle: string;\r\n public StatusCode?: number;\r\n public TotalNet: number;\r\n public TotalService: number;\r\n public TotalTax: number;\r\n public TotalToll: number;\r\n public Discount: number;\r\n public TotalDiscount: number;\r\n public DiscountPrice: number;\r\n public IsDiscountPercent: boolean;\r\n public Total: number;\r\n public WebId?: number;\r\n public RoundingAmount: number;\r\n public RoundingTypeId?: number;\r\n public RoundingTypeTitle: string;\r\n public RoundingTypeCode?: number;\r\n public PayableTotal: number;\r\n public Debit: number;\r\n public Credit: number;\r\n public Tip: number;\r\n public DriverAssingDate?: string;\r\n public DriverReturnDate?: Date;\r\n public NumberingInDate: number;\r\n public User: User;\r\n public WaiterId?: number;\r\n public WaiterName: string;\r\n public CustomerId: number;\r\n public CustomerLastName: string;\r\n public CustomerName: string;\r\n public CustomerNumber?: number;\r\n public CustomerDisplayName: string;\r\n public TableId?: number;\r\n public TableTitle: string;\r\n public SalonTitle: string;\r\n public TableRead: TableRead;\r\n public SaleMethodBranch: SaleMethodBranchModel;\r\n public SaleMethodNatureCode?: number;\r\n public SaleMethodBranchId: number;\r\n public SaleMethodBranchTitle: string;\r\n public CreatedUserName: string;\r\n public BranchId: number;\r\n public selected: boolean;\r\n public ModifiedDateTime: string;\r\n public ShamsiDateTime: string;\r\n public DateTime: string;\r\n public Branch: Branch;\r\n public SalePriceTypeId: number;\r\n public SalePriceType: SalePriceType;\r\n public DriverAssignments: DriverAssignment;\r\n public ReceiptPayments: ReceiptPaymentModel[];\r\n public Items: InvoiceItemHistory[];\r\n public Cleared: boolean;\r\n public Completed: boolean;\r\n public Code: number;\r\n public TabId: string;\r\n public SaleMethodId: number;\r\n public PaymentMethodTypeId: number;\r\n public PaymentMethodTypeIndex: number;\r\n public HasChange: boolean;\r\n public SalonId?: number;\r\n public Command: Lookup;\r\n public Status: Lookup;\r\n public DeliveryCustomerPrintTimeCode: number;\r\n public PreparationPrintCount: number;\r\n public CustomerPrintCount: number;\r\n public LastInvoiceCode: number;\r\n public LastInvoiceAmount: number;\r\n public SettlementId: number;\r\n public HasLocalPrtinter: boolean;\r\n public FiscalYearId: number;\r\n public Year?: number;\r\n public SettlementRefrenceCode: number;\r\n public IsValidRemain?: boolean;\r\n public PackingPrice: number;\r\n public DepositHistory: DepositHistoryModel;\r\n SalePriceTypeTitle: string;\r\n public ClearedUserId?: number;\r\n public DiscountType?: number;\r\n public ClearedUserName?: string;\r\n constructor() {\r\n super();\r\n this.TotalToll = 0;\r\n this.SalePriceTypeTitle = \"\";\r\n this.Id = 0;\r\n this.SettlementRefrenceCode = null;\r\n this.IsValidRemain = null;\r\n this.SettlementId = null;\r\n this.HasLocalPrtinter = null;\r\n this.FiscalYearId = null;\r\n this.Year = null;\r\n this.HasChange = null;\r\n this.SalonId = null;\r\n this.DeliveryCustomerPrintTimeCode = null;\r\n this.PreparationPrintCount = null;\r\n this.LastInvoiceCode = null;\r\n this.SaleMethodId = null;\r\n this.PaymentMethodTypeId = null;\r\n this.PaymentMethodTypeIndex = null;\r\n this.TableRead = null;\r\n this.SaleMethodBranch = null;\r\n this.SaleMethodNatureCode = null;\r\n this.SaleMethodBranchTitle = null;\r\n this.ModifiedDateTime = null;\r\n this.ShamsiDateTime = null;\r\n this.DriverAssignments = null;\r\n this.ModifiedDateTime = null;\r\n this.DateTime = null;\r\n this.SalonTitle = \"\";\r\n this.TableTitle = \"\";\r\n this.CustomerDisplayName = \"\";\r\n this.CustomerLastName = \"\";\r\n this.WaiterName = \"\";\r\n this.LastInvoiceAmount = 0;\r\n this.DiscountPrice = 0;\r\n this.OriginalValue = null;\r\n this.CreatedUserName = \"\";\r\n this.CommandId = null;\r\n this.CommandTitle = \"\";\r\n this.CommandCode = 0;\r\n this.Changes = [];\r\n this.PayableChangeId = null;\r\n this.PayableChangeTitle = \"\";\r\n this.PayableChangeCode = null;\r\n this.NumberOfGuests = 0;\r\n this.Description = \"\";\r\n this.TaxRate = 0;\r\n this.TollRate = 0;\r\n this.ServiceRate = 0;\r\n this.ServiceTax = 0;\r\n this.ApplyTaxForService = false;\r\n this.ApplyTaxForShippingCost = false;\r\n this.IgnoreService = false;\r\n this.IgnoreShippingCost = false;\r\n this.IsDiscountPercent = true;\r\n this.PhoneId = null;\r\n this.PhoneNumber = \"\";\r\n this.AddressId = null;\r\n this.CustomerAddress = null;\r\n this.CustomerAddres = \"\";\r\n this.ShippingCost = 0;\r\n this.ShippingCostTax = 0;\r\n this.CourierShippingCost = 0;\r\n this.StatusId = null;\r\n this.StatusTitle = \"\";\r\n this.StatusCode = 0;\r\n this.TotalNet = 0;\r\n this.TotalService = null;\r\n this.TotalTax = 0;\r\n this.Discount = 0;\r\n this.TotalDiscount = 0;\r\n this.Total = 0;\r\n this.RoundingAmount = 0;\r\n this.RoundingTypeId = null;\r\n this.RoundingTypeTitle = \"\";\r\n this.RoundingTypeCode = null;\r\n this.PayableTotal = 0;\r\n this.Debit = 0;\r\n this.Credit = 0;\r\n this.Tip = 0;\r\n this.DriverAssingDate = null;\r\n this.InvoiceId = null;\r\n this.DriverReturnDate = null;\r\n this.NumberingInDate = 0;\r\n this.WaiterId = null;\r\n this.CustomerId = 0;\r\n this.CustomerName = \"\";\r\n this.CustomerNumber = null;\r\n this.TableId = null;\r\n this.SaleMethodBranchId = 0;\r\n this.BranchId = 0;\r\n this.SalePriceTypeId = 0;\r\n this.ReceiptPayments = [];\r\n this.Items = [];\r\n this.Cleared = false;\r\n this.Completed = false;\r\n this.Code = 0;\r\n this.TabId = \"\";\r\n this.CustomerPrintCount = 0;\r\n this.PreparationPrintCount = 0;\r\n this.PackingPrice = 0;\r\n this.posPaymentIndex = null;\r\n this.Branch = new Branch();\r\n this.DepositHistory = new DepositHistoryModel();\r\n this.ClearedUserId = 0;\r\n this.ClearedUserName = \"\";\r\n }\r\n}\r\nexport class InvoiceItemHistory extends EntityBase {\r\n public Index: number;\r\n public Quantity: number;\r\n public QuantityUp: boolean;\r\n public QuantityDown: boolean;\r\n public DescriptionChange: boolean;\r\n public Free: boolean;\r\n public UnitPrice: number;\r\n public Price: number;\r\n public TotalPrice: number;\r\n public TotalPriceUp: boolean;\r\n public TotalPriceDown: boolean;\r\n public ItemTotal: number;\r\n public UnitDiscount: number;\r\n public AdditiveUnitDiscount: number;\r\n public AdditiveServiceUnitDiscount: number;\r\n public TotalDiscount: number;\r\n public RowDiscountPrice: number;\r\n public RowDiscountPriceUP: boolean;\r\n public RowDiscountPriceDown: boolean;\r\n public UnitService: number;\r\n public UnitTax: number;\r\n public UnitToll: number;\r\n public UnitAdditive: number;\r\n public UnitAdditiveApplyTaxPrice: number;\r\n public UnitAdditiveServicePrice: number;\r\n public UnitAdditiveRowDiscountPrice: number;\r\n public Description: string;\r\n public ApplyService: boolean;\r\n public ApplyTax: boolean;\r\n public ItemId: number;\r\n public ItemTitle: string;\r\n //public Item: Item;\r\n public InvoiceId: number;\r\n public CategoryId?: number;\r\n public ParentCategoryId?: number;\r\n public GoodsId?: number;\r\n public IsDependent: boolean;\r\n public Ingredients: string;\r\n public Ingredients_En: string;\r\n public Additives: InvoiceItemAdditive[];\r\n public Descriptions: InvoiceItemDescription[];\r\n public Tax: number;\r\n public Toll: number;\r\n public Service: number;\r\n public PackingPrice: number;\r\n public RowDiscount: number;\r\n public additivePrice: number;\r\n public showPercent: boolean;\r\n\r\n constructor() {\r\n super();\r\n this.Index = 0;\r\n this.AdditiveUnitDiscount = 0;\r\n this.UnitAdditiveRowDiscountPrice = 0;\r\n this.additivePrice = 0;\r\n this.Quantity = 0;\r\n this.Free = false;\r\n this.TotalPrice = 0;\r\n this.UnitPrice = 0;\r\n this.UnitDiscount = 0;\r\n this.RowDiscountPrice = 0;\r\n this.UnitService = 0;\r\n this.UnitTax = 0;\r\n this.UnitToll = 0;\r\n this.UnitAdditive = 0;\r\n this.Description = \"\";\r\n this.ApplyService = false;\r\n this.ApplyTax = false;\r\n this.ItemId = 0;\r\n // this.Item = new Item();\r\n this.InvoiceId = 0;\r\n this.Additives = [];\r\n this.Descriptions = [];\r\n this.IsDependent = false;\r\n this.Tax = 0;\r\n this.Toll = 0;\r\n this.PackingPrice = 0;\r\n this.RowDiscount = 0;\r\n this.RowDiscountPrice = 0;\r\n }\r\n}\r\nexport class InvoiceHistoryCompare extends InvoiceHistory {\r\n TotalTaxup: boolean;\r\n TotalTaxDown: boolean;\r\n TotalServiceup: boolean;\r\n TotalServiceDown: boolean;\r\n TotalDiscountup: boolean;\r\n TotalDiscountDown: boolean;\r\n ShippingCostup: boolean;\r\n ShippingCostDown: boolean;\r\n PackingPriceup: boolean;\r\n PackingPriceDown: boolean;\r\n PayableTotalup: boolean;\r\n PayableTotalDown: boolean;\r\n Totalup: boolean;\r\n TotalDown: boolean;\r\n Debitup: boolean;\r\n DebitDown: boolean;\r\n Creditup: boolean;\r\n CreditDown: boolean;\r\n DescriptionChange: boolean;\r\n}\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { CategoryPopupState, ItemDependency, StockInWebKind } from \"../../catalog/model/item.model\";\r\n\r\nexport class OrderItemCategory extends EntityBase {\r\n public Title: string;\r\n public Color: string;\r\n public ApplyTax?: boolean;\r\n public ApplyService?: boolean;\r\n public PrintDisplayOrder: number;\r\n public ParentId?: number;\r\n public TaxApplyTypeId?: number;\r\n public TaxApplyTypeTitle: string;\r\n public TaxApplyTypeCode?: number;\r\n public ServiceApplyTypeId?: number;\r\n public ServiceApplyTypeTitle: string;\r\n public ServiceApplyTypeCode?: number;\r\n public StockInWeb: StockInWebKind;\r\n public ProtelCode: boolean;\r\n public Image: string;\r\n public Items: OrderItem[];\r\n public categoryPopupState: CategoryPopupState;\r\n constructor() {\r\n super();\r\n this.Title = \"\";\r\n this.Color = \"\";\r\n this.ApplyTax = false;\r\n this.ApplyService = false;\r\n this.categoryPopupState = CategoryPopupState.AllAvailable;\r\n this.PrintDisplayOrder = 0;\r\n this.ParentId = 0;\r\n this.Items = [];\r\n }\r\n}\r\nexport class OrderItem extends EntityBase {\r\n public Title: string;\r\n public Code: number;\r\n public GoodsId?: number;\r\n public Title_En: string;\r\n public Description: string;\r\n public Description_En: string;\r\n public ApplyTax?: boolean;\r\n public ApplyService?: boolean;\r\n public Ingredients: string;\r\n public ItemTypeId: number;\r\n public ItemTypeTitle: string;\r\n public Ingredients_En: string;\r\n public CookingTime: number;\r\n public Calories: number;\r\n public CategoryId?: number;\r\n public MeasurementUnitId: number;\r\n public MeasurementUnitTitle: string;\r\n public TitleDisabled: boolean;\r\n public TaxApplyTypeId?: number;\r\n public TaxApplyTypeTitle: string;\r\n public TaxApplyTypeCode?: number;\r\n public ServiceApplyTypeId?: number;\r\n public ServiceApplyTypeTitle: string;\r\n public ServiceApplyTypeCode?: number;\r\n public StockInWeb?: StockInWebKind;\r\n public DetaultPrice: number;\r\n public Barcodes: ItemBarcode[];\r\n public Dependents: ItemDependency[];\r\n public Prices: ItemPrice[];\r\n public Branches: ItemBranch[];\r\n public ItemDescription: OrderDescription[];\r\n public ItemChild: OrderItem[];\r\n public ItemRelative: OrderItem[];\r\n public Additive: OrderAdditive[];\r\n public InvoiceQty: number;\r\n public IsDependent: boolean;\r\n public IsClubItem: boolean;\r\n public UnitKind?: number;\r\n public Tax: number;\r\n public Toll: number;\r\n public PackingPrice: number;\r\n public PrintDisplayOrder: number;\r\n public activeItem: boolean;\r\n public DataDaysWeekTitle: string | string[];\r\n public notAvailableGoodIds: number[];\r\n public favoriteIndex: number = -1;\r\n public OrganizationalDiscount = null;\r\n public IsOrganizationalDiscount = false;\r\n constructor() {\r\n super();\r\n this.favoriteIndex = -1;\r\n this.activeItem = false;\r\n this.Barcodes = [];\r\n this.Dependents = [];\r\n this.Prices = [];\r\n this.Branches = [];\r\n this.Additive = [];\r\n this.ItemChild = [];\r\n this.ItemDescription = [];\r\n this.IsDependent = false;\r\n this.Tax = 0;\r\n this.PrintDisplayOrder = 0;\r\n this.Toll = 0;\r\n this.PackingPrice = 0;\r\n }\r\n}\r\nexport class OrderDescription extends EntityBase {\r\n public Id: number;\r\n public Title: string;\r\n public ItemId: string;\r\n public IsSelected: boolean;\r\n}\r\nexport class OrderAdditive extends EntityBase {\r\n public Id: number;\r\n public Title: string;\r\n public ItemId: string;\r\n public Price: ItemPrice[];\r\n public Prices: ItemPrice[];\r\n public MainPrice: number;\r\n public SalePriceTypeId: number;\r\n public IsDefault: boolean;\r\n public IsSelected: boolean;\r\n public ApplyTax: boolean;\r\n public ApplyService: boolean;\r\n public Branches: number[];\r\n}\r\n\r\nexport class ItemBarcode extends EntityBase {\r\n public Title: string;\r\n public Code: string;\r\n}\r\nexport class ItemPrice extends EntityBase {\r\n public Price: number;\r\n public IsDefault: boolean;\r\n public SalePriceTypeId: number;\r\n public ItemId: number;\r\n}\r\nexport class ItemBranch extends EntityBase {\r\n public BranchId: number;\r\n public IsActive: boolean;\r\n public BranchTitle: string;\r\n public Selected: boolean;\r\n public StockInWeb: StockInWebKind;\r\n}\r\n","export enum OrderSizeEnum {\r\n OrderPage = 1,\r\n Item = 2,\r\n }","/// این مدل کار مدیریت فعال شدن عملگرهای فاکتور را انجام میدهد\r\nexport class OrderActionControlModel {\r\n TemporaryRegisteringInvoice: boolean;\r\n SaveInvoice: boolean;\r\n PreparationPrintInvoice: boolean;\r\n CustomerPrintInvoice: boolean;\r\n KitchenPrintInvoice: boolean;\r\n ClearedWithoutPrintingInvoice: boolean;\r\n ClearingInvoice: boolean;\r\n MixClearing: boolean;\r\n clearnoprint: boolean;\r\n advanveclear: boolean;\r\n ChangePrintType: boolean;\r\n}\r\nexport enum OrderActionEnum {\r\n TemporaryRegisteringInvoice = 1,\r\n SaveInvoice = 2,\r\n PreparationPrintInvoice = 3,\r\n CustomerPrintInvoice = 4,\r\n KitchenPrintInvoice = 5,\r\n ClearedWithoutPrintingInvoice = 6,\r\n ClearingInvoice = 7,\r\n MixClearing = 8,\r\n clearnoprint = 9,\r\n advanveclear = 10,\r\n ChangePrintType = 11,\r\n}\r\n\r\n","export class OrderSettingModel {\r\n public IsShowDescriptionBox: boolean;\r\n public IsShowTotalBox: boolean;\r\n public IsShowActionBox: boolean;\r\n public showComplate: boolean;\r\n public showPercent: boolean;\r\n public changeView: boolean;\r\n public changeCatView: boolean;\r\n public hideFastAccess: boolean;\r\n public OrderSize: OrderSizeModel[];\r\n public OrderDescriptionBox: boolean;\r\n public salonTableSize: boolean;\r\n constructor() {\r\n this.IsShowTotalBox = false;\r\n this.IsShowDescriptionBox = false;\r\n this.IsShowActionBox = false;\r\n this.showComplate = true;\r\n this.showPercent = false;\r\n this.changeView = false;\r\n this.changeCatView = false;\r\n this.hideFastAccess = false;\r\n this.salonTableSize = true;\r\n }\r\n}\r\nexport class OrderSizeModel {\r\n width: number;\r\n height: number;\r\n top: number;\r\n left: number;\r\n key: number;\r\n saleBranchId: number;\r\n}\r\n","export enum PaymentEnum{\r\n Debit = 1,\r\n Credit = 2,\r\n Tip = 3,\r\n}","\r\nexport enum PaymentMethodEnum {\r\n Cash = 1,\r\n Pos = 2,\r\n TabletPos = 5,\r\n }\r\n ","import { Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { PaymentMethodLookUp } from \"./payment.lookup\";\r\n\r\nexport class ReceiptPaymentModel extends EntityBase {\r\n Index: number;\r\n Amount: number;\r\n TransactionNumber: string;\r\n PaymentMethod?: PaymentMethodLookUp[];\r\n PaymentMethodId: number;\r\n PaymentMethodTitle: string;\r\n ReceiptPaymentType?: Lookup[];\r\n ReceiptPaymentTypeCode?: number;\r\n ReceiptPaymentTypeId?: number;\r\n ReceiptPaymentTypeTitle: string;\r\n BranchId: number;\r\n CustomerId?: number;\r\n SettlementId: number;\r\n InvoiceId: number;\r\n ShowPospayment: boolean;\r\n CustomerTitle: string;\r\n CustomerCode: number;\r\n IsRemain: boolean;\r\n PaymentMethodCode?: number;\r\n posPaymentIndex: number;\r\n DebitTotal?: number;\r\n RowVersion: any;\r\n NonBalance: boolean;\r\n Comment: string;\r\n UntilDateClear: Date;\r\n hasTerminal: boolean;\r\n constructor() {\r\n super();\r\n this.Amount = 0;\r\n this.Comment = \"\";\r\n this.RowVersion = null;\r\n this.UntilDateClear = null;\r\n this.Index = 0;\r\n this.ShowPospayment = false;\r\n this.TransactionNumber = \"\";\r\n this.PaymentMethod = null;\r\n this.PaymentMethodId = null;\r\n this.ReceiptPaymentType = null;\r\n this.ReceiptPaymentTypeId = null;\r\n this.ReceiptPaymentTypeTitle = null;\r\n this.BranchId = null;\r\n this.CustomerId = null;\r\n this.SettlementId = null;\r\n this.InvoiceId = null;\r\n this.CustomerTitle = \"\";\r\n this.ShowPospayment = null;\r\n this.CustomerCode = null;\r\n this.IsRemain = false;\r\n this.DebitTotal = 0;\r\n this.NonBalance = false;\r\n }\r\n}\r\nexport enum ReceiptPaymentTypeEnum {\r\n Payment = 1,\r\n Receipt = 2,\r\n}\r\n","\r\nexport enum SaleMethodBranchItemEnum {\r\n ItemCategory = 1,\r\n}\r\n","import { Customer } from \"../../parties/model/customer.model\";\r\n\r\nexport class SmartClubModel {\r\n codeOrMobile: string;\r\n posUserId: string;\r\n orderType: number;\r\n retry: boolean;\r\n usedCredit: number;\r\n usedDiscountPercent: number;\r\n factorId: number;\r\n HasError: boolean;\r\n ErrorMessage: string;\r\n BranchId?: number;\r\n public HasClub: boolean;\r\n public ClubCode: number;\r\n public InvoiceId: number;\r\n usedProductDiscounts: UsedProductDiscountModel[];\r\n constructor() {\r\n this.codeOrMobile = \"\";\r\n this.posUserId = null;\r\n this.orderType = 0;\r\n this.retry = false;\r\n this.usedCredit = 0;\r\n this.usedDiscountPercent = 0;\r\n this.factorId = 0;\r\n this.HasError = false;\r\n this.HasClub = false;\r\n this.ClubCode = null;\r\n this.InvoiceId = null;\r\n this.usedProductDiscounts = [];\r\n this.BranchId = null;\r\n }\r\n}\r\nexport class UsedProductDiscountModel {\r\n ProductId: number;\r\n UsedCount: number;\r\n}\r\nexport class ClubViewModel {\r\n Customer: Customer;\r\n CustomerInquiryResponseStatus: number;\r\n /// \r\n /// مبلغ کل اعتبار کاربر\r\n /// این قیمت فقط جهت اطلاع است و کاربرد دیگری ندارد\r\n /// \r\n public Wallet: number; //\r\n /// \r\n /// مبلغ اعتبار کاربر که در این لحظه میتواند استفاده کند\r\n /// \r\n public AvailableCredit: number; //\r\n /// \r\n /// لاک نامبر\r\n /// \r\n public BranchCloudConsumerId: number; //\r\n public Message: string; //\r\n public DiscountPercent: number; //\r\n /// \r\n /// سقف تخفیف درصدی\r\n /// \r\n public MaxUsablePriceFromDiscountPercent: number; //\r\n /// \r\n /// حداقل مبلغ فاکتور جهت استفاده تخفیف درصدی\r\n /// \r\n public MinFactorPriceToActiveDiscountPercent: number; //\r\n /// \r\n /// لیست محصولات همراه با میزان تخفیف\r\n /// \r\n public ProductDiscounts: ProductDiscount[]; //\r\n public UsedProductDiscount: UsedProductDiscount[]; //\r\n public DiscountPrice: number; //\r\n public UseCreditPrice: number; //\r\n public usedDiscountPercent: number; //\r\n public usedCredit: number; //\r\n public isDisableusedCredit: boolean; //\r\n public CreditPrice: number; //\r\n public ClubTotalDiscount: number; //\r\n public OperatorPhone: string;\r\n public Code: string; //\r\n Phone: string;\r\n LongMobile: string;\r\n UsedCreditResponseId: string;\r\n CustomerName: string;\r\n PosCustomerOriginalId?: number;\r\n constructor() {\r\n this.AvailableCredit = 0;\r\n this.CreditPrice = 0;\r\n this.OperatorPhone = \"\";\r\n this.UseCreditPrice = 0;\r\n this.usedDiscountPercent = 0;\r\n this.usedCredit = 0;\r\n this.ClubTotalDiscount = 0;\r\n this.DiscountPrice = 0;\r\n this.BranchCloudConsumerId = null;\r\n this.Code = null;\r\n this.DiscountPercent = null;\r\n this.MaxUsablePriceFromDiscountPercent = null;\r\n this.Message = null;\r\n this.MinFactorPriceToActiveDiscountPercent = null;\r\n this.Phone = null;\r\n this.ProductDiscounts = null;\r\n this.Wallet = null;\r\n }\r\n}\r\nexport class ProductDiscount {\r\n public ProductId: number;\r\n public Percentage: number;\r\n public QuantityRemain: number;\r\n}\r\nexport class UsedProductDiscount {\r\n public ProductId: number;\r\n public UsedCount: number;\r\n}\r\n","export enum UpdateClientFactorState {\r\n /// \r\n /// دریافت شده توسط رستوران\r\n /// \r\n GetByRest = 1,\r\n /// \r\n /// شناسایی شده \r\n /// \r\n Detected = 2,\r\n /// \r\n /// ثبت در لیست فاکتورها\r\n /// \r\n InsertInFactorList = 3,\r\n /// \r\n /// پرینت به آشپزخانه\r\n /// \r\n PrintToKitchen = 4,\r\n /// \r\n /// ارسال به مشتری \r\n /// \r\n SentToCustomer = 5,\r\n /// \r\n /// کنسل شده - عدم تایید آدرس\r\n /// \r\n CanceledForAddress = 6,\r\n /// \r\n /// کنسل شده - عدم موجودی غذا \r\n /// \r\n CancelForNoFoodRemain = 7,\r\n /// \r\n /// کنسل شده - توسط مشتری \r\n /// \r\n CancelByCustomer = 8,\r\n /// \r\n /// نیاز به تماس - اختالف قیمت با منو \r\n /// \r\n Price_NeedToCall = 9,\r\n /// \r\n /// نیاز به تماس - مشکل آدرس \r\n /// \r\n Adress_NeedToCall = 10,\r\n /// \r\n /// نیاز به تماس - هزینه پیک \r\n /// \r\n DeliveryPrice_NeedToCall = 11,\r\n /// \r\n /// نیاز به تماس - غذا تمام شده \r\n /// \r\n NotStock_NeedToCall = 12,\r\n /// \r\n /// نیاز به تماس - اطالعات مشتری \r\n /// \r\n CustomerData_NeedToCall = 13,\r\n /// \r\n /// نیاز به تماس \r\n /// \r\n Other_NeedToCall = 14\r\n }\r\n","import { DepositComponent } from \"./orderpage/item/deposit/deposit.component\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { OrderPageComponent } from \"./orderpage/orderpage.component\";\r\nimport { ItemComponent } from \"./orderpage/item/desktop/item.component\";\r\nimport { FastAccessComponent } from \"./orderpage/fastaccess/fastaccess.component\";\r\nimport { OrderHeaderComponent } from \"./orderpage/header/orderheader.component\";\r\nimport { CustomerFastAccessComponent } from \"./orderpage/fastaccess/customerfastaccess/customerfastaccess.component\";\r\nimport { SalonFastAccessComponent } from \"./orderpage/fastaccess/salonfastaccess/salonfastaccess.component\";\r\nimport { CustomerOrderComponent } from \"./customerorder/customerorder.component\";\r\nimport { CustomerAddressOrderComponent } from \"./customerorder/customeraddressorder/customeraddressorder.component\";\r\nimport { CustomerNumberOrderComponent } from \"./customerorder/customernumberorder/customernumberorder.component\";\r\nimport { DescriptionComponent } from \"./orderpage/item/description/description.component\";\r\nimport { InvoicesComponent } from \"./invoices/invoices.component\";\r\nimport { PagerFastAccessComponent } from \"./orderpage/fastaccess/pagerfastaccess/pagerfastaccess.component\";\r\nimport { DriverAssignmentFastAccessComponent } from \"./orderpage/fastaccess/driverassignmentfastaccess/driverassignmentfastaccess.component\";\r\nimport { WaiterFastAccessComponent } from \"./orderpage/fastaccess/waiterfastaccess/waiterfastaccess.component\";\r\nimport { InvoiceChangeFastAccess } from \"./orderpage/fastaccess/invoicechangefastaccess/invoicechangefastaccess.component\";\r\nimport { TotalPriceComponent } from \"./orderpage/invoice/totalprice/totalprice.component\";\r\nimport { NewCustomerOrderComponent } from \"./customerorder/newcustomerorder/newcustomerorder.component\";\r\nimport { CustomerDetailsOrderComponent } from \"./customerorder/customerdetailsorder/customerdetailsorder.component\";\r\nimport { ThemeModule } from \"projects/sepidz-web-framework-shell/src/lib/@theme/theme.module\";\r\nimport { PaymentComponent } from \"./orderpage/invoice/payment/payment.component\";\r\nimport { SalonOrderComponent } from \"./salonorder/desktop/salonorder.component\";\r\nimport { OrderFooterComponent } from \"./orderpage/footer/orderfooter.component\";\r\nimport { OrderInvoiceComponent } from \"./orderpage/invoice/desktop/invoice.component\";\r\nimport { AddressPhoneFormComponent } from \"./orderpage/fastaccess/address-phone-form/address-phone-form.component\";\r\nimport { SimpleMenuComponent } from \"./orderpage/item/desktop/contextment\";\r\nimport { ClubFastAccessComponent } from \"./orderpage/fastaccess/clubfastaccess/orderclubfastacces.component\";\r\nimport { OrderonlineComponent } from \"./orderonline/orderonline.component\";\r\nimport { CausecancelComponent } from \"./orderonline/causecancel/causecancel.component\";\r\nimport { SuccessOrderComponent } from \"./orderonline/success-order/success-order.component\";\r\nimport { CallSupportComponent } from \"./orderonline/call-support/call-support.component\";\r\nimport { ClubConfirmationComponent } from \"./orderpage/fastaccess/clubfastaccess/clubconfirmation/clubconfirmation.component\";\r\nimport { DriverAssignmentModule } from \"../driverassignment/driverassignment.module\";\r\nimport { PaymentLinkFastAccessComponent } from \"./orderpage/fastaccess/PaymentLinkFastAcceess/paymentlinkfastaccess.component\";\r\nimport { DateDialogComponent } from \"../dateDialog/dateDialog.component\";\r\nimport { CustomerPrintTemplateFormComponent } from \"./orderpage/invoice/customer-print-template-form/customer-print-template-form/customer-print-template-form.component\";\r\nimport { TabletPosService } from \"./providers/tabletpos.service\";\r\nimport { DelinoOfflineFactorcomponent } from \"./orderpage/fastaccess/delinoOfflineFactor/delinoofflinefactor.component\";\r\nimport { PreparationDeliveryTimeFormComponent } from \"./orderpage/invoice/preparation-delivery-time-form/preparation-delivery-time-form.component\";\r\nimport { DeliveredComponent } from \"./delivered/delivered.component\";\r\nimport { DepositMenuComponent } from \"./orderpage/item/deposit/deposit-menu.component\";\r\nimport { DepositSelectShowHideComponent } from \"./orderpage/item/deposit/deposit-select-show-hide/deposit-select-show-hide.component\";\r\nimport { ReserveOnlineComponent } from \"./reserve-online/reserve-online.component\";\r\nimport { FormatTimeFromBackendPipe } from \"./delivered/format-time-from-backend.pipe\";\r\nimport { ReserveOnlineSettingComponent } from \"./reserve-online/reserve-online-setting/reserve-online-setting.component\";\r\nimport { ReserveOnlineSettingMenuComponent } from \"./reserve-online/reserve-online-setting/reserve-online-setting-menu.component\";\r\nimport { ScrollingModule } from \"@angular/cdk/scrolling\";\r\nimport { PosScaleService } from \"./providers/pos-scale.service\";\r\n\r\nconst components = [\r\n CustomerAddressOrderComponent,\r\n CustomerNumberOrderComponent,\r\n CustomerOrderComponent,\r\n SalonOrderComponent,\r\n OrderPageComponent,\r\n OrderHeaderComponent,\r\n FastAccessComponent,\r\n ItemComponent,\r\n DescriptionComponent,\r\n TotalPriceComponent,\r\n CustomerPrintTemplateFormComponent,\r\n SalonFastAccessComponent,\r\n DriverAssignmentFastAccessComponent,\r\n CustomerFastAccessComponent,\r\n InvoicesComponent,\r\n PagerFastAccessComponent,\r\n WaiterFastAccessComponent,\r\n InvoiceChangeFastAccess,\r\n CustomerAddressOrderComponent,\r\n NewCustomerOrderComponent,\r\n CustomerDetailsOrderComponent,\r\n PaymentComponent,\r\n OrderFooterComponent,\r\n OrderInvoiceComponent,\r\n AddressPhoneFormComponent,\r\n SimpleMenuComponent,\r\n ClubFastAccessComponent,\r\n OrderonlineComponent,\r\n CausecancelComponent,\r\n SuccessOrderComponent,\r\n CallSupportComponent,\r\n ClubConfirmationComponent,\r\n PaymentLinkFastAccessComponent,\r\n DateDialogComponent,\r\n PreparationDeliveryTimeFormComponent,\r\n DelinoOfflineFactorcomponent,\r\n DepositComponent,\r\n DeliveredComponent,\r\n DepositMenuComponent,\r\n DepositSelectShowHideComponent,\r\n PreparationDeliveryTimeFormComponent,\r\n ReserveOnlineComponent,\r\n FormatTimeFromBackendPipe,\r\n ReserveOnlineSettingComponent,\r\n ReserveOnlineSettingMenuComponent,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, ThemeModule, DriverAssignmentModule, ScrollingModule],\r\n providers: [TabletPosService, PosScaleService],\r\n})\r\nexport class OrderModule {}\r\n","import { ChangeDetectorRef, Injectable, OnDestroy } from \"@angular/core\";\r\nimport { Customer, CustomerDetailInfoViewModel } from \"../parties/model/customer.model\";\r\nimport { Personnel } from \"../parties/model/personnel.model\";\r\nimport { OrderItem, OrderItemCategory } from \"./model/orderItemcategory.model\";\r\nimport { Branch, Lookup, User } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { SaleMethodBranchModel, SaleMethodNature } from \"../sales/model/sale-method-branch.model\";\r\nimport { DiscountTypeEnum, Invoice, InvoiceCommand, InvoiceItem, InvoiceStatus, ItemStateEnum, LastInvoiceInformation } from \"./model/invoice.model\";\r\nimport { AccountService, GridFilter, LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { OrderSettingModel } from \"./model/ordersetting.model\";\r\nimport { FormControl, FormGroup, UntypedFormControl, Validators } from \"@angular/forms\";\r\nimport { ActivePageEnum } from \"./model/activepage.enum\";\r\nimport { FastAccessEnum } from \"./model/fastaccessenum\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { delay, take, takeUntil, tap } from \"rxjs/operators\";\r\nimport { SplashScreenService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/SplashScreenService\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { Salon } from \"../salons/model/salon.model\";\r\nimport { PaymentMethodLookUp } from \"./model/payment.lookup\";\r\nimport { DialogType } from \"../../../../projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { SalePriceType } from \"../catalog/model/sale-price-type.model\";\r\nimport { BaseService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-service.component\";\r\nimport { RowState } from \"../../../../projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { ItemDependencyType } from \"./model/ItemOrder.model\";\r\nimport { ActionStateModel } from \"./model/actionstate.model\";\r\nimport { TabularService } from \"../../../../projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { PrintPolicy } from \"../prints/model/print-policy.model\";\r\nimport { PrintTemplate } from \"../prints/model/print-template.model\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { ChangeCachEnum } from \"./model/changecach.enum\";\r\nimport { BarCodeReaderFormat } from \"src/app/gnr/bar-code-reader-format/bar-code-reader-format.model\";\r\nimport { PrinterQueue } from \"./model/printerqueue.model\";\r\nimport { DepositModel, DepositPersonnelModel } from \"../catalog/model/deposit.model\";\r\nimport { DepositFormSettingModel } from \"./orderpage/item/deposit/depositformsetting.model\";\r\nimport { SaleMethodBranchItemEnum } from \"./model/salemethodbranchitem.enum\";\r\nimport { InvDailyWarehouse } from \"../inv/model/inv-daily-warehouse.model\";\r\nimport { CategoryPopupState, ItemBranch, StockInWebKind } from \"../catalog/model/item.model\";\r\nimport * as moment from \"moment\";\r\nimport { IndexedDbService } from \"projects/sepidz-web-framework/src/lib/services/indexed-db.service\";\r\nimport { FavoriteItem } from \"./model/favoriteitem.model\";\r\nimport { PosScaleService } from \"./providers/pos-scale.service\";\r\nimport { CustomerCategory } from \"../parties/model/customer-categories.model\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class OrderService extends BaseService implements OnDestroy {\r\n canSeeFavorites: boolean = false;\r\n public saleMethodBranch: SaleMethodBranchModel = new SaleMethodBranchModel();\r\n public changeSaleMethodBranch: SaleMethodBranchModel = new SaleMethodBranchModel();\r\n public invoiceChanged: boolean;\r\n public saleMethodBranchChanged: boolean = false;\r\n public PrintPolicy: PrintPolicy[];\r\n public PrintTemplate: PrintTemplate[];\r\n public itemChanged: boolean = false;\r\n public salePricePermission: boolean = false;\r\n public salons: Salon[] = [];\r\n salePriceType: SalePriceType[] = [];\r\n salePriceTypesAll: SalePriceType[] = [];\r\n public itemHasParent: OrderItem[];\r\n public customer: Customer;\r\n public DefultCustomer: Customer;\r\n public invoice: Invoice = new Invoice();\r\n public oldinvoice: Invoice;\r\n public waiters: Personnel[];\r\n public currentBranch: Branch;\r\n public Branches: Branch[] = [];\r\n public currentUser: User = JSON.parse(localStorage.getItem(\"current_User_Info\"));\r\n public itemCategoryList: OrderItemCategory[];\r\n public itemCategoryListAll: OrderItemCategory[];\r\n public selectedItemCategory: OrderItemCategory = new OrderItemCategory();\r\n public hideFastAccess: boolean;\r\n public selectedOrderItem: OrderItem = new OrderItem();\r\n public selectedOrderItemIndex: number;\r\n public selectedInvoiceItem: InvoiceItem = new InvoiceItem();\r\n public oldSaleMethodBranchId: number;\r\n public OrderSetting: OrderSettingModel = new OrderSettingModel();\r\n public saleMethodList: SaleMethodBranchModel[];\r\n public currentsaleMethodList: SaleMethodBranchModel[];\r\n public currentActivePage: ActivePageEnum;\r\n public defaultCustomerId: number;\r\n public DelinoInvoiceCount: number;\r\n public showHeader: boolean;\r\n customerFormIsShowBefore: boolean;\r\n /// برای باز و بسته شدن ساید منو\r\n _opened: boolean = false;\r\n selectedFastAccess: FastAccessEnum;\r\n // پرشدن نام گارسون در موبایل\r\n public waiterMobile: string;\r\n public waiterId: number;\r\n public SaleMethodBranchId: number;\r\n // تب جاری\r\n activePageEnum: typeof ActivePageEnum = ActivePageEnum;\r\n SaleMethodNature: typeof SaleMethodNature = SaleMethodNature;\r\n InvoiceStatus: typeof InvoiceStatus = InvoiceStatus;\r\n public currentSaleMethodNature: number;\r\n public cd: ChangeDetectorRef;\r\n public cd_Invoice: ChangeDetectorRef;\r\n public cd_Description: ChangeDetectorRef;\r\n public cd_DescKitchen: ChangeDetectorRef;\r\n public cd_DescCustomer: ChangeDetectorRef;\r\n public cd_Total: ChangeDetectorRef;\r\n public cd_Salons: ChangeDetectorRef;\r\n public cd_FastAccess: ChangeDetectorRef;\r\n public cd_FastAccessClub: ChangeDetectorRef;\r\n public cd_FastAccessCustomer: ChangeDetectorRef;\r\n public cd_FastAccessDriverAssignment: ChangeDetectorRef;\r\n public cd_FastAccessInvoiceChange: ChangeDetectorRef;\r\n public cd_FastAccessPager: ChangeDetectorRef;\r\n public cd_FastAccessSalon: ChangeDetectorRef;\r\n public cd_FastAccessWaiter: ChangeDetectorRef;\r\n public cd_Header: ChangeDetectorRef;\r\n public cd_Footer: ChangeDetectorRef;\r\n public cd_Item: ChangeDetectorRef;\r\n public cd_Deposit: ChangeDetectorRef;\r\n public invoiceStatusLookups: Lookup[];\r\n public invoiceChangesLookups: Lookup[] = [];\r\n public invoiceCommandLookups: Lookup[] = [];\r\n public invoicePayableChangeLookups: Lookup[] = [];\r\n public receiptPaymentTypeLookup: Lookup[] = [];\r\n public PhoneTypeLookup: Lookup[] = [];\r\n public paymentMethodTypeLookup: PaymentMethodLookUp[] = [];\r\n public CustomDescriptionId?: number;\r\n public actionState: ActionStateModel = new ActionStateModel();\r\n public tabsservice: TabularService;\r\n public CallCenterLookUp: Lookup[] = [];\r\n public RestaurantCallCenter: boolean = false;\r\n changeCachEnum: ChangeCachEnum[] = [];\r\n public barCodeReaderFormat: BarCodeReaderFormat[] = JSON.parse(localStorage.getItem(\"BarCodeReaderFormat\"));\r\n public __id: string;\r\n public inputBarCode: string;\r\n public defaultMinutesToDelivery: number;\r\n public defaultBranch: Branch;\r\n public printerQueue: PrinterQueue[] = [];\r\n public shouldActivateInvoicesPage = false;\r\n public shouldActivateReserveOnlinePage = false;\r\n public shouldActivateSalonPage = false;\r\n public freeShippingCostDiscount: number;\r\n public shouldCalculateFreeShippingCost = true;\r\n public otherCustomerPrintAccess: boolean = false;\r\n public lastInvoiceInformation: LastInvoiceInformation = new LastInvoiceInformation();\r\n isShowDeposit: boolean = false;\r\n public depositFormGroup: FormGroup = new FormGroup({\r\n InvoiceId: new FormControl(null),\r\n ServingFoodDate: new FormControl(null, [Validators.required]),\r\n ServingFoodTime: new FormControl(null, [Validators.required]),\r\n MealTime: new FormControl(null, [Validators.required]),\r\n DeliveryType: new FormControl(null, [Validators.required]),\r\n ClearType: new FormControl(null, [Validators.required]),\r\n NumberOfPeople: new FormControl(null),\r\n FoodPricePerson: new FormControl(null),\r\n NumberOfCooks: new FormControl(null),\r\n DepositPersonnelList: new FormControl(null),\r\n Id: new FormControl(0),\r\n Invoice: new FormControl(null),\r\n DepositAmount: new FormControl(null),\r\n ServicesAmount: new FormControl(0),\r\n RowVersion: new FormControl(),\r\n CreatedDate: new FormControl(),\r\n });\r\n public depositPersonnelList: DepositPersonnelModel[] = [];\r\n public depositServiceAmount = 0;\r\n public depositServiceAmountSummary: string;\r\n public depositServiceRemainSummary: string;\r\n public FoodPricePerson = true;\r\n public HasClearType = true;\r\n public HasDeliveryType = true;\r\n public HasNumberOfPeople = true;\r\n public HasNumberOfCooks = true;\r\n public HasServicesAmount = true;\r\n public HasDepositAmount = true;\r\n public originalDeposit: DepositModel;\r\n public depositListGridFilter: GridFilter[];\r\n public shouldCloseSidebar = true;\r\n warehouseStockItems: InvDailyWarehouse[] = [];\r\n dailyInventoryList: InvDailyWarehouse[] = [];\r\n stockDialogIsOpened: boolean;\r\n showChangeFactor: boolean = false;\r\n isLight = false;\r\n\r\n currentInformation = this.accountService.authService.currentInformation();\r\n logInBranch = this.accountService.authService.currentBranch;\r\n lastInformationIsLoading: boolean;\r\n defaultPaymentToSaving: boolean;\r\n orderOnlinePage: boolean = false;\r\n depositServiceRemain: number;\r\n autoDelinoInvoiceId: number;\r\n public itemQuantityChanged: boolean = false;\r\n validHappyHour: boolean = false;\r\n happyHourDiscountPrice: number;\r\n validFreeShipping: boolean = false;\r\n validFreeService: boolean = false;\r\n hasPosScale: boolean = false;\r\n shouldCalculate: boolean = true;\r\n DiscountOrganization = 0;\r\n WebKinds: Lookup[];\r\n\r\n constructor(\r\n public splashScreenService: SplashScreenService,\r\n public splashFormService: SplashFormService,\r\n public accountService: AccountService,\r\n public storage: LocalStoreManager,\r\n public common: CommonService,\r\n public indexedDbService: IndexedDbService,\r\n public posScaleService: PosScaleService\r\n ) {\r\n super();\r\n if (this.saleMethodBranch.Id) this.formGroupControl();\r\n }\r\n\r\n checkPermissions() {\r\n if (this.HasAccess(\"ChangeInvoiceSaleMethodBranch\")) this.showChangeFactor = true;\r\n this.salePricePermission = this.HasAccess(\"UseSalePriceTypeOtherThanDefault\");\r\n }\r\n\r\n formGroupControl() {\r\n this.setValue(\"Discount\", undefined, false, Validators.maxLength(10));\r\n this.setValue(\"TotalService\", undefined, false, Validators.maxLength(10));\r\n this.setValue(\"ShippingCost\", undefined, false, Validators.maxLength(10));\r\n this.setValue(\"Debit\", undefined, false, Validators.maxLength(10));\r\n this.setValue(\"Credit\", undefined, false, Validators.maxLength(10));\r\n this.setValue(\"Description\", undefined, false, Validators.maxLength(500));\r\n this.setValue(\"DescKitchen\", undefined, false, Validators.maxLength(250));\r\n this.setValue(\"DescCustomer\", undefined, false, Validators.maxLength(250));\r\n this.setValue(\"NumberOfGuests\", undefined, false, Validators.maxLength(10));\r\n this.setValue(\"PackingPrice\", undefined, false, Validators.maxLength(10));\r\n this.setValue(\"BranchId\", undefined, false, Validators.maxLength(100));\r\n this.setValue(\"SalePriceTypeId\", undefined, false, Validators.maxLength(10));\r\n if (!this.isMultiBranch) {\r\n this.setValue(`CustomDescription${this.invoice.SaleMethodBranchId}`, undefined, false, Validators.maxLength(200));\r\n }\r\n this.setApplySnapValue();\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.FastFood) {\r\n this.setValue(\"InPerson\", !!this.saleMethodBranch?.InPerson);\r\n this.invoice.InPerson = !!this.saleMethodBranch?.InPerson;\r\n }\r\n this.setValueQuantity();\r\n }\r\n setValueQuantity() {\r\n if (this.invoice?.Items?.length > 0) {\r\n this.invoice.Items.forEach((f) => {\r\n this.setValue(`itemsQuantity${f.Index}${this.invoice.SaleMethodBranchId}`, f.Quantity);\r\n if (this.oldSaleMethodBranchId !== this.invoice.SaleMethodBranchId)\r\n this.formGroup.removeControl(`itemsQuantity${f.Index}${this.oldSaleMethodBranchId}`);\r\n });\r\n this.detectChanges();\r\n }\r\n }\r\n controlsVisibility() {\r\n if (!this.currentInformation?.OrderServices) return;\r\n\r\n if (!this.storage.getData(ClearableCache.FormSetting)) {\r\n this.httpCommonService\r\n .getList(\"DepositFormSetting\")\r\n .pipe(take(1))\r\n .subscribe((result: any[]) => {\r\n if (result?.length > 0) {\r\n this.storage.savePermanentData(result[0], ClearableCache.FormSetting);\r\n this.FoodPricePerson = result[0].FoodPricePerson ?? true;\r\n this.HasClearType = result[0].HasClearType ?? true;\r\n this.HasDeliveryType = result[0].HasDeliveryType ?? true;\r\n this.HasNumberOfCooks = result[0].HasNumberOfCooks ?? true;\r\n this.HasNumberOfPeople = result[0].HasNumberOfPeople ?? true;\r\n this.HasDepositAmount = result[0].HasDepositAmount ?? true;\r\n this.HasServicesAmount = result[0].HasServicesAmount ?? true;\r\n } else this.storage.savePermanentData(new DepositFormSettingModel(), ClearableCache.FormSetting);\r\n });\r\n } else {\r\n this.FoodPricePerson = this.storage.getData(ClearableCache.FormSetting)[\"FoodPricePerson\"] ?? true;\r\n this.HasClearType = this.storage.getData(ClearableCache.FormSetting)[\"HasClearType\"] ?? true;\r\n this.HasDeliveryType = this.storage.getData(ClearableCache.FormSetting)[\"HasDeliveryType\"] ?? true;\r\n this.HasNumberOfCooks = this.storage.getData(ClearableCache.FormSetting)[\"HasNumberOfCooks\"] ?? true;\r\n this.HasNumberOfPeople = this.storage.getData(ClearableCache.FormSetting)[\"HasNumberOfPeople\"] ?? true;\r\n this.HasDepositAmount = this.storage.getData(ClearableCache.FormSetting)[\"HasDepositAmount\"] ?? true;\r\n this.HasServicesAmount = this.storage.getData(ClearableCache.FormSetting)[\"HasServicesAmount\"] ?? true;\r\n }\r\n }\r\n setValueformGroupControl() {\r\n this.setValue(\"Description\", this.invoice.Description, false, Validators.maxLength(500));\r\n this.setValue(\"DescKitchen\", this.invoice.DescKitchen, false, Validators.maxLength(250));\r\n this.setValue(\"DescCustomer\", this.invoice.DescCustomer, false, Validators.maxLength(250));\r\n this.setValue(\"Discount\", this.invoice.Discount);\r\n this.setValue(\"DiscountType\", this.invoice.DiscountType);\r\n this.setValue(\"TotalService\", this.invoice.TotalService);\r\n this.setValue(\"ShippingCost\", this.invoice.ShippingCost);\r\n this.setValue(\"Debit\", this.invoice.Debit);\r\n this.setValue(\"Credit\", this.invoice.Credit);\r\n this.setValue(\"SalePriceTypeId\", this.invoice.SalePriceTypeId);\r\n this.setValue(\"NumberOfGuests\", this.invoice.NumberOfGuests);\r\n this.setValue(\"PackingPrice\", this.invoice.PackingPrice);\r\n this.setApplySnapValue();\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.FastFood) {\r\n this.setValue(\"InPerson\", !!this.saleMethodBranch?.InPerson);\r\n this.invoice.InPerson = !!this.saleMethodBranch?.InPerson;\r\n }\r\n this.invoice.Items.forEach((f) => {\r\n if (!this.formGroup.controls[`RowDiscount${f.Index}${this.invoice.SaleMethodBranchId}`]) {\r\n this.formGroup.addControl(`RowDiscount${f.Index}${this.invoice.SaleMethodBranchId}`, new UntypedFormControl(f.RowDiscount));\r\n this.setValue(`RowDiscount${f.Index}${this.invoice.SaleMethodBranchId}`, f.RowDiscount);\r\n } else {\r\n this.setValue(`RowDiscount${f.Index}${this.invoice.SaleMethodBranchId}`, f.RowDiscount);\r\n }\r\n });\r\n if (this.common.isMobileMode) {\r\n this.invoice.Items.forEach((ele: InvoiceItem) => {\r\n this.itemCategoryList.forEach((element) => {\r\n element.Items.forEach((item) => {\r\n if (item.Id === ele?.ItemId || this.invoice.StatusCode === ItemStateEnum.Clear) {\r\n item.InvoiceQty =\r\n this.invoice.StatusCode === ItemStateEnum.Increase || this.invoice.StatusCode === ItemStateEnum.Decrease ? ele.Quantity : 0;\r\n this.setValueQuantity();\r\n } else {\r\n if (item.ItemChild && item.ItemChild.length > 0) {\r\n const find = item.ItemChild.find((f) => f.Id === ele?.CategoryId);\r\n const findchild = find?.ItemChild?.find((f) => f.Id === ele?.ItemId && f.BranchId === ele?.BranchId);\r\n if (findchild) {\r\n item.InvoiceQty =\r\n ele && (this.invoice.StatusCode === ItemStateEnum.Increase || this.invoice.StatusCode === ItemStateEnum.Decrease)\r\n ? ele.Quantity\r\n : 0;\r\n this.setValueQuantity();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n });\r\n }\r\n }\r\n\r\n newInvoice(withSetActivePage = true) {\r\n this.customerFormIsShowBefore = false;\r\n this.actionState.save = false;\r\n this.actionState.cancel = false;\r\n this.actionState.clear = false;\r\n this.actionState.clearWithoutPrint = false;\r\n this.actionState.mixClear = false;\r\n this.actionState.print = false;\r\n this.actionState.preparationPrint = false;\r\n this.actionState.temporaryRegister = false;\r\n this.actionState.customerPrint = false;\r\n this.itemHasParent = null;\r\n this.OrderSetting.showComplate = true;\r\n this.itemCategoryList?.forEach((element) => {\r\n element?.Items?.forEach((item) => {\r\n item.InvoiceQty = 0;\r\n item.ItemChild?.forEach((child) => {\r\n child.InvoiceQty = 0;\r\n });\r\n });\r\n });\r\n if (this.common.isMobileMode) this.OrderSetting.IsShowDescriptionBox = false;\r\n this.depositFormGroup.setValue(new DepositModel());\r\n this.depositPersonnelList = [];\r\n this.depositServiceAmountSummary = \"\";\r\n this.depositServiceAmount = 0;\r\n this.isShowDeposit = false;\r\n this.originalDeposit = null;\r\n this.detectChanges();\r\n this.oldinvoice = JSON.parse(JSON.stringify(this.invoice));\r\n this.invoice = null;\r\n this.invoice = new Invoice();\r\n this.invoice.LastInvoiceAmount = this.oldinvoice.LastInvoiceAmount;\r\n this.invoice.LastInvoiceCode = this.oldinvoice.LastInvoiceCode;\r\n this.selectedInvoiceItem = null;\r\n this.selectedOrderItemIndex = null;\r\n this.selectedOrderItem = null;\r\n this.selectedOrderItem = new OrderItem();\r\n this.invoiceChanged = false;\r\n this.itemChanged = false;\r\n this.invoice.SaleMethodBranchId = this.saleMethodBranch.Id;\r\n this.invoice.CustomerId = this.defaultCustomerId;\r\n this.invoice.CustomerNumber = this.DefultCustomer?.Party?.Number;\r\n this.invoice.CustomerLastName = this.DefultCustomer?.Party?.LastName;\r\n this.invoice.CustomerDisplayName = this.DefultCustomer?.Party?.DisplayName;\r\n this.invoice.AddressId = this.DefultCustomer?.Addresses[0]?.Id;\r\n this.invoice.CustomerAddress = this.DefultCustomer?.Addresses?.find((f) => f.IsDefault);\r\n this.invoice.PhoneId = this.DefultCustomer?.Numbers.length > 0 ? this.DefultCustomer?.Numbers[0]?.Id : null;\r\n this.invoice.PhoneNumber = this.DefultCustomer?.Numbers?.find((n) => n.IsDefault)?.Number;\r\n this.invoice.Customer = this.DefultCustomer;\r\n if (this.waiterMobile) {\r\n this.invoice.WaiterName = this.waiterMobile;\r\n this.invoice.WaiterId = this.waiterId;\r\n }\r\n this.indexedDbService.get(\"FrontOffice\", \"Categories\").then((res) => {\r\n this.itemCategoryListAll = res;\r\n this.getItemCategory();\r\n });\r\n if (this.accountService.authService.currentFiscalYear) this.invoice.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) this.invoice.FiscalYearId = x.Id;\r\n });\r\n /// برگرداندن متد اصلی\r\n this.saleMethodBranch = JSON.parse(JSON.stringify(this.changeSaleMethodBranch));\r\n this.invoice.SaleMethodBranch = JSON.parse(JSON.stringify(this.changeSaleMethodBranch));\r\n this.invoice.SaleMethodBranchId = JSON.parse(JSON.stringify(this.changeSaleMethodBranch.Id));\r\n this.currentSaleMethodNature = this.changeSaleMethodBranch.SaleMethodNatureCode;\r\n this.currentsaleMethodList = this.saleMethodList?.filter((f) => f.Id !== this.saleMethodBranch.Id);\r\n this.invoice.SalePriceTypeId = this.oldinvoice.SalePriceTypeId;\r\n this.setValue(\"Discount\", this.invoice.Discount);\r\n this.setValue(\"Description\", \"\", false, Validators.maxLength(500));\r\n this.setValue(\"DescKitchen\", \"\", false, Validators.maxLength(250));\r\n this.setValue(\"DescCustomer\", \"\", false, Validators.maxLength(250));\r\n this.setValue(`Quantity${this.__id}`, \"\");\r\n this.setValue(`ItemTitle${this.__id}`, \"\");\r\n this.setValue(`Code${this.__id}`, \"\");\r\n this.setValue(\"TotalService\", \"\");\r\n this.setValue(\"Debit\", \"\");\r\n this.setValue(\"NumberOfGuests\", \"\");\r\n this.setValue(\"PackingPrice\", \"\");\r\n this.setValue(\"ShippingCost\", \"\");\r\n this.setValue(\"BranchId\", null);\r\n this.setValue(\"WebId\", null);\r\n this.setValue(\"WebKindId\", null);\r\n this.setApplySnapValue();\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.FastFood) {\r\n this.setValue(\"InPerson\", !!this.saleMethodBranch?.InPerson);\r\n this.invoice.InPerson = !!this.saleMethodBranch?.InPerson;\r\n }\r\n this.invoice.BranchId = null;\r\n this.invoice.isPackingDisable = false;\r\n this.invoice.isDebitDisable = false;\r\n const findDefault = this.saleMethodBranch?.SalePriceTypes.find((f) => f.IsDefault);\r\n if (findDefault) this.invoice.SalePriceTypeId = findDefault.SalePriceTypeId;\r\n else this.invoice.SalePriceTypeId = this.salePriceType[0]?.Id;\r\n this.setValue(`SalePriceTypeId`, this.invoice.SalePriceTypeId);\r\n this.invoice.TotalService = 0;\r\n if (withSetActivePage) this.setActivePage();\r\n if (this.saleMethodList && this.saleMethodList.length > 0)\r\n this.currentsaleMethodList = this.saleMethodList.filter((f) => f.Id === this.oldSaleMethodBranchId);\r\n let findDefaultItemCategory = this.saleMethodBranch.ItemCategories.find((f) => f.IsDefault);\r\n this.itemCategoryList?.forEach((element) => {\r\n element.Items.forEach((ele) => {\r\n ele.InvoiceQty = null;\r\n });\r\n });\r\n if (findDefaultItemCategory)\r\n this.selectedItemCategory = Object.assign(\r\n this.itemCategoryList.find((f) => f.Id === (findDefaultItemCategory.Category?.ParentId || findDefaultItemCategory.CategoryId))\r\n );\r\n else {\r\n this.selectedItemCategory = Object.assign([], this.itemCategoryList[0]);\r\n }\r\n this.focusInput();\r\n this.validHappyHour = false;\r\n this.invoice.DiscountType = null;\r\n this.invoice.IsDiscountPercent = true;\r\n this.validFreeService = false;\r\n this.happyHourDiscountValidation();\r\n this.detectChanges();\r\n this.SalePriceChange(this.invoice.SalePriceTypeId);\r\n this.getMaxInvoiceCode();\r\n }\r\n happyHourDiscountValidation() {\r\n if (this.invoice.Id) {\r\n this.validHappyHour = this.invoice.DiscountType == DiscountTypeEnum.HappyHour;\r\n this.validFreeService = !this.invoice.Service && this.validHappyHour && this.invoice.IgnoreService;\r\n return;\r\n }\r\n if (this.saleMethodBranch?.HasHappyHour) {\r\n let nowWeekDay = moment(new Date()).locale(\"fa\").weekday();\r\n let nowTime = moment(new Date()).format(\"HH:mm:ss\").split(\":\");\r\n let nowDate = new Date().setHours(0, 0, 0, 0);\r\n let startTime = moment(this.saleMethodBranch?.HappyHourStart).format(\"HH:mm:ss\").split(\":\");\r\n let endTime = moment(this.saleMethodBranch?.HappyHourEnd).format(\"HH:mm:ss\").split(\":\");\r\n let startDate = new Date(this.saleMethodBranch?.HappyHourFromDate).setHours(0, 0, 0, 0);\r\n let endDate = new Date(this.saleMethodBranch?.HappyHourToDate).setHours(0, 0, 0, 0);\r\n let containWeek: boolean = false;\r\n let unselectedWeek: boolean = true;\r\n if (this.saleMethodBranch.DaysOfWeek && this.saleMethodBranch.DaysOfWeek?.length != 0) {\r\n containWeek = String(this.saleMethodBranch.DaysOfWeek)\r\n ?.split(\",\")\r\n .map((e) => Number(e))\r\n .includes(nowWeekDay);\r\n unselectedWeek = false;\r\n } else unselectedWeek = true;\r\n if (\r\n this.saleMethodBranch.FreeShipping &&\r\n startDate <= nowDate &&\r\n endDate >= nowDate &&\r\n startTime <= nowTime &&\r\n endTime >= nowTime &&\r\n ((containWeek && !unselectedWeek) || (!containWeek && unselectedWeek))\r\n ) {\r\n this.validFreeShipping = true;\r\n }\r\n if (this.invoice.Items.length > 0 && this.invoice.Items.some((c) => c.ApplyService)) {\r\n if (\r\n this.saleMethodBranch.FreeService &&\r\n startDate <= nowDate &&\r\n endDate >= nowDate &&\r\n startTime <= nowTime &&\r\n endTime >= nowTime &&\r\n ((containWeek && !unselectedWeek) || (!containWeek && unselectedWeek))\r\n ) {\r\n this.validFreeService = true;\r\n }\r\n }\r\n if (\r\n this.validFreeShipping ||\r\n this.validFreeService ||\r\n (this.saleMethodBranch.Discount &&\r\n startDate <= nowDate &&\r\n endDate >= nowDate &&\r\n startTime <= nowTime &&\r\n endTime >= nowTime &&\r\n ((containWeek && !unselectedWeek) || (!containWeek && unselectedWeek)))\r\n )\r\n this.validHappyHour = true;\r\n }\r\n }\r\n async getMaxInvoiceCode(branchId?: number, callGetItemCategory?: boolean, isFirstGet = false) {\r\n if (!this.lastInformationIsLoading) {\r\n this.lastInformationIsLoading = true;\r\n this.httpCommonService\r\n .create(\"Invoice/GetLastInvoiceInformation\", {\r\n Id: this.invoice.SaleMethodBranchId,\r\n BranchId: branchId,\r\n })\r\n .pipe(\r\n take(1),\r\n tap((res) => {\r\n this.lastInvoiceInformation = res;\r\n this.invoice.LastInvoiceCode = res?.Code;\r\n this.invoice.LastInvoiceAmount = res?.Amount;\r\n this.DelinoInvoiceCount = res?.DelinoInvoiceCount;\r\n this.detectChanges();\r\n })\r\n )\r\n .subscribe(async (res: any) => {\r\n this.lastInformationIsLoading = false;\r\n if (callGetItemCategory) this.GetItemCategoryList(isFirstGet);\r\n });\r\n }\r\n }\r\n\r\n hasDependents() {\r\n if (!this.saleMethodBranch.IncludeItemDependency && !this.saleMethodBranch.IncludeFreeItemDependency) {\r\n this.invoice.Items = this.invoice.Items?.filter((f) => !f.IsDependent);\r\n return;\r\n }\r\n if (!this.saleMethodBranch.IncludeItemDependency) {\r\n this.invoice.Items = this.invoice.Items?.filter((f) => !f.IsDependent && f.Price !== 0);\r\n return;\r\n }\r\n if (!this.saleMethodBranch.IncludeFreeItemDependency) {\r\n this.invoice.Items = this.invoice.Items?.filter((f) => !f.IsDependent && f.Price !== 0);\r\n return;\r\n }\r\n }\r\n SalePriceChange(salepricetypeid: number, isFirstGet: boolean = false) {\r\n if (this.invoice.SalePriceTypeId !== salepricetypeid || isFirstGet) {\r\n this.invoice.SalePriceTypeId = salepricetypeid;\r\n //Change Item Price\r\n this.itemCategoryList?.forEach((ic) => {\r\n ic.Items.forEach((i) => {\r\n this.setDefultPrice(i);\r\n if (this.selectedOrderItem && this.selectedOrderItem?.Additive?.length > 0) {\r\n this.selectedOrderItem.Additive.forEach((additive) => {\r\n const find_price = additive.Prices.find((f) => f.SalePriceTypeId === this.invoice.SalePriceTypeId);\r\n if (find_price) {\r\n additive.MainPrice = find_price.Price;\r\n } else additive.MainPrice = additive.Prices.find((f) => f.IsDefault).Price;\r\n });\r\n }\r\n if (i.ItemChild && i.ItemChild.length > 0) {\r\n i.ItemChild.forEach((itemchild) => {\r\n this.setDefultPrice(itemchild);\r\n });\r\n }\r\n });\r\n });\r\n }\r\n this.calculate();\r\n if (this.invoice.Id) this.invoiceChanged = true;\r\n this.checkInvoiceState(this.invoice.CommandCode);\r\n this.cd.markForCheck();\r\n }\r\n setDefultPrice(i: OrderItem) {\r\n if (!i.Prices || i.Prices.length <= 0) return;\r\n const find_price = i.Prices.find((f) => f.SalePriceTypeId === this.invoice.SalePriceTypeId);\r\n if (find_price) i.DetaultPrice = find_price.Price;\r\n else i.DetaultPrice = i.Prices.find((f) => f.IsDefault).Price;\r\n\r\n i.Additive.forEach((el) => {\r\n const find_Additive_PriceType = el.Prices.find((f) => f.SalePriceTypeId === this.invoice.SalePriceTypeId);\r\n if (find_Additive_PriceType) el.MainPrice = find_Additive_PriceType.Price;\r\n else el.MainPrice = el.Prices.find((f) => f.IsDefault).Price;\r\n });\r\n //Change InvoiceItem Price\r\n const find_invoice_item = this.invoice.Items.filter((f) => f.ItemId === i.Id);\r\n if (find_invoice_item && find_invoice_item.length > 0) {\r\n find_invoice_item.forEach((fi) => {\r\n if (!fi.IsDependent) fi.IsDependent = fi.Id && fi.TotalPrice === 0;\r\n this.invoice.Items.find((f) => f.ItemId === fi.ItemId && f.Index === fi.Index).UnitPrice = i.DetaultPrice;\r\n if (fi.TotalPrice === 0 && fi.IsDependent) {\r\n let InvoiceDependentList = [];\r\n this.invoice.Items.forEach((fr) => {\r\n let item = this.itemCategoryList[0]?.Items?.find(\r\n (f) =>\r\n f.Id === fr.ItemId &&\r\n f.Dependents?.some((s) => s.DependentItem.Id === fi.ItemId && s.ItemDependencyTypeCode === ItemDependencyType.Free)\r\n )?.Dependents?.find((s) => s.DependentItem.Id === fi.ItemId && s.ItemDependencyTypeCode === ItemDependencyType.Free);\r\n if (!item) {\r\n let bundle = this.itemCategoryList[0]?.Items?.find(\r\n (f) =>\r\n f.ItemChild !== null &&\r\n f.ItemChild.some(\r\n (fs) =>\r\n fs.Id === fr.ItemId &&\r\n fs.Dependents?.some((s) => s.DependentItem.Id === fi.ItemId && s.ItemDependencyTypeCode === ItemDependencyType.Free)\r\n )\r\n );\r\n item = bundle?.ItemChild?.find(\r\n (f) =>\r\n f.Id === fr.ItemId &&\r\n f.Dependents?.some((s) => s.DependentItem.Id === fi.ItemId && s.ItemDependencyTypeCode === ItemDependencyType.Free)\r\n )?.Dependents?.find((s) => s.DependentItem.Id === fi.ItemId && s.ItemDependencyTypeCode === ItemDependencyType.Free);\r\n }\r\n if (item) InvoiceDependentList.push(item);\r\n });\r\n const findParentIncludeDependent =\r\n InvoiceDependentList.some((s) => s.DependentItemId === fi.ItemId) &&\r\n InvoiceDependentList.find((s) => s.DependentItemId === fi.ItemId).Quantity <= fi.Quantity;\r\n if (findParentIncludeDependent) {\r\n this.invoice.Items.find((f) => f.ItemId === fi.ItemId && f.Index === fi.Index).UnitPrice = 0;\r\n }\r\n }\r\n fi.Additives.forEach((add) => {\r\n const find_add = i.Additive.find((find_add) => find_add.Id === add.AdditiveId);\r\n if (find_add) {\r\n const findAdditivePriceType = find_add.Prices.find((f) => f.SalePriceTypeId === this.invoice.SalePriceTypeId);\r\n if (findAdditivePriceType) add.UnitPrice = findAdditivePriceType.Price;\r\n else add.UnitPrice = find_add.Prices.find((f) => f.IsDefault).Price;\r\n }\r\n add.UnitPrice = find_add.MainPrice;\r\n });\r\n });\r\n }\r\n }\r\n // action like UseSalepriceTypeOtherTanDefualt\r\n public HasAccess(action: string): boolean {\r\n let hasAccess: boolean = true;\r\n hasAccess = this.accountService.userHasPermission(`RestaurantSale:Invoice_${this.saleMethodBranch.SaleMethodId}`, action);\r\n if (\r\n action.includes(\"OrderingStatus\") ||\r\n action.includes(\"ClearStatus\") ||\r\n action.includes(\"ClearedStatus\") ||\r\n action.includes(\"ClearingStatus\") ||\r\n action.includes(\"AssignedStatus\") ||\r\n action.includes(\"PendingStatus\")\r\n ) {\r\n switch (this.invoice.StatusCode) {\r\n case InvoiceStatus.Ordering:\r\n if (action.includes(\"OrderingStatus\")) return hasAccess;\r\n if (action.includes(\"AssignedStatus\")) return false;\r\n if (action.includes(\"ClearStatus\") || action.includes(\"ClearedStatus\")) return false;\r\n if (action.includes(\"ClearingStatus\")) return false;\r\n if (action.includes(\"PendingStatus\")) return false;\r\n return true;\r\n case InvoiceStatus.Clearing:\r\n if (action.includes(\"ClearingStatus\")) return hasAccess;\r\n if (action.includes(\"OrderingStatus\")) return false;\r\n if (action.includes(\"AssignedStatus\")) return false;\r\n if (action.includes(\"ClearStatus\") || action.includes(\"ClearedStatus\")) return false;\r\n if (action.includes(\"PendingStatus\")) return false;\r\n return true;\r\n case InvoiceStatus.Cleared:\r\n if (action.includes(\"ClearStatus\") || action.includes(\"ClearedStatus\") || action === \"ClearClearingStatus\") return hasAccess;\r\n if (action.includes(\"AssignedStatus\")) return false;\r\n if (action.includes(\"OrderingStatus\")) return false;\r\n if (action.includes(\"PendingStatus\")) return false;\r\n if (action.includes(\"ClearingStatus\")) return false;\r\n return true;\r\n case InvoiceStatus.Assigned:\r\n if (action.includes(\"AssignedStatus\")) return hasAccess;\r\n if (action.includes(\"OrderingStatus\")) return false;\r\n if (action.includes(\"ClearStatus\") || action.includes(\"ClearedStatus\")) return false;\r\n if (action.includes(\"PendingStatus\")) return false;\r\n if (action.includes(\"ClearingStatus\")) return false;\r\n return true;\r\n case InvoiceStatus.Pending:\r\n if (action.includes(\"PendingStatus\")) return hasAccess;\r\n if (action.includes(\"AssignedStatus\")) return true;\r\n if (action.includes(\"OrderingStatus\")) return true;\r\n if (action.includes(\"ClearStatus\") || action.includes(\"ClearedStatus\")) return true;\r\n if (action.includes(\"ClearingStatus\")) return true;\r\n return true;\r\n default:\r\n return true;\r\n }\r\n } else return hasAccess;\r\n }\r\n\r\n clubcount: number = 1;\r\n\r\n calculate(isNewCalculate?: boolean, clearDiscount: boolean = false) {\r\n this.shouldCalculate = true;\r\n if (this.invoice.Id) this.validHappyHour = this.invoice.DiscountType == DiscountTypeEnum.HappyHour;\r\n if (!this.currentBranch) return;\r\n this.setValueQuantity();\r\n if (this.invoice.Total < this.invoice.PackingPrice) {\r\n this.setValue(\"PackingPrice\", this.invoice.Total);\r\n }\r\n var PayableTotal: number = 0;\r\n var roundingTemp: number = 0;\r\n var roundingTemp: number = 0;\r\n this.invoice.ApplyTaxForService = this.saleMethodBranch.ApplyTaxForService ?? false;\r\n this.invoice.ApplyTaxForShippingCost = this.saleMethodBranch.ApplyTaxForShippingCost ?? false;\r\n if (!this.isMultiBranch) {\r\n this.invoice.BranchId = this.currentBranch.Id;\r\n }\r\n this.invoice.TaxRate = this.currentBranch.TaxPercentage;\r\n this.invoice.TollRate = this.currentBranch.TollPercentage;\r\n this.invoice.ServiceRate = this.currentBranch.ServicePercentage;\r\n this.invoice.Total = 0;\r\n this.invoice.TotalWidthRowDiscount = 0;\r\n this.invoice.TotalDiscount = 0;\r\n this.invoice.TotalNet = 0;\r\n this.invoice.TotalTax = 0;\r\n this.invoice.TotalToll = 0;\r\n this.invoice.ServiceTax = 0;\r\n this.invoice.ShippingCostTax = 0;\r\n this.invoice.RoundingAmount = 0;\r\n this.invoice.Service = this.invoice.TotalService;\r\n this.invoice.TotalService = 0;\r\n let PackingPriceTax: number = 0;\r\n let UnitAdditiveServicePrice: number = 0;\r\n let additivePrice: number = 0;\r\n let UnitItemtaxPrice: number = 0;\r\n let UnitItemServicetaxPrice: number = 0;\r\n let UnitAdditiveServicetollPrice: number = 0;\r\n let UnitAdditivetaxPrice: number = 0;\r\n let UnitItemRowDiscountPrice: number = 0;\r\n let UnitItemServicePrice: number = 0;\r\n /// محاسبه مبلغ کل کالا به همراه تخفیف هر ایتم و مخلفات\r\n if (this.invoice?.Items?.length <= 0 && this.saleMethodBranch.ApplyPackingPrice) {\r\n this.setValue(\"PackingPrice\", 0);\r\n }\r\n\r\n this.invoice.Items.forEach((item) => {\r\n if (item?.IsClubItem && item?.RowDiscount > 0 && !this.formGroup.controls[`RowDiscount${item.Index}`]?.value)\r\n this.setValue(`RowDiscount${item.Index}${this.invoice.SaleMethodBranchId}`, item.RowDiscount);\r\n\r\n ///RowDiscount تخفیف ردیفی\r\n if (Number(this.formGroup.controls[`RowDiscount${item.Index}${this.invoice.SaleMethodBranchId}`]?.value) > 100)\r\n this.setValue(`RowDiscount${item.Index}${this.invoice.SaleMethodBranchId}`, 100);\r\n item.RowDiscount = this.formGroup.controls[`RowDiscount${item.Index}${this.invoice.SaleMethodBranchId}`]?.value;\r\n item.RowDiscount = Number(item.RowDiscount) ? Number(item.RowDiscount) : 0;\r\n item.RowDiscount = !this.currentBranch.HasAuditorInSalesAmounts ? Math.round(item.RowDiscount) : parseFloat(item.RowDiscount?.toFixed(4));\r\n //بدست آوردن قیمت مخلفات\r\n item.UnitAdditive = 0;\r\n item.additivePrice = 0;\r\n item.UnitAdditiveServicePrice = 0;\r\n item.RowDiscountPrice = 0;\r\n item.UnitAdditiveRowDiscountPrice = 0;\r\n item.Price = 0;\r\n item.AdditiveUnitDiscount = 0;\r\n item.UnitAdditiveApplyTaxPrice = 0;\r\n item.UnitService = 0;\r\n item.ItemTotal = 0;\r\n item.TotalPrice = 0;\r\n item.UnitTax = 0;\r\n item.UnitToll = 0;\r\n\r\n if (item?.Additives?.length > 0) {\r\n item.Additives.forEach((addi) => {\r\n addi.PackingPrice = 0;\r\n addi.UnitDiscount = 0;\r\n addi.UnitTax = 0;\r\n addi.UnitToll = 0;\r\n addi.UnitService = 0;\r\n addi.Tax = addi.Tax == 0 ? this.invoice.TaxRate : addi.Tax;\r\n addi.Toll = addi.Toll == 0 ? this.invoice.TollRate : addi.Toll;\r\n item.UnitAdditive += addi.MainPrice ? addi.MainPrice : addi.UnitPrice;\r\n addi.UnitRowDiscount = item.RowDiscount > 0 ? ((addi.MainPrice ? addi.MainPrice : addi.UnitPrice) * item.RowDiscount) / 100 : 0;\r\n additivePrice = ((addi.MainPrice ? addi.MainPrice : addi.UnitPrice) - addi.UnitRowDiscount) * item.Quantity;\r\n item.additivePrice += additivePrice;\r\n addi.RowDiscount = item.RowDiscount;\r\n addi.Service = this.invoice.ServiceRate;\r\n UnitAdditiveServicePrice =\r\n this.saleMethodBranch.ApplyService && addi.ApplyService ? (addi.MainPrice ? addi.MainPrice : addi.UnitPrice) - addi.UnitRowDiscount : 0;\r\n item.UnitAdditiveServicePrice += UnitAdditiveServicePrice;\r\n item.UnitAdditiveRowDiscountPrice += addi.UnitRowDiscount;\r\n item.UnitAdditiveApplyTaxPrice +=\r\n this.saleMethodBranch.ApplyTax && addi.ApplyTax ? (addi.MainPrice ? addi.MainPrice : addi.UnitPrice) - addi.UnitRowDiscount : 0;\r\n });\r\n }\r\n UnitItemRowDiscountPrice += item.RowDiscount > 0 ? (item.UnitPrice * item.RowDiscount) / 100 : 0;\r\n UnitItemServicePrice += item.ApplyService && this.saleMethodBranch.ApplyService ? (item.UnitPrice * this.invoice.ServiceRate) / 100 : 0;\r\n\r\n // هزینه بسته بندی\r\n if (this.saleMethodBranch.ApplyPackingPrice) {\r\n let sumRowPackingPrice: number = 0;\r\n let ModifysumRowPackingPrice: number = 0;\r\n if (this.invoice.State === RowState.Modify && !this.invoice.isPackingDisable && !this.invoice.isPackingAutoCalc) {\r\n this.invoice.Items.forEach((element) => (sumRowPackingPrice += element.PackingPrice * element.Quantity));\r\n this.invoice.Items.forEach(\r\n (element) => (ModifysumRowPackingPrice += element.State === RowState.NoChange ? element.PackingPrice * element.Quantity : 0)\r\n );\r\n if (ModifysumRowPackingPrice === this.invoice.PackingPrice && this.invoice.PackingPrice > 0) {\r\n this.invoice.isPackingAutoCalc = true;\r\n } else {\r\n if (sumRowPackingPrice !== this.invoice.PackingPrice) {\r\n sumRowPackingPrice = this.invoice.PackingPrice;\r\n }\r\n }\r\n } else {\r\n if (!this.invoice.isPackingDisable) {\r\n this.invoice.Items.forEach((element) => (sumRowPackingPrice += element.PackingPrice * element.Quantity));\r\n } else {\r\n sumRowPackingPrice = this.formGroup.controls[\"PackingPrice\"].value;\r\n }\r\n }\r\n\r\n this.invoice.PackingPrice = sumRowPackingPrice;\r\n this.setValue(\"PackingPrice\", sumRowPackingPrice);\r\n } else {\r\n this.invoice.PackingPrice = 0;\r\n this.setValue(\"PackingPrice\", 0);\r\n }\r\n //Discount item\r\n //تخفیف درصدی هر آیتم\r\n if (item.RowDiscount !== 0) {\r\n item.RowDiscountPrice = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(((item.UnitPrice + item.UnitAdditive) * item.RowDiscount) / 100)\r\n : parseFloat((((item.UnitPrice + item.UnitAdditive) * item.RowDiscount) / 100)?.toFixed(4));\r\n item.RowDiscountPrice = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(((item.UnitPrice + item.UnitAdditive) * item.RowDiscount) / 100)\r\n : parseFloat((((item.UnitPrice + item.UnitAdditive) * item.RowDiscount) / 100)?.toFixed(4));\r\n }\r\n ///بدست اوردن جمع کالاهای سبد\r\n //بدست آوردن جمع ناخالص هر سطر\r\n\r\n this.invoice.Total += (item.UnitPrice + item.UnitAdditive - item.RowDiscountPrice) * item.Quantity;\r\n this.invoice.Total = !this.currentBranch.HasAuditorInSalesAmounts ? Math.round(this.invoice.Total) : parseFloat(this.invoice.Total?.toFixed(4));\r\n item.Price = (item.UnitPrice - (item.UnitPrice * item.RowDiscount) / 100) * item.Quantity;\r\n item.ItemTotal = (item.UnitPrice + item.UnitAdditive - ((item.UnitPrice + item.UnitAdditive) * item.RowDiscount) / 100) * item.Quantity;\r\n\r\n this.invoice.TotalWidthRowDiscount += (item.UnitPrice + item.UnitAdditive - item.RowDiscountPrice) * item.Quantity;\r\n });\r\n\r\n /// محاسبه تخفیف وارد شده در فاکتور به صورت کلی\r\n this.applyOrganizationDiscount();\r\n\r\n if (this.invoice.DiscountType !== DiscountTypeEnum.None && this.invoice.DiscountType !== DiscountTypeEnum.User) {\r\n this.calculateDiscount();\r\n }\r\n\r\n if (clearDiscount) this.invoice.Discount = 0;\r\n\r\n if (this.invoice.Discount != null) {\r\n if (this.invoice.IsDiscountPercent) {\r\n if (this.invoice.Discount > 100) this.invoice.Discount = 100;\r\n this.invoice.DiscountPrice = (this.invoice.Total * this.invoice.Discount) / 100;\r\n } else {\r\n if (this.invoice.Discount > this.invoice.Total + this.invoice.PackingPrice + this.invoice.ShippingCost) {\r\n this.shouldCalculate = false;\r\n this.invoice.Discount = this.invoice.Total + this.invoice.PackingPrice + this.invoice.ShippingCost;\r\n } else {\r\n this.invoice.Discount =\r\n this.formGroup.controls[\"Discount\"].value > this.invoice.Total ? this.invoice.Total : this.formGroup.controls[\"Discount\"].value;\r\n }\r\n this.invoice.DiscountPrice = this.invoice.Discount;\r\n }\r\n } else this.invoice.DiscountPrice = 0;\r\n this.formGroup.controls[\"Discount\"].setValue(this.invoice.Discount);\r\n this.invoice.DiscountPrice = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.DiscountPrice)\r\n : parseFloat(this.invoice.DiscountPrice.toFixed(4));\r\n /// محاسبه خالص هر کالا\r\n this.invoice.Items.forEach((item) => {\r\n //Discount header\r\n //تسهیم تخفیف کلی فاکتور بر روی هر واحد از آیتم\r\n if (this.invoice.Total > 0 && item.UnitPrice > 0 && item.Quantity > 0 && item.Free === false) {\r\n item.UnitDiscount = ((this.invoice.DiscountPrice / this.invoice.Total) * item.Price) / item.Quantity;\r\n item.UnitDiscount = !this.currentBranch.HasAuditorInSalesAmounts ? Math.round(item.UnitDiscount) : parseFloat(item.UnitDiscount?.toFixed(4));\r\n item.AdditiveUnitDiscount = ((this.invoice.DiscountPrice / this.invoice.Total) * item.additivePrice) / item.Quantity;\r\n item.AdditiveUnitDiscount = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(item.AdditiveUnitDiscount)\r\n : parseFloat(item.AdditiveUnitDiscount?.toFixed(4));\r\n item.AdditiveUnitDiscount = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(item.AdditiveUnitDiscount)\r\n : parseFloat(item.AdditiveUnitDiscount?.toFixed(4));\r\n item.AdditiveServiceUnitDiscount = (this.invoice.DiscountPrice / this.invoice.Total) * item.UnitAdditiveServicePrice;\r\n item.AdditiveServiceUnitDiscount = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(item.AdditiveServiceUnitDiscount)\r\n : parseFloat(item.AdditiveServiceUnitDiscount?.toFixed(4));\r\n item.AdditiveServiceUnitDiscount = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(item.AdditiveServiceUnitDiscount)\r\n : parseFloat(item.AdditiveServiceUnitDiscount?.toFixed(4));\r\n }\r\n if (item.UnitDiscount > item.UnitPrice) item.UnitDiscount = item.UnitPrice;\r\n /// service\r\n //بدست آوردن میزان سرویس هر آیتم و جمع مبالغ سرویس\r\n if (this.invoice.IgnoreService === false && this.saleMethodBranch.ApplyService === true && this.invoice.ServiceRate > 0) {\r\n if (item.ApplyService || item.Additives.some((s) => s.ApplyService)) {\r\n item.UnitService =\r\n (((item.ApplyService ? item.Price / item.Quantity : 0) +\r\n item.UnitAdditiveServicePrice -\r\n item.AdditiveServiceUnitDiscount -\r\n (item.ApplyService && !this.validFreeService ? item.UnitDiscount : 0)) *\r\n this.invoice.ServiceRate) /\r\n 100;\r\n } else {\r\n if (item.UnitAdditiveServicePrice > 0) {\r\n item.UnitService = ((item.UnitAdditiveServicePrice - item.AdditiveServiceUnitDiscount) * this.invoice.ServiceRate) / 100;\r\n }\r\n }\r\n item.UnitService = !this.currentBranch.HasAuditorInSalesAmounts ? Math.round(item.UnitService) : parseFloat(item.UnitService?.toFixed(4));\r\n if (!item.UnitService) item.UnitService = 0;\r\n }\r\n if (this.invoice.IgnoreService === true) item.UnitService = 0;\r\n // Tax مالیات\r\n //بدست آوردن مالیات هر آیتم\r\n UnitAdditivetaxPrice = 0;\r\n UnitItemServicetaxPrice = 0;\r\n if (this.invoice.TaxRate > 0 && this.saleMethodBranch.ApplyTax === true) {\r\n UnitItemtaxPrice = 0;\r\n\r\n if ((item.ApplyService || item.Additives.some((s) => s.ApplyService)) && this.saleMethodBranch.ApplyTaxForService)\r\n UnitItemServicetaxPrice =\r\n !this.validFreeService && this.saleMethodBranch.ApplyTaxForService && (item.ApplyService || item.Additives.some((s) => s.ApplyService))\r\n ? (item.UnitService * this.invoice.TaxRate) / 100\r\n : 0;\r\n if (!UnitItemServicetaxPrice) UnitItemServicetaxPrice = 0;\r\n if (item.ApplyTax) {\r\n if (item.UnitPrice - (item.UnitPrice * item.RowDiscount) / 100 - item.UnitDiscount < 0) {\r\n UnitItemtaxPrice = 0;\r\n } else\r\n UnitItemtaxPrice =\r\n ((item.UnitPrice - (item.UnitPrice * item.RowDiscount) / 100 - item.UnitDiscount) * (item.Tax ? item.Tax : this.invoice.TaxRate)) / 100; //+ UnitItemServicetaxPrice;\r\n UnitItemtaxPrice = !this.currentBranch.HasAuditorInSalesAmounts ? Math.floor(UnitItemtaxPrice) : parseFloat(UnitItemtaxPrice.toFixed(4));\r\n }\r\n if (!UnitItemtaxPrice) UnitItemtaxPrice = 0;\r\n\r\n item?.Additives?.forEach((addi) => {\r\n const RowAfterDiscountValue = (addi.MainPrice ? addi.MainPrice : addi.UnitPrice) - addi.UnitRowDiscount;\r\n let additivediscountPrice = (this.invoice.DiscountPrice / this.invoice.Total) * RowAfterDiscountValue;\r\n if (!additivediscountPrice) additivediscountPrice = 0;\r\n if (addi.ApplyTax) {\r\n UnitAdditivetaxPrice +=\r\n addi.ApplyTax && this.saleMethodBranch.ApplyTax\r\n ? ((RowAfterDiscountValue - additivediscountPrice) * (addi.Tax ? addi.Tax : this.invoice.TaxRate)) / 100\r\n : 0;\r\n }\r\n });\r\n item.UnitTax = UnitItemtaxPrice + UnitAdditivetaxPrice + UnitItemServicetaxPrice;\r\n item.UnitTax = !this.currentBranch.HasAuditorInSalesAmounts ? Math.floor(item.UnitTax) : parseFloat(item.UnitTax?.toFixed(4));\r\n }\r\n\r\n // Toll عوارض\r\n // بدست آوردن عوارض هر آیتم\r\n let itemToll: number = 0;\r\n UnitAdditiveServicetollPrice = 0;\r\n let UnitItemServicetollPrice: number = 0;\r\n if ((this.invoice.TollRate || item.Toll) > 0 && this.saleMethodBranch.ApplyTax === true) {\r\n UnitItemtaxPrice = 0;\r\n if ((item.ApplyService || item.Additives.some((s) => s.ApplyService)) && this.saleMethodBranch.ApplyTaxForService) {\r\n UnitItemServicetollPrice =\r\n !this.validFreeService && this.saleMethodBranch.ApplyTaxForService && (item.ApplyService || item.Additives.some((s) => s.ApplyService))\r\n ? (item.UnitService * (item.Toll ? item.Toll : this.invoice.TollRate)) / 100\r\n : 0;\r\n UnitItemServicetollPrice = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.floor(UnitItemServicetollPrice)\r\n : parseFloat(UnitItemServicetollPrice.toFixed(4));\r\n }\r\n if (item.ApplyTax) {\r\n itemToll =\r\n ((item.UnitPrice - (item.UnitPrice * item.RowDiscount) / 100 - item.UnitDiscount) * (item.Toll ? item.Toll : this.invoice.TollRate)) /\r\n 100;\r\n itemToll = !this.currentBranch.HasAuditorInSalesAmounts ? Math.floor(itemToll) : parseFloat(itemToll.toFixed(4));\r\n }\r\n let addToll = 0;\r\n item?.Additives?.forEach((addi) => {\r\n const RowAfterDiscountValue = (addi.MainPrice ? addi.MainPrice : addi.UnitPrice) - addi.UnitRowDiscount;\r\n const additivediscountPrice = (this.invoice.DiscountPrice / this.invoice.Total) * RowAfterDiscountValue;\r\n if (addi.ApplyTax) {\r\n addToll +=\r\n addi.ApplyTax && this.saleMethodBranch.ApplyTax\r\n ? ((RowAfterDiscountValue - additivediscountPrice) * (addi.Toll ? addi.Toll : this.invoice.TollRate)) / 100\r\n : 0;\r\n }\r\n });\r\n\r\n item.UnitToll = itemToll + addToll + UnitItemServicetollPrice + UnitAdditiveServicetollPrice;\r\n item.UnitToll = !this.currentBranch.HasAuditorInSalesAmounts ? Math.floor(item.UnitToll) : parseFloat(item.UnitToll?.toFixed(4));\r\n }\r\n\r\n //محاسبه خالص مبلغ کالا\r\n let hasChangePrice: boolean = false;\r\n if (this.invoice.Id && this.invoice.OriginalValue?.Items?.find((c) => c.Id == item.Id)) {\r\n hasChangePrice = this.invoice.SalePriceTypeId != this.invoice.OriginalValue.SalePriceTypeId;\r\n }\r\n item.UnitPrice =\r\n this.invoice.Id && this.invoice.OriginalValue.Items.find((c) => c.Id == item.Id) && !hasChangePrice\r\n ? this.invoice.OriginalValue.Items.find((c) => c.Id == item.Id).UnitPrice\r\n : item.UnitPrice;\r\n item.UnitPrice = !this.currentBranch.HasAuditorInSalesAmounts ? Math.round(item.UnitPrice) : parseFloat(item.UnitPrice?.toFixed(4));\r\n item.UnitPrice = !this.currentBranch.HasAuditorInSalesAmounts ? Math.round(item.UnitPrice) : parseFloat(item.UnitPrice?.toFixed(4));\r\n item.TotalPrice =\r\n (item.UnitPrice +\r\n item.UnitAdditive +\r\n (this.validFreeService && !this.invoice.IgnoreService ? 0 : item.UnitService) +\r\n item.UnitTax +\r\n item.UnitToll -\r\n item.UnitDiscount -\r\n item.AdditiveUnitDiscount -\r\n item.RowDiscountPrice) *\r\n item.Quantity;\r\n item.TotalPrice = !this.currentBranch.HasAuditorInSalesAmounts ? Math.round(item.TotalPrice) : parseFloat(item.TotalPrice?.toFixed(4));\r\n //بدست آوردن جمع تخفیف\r\n if (item.UnitDiscount > 0 || item.RowDiscountPrice > 0) {\r\n this.invoice.TotalDiscount += (item.UnitDiscount + item.AdditiveUnitDiscount + item.RowDiscountPrice) * item.Quantity;\r\n this.invoice.TotalDiscount = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.TotalDiscount)\r\n : parseFloat(this.invoice.TotalDiscount?.toFixed(4));\r\n this.invoice.TotalDiscount = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.TotalDiscount)\r\n : parseFloat(this.invoice.TotalDiscount?.toFixed(4));\r\n item.TotalDiscount = (item.UnitDiscount + item.AdditiveUnitDiscount + item.RowDiscountPrice) * item.Quantity;\r\n item.TotalDiscount = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(item.TotalDiscount)\r\n : parseFloat(item.TotalDiscount?.toFixed(4));\r\n item.TotalDiscount = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(item.TotalDiscount)\r\n : parseFloat(item.TotalDiscount?.toFixed(4));\r\n }\r\n //جمع کالا و خدمات\r\n this.invoice.TotalNet += item.TotalPrice;\r\n this.invoice.TotalTax += item.UnitTax * item.Quantity;\r\n this.invoice.TotalToll += item.UnitToll * item.Quantity;\r\n this.invoice.TotalTax = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.floor(this.invoice.TotalTax)\r\n : parseFloat(this.invoice.TotalTax?.toFixed(4));\r\n this.invoice.TotalToll = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.floor(this.invoice.TotalToll)\r\n : parseFloat(this.invoice.TotalToll?.toFixed(4));\r\n this.invoice.TotalTax = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.floor(this.invoice.TotalTax)\r\n : parseFloat(this.invoice.TotalTax?.toFixed(4));\r\n this.invoice.TotalToll = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.floor(this.invoice.TotalToll)\r\n : parseFloat(this.invoice.TotalToll?.toFixed(4));\r\n if (this.saleMethodBranch.ApplyService) {\r\n this.invoice.TotalService += item.UnitService * item.Quantity;\r\n this.invoice.TotalService = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.TotalService)\r\n : parseFloat(this.invoice.TotalService?.toFixed(4));\r\n this.invoice.TotalService = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.TotalService)\r\n : parseFloat(this.invoice.TotalService?.toFixed(4));\r\n }\r\n this.invoice.TotalNet = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.TotalNet)\r\n : parseFloat(this.invoice.TotalNet?.toFixed(4));\r\n this.invoice.TotalNet = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.TotalNet)\r\n : parseFloat(this.invoice.TotalNet?.toFixed(4));\r\n // محاسبه جزییات ادیتیو\r\n if (item?.Additives?.length > 0) {\r\n item.Additives.forEach((addi) => {\r\n addi.UnitDiscount = (item.AdditiveUnitDiscount / item.UnitAdditive) * addi.UnitPrice;\r\n if (isNaN(addi.UnitDiscount)) addi.UnitDiscount = 0;\r\n addi.UnitService =\r\n ((item.UnitAdditiveServicePrice - (item.UnitPrice * item.RowDiscount) / 100 - item.AdditiveUnitDiscount - item.UnitDiscount) *\r\n this.invoice.ServiceRate) /\r\n 100;\r\n addi.UnitService = !this.currentBranch.HasAuditorInSalesAmounts ? Math.round(addi.UnitService) : parseFloat(addi.UnitService?.toFixed(4));\r\n addi.UnitTax = (addi.MainPrice ? addi.MainPrice : addi.UnitPrice) - addi.UnitRowDiscount + addi.UnitService;\r\n\r\n addi.Tax = addi.Tax ? addi.Tax : this.invoice.TaxRate;\r\n addi.Toll = addi.Toll ? addi.Toll : this.invoice.TollRate;\r\n addi.RowDiscount = item.RowDiscount;\r\n if (!this.validFreeService && addi.ApplyService && this.saleMethodBranch.ApplyTaxForService) {\r\n const servicetax = (addi.UnitService * addi.Tax) / 100;\r\n addi.UnitTax += servicetax ? servicetax : 0;\r\n const servicetoll = (addi.UnitService * addi.Toll) / 100;\r\n addi.UnitToll += servicetoll ? servicetoll : 0;\r\n }\r\n });\r\n }\r\n });\r\n if (this.invoice.Discount > 0 && this.shouldCalculate) {\r\n const sumUnitDiscount = this.invoice.Items.map((e) => e.UnitDiscount * e.Quantity).reduce((acc, curr) => acc + curr, 0);\r\n if (this.invoice.DiscountPrice - sumUnitDiscount > 0 && this.invoice.DiscountPrice - sumUnitDiscount <= 100) {\r\n this.invoice.Items[0].TotalPrice -= this.invoice.DiscountPrice - sumUnitDiscount;\r\n this.invoice.Items[0].UnitDiscount += (this.invoice.DiscountPrice - sumUnitDiscount) / this.invoice.Items[0].Quantity;\r\n this.invoice.TotalDiscount += this.invoice.DiscountPrice - sumUnitDiscount;\r\n this.invoice.Items[0].UnitTax -= (this.invoice.DiscountPrice - sumUnitDiscount) / this.invoice.Items[0].Quantity;\r\n this.invoice.TotalTax = this.invoice.TotalTax\r\n ? this.invoice.TotalTax - (this.invoice.DiscountPrice - sumUnitDiscount)\r\n : this.invoice.TotalTax;\r\n this.invoice.TotalNet = this.invoice.TotalNet\r\n ? this.invoice.TotalNet - (this.invoice.DiscountPrice - sumUnitDiscount)\r\n : this.invoice.TotalNet;\r\n }\r\n if (this.invoice.DiscountPrice - sumUnitDiscount < 0 && this.invoice.DiscountPrice - sumUnitDiscount >= -100) {\r\n this.invoice.Items[0].TotalPrice += sumUnitDiscount - this.invoice.DiscountPrice;\r\n this.invoice.Items[0].UnitDiscount -= (sumUnitDiscount - this.invoice.DiscountPrice) / this.invoice.Items[0].Quantity;\r\n this.invoice.TotalDiscount -= sumUnitDiscount - this.invoice.DiscountPrice;\r\n this.invoice.Items[0].UnitTax += (sumUnitDiscount - this.invoice.DiscountPrice) / this.invoice.Items[0].Quantity;\r\n this.invoice.TotalTax = this.invoice.TotalTax\r\n ? this.invoice.TotalTax + (sumUnitDiscount - this.invoice.DiscountPrice)\r\n : this.invoice.TotalTax;\r\n this.invoice.TotalNet = this.invoice.TotalNet\r\n ? this.invoice.TotalNet + (sumUnitDiscount - this.invoice.DiscountPrice)\r\n : this.invoice.TotalNet;\r\n }\r\n }\r\n if (this.invoice.TotalTax > 0) {\r\n const sumUnitTax = this.invoice.Items.map((e) => e.UnitTax * e.Quantity).reduce((acc, curr) => acc + curr, 0);\r\n if (this.invoice.TotalTax - sumUnitTax > 0) {\r\n this.invoice.Items[0].UnitTax += (this.invoice.TotalTax - sumUnitTax) / this.invoice.Items[0].Quantity;\r\n }\r\n if (this.invoice.TotalTax - sumUnitTax < 0) {\r\n this.invoice.Items[0].UnitTax -= (sumUnitTax - this.invoice.TotalTax) / this.invoice.Items[0].Quantity;\r\n }\r\n }\r\n if (this.invoice.TotalToll > 0) {\r\n const sumUnitToll = this.invoice.Items.map((e) => e.UnitToll * e.Quantity).reduce((acc, curr) => acc + curr, 0);\r\n if (this.invoice.TotalToll - sumUnitToll > 0) {\r\n this.invoice.Items[0].UnitToll += (this.invoice.TotalToll - sumUnitToll) / this.invoice.Items[0].Quantity;\r\n }\r\n if (this.invoice.TotalToll - sumUnitToll < 0) {\r\n this.invoice.Items[0].UnitToll -= (sumUnitToll - this.invoice.TotalToll) / this.invoice.Items[0].Quantity;\r\n }\r\n }\r\n const sumUnitToll = this.invoice.Items.map((e) => e.UnitToll * e.Quantity).reduce((acc, curr) => acc + curr, 0);\r\n if (this.validFreeService && !this.invoice.IgnoreService) {\r\n this.invoice.TotalService = 0;\r\n this.validHappyHour = true;\r\n if (this.invoice.DiscountType !== DiscountTypeEnum.User) {\r\n this.invoice.DiscountType = DiscountTypeEnum.HappyHour;\r\n }\r\n }\r\n //محاسبه مالیات حق سرویس\r\n if (this.invoice.ApplyTaxForService && this.invoice.TotalService > 0) {\r\n this.invoice.ServiceTax = (this.invoice.TotalService * (this.invoice.TaxRate + this.invoice.TollRate)) / 100; //باید اضافه شود\r\n this.invoice.ServiceTax = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.floor(this.invoice.ServiceTax)\r\n : parseFloat(this.invoice.ServiceTax?.toFixed(4));\r\n this.invoice.ServiceTax = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.floor(this.invoice.ServiceTax)\r\n : parseFloat(this.invoice.ServiceTax?.toFixed(4));\r\n }\r\n /// less\r\n var FinalDiscount: number = 0;\r\n var FinalTax: number = 0;\r\n var PayableTotalLess =\r\n this.invoice.Total /*+ Taxless + Serviceless */ +\r\n this.invoice.PackingPrice +\r\n (this.currentSaleMethodNature === SaleMethodNature.Delivery ? this.invoice.ShippingCost : 0);\r\n var RowDiscount: number = 0;\r\n var DiffDiscount: number = 0;\r\n this.invoice.Items.forEach((ele) => {\r\n RowDiscount += ele.RowDiscountPrice * ele.Quantity;\r\n });\r\n if (this.invoice.IsDiscountPercent) {\r\n if (this.invoice.Items.filter((it) => it.IsOrganizationalDiscount)?.length && this.invoice.Customer.Category?.OrganizationalDiscount > 0) {\r\n FinalDiscount = (this.invoice.Total * this.formGroup.controls[\"Discount\"].value) / 100;\r\n } else FinalDiscount = (PayableTotalLess * this.formGroup.controls[\"Discount\"].value) / 100;\r\n } else {\r\n FinalDiscount = this.formGroup.controls[\"Discount\"].value;\r\n }\r\n FinalDiscount = !this.currentBranch.HasAuditorInSalesAmounts ? Math.round(FinalDiscount) : parseFloat(FinalDiscount?.toFixed(4));\r\n this.invoice.RoundingAmount = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.RoundingAmount)\r\n : parseFloat(this.invoice.RoundingAmount?.toFixed(4));\r\n this.invoice.RoundingAmount = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.RoundingAmount)\r\n : parseFloat(this.invoice.RoundingAmount?.toFixed(4));\r\n let payableTotalLess = this.invoice.Total + this.invoice.PackingPrice + this.invoice.ShippingCost + this.invoice.RoundingAmount;\r\n this.invoice.PayableTotalLessDiscount = payableTotalLess;\r\n /// less\r\n if (\r\n this.invoice.TotalDiscount > 0 &&\r\n ((this.currentSaleMethodNature === SaleMethodNature.Delivery && this.invoice.ShippingCost > 0) || this.invoice.PackingPrice > 0) &&\r\n (this.invoice.IsDiscountPercent ||\r\n (!this.invoice.IsDiscountPercent && this.invoice.DiscountPrice + this.invoice.PackingPrice + this.invoice.ShippingCost > this.invoice.Total))\r\n ) {\r\n if (this.invoice.Total > FinalDiscount) DiffDiscount = 0;\r\n else DiffDiscount = FinalDiscount - this.invoice.Total;\r\n if (\r\n this.invoice.ShippingCost > 0 &&\r\n this.saleMethodBranch.ApplyTaxForShippingCost &&\r\n this.saleMethodBranch.ApplyTax &&\r\n this.saleMethodBranch.ApplyTaxForShippingCost\r\n ) {\r\n if (!this.invoice.IsDiscountPercent) {\r\n if (DiffDiscount > 0) {\r\n let ShippingCostTax =\r\n this.invoice.ShippingCost - (DiffDiscount / (this.invoice.PackingPrice + this.invoice.ShippingCost)) * this.invoice.ShippingCost;\r\n this.invoice.TotalTax += (ShippingCostTax * this.invoice.TaxRate) / 100;\r\n this.invoice.TotalToll += (ShippingCostTax * this.invoice.TollRate) / 100;\r\n } else {\r\n this.invoice.TotalTax += (this.invoice.ShippingCost * this.invoice.TaxRate) / 100;\r\n this.invoice.TotalToll += (this.invoice.ShippingCost * this.invoice.TollRate) / 100;\r\n }\r\n } else {\r\n const dis = this.invoice.ShippingCost - (this.invoice.ShippingCost * this.invoice.Discount) / 100;\r\n this.invoice.TotalTax += (dis * this.invoice.TaxRate) / 100;\r\n this.invoice.TotalToll += (dis * this.invoice.TollRate) / 100;\r\n }\r\n }\r\n this.invoice.TotalTax = Math.floor(this.invoice.TotalTax);\r\n this.invoice.TotalToll = Math.floor(this.invoice.TotalToll);\r\n if (\r\n this.invoice.PackingPrice > 0 &&\r\n this.saleMethodBranch.ApplyPackingPrice &&\r\n this.saleMethodBranch.ApplyTax &&\r\n this.saleMethodBranch.ApplyTaxForPackingPrice\r\n ) {\r\n if (!this.invoice.IsDiscountPercent) {\r\n if (DiffDiscount > 0) {\r\n let pTax =\r\n this.invoice.PackingPrice - (DiffDiscount / (this.invoice.PackingPrice + this.invoice.ShippingCost)) * this.invoice.PackingPrice;\r\n this.invoice.TotalTax += (pTax * this.invoice.TaxRate) / 100;\r\n this.invoice.TotalToll += (pTax * this.invoice.TollRate) / 100;\r\n } else {\r\n this.invoice.TotalTax += (this.invoice.PackingPrice * this.invoice.TaxRate) / 100;\r\n this.invoice.TotalToll += (this.invoice.PackingPrice * this.invoice.TollRate) / 100;\r\n }\r\n } else {\r\n const dis =\r\n (this.formGroup.controls[\"PackingPrice\"].value ? this.formGroup.controls[\"PackingPrice\"].value : 0) -\r\n ((this.formGroup.controls[\"PackingPrice\"].value ? this.formGroup.controls[\"PackingPrice\"].value : 0) * this.invoice.Discount) / 100;\r\n this.invoice.TotalTax += (dis * this.invoice.TaxRate) / 100;\r\n this.invoice.TotalToll += (dis * this.invoice.TollRate) / 100;\r\n }\r\n }\r\n this.invoice.TotalTax = Math.floor(this.invoice.TotalTax);\r\n this.invoice.TotalToll = Math.floor(this.invoice.TotalToll);\r\n if (!this.saleMethodBranch.ApplyPackingPrice) {\r\n this.invoice.PackingPrice = 0;\r\n this.setValue(\"PackingPrice\", \"\");\r\n }\r\n this.invoice.TotalDiscount = Number(FinalDiscount) + (RowDiscount ? RowDiscount : 0);\r\n this.invoice.TotalDiscount = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.TotalDiscount)\r\n : parseFloat(this.invoice.TotalDiscount?.toFixed(4));\r\n this.invoice.TotalDiscount = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.TotalDiscount)\r\n : parseFloat(this.invoice.TotalDiscount?.toFixed(4));\r\n this.invoice.PayableTotal =\r\n this.invoice.Total +\r\n (this.formGroup.controls[\"PackingPrice\"].value ? this.formGroup.controls[\"PackingPrice\"].value : 0) +\r\n (this.currentSaleMethodNature === SaleMethodNature.Delivery ? this.invoice.ShippingCost : 0) +\r\n this.invoice.TotalService +\r\n this.invoice.TotalTax +\r\n this.invoice.TotalToll -\r\n FinalDiscount;\r\n PayableTotal = this.invoice.PayableTotal;\r\n PayableTotal = !this.currentBranch?.HasAuditorInSalesAmounts ? Math.round(PayableTotal) : parseFloat(PayableTotal?.toFixed(4));\r\n } else {\r\n //محاسبه مالیات هزینه بسته بندی\r\n if (this.saleMethodBranch.ApplyTax && this.saleMethodBranch.ApplyTaxForPackingPrice && this.formGroup.controls[\"PackingPrice\"].value > 0) {\r\n PackingPriceTax = (this.formGroup.controls[\"PackingPrice\"]?.value * (this.invoice.TaxRate + this.invoice.TollRate)) / 100; //باید اضافه شود\r\n PackingPriceTax = !this.currentBranch.HasAuditorInSalesAmounts ? Math.floor(PackingPriceTax) : parseFloat(PackingPriceTax?.toFixed(4));\r\n }\r\n //محاسبه مالیات کرایه\r\n if (\r\n this.saleMethodBranch.ApplyTax &&\r\n this.saleMethodBranch.ApplyTaxForShippingCost === true &&\r\n this.invoice.ShippingCost > 0 &&\r\n !this.invoice.IgnoreShippingCost\r\n ) {\r\n this.invoice.ShippingCostTax = (this.invoice.ShippingCost * (this.invoice.TaxRate + this.invoice.TollRate)) / 100;\r\n }\r\n this.invoice.TotalTax += PackingPriceTax;\r\n this.invoice.TotalTax += this.invoice.ShippingCostTax;\r\n this.invoice.TotalTax = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.floor(this.invoice.TotalTax)\r\n : parseFloat(this.invoice.TotalTax?.toFixed(4));\r\n this.invoice.TotalTax = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.floor(this.invoice.TotalTax)\r\n : parseFloat(this.invoice.TotalTax?.toFixed(4));\r\n /// بدست اوردن جمع برای مبلغ گرد کردن\r\n PayableTotal =\r\n this.invoice.TotalNet +\r\n (this.formGroup.controls[\"PackingPrice\"]?.value ? this.formGroup.controls[\"PackingPrice\"]?.value : 0) +\r\n PackingPriceTax +\r\n (this.currentSaleMethodNature === this.SaleMethodNature.Delivery ? (this.invoice.ShippingCost ? this.invoice.ShippingCost : 0) : 0) +\r\n (this.currentSaleMethodNature === this.SaleMethodNature.Delivery ? (this.invoice.ShippingCostTax ? this.invoice.ShippingCostTax : 0) : 0);\r\n PayableTotal = !this.currentBranch?.HasAuditorInSalesAmounts ? Math.round(PayableTotal) : parseFloat(PayableTotal?.toFixed(4));\r\n }\r\n\r\n //مبلغ گرد شدن\r\n if (this.currentBranch.RoundingAmount > 0 && PayableTotal > 0 && PayableTotal % this.currentBranch.RoundingAmount !== 0) {\r\n //استاندارد\r\n if (this.currentBranch.RoundingTypeCode === 0) {\r\n roundingTemp = PayableTotal % this.currentBranch.RoundingAmount;\r\n if (roundingTemp >= this.currentBranch.RoundingAmount / 2) this.invoice.RoundingAmount = this.currentBranch.RoundingAmount - roundingTemp;\r\n else this.invoice.RoundingAmount = roundingTemp * -1;\r\n }\r\n //رو به بالا\r\n else if (this.currentBranch.RoundingTypeCode === 1) {\r\n roundingTemp = PayableTotal % this.currentBranch.RoundingAmount;\r\n this.invoice.RoundingAmount = this.currentBranch.RoundingAmount - roundingTemp;\r\n }\r\n //رو به پایین\r\n else if (this.currentBranch.RoundingTypeCode === 2) {\r\n roundingTemp = PayableTotal % this.currentBranch.RoundingAmount;\r\n this.invoice.RoundingAmount = roundingTemp * -1;\r\n }\r\n }\r\n if (this.currentSaleMethodNature !== this.SaleMethodNature.Delivery) {\r\n this.invoice.ShippingCost = 0;\r\n this.invoice.ShippingCostTax = 0;\r\n }\r\n\r\n // قابل پرداخت\r\n this.invoice.RoundingAmount = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.RoundingAmount)\r\n : parseFloat(this.invoice.RoundingAmount?.toFixed(4));\r\n this.invoice.RoundingAmount = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.RoundingAmount)\r\n : parseFloat(this.invoice.RoundingAmount?.toFixed(4));\r\n this.invoice.PayableTotal = PayableTotal + this.invoice.RoundingAmount;\r\n this.invoice.PayableTotal = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.PayableTotal)\r\n : parseFloat(this.invoice.PayableTotal?.toFixed(4));\r\n this.invoice.PayableTotal = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.PayableTotal)\r\n : parseFloat(this.invoice.PayableTotal?.toFixed(4));\r\n /// کرایه مشتری\r\n if (this.invoice?.CustomerAddress?.ShippingCost && isNewCalculate && this.invoice.PayableTotal > 0) {\r\n this.setValue(\"ShippingCost\", this.invoice.CustomerAddress ? this.invoice.CustomerAddress.ShippingCost : null);\r\n }\r\n\r\n // اعمال محاسبات نرخ خدمات سرویس سفارشات\r\n if (this.currentInformation?.OrderServices && this.saleMethodBranch.HasDeposit) {\r\n this.invoice.PayableTotal = this.invoice.PayableTotal + this.depositFormGroup.controls[\"ServicesAmount\"].value;\r\n this.invoice.PayableTotal = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.PayableTotal)\r\n : parseFloat(this.invoice.PayableTotal?.toFixed(4));\r\n this.invoice.PayableTotal = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.PayableTotal)\r\n : parseFloat(this.invoice.PayableTotal?.toFixed(4));\r\n if (this.depositFormGroup.controls[\"NumberOfPeople\"].value) {\r\n const result = this.invoice?.PayableTotal / this.depositFormGroup.controls[\"NumberOfPeople\"].value;\r\n this.depositFormGroup.controls[\"FoodPricePerson\"]?.setValue(result);\r\n }\r\n }\r\n\r\n // چک کردن بیزینس های مربوط به بدهکاری مشتری\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.Delivery) {\r\n if (this.invoice?.Customer?.AutomaticDebtor && !this.invoice.isDebitDisable && (this.invoice.State == RowState.New || !this.invoice.State)) {\r\n this.invoice.Debit = this.invoice.PayableTotal;\r\n this.setValue(\"Debit\", this.invoice.PayableTotal);\r\n this.invoice.isDebit = true;\r\n }\r\n if (this.invoice.Debit > this.invoice.PayableTotal) {\r\n this.invoice.Debit = this.invoice.PayableTotal;\r\n this.setValue(\"Debit\", this.invoice.PayableTotal);\r\n }\r\n\r\n var calculateMoreOneTime: boolean = false;\r\n //مقایسه جمع کالاها با حداقل کرایه رایگان مشترک\r\n if (\r\n this.invoice?.CustomerAddress?.Zone?.MinimumPurchaseForFreeShipping > 0 &&\r\n (!this.formGroup.controls[\"Discount\"].value || this.freeShippingCostDiscount === this.invoice.TotalDiscount) &&\r\n this.shouldCalculateFreeShippingCost &&\r\n !this.invoice.WebId // not delino\r\n ) {\r\n if (this.invoice?.CustomerAddress?.Zone?.MinimumPurchaseForFreeShipping <= this.invoice.Total && !this.freeShippingCostDiscount) {\r\n this.invoice.TotalDiscount += this.invoice.ShippingCost;\r\n this.invoice.Discount += this.invoice.ShippingCost;\r\n this.freeShippingCostDiscount = this.invoice.ShippingCost;\r\n } else if (\r\n this.invoice?.CustomerAddress?.Zone?.MinimumPurchaseForFreeShipping > this.invoice.Total &&\r\n this.freeShippingCostDiscount === this.invoice.TotalDiscount\r\n ) {\r\n this.invoice.TotalDiscount = 0;\r\n this.invoice.Discount = 0;\r\n this.freeShippingCostDiscount = 0;\r\n }\r\n this.invoice.IsDiscountPercent = false;\r\n this.setValue(\"TotalDiscount\", this.invoice.TotalDiscount);\r\n this.setValue(\"Discount\", this.invoice.Discount);\r\n }\r\n }\r\n if (this.invoice?.Id && this.invoice?.Debit > 0 && !this.invoice.Customer?.HasCredit) {\r\n this.invoice.Debit = 0;\r\n }\r\n this.invoice.Total = 0;\r\n this.invoice.Items.forEach((s) => {\r\n if (s.State != RowState.Delete) {\r\n this.invoice.Total += s.UnitPrice * s.Quantity + s.UnitAdditive * s.Quantity;\r\n this.invoice.Total = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.Total)\r\n : parseFloat(this.invoice.Total?.toFixed(4));\r\n this.invoice.Total = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.Total)\r\n : parseFloat(this.invoice.Total?.toFixed(4));\r\n }\r\n });\r\n\r\n if (this.clubcount == 1) this.ClubCalculate();\r\n this.clubcount = 1;\r\n this.actionState.save = false;\r\n this.actionState.cancel = false;\r\n this.actionState.clear = false;\r\n this.actionState.clearWithoutPrint = false;\r\n this.actionState.mixClear = false;\r\n this.actionState.print = false;\r\n this.actionState.preparationPrint = false;\r\n this.actionState.temporaryRegister = false;\r\n this.actionState.customerPrint = false;\r\n this.checkInvoiceState(this.invoice.CommandCode);\r\n\r\n this.minutesToDelivery();\r\n this.detectChanges();\r\n if (calculateMoreOneTime) {\r\n this.calculate();\r\n }\r\n }\r\n\r\n minutesToDelivery() {\r\n if (!this.invoice?.Customer) return;\r\n if (this.invoice.Customer.MinutesToDelivery || this.invoice?.Items?.length > 0) {\r\n var maxTimeCookingmodel: InvoiceItem;\r\n if (this.invoice?.Items?.length > 0) {\r\n maxTimeCookingmodel = this.invoice.Items?.reduce(function (prev, current) {\r\n return prev.CookingTime > current.CookingTime ? prev : current;\r\n });\r\n }\r\n this.invoice.Customer.MinutesToDelivery =\r\n (this.defaultMinutesToDelivery > 0 ? this.defaultMinutesToDelivery : 0) +\r\n (maxTimeCookingmodel?.CookingTime > 0 ? maxTimeCookingmodel?.CookingTime : 0);\r\n }\r\n }\r\n ClubCalculate() {\r\n if (!this.invoice.ClubViewModel) {\r\n return;\r\n }\r\n if (this.invoice.ClubViewModel) {\r\n this.invoice.ClubViewModel.ClubTotalDiscount = 0;\r\n this.invoice.ClubViewModel.DiscountPrice = 0;\r\n if (this.invoice.PayableTotal && this.invoice.ClubViewModel.UseCreditPrice > 0) {\r\n const ClubDiscount = this.getClubDiscountPrice();\r\n if (this.invoice.ClubViewModel.AvailableCredit + (ClubDiscount ? ClubDiscount : 0) > this.invoice.PayableTotal + this.invoice.TotalDiscount) {\r\n const diff = this.invoice.PayableTotalLessDiscount - (ClubDiscount ? ClubDiscount : 0);\r\n if (this.invoice.ClubViewModel.isDisableusedCredit) {\r\n this.invoice.ClubViewModel.UseCreditPrice = ClubDiscount + this.invoice.ClubViewModel.usedCredit;\r\n } else {\r\n this.invoice.ClubViewModel.UseCreditPrice = ClubDiscount + diff;\r\n this.invoice.ClubViewModel.usedCredit = diff;\r\n }\r\n } else {\r\n if (this.invoice.ClubViewModel.isDisableusedCredit) {\r\n this.invoice.ClubViewModel.UseCreditPrice = ClubDiscount + this.invoice.ClubViewModel.usedCredit;\r\n } else {\r\n this.invoice.ClubViewModel.UseCreditPrice = ClubDiscount + this.invoice.ClubViewModel.AvailableCredit;\r\n this.invoice.ClubViewModel.usedCredit = this.invoice.ClubViewModel.AvailableCredit;\r\n }\r\n }\r\n /// ccc تخٝیٝ کلی در صورت وجود باشگاه\r\n if (this.invoice?.HasClub) {\r\n const discount = this.invoice?.ClubViewModel?.UseCreditPrice ? this.invoice?.ClubViewModel?.UseCreditPrice : 0;\r\n this.invoice.IsDiscountPercent = false;\r\n this.invoice.DiscountPrice = discount;\r\n this.invoice.Discount = discount;\r\n this.setValue(\"Discount\", discount);\r\n }\r\n }\r\n\r\n this.invoice.ClubViewModel.DiscountPrice = this.getClubDiscountPrice();\r\n\r\n this.invoice.ClubViewModel.CreditPrice = 0;\r\n if (this.invoice.ClubViewModel.AvailableCredit && this.invoice.ClubViewModel.AvailableCredit > 0) {\r\n if (this.invoice.TotalWidthRowDiscount < this.invoice.ClubViewModel.AvailableCredit) {\r\n this.invoice.ClubViewModel.CreditPrice = this.invoice.TotalWidthRowDiscount;\r\n } else {\r\n this.invoice.ClubViewModel.CreditPrice = this.invoice.ClubViewModel.AvailableCredit;\r\n }\r\n }\r\n }\r\n\r\n this.clubcount = 2;\r\n this.calculate();\r\n }\r\n\r\n getClubDiscountPrice(): number {\r\n let discountPrice = 0;\r\n /// زمانی که تخفیف درصدی فعال باشد\r\n /// مقایسه برای حداقل قیمت برای اعمال تخفیف درصدی\r\n if (\r\n this.invoice.ClubViewModel.DiscountPercent &&\r\n this.invoice.ClubViewModel.DiscountPercent !== 0 &&\r\n this.invoice.TotalWidthRowDiscount >= this.invoice.ClubViewModel.MinFactorPriceToActiveDiscountPercent\r\n ) {\r\n discountPrice = (this.invoice.TotalWidthRowDiscount * this.invoice.ClubViewModel.DiscountPercent) / 100;\r\n /// حداکثر ظرٝیت قابل استٝاده برای تخٝیٝ درصدی\r\n if (\r\n this.invoice.ClubViewModel.MaxUsablePriceFromDiscountPercent &&\r\n this.invoice.ClubViewModel.MaxUsablePriceFromDiscountPercent !== 0 &&\r\n discountPrice >= this.invoice.ClubViewModel.MaxUsablePriceFromDiscountPercent\r\n )\r\n discountPrice = this.invoice.ClubViewModel.MaxUsablePriceFromDiscountPercent;\r\n }\r\n\r\n return discountPrice;\r\n }\r\n\r\n calcDepositServiceAmount(rows: any[], amount = 0) {\r\n const sum = rows.length ? rows.map((x) => x.Amount).reduce((x, z) => Number(x) + Number(z)) : 0;\r\n this.depositServiceAmount = sum + amount;\r\n this.depositServiceRemain = this.depositFormGroup.controls[\"ServicesAmount\"].value - this.depositServiceAmount;\r\n this.depositServiceRemainSummary = `${this.translate(\"ClientApp.FrontOffice.Order.Remainder\")} : ${this.depositServiceRemain}`;\r\n this.depositServiceAmountSummary = `${this.translate(\"ClientApp.FrontOffice.Order.AmountOfService\")} : ${this.depositServiceAmount}`;\r\n }\r\n\r\n depositValidation(): { errMessage: string; focusOnServicesAmount: boolean } {\r\n const depositControls = this.depositFormGroup.controls;\r\n let errMessage = \"\";\r\n let focusOnServicesAmount = false;\r\n const FormSetting = this.storage.getData(ClearableCache.FormSetting);\r\n if (!FormSetting?.HasClearType) this.depositFormGroup.controls[\"ClearType\"].setErrors(null);\r\n if (!FormSetting?.HasDeliveryType) this.depositFormGroup.controls[\"DeliveryType\"].setErrors(null);\r\n if (this.depositFormGroup.valid) {\r\n if (this.depositPersonnelList.length && !depositControls[\"ServicesAmount\"].value) {\r\n focusOnServicesAmount = true;\r\n errMessage = this.translate(\"ClientApp.FrontOffice.Order.EnterServiceAmount\");\r\n depositControls[\"ServicesAmount\"].updateValueAndValidity();\r\n } else if (\r\n this.depositPersonnelList.length &&\r\n depositControls[\"ServicesAmount\"].value &&\r\n this.depositServiceAmount !== depositControls[\"ServicesAmount\"].value\r\n ) {\r\n errMessage = this.translate(\"ClientApp.FrontOffice.Order.EnterServiceAmountInFull\");\r\n }\r\n } else {\r\n errMessage = this.translate(\"ClientApp.FrontOffice.Order.EnterNecessaryInformationServiceOrders\");\r\n this.isShowDeposit = true;\r\n this.detectChanges();\r\n }\r\n\r\n return { errMessage, focusOnServicesAmount };\r\n }\r\n\r\n closeSidebar() {\r\n this._opened = false;\r\n }\r\n filterItembyBranchId(BranchId: number) {\r\n if (!this.itemCategoryListAll) return;\r\n this.itemCategoryList = JSON.parse(JSON.stringify(this.itemCategoryListAll));\r\n if (!BranchId || (this.currentBranch?.AccessToAllBranches && this.currentBranch?.BranchId === BranchId)) {\r\n this.itemCategoryList.forEach((element) => {\r\n element.Items = [];\r\n });\r\n this.selectedItemCategory.Items = [];\r\n this.detectChanges();\r\n return;\r\n }\r\n this.itemCategoryList?.forEach((ele, index) => {\r\n ele.Items.forEach((it) => {\r\n if (it.Branches?.length) {\r\n it.StockInWeb = it?.Branches?.find((f) => f.BranchId === BranchId)?.StockInWeb;\r\n let favItem = this.favoriteItems.find((item) => it.Id == item.ItemId && item.SaleMethodBranchId == this.saleMethodBranch.Id);\r\n favItem ? (it.favoriteIndex = favItem.index) : (it.favoriteIndex = -1);\r\n const usedGoodsInItem = this.warehouseStockItems?.filter(\r\n (f) => (f.PrevRemainAmount || f.EntryAmount) && f.BranchId === BranchId && f.ItemsInRelation.some((x) => x.Id === it.Id)\r\n );\r\n it.notAvailableGoodIds = usedGoodsInItem.filter((x) => x.Amount <= 0).map((x) => x.GoodsId);\r\n } else {\r\n it.StockInWeb = StockInWebKind.UnAvailable;\r\n it.ItemChild?.forEach((child) => {\r\n child.StockInWeb = child.Branches?.find((f) => f.BranchId === BranchId)?.StockInWeb;\r\n const usedGoodsInItem = this.warehouseStockItems?.filter(\r\n (f) => (f.PrevRemainAmount || f.EntryAmount) && f.BranchId === BranchId && f.ItemsInRelation.some((x) => x.Id === child.Id)\r\n );\r\n child.notAvailableGoodIds = usedGoodsInItem.filter((x) => x.Amount <= 0).map((x) => x.GoodsId);\r\n });\r\n }\r\n });\r\n if (ele.Id == 0) {\r\n let temp = this.sortingArrayByFav(ele.Items);\r\n ele.Items = temp;\r\n }\r\n\r\n if (index !== 0) {\r\n const state = this.getCategoryPopUpState(ele.Items);\r\n ele.categoryPopupState = state;\r\n }\r\n\r\n ele.Items = ele.Items.filter((f) => f.Branches === null || (f.Branches && f.Branches.some((s) => s.BranchId === BranchId && s.IsActive)));\r\n ele.Items = ele.Items.filter(\r\n (f) => (f.DataDaysWeekTitle && f.DataDaysWeekTitle?.includes(this.lastInvoiceInformation.DayOfWeek)) || !f.DataDaysWeekTitle\r\n );\r\n\r\n const findChild = ele.Items.filter((f) => f.ItemChild && f.ItemChild.length > 0);\r\n if (findChild && findChild.length > 0) {\r\n findChild.forEach((element) => {\r\n element.favoriteIndex = -1;\r\n element.ItemChild = element.ItemChild.filter((f) => f.Branches && f.Branches.some((s) => s.BranchId === BranchId));\r\n element.ItemChild = element.ItemChild.filter(\r\n (f) => (f.DataDaysWeekTitle && f.DataDaysWeekTitle?.includes(this.lastInvoiceInformation.DayOfWeek)) || !f.DataDaysWeekTitle\r\n );\r\n element.ItemChild.forEach((it) => {\r\n let favItem = this.favoriteItems.find((item) => it.Id == item.ItemId && item.SaleMethodBranchId == this.saleMethodBranch.Id); //&&\r\n if (favItem) {\r\n it.favoriteIndex = favItem.index;\r\n if (ele.Id == 0) {\r\n ele.Items.unshift(it);\r\n this.itemCategoryListAll[0].Items.unshift(it);\r\n }\r\n } else it.favoriteIndex = -1;\r\n });\r\n if (ele.Id == 0) {\r\n let temp = this.sortingArrayByFav(element.ItemChild);\r\n element.ItemChild = temp;\r\n }\r\n });\r\n }\r\n });\r\n // const favoritedItemsInBundles = this.getFavItemsOutOfBundle();\r\n\r\n this.itemCategoryList[0].Items = this.sortingArrayByFav(this.itemCategoryList[0].Items);\r\n this.itemCategoryListAll[0].Items = this.sortingArrayByFav(this.itemCategoryListAll[0].Items);\r\n this.getItemCategory();\r\n }\r\n private getCategoryPopUpState(items: OrderItem[], callSelfMethod = true) {\r\n const hasAnyBundle = items?.some((x) => x.Branches === null);\r\n let bundleStates = null;\r\n if (hasAnyBundle && callSelfMethod) {\r\n let bundleItems = items?.filter((x) => x.Branches === null).map((x) => x.ItemChild);\r\n const flatArray = bundleItems.reduce((acc, val) => acc.concat(val), []);\r\n bundleStates = this.getCategoryPopUpState(flatArray, false);\r\n }\r\n\r\n const anyItemsUnAvailable = items?.some((child) => child?.StockInWeb !== StockInWebKind.Available);\r\n const anyItemsAvailable = items?.some((child) => child?.StockInWeb === StockInWebKind.Available);\r\n let categoryPopupState = bundleStates;\r\n\r\n if (anyItemsUnAvailable) {\r\n if (anyItemsAvailable) {\r\n categoryPopupState = CategoryPopupState.Multi;\r\n } else if (bundleStates == null || bundleStates == CategoryPopupState.AllNonAvailable) {\r\n categoryPopupState = CategoryPopupState.AllNonAvailable;\r\n } else if (bundleStates == CategoryPopupState.AllAvailable || bundleStates == CategoryPopupState.Multi) {\r\n categoryPopupState = CategoryPopupState.Multi;\r\n }\r\n } else if (bundleStates == null || bundleStates == CategoryPopupState.AllAvailable) categoryPopupState = CategoryPopupState.AllAvailable;\r\n else categoryPopupState = CategoryPopupState.Multi;\r\n\r\n return categoryPopupState;\r\n }\r\n\r\n private updateItemNotAvailableGoodIds(BranchId: number, item: OrderItem, eventName: string) {\r\n const itemBranch = item.Branches.find((x) => x.BranchId === BranchId);\r\n if (\r\n item.notAvailableGoodIds?.length &&\r\n itemBranch &&\r\n (itemBranch.StockInWeb === StockInWebKind.Available || itemBranch.StockInWeb === StockInWebKind.UnAvailableOnSite)\r\n ) {\r\n itemBranch.StockInWeb = StockInWebKind.UnAvailableFromInv;\r\n item.StockInWeb = StockInWebKind.UnAvailableFromInv;\r\n } else if (\r\n !item.notAvailableGoodIds?.length &&\r\n itemBranch &&\r\n itemBranch.StockInWeb !== StockInWebKind.Available &&\r\n this.warehouseStockItems.some((w) => w.ItemsInRelation.some((x) => item.Id == x.Id)) &&\r\n (eventName !== \"invoiceChanges\" || itemBranch.StockInWeb !== StockInWebKind.UnAvailable)\r\n ) {\r\n itemBranch.StockInWeb = StockInWebKind.Available;\r\n item.StockInWeb = StockInWebKind.Available;\r\n }\r\n }\r\n\r\n updateStockInWebByInvSignal(branchId: number, warehouseStockItems: InvDailyWarehouse[], eventName: string) {\r\n this.itemCategoryList.forEach((ele) => {\r\n ele.Items.forEach((it) => {\r\n if (it.Branches?.length) {\r\n const usedGoodsInItem = warehouseStockItems?.filter(\r\n (f) => (f.PrevRemainAmount || f.EntryAmount) && f.BranchId === branchId && f.ItemsInRelation.some((x) => x.Id === it.Id)\r\n );\r\n it.notAvailableGoodIds = usedGoodsInItem.filter((x) => x.Amount <= 0).map((x) => x.GoodsId);\r\n if (usedGoodsInItem.length) this.updateItemNotAvailableGoodIds(branchId, it, eventName);\r\n } else {\r\n it.ItemChild?.forEach((child) => {\r\n const usedGoodsInItem = warehouseStockItems?.filter(\r\n (f) => (f.PrevRemainAmount || f.EntryAmount) && f.BranchId === branchId && f.ItemsInRelation.some((x) => x.Id === it.Id)\r\n );\r\n it.notAvailableGoodIds = usedGoodsInItem.filter((x) => x.Amount <= 0).map((x) => x.GoodsId);\r\n if (usedGoodsInItem.length) this.updateItemNotAvailableGoodIds(branchId, child, eventName);\r\n });\r\n }\r\n });\r\n });\r\n this.itemCategoryListAll = this.itemCategoryList;\r\n this.indexedDbService.put(\"FrontOffice\", \"Categories\", this.itemCategoryListAll).then();\r\n this.itemCategoryList = JSON.parse(JSON.stringify(this.itemCategoryList));\r\n this.itemHasParent = null;\r\n this.getItemCategory();\r\n this.SalePriceChange(this.invoice.SalePriceTypeId, true);\r\n }\r\n\r\n // لود کردن تب جاری بر اساس ماهیت فروش\r\n public setActivePage(ActivePage?: ActivePageEnum) {\r\n if (!this.saleMethodBranch.Id) {\r\n this.detectChanges();\r\n return;\r\n }\r\n if (ActivePage) {\r\n this.currentActivePage = ActivePage;\r\n if (this.invoice.StatusCode === InvoiceStatus.New) {\r\n this.customerHasOpenInvoice();\r\n }\r\n this.detectChanges();\r\n return;\r\n }\r\n if (this.shouldActivateSalonPage) {\r\n if (this.saleMethodBranch.TableIsRequired) {\r\n this.currentActivePage = ActivePageEnum.Salon;\r\n } else if (this.common.isMobileMode) {\r\n this.currentActivePage = ActivePageEnum.OrderItem;\r\n } else this.currentActivePage = ActivePageEnum.Order;\r\n this.detectChanges();\r\n return;\r\n }\r\n if (this.shouldActivateInvoicesPage) {\r\n this.currentActivePage = ActivePageEnum.Invoices;\r\n this.detectChanges();\r\n return;\r\n }\r\n if (this.shouldActivateReserveOnlinePage) {\r\n this.currentActivePage = ActivePageEnum.ReserveOnline;\r\n this.detectChanges();\r\n return;\r\n }\r\n switch (this.currentSaleMethodNature) {\r\n case SaleMethodNature.Restaurant:\r\n if (this.saleMethodBranch.TableIsRequired) {\r\n this.currentActivePage = ActivePageEnum.Salon;\r\n } else {\r\n if (this.common.isMobileMode) this.currentActivePage = ActivePageEnum.OrderItem;\r\n else this.currentActivePage = ActivePageEnum.Order;\r\n }\r\n break;\r\n case SaleMethodNature.Delivery:\r\n this.currentActivePage = ActivePageEnum.Customer;\r\n break;\r\n case SaleMethodNature.FastFood:\r\n if (this.common.isMobileMode) {\r\n this.itemHasParent = null;\r\n this.currentActivePage = ActivePageEnum.OrderItem;\r\n } else this.currentActivePage = ActivePageEnum.Order;\r\n break;\r\n }\r\n if (this.invoice.StatusCode === InvoiceStatus.New) {\r\n this.customerHasOpenInvoice();\r\n }\r\n this.detectChanges();\r\n }\r\n /// چک کردن فاکتور باز برای مشتری و چک کردن کرایه\r\n customerHasOpenInvoice() {\r\n if (\r\n this.saleMethodBranch.SaleMethodNatureCode !== SaleMethodNature.Delivery ||\r\n this.currentActivePage !== ActivePageEnum.Order ||\r\n this.invoice.Customer?.Id === this.defaultCustomerId\r\n )\r\n return;\r\n else {\r\n this.httpCommonService\r\n .getItem(`Invoice/CustomerHasOpenInvoice`, this.invoice.CustomerId)\r\n .pipe(take(1))\r\n .subscribe((res: boolean) => {\r\n if (res) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.CustomerHasOpenInvoice\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.Warning\"),\r\n DialogType.confirm,\r\n () => {\r\n if (this.invoice.ShippingCost === this.invoice.Discount) {\r\n this.invoice.Discount = 0;\r\n this.formGroup.controls[\"Discount\"].setValue(0);\r\n }\r\n this.invoice.ShippingCost = 0;\r\n this.invoice.CourierShippingCost = 0;\r\n this.formGroup.controls[\"ShippingCost\"].setValue(0);\r\n this.calculate();\r\n return;\r\n }\r\n );\r\n } else {\r\n return;\r\n }\r\n });\r\n return;\r\n }\r\n }\r\n focus(id: string) {\r\n const input: HTMLInputElement = document.getElementById(id) as HTMLInputElement;\r\n if (input) {\r\n input.focus();\r\n input.select();\r\n }\r\n }\r\n public focusInput() {\r\n if (this.saleMethodBranch.HasKeyboardOrder) {\r\n setTimeout(() => {\r\n this.focus(`Code${this.__id}`);\r\n }, 50);\r\n }\r\n }\r\n\r\n public customerInActiveCategory(addressId: number, currentCustomer: CustomerDetailInfoViewModel, branchId?: number): boolean {\r\n const CustomerAddress = currentCustomer?.Addresses.find((x) => x.Id === addressId);\r\n let defaultBranchId = branchId ? branchId : this.logInBranch.Id;\r\n if (!!this.isMultiBranch && !branchId) {\r\n defaultBranchId = CustomerAddress?.DefaultBranchId\r\n ? CustomerAddress?.DefaultBranchId\r\n : CustomerAddress?.Zone?.Branches?.find((f) => f.IsDefault)?.BranchId;\r\n }\r\n const saleMethodBranch = this.saleMethodList.find((f) => f.BranchId == defaultBranchId && f.SaleMethodId === this.saleMethodBranch.SaleMethodId);\r\n const isActiveCategory: boolean = saleMethodBranch?.CustomerCategories.some((c) => c.CategoryId == currentCustomer?.CategoryId);\r\n return !!isActiveCategory;\r\n }\r\n\r\n detectChanges() {\r\n if (this.cd) this.cd.markForCheck();\r\n if (this.cd_Description) this.cd_Description.markForCheck();\r\n if (this.cd_DescCustomer) this.cd_DescCustomer.markForCheck();\r\n if (this.cd_DescKitchen) this.cd_DescKitchen.markForCheck();\r\n if (this.cd_FastAccess) this.cd_FastAccess.markForCheck();\r\n if (this.cd_Invoice) this.cd_Invoice.markForCheck();\r\n if (this.cd_Salons) this.cd_Salons.markForCheck();\r\n if (this.cd_Total) this.cd_Total.markForCheck();\r\n if (this.cd_Header) this.cd_Header.markForCheck();\r\n if (this.cd_FastAccessClub) this.cd_FastAccessClub.markForCheck();\r\n if (this.cd_FastAccessCustomer) this.cd_FastAccessCustomer.markForCheck();\r\n if (this.cd_FastAccessDriverAssignment) this.cd_FastAccessDriverAssignment.markForCheck();\r\n if (this.cd_FastAccessInvoiceChange) this.cd_FastAccessInvoiceChange.markForCheck();\r\n if (this.cd_FastAccessPager) this.cd_FastAccessPager.markForCheck();\r\n if (this.cd_FastAccessSalon) this.cd_FastAccessSalon.markForCheck();\r\n if (this.cd_FastAccessWaiter) this.cd_FastAccessWaiter.markForCheck();\r\n if (this.cd_Footer) this.cd_Footer.markForCheck();\r\n if (this.cd_Deposit) this.cd_Deposit.markForCheck();\r\n }\r\n /// فعال شدن عملگر ها با توجه به چک کردن وضعبت فاکتور\r\n public checkInvoiceState(Action: InvoiceCommand) {\r\n if (this.invoice.Items.length <= 0 && this.invoice.StatusCode !== InvoiceStatus.Pending) {\r\n return false;\r\n }\r\n if (!this.invoice.StatusCode && this.invoice.StatusCode !== 0) {\r\n return false;\r\n }\r\n\r\n // چک کردن وضعیت های مجاز در فروش فست فودی\r\n if (\r\n (this.HasAccess(\"ClearWithoutPrintClearedStatus\") || this.HasAccess(\"ClearClearedStatus\")) &&\r\n this.currentSaleMethodNature === this.SaleMethodNature.FastFood &&\r\n this.invoice.StatusCode !== InvoiceStatus.Cancelled\r\n ) {\r\n //this.actionState.clearWithoutPrint = true;\r\n this.actionState.clear = true;\r\n this.actionState.mixClear = true;\r\n }\r\n switch (this.invoice.StatusCode) {\r\n case InvoiceStatus.New:\r\n this.actionState.cancel = false;\r\n /// ثبت موقت\r\n this.actionState.temporaryRegister = true;\r\n /// چاپ و آماده سازی\r\n this.actionState.preparationPrint = true;\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.Delivery) {\r\n if (this.currentInformation?.OrderServices && this.saleMethodBranch.HasDeposit) {\r\n this.actionState.clearWithoutPrint = false;\r\n this.actionState.clear = false;\r\n this.actionState.mixClear = false;\r\n this.actionState.preparationPrint = false;\r\n this.actionState.save = true;\r\n this.actionState.delivered = true;\r\n }\r\n return (this.actionState.save = false);\r\n }\r\n\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.Restaurant) {\r\n this.actionState.clear = false;\r\n this.actionState.print = false;\r\n this.actionState.clearWithoutPrint = false;\r\n }\r\n\r\n // چک کردن وضعیت های غیر مجاز در فروش فست فودی\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.FastFood) {\r\n this.actionState.customerPrint = false;\r\n this.actionState.preparationPrint = false;\r\n }\r\n\r\n if (this.HasAccess(\"ClearWithoutPrint\") && this.currentSaleMethodNature === this.SaleMethodNature.FastFood) {\r\n this.actionState.clearWithoutPrint = true;\r\n }\r\n break;\r\n case InvoiceStatus.Pending: //ثبت موقت\r\n /// ثبت موقت\r\n this.actionState.temporaryRegister = true;\r\n /// چاپ و آماده سازی\r\n this.actionState.preparationPrint = true;\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.Delivery) {\r\n this.actionState.print = true;\r\n if (this.currentInformation?.OrderServices && this.saleMethodBranch.HasDeposit) {\r\n this.actionState.preparationPrint = false;\r\n this.actionState.delivered = true;\r\n }\r\n }\r\n if (this.HasAccess(\"ClearWithoutPrintPendingStatus\") && this.currentSaleMethodNature === this.SaleMethodNature.Restaurant) {\r\n this.actionState.print = true;\r\n this.actionState.clearWithoutPrint = true;\r\n }\r\n if (this.HasAccess(\"ClearWithoutPrintPendingStatus\")) this.actionState.clearWithoutPrint = true;\r\n if (this.HasAccess(\"ClearPendingStatus\")) this.actionState.clear = true;\r\n\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.FastFood) {\r\n this.actionState.preparationPrint = false;\r\n }\r\n break;\r\n case InvoiceStatus.Ordering:\r\n if (this.HasAccess(\"ClearOrderingStatus\")) this.actionState.clear = true;\r\n if (this.HasAccess(\"ClearWithoutPrintOrderingStatus\")) this.actionState.clearWithoutPrint = true;\r\n if (this.HasAccess(\"CancelOrderingStatus\")) this.actionState.cancel = true;\r\n\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.Delivery) {\r\n this.actionState.clear = false;\r\n this.actionState.clearWithoutPrint = false;\r\n }\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.Delivery && (this.invoiceChanged || this.itemChanged)) {\r\n this.actionState.preparationPrint = true;\r\n this.actionState.save = true;\r\n if (this.currentInformation?.OrderServices && this.saleMethodBranch.HasDeposit) {\r\n this.actionState.preparationPrint = false;\r\n this.actionState.delivered = true;\r\n }\r\n }\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.Restaurant && (this.invoiceChanged || this.itemChanged)) {\r\n this.actionState.mixClear = true;\r\n this.actionState.preparationPrint = true;\r\n this.actionState.save = true;\r\n }\r\n // برای ٝعال شدن پرینت مشتری در حالت موقت\r\n if (this.HasAccess(\"CustomerPrintOrderingStatus\") && this.currentSaleMethodNature === this.SaleMethodNature.Restaurant) {\r\n this.actionState.customerPrint = true;\r\n }\r\n\r\n break;\r\n case InvoiceStatus.Clearing:\r\n if (this.HasAccess(\"SaveWithoutPrintClearingStatus\") || this.HasAccess(\"ClearClearingStatus\") || this.HasAccess(\"CancelClearingStatus\")) {\r\n this.actionState.save = true;\r\n this.actionState.clear = true;\r\n this.actionState.cancel = true;\r\n }\r\n if (this.HasAccess(\"ClearWithoutPrintClearingStatus\")) this.actionState.clearWithoutPrint = true;\r\n\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.Restaurant) {\r\n this.actionState.mixClear = true;\r\n }\r\n if (this.HasAccess(\"CustomerPrintClearingStatus\") && this.itemChanged) {\r\n this.actionState.customerPrint = true;\r\n }\r\n break;\r\n case InvoiceStatus.Cleared:\r\n if (this.HasAccess(\"ClearClearedStatus\") || this.HasAccess(\"ClearWithoutPrintClearedStatus\")) {\r\n this.actionState.clear = true;\r\n this.actionState.clearWithoutPrint = true;\r\n }\r\n if (this.HasAccess(\"CancelClearedStatus\")) this.actionState.cancel = true;\r\n\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.Restaurant) this.actionState.mixClear = true;\r\n break;\r\n case InvoiceStatus.Assigned:\r\n if (this.HasAccess(\"SaveWithoutPrintAssignedStatus\")) {\r\n this.actionState.save = true;\r\n }\r\n if (this.HasAccess(\"CancelAssignedStatus\")) this.actionState.cancel = true;\r\n break;\r\n case InvoiceStatus.Cancelled:\r\n break;\r\n case InvoiceStatus.Completed:\r\n break;\r\n default:\r\n break;\r\n }\r\n this.detectChanges();\r\n return false;\r\n }\r\n /// بیزینس های کال سنتر\r\n ChangeBranch(branchId: number, setDefaultPriceType = true): void {\r\n if (this.invoice.Id) this.invoiceChanged = true;\r\n this.invoice.BranchId = branchId;\r\n if (this.Branches.length) {\r\n this.currentBranch = this.Branches.find((f) => f.Id === branchId);\r\n }\r\n this.checkInvoiceState(this.invoice.CommandCode);\r\n this.getMaxInvoiceCode(branchId);\r\n this.changeListBySalemethodBranch(setDefaultPriceType);\r\n this.filterItembyBranchId(branchId);\r\n this.SalePriceChange(this.invoice.SalePriceTypeId, true);\r\n if (this.isMultiBranch) {\r\n this.changeControlsDependentOnSaleMethodBranchId();\r\n }\r\n if (!this.isLight && this.warehouseStockItems.length) {\r\n this.setDailyInventoryList(branchId);\r\n if (this.isMultiBranch) {\r\n this.itemHasParent = null;\r\n }\r\n }\r\n this.detectChanges();\r\n }\r\n\r\n public setDailyInventoryList(branchId: number) {\r\n this.dailyInventoryList = this.warehouseStockItems.filter(\r\n (x) => x.MinAmount > 0 && (x.EntryAmount > 0 || x.PrevRemainAmount) && x.Amount <= x.MinAmount && x.BranchId === branchId\r\n );\r\n }\r\n\r\n changeControlsDependentOnSaleMethodBranchId(): void {\r\n for (const key in this.formGroup.controls) {\r\n if (key.startsWith(\"CustomDescription\")) this.formGroup.removeControl(key);\r\n this.setValue(`CustomDescription${this.invoice.SaleMethodBranchId}`, undefined, false, Validators.maxLength(200));\r\n }\r\n }\r\n\r\n public checkActivationOfInvoiceItem(): void {\r\n this.invoice.Items = this.invoice.Items.filter((x) => this.itemCategoryList[0]?.Items.some((i) => i.Id === x.ItemId));\r\n }\r\n\r\n public clearAllAdditivesAndDescriptions(): void {\r\n this.invoice.Items.forEach((item) => {\r\n item.Additives = [];\r\n item.Descriptions = [];\r\n item.Description = \"\";\r\n });\r\n }\r\n\r\n getStatusOfLinkPayment(paymentLinkState: number | null): number {\r\n if (paymentLinkState === null) {\r\n return -1000; //A Value that cannot be used\r\n }\r\n\r\n const numberStr = paymentLinkState.toString();\r\n const restOfDigitsStr = numberStr.substring(1, 3);\r\n return parseInt(restOfDigitsStr, 10);\r\n }\r\n\r\n setShippingCost(branchId: number): void {\r\n if (this.isMultiBranch && this.invoice.CustomerAddress?.Zone?.Branches?.length > 1 && !this.defaultBranch?.Suspend) {\r\n const zoneBranch = this.invoice.CustomerAddress.Zone.Branches.find((x) => x.BranchId === branchId);\r\n if (zoneBranch.ShippingCost && zoneBranch.ShippingCost !== this.invoice.ShippingCost) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.ChangeBranchFareChange\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.Warning\"),\r\n DialogType.confirm,\r\n () => {\r\n this.setValue(\"ShippingCost\", zoneBranch.ShippingCost);\r\n this.invoice.ShippingCost = zoneBranch.ShippingCost;\r\n this.setValue(\"CourierShippingCost\", zoneBranch.CourierShippingCost);\r\n this.invoice.CourierShippingCost = zoneBranch.CourierShippingCost;\r\n this.calculate();\r\n return;\r\n }\r\n );\r\n }\r\n }\r\n }\r\n\r\n getSaleMethodType() {\r\n this.checkPermissions();\r\n this.salePriceTypesAll = this.storage.getData(ClearableCache.SalePriceType);\r\n this.salePriceType = this.storage.getData(ClearableCache.SalePriceType);\r\n if (this.changeCachEnum.some((f) => f === ChangeCachEnum.SalePriceType) && this.salePriceType != null) {\r\n this.salePriceType = this.salePriceType?.sort(function (a, b) {\r\n return a.Code - b.Code;\r\n });\r\n if (!this.invoice.Id) {\r\n const hasDefult = this.saleMethodBranch?.SalePriceTypes?.find((s) => s.IsDefault);\r\n if (hasDefult) this.invoice.SalePriceTypeId = hasDefult.SalePriceTypeId;\r\n else this.invoice.SalePriceTypeId = this.salePriceType[0].Id;\r\n }\r\n\r\n this.salePriceType = this.salePriceTypesAll.filter(\r\n (f) => !this.saleMethodBranch?.SalePriceTypes?.some((s) => s.SalePriceTypeId == f.Id && !s.IsDefault)\r\n );\r\n this.SalePriceChange(this.invoice.SalePriceTypeId, true);\r\n this.cd.markForCheck();\r\n this.setValue(`SalePriceTypeId`, this.invoice.SalePriceTypeId);\r\n } else {\r\n this.httpCommonService\r\n .getList(\"SalePriceType/ReadLookUp\")\r\n .pipe(take(1))\r\n .subscribe((data: Lookup[]) => {\r\n this.storage.savePermanentData(data, ClearableCache.SalePriceType);\r\n this.salePriceType = data.sort(function (a, b) {\r\n return a.Code - b.Code;\r\n });\r\n this.salePriceTypesAll = Object.assign([], this.salePriceType);\r\n if (!this.invoice.Id) {\r\n const hasDefult = this.saleMethodBranch?.SalePriceTypes?.find((s) => s.IsDefault);\r\n if (hasDefult) this.invoice.SalePriceTypeId = hasDefult.SalePriceTypeId;\r\n else this.invoice.SalePriceTypeId = this.salePriceType[0].Id;\r\n }\r\n this.salePriceType = this.salePriceTypesAll?.filter(\r\n (f) => !this.saleMethodBranch?.SalePriceTypes?.some((s) => s.SalePriceTypeId == f.Id && !s.IsDefault)\r\n );\r\n this.SalePriceChange(this.invoice.SalePriceTypeId, true);\r\n this.setValue(`SalePriceTypeId`, this.invoice.SalePriceTypeId);\r\n this.storage.savePermanentData(this.salePriceType, ClearableCache.SalePriceType);\r\n this.detectChanges();\r\n });\r\n }\r\n }\r\n /// فیلتر بر اساس نحوه فروش\r\n changeListBySalemethodBranch(setDefaultPriceType: boolean) {\r\n if (!this.formGroup.controls[\"BranchId\"]?.value) return;\r\n this.invoice.SaleMethodBranch = this.saleMethodList.find(\r\n (f) => f.BranchId == this.formGroup.controls[\"BranchId\"]?.value && f.SaleMethodId === this.saleMethodBranch.SaleMethodId\r\n );\r\n this.SaleMethodBranchId = this.invoice.SaleMethodBranch?.Id;\r\n this.invoice.SaleMethodBranchId = this.SaleMethodBranchId;\r\n this.saleMethodBranch = this.invoice.SaleMethodBranch;\r\n /// Item Category\r\n const itemCategoryListIgnore = this.itemCategoryListAll?.filter((c) =>\r\n this.invoice?.SaleMethodBranch?.ItemCategories?.some((s) => !s.IsDefault && s.CategoryId != c.Id)\r\n );\r\n if (itemCategoryListIgnore?.length > 0) this.itemCategoryList = JSON.parse(JSON.stringify(itemCategoryListIgnore));\r\n else {\r\n this.itemCategoryList = Object.assign([], this.itemCategoryListAll);\r\n }\r\n this.itemCategoryList[0].Items = this.itemCategoryList[0]?.Items?.filter((c) => this.itemCategoryList?.some((s) => c.CategoryId == s.Id));\r\n let findDefaultItemCategory = this.saleMethodBranch?.ItemCategories.find((f) => f.IsDefault);\r\n if (findDefaultItemCategory)\r\n this.selectedItemCategory = Object.assign(\r\n {},\r\n this.itemCategoryList?.find((f) => f.Id === (findDefaultItemCategory.Category?.ParentId || findDefaultItemCategory.CategoryId))\r\n );\r\n else {\r\n this.selectedItemCategory = Object.assign({}, this.itemCategoryList[0]);\r\n }\r\n\r\n if (setDefaultPriceType) {\r\n this.salePriceType = this.salePriceType?.sort(function (a, b) {\r\n return a.Code - b.Code;\r\n });\r\n const hasDefult = this.saleMethodBranch?.SalePriceTypes?.find((s) => s.IsDefault);\r\n if (hasDefult) this.invoice.SalePriceTypeId = hasDefult.SalePriceTypeId;\r\n else this.invoice.SalePriceTypeId = this.salePriceType[0].Id;\r\n }\r\n\r\n this.salePriceType = this.salePriceTypesAll?.filter(\r\n (f) => !this.saleMethodBranch?.SalePriceTypes?.some((s) => s.SalePriceTypeId == f.Id && !s.IsDefault)\r\n );\r\n this.SalePriceChange(this.invoice.SalePriceTypeId, true);\r\n this.setValue(`SalePriceTypeId`, this.invoice.SalePriceTypeId);\r\n this.setApplySnapValue();\r\n if (this.currentSaleMethodNature === this.SaleMethodNature.FastFood) {\r\n this.setValue(\"InPerson\", !!this.saleMethodBranch?.InPerson);\r\n this.invoice.InPerson = !!this.saleMethodBranch?.InPerson;\r\n }\r\n }\r\n\r\n setInvoiceHasFactorAndHasPaymentLink(): void {\r\n if (\r\n this.currentInformation?.PaymentPanelAVA &&\r\n this.common.smartConnection &&\r\n this.saleMethodBranch?.IsPaymentLink &&\r\n this.invoice?.PhoneNumber?.startsWith(\"09\") &&\r\n !this.invoice.Customer.AutomaticDebtor\r\n ) {\r\n const isNewCustomer = !this.invoice.Customer ? true : new Date(this.invoice.Customer.CreatedDate).toDateString() === new Date().toDateString();\r\n const newCustomerCondition = isNewCustomer && this.saleMethodBranch.HasPaymentLinkForNewCustomer;\r\n const hasAutomaticChecked = isNewCustomer\r\n ? newCustomerCondition && !this.invoice?.Customer?.FailurePaymentLink\r\n : !!this.saleMethodBranch?.AutomaticLinks && !this.invoice?.Customer?.FailurePaymentLink;\r\n const isNotFastFood = this.currentSaleMethodNature !== this.SaleMethodNature.FastFood;\r\n this.invoice.HasPaymentLink = hasAutomaticChecked && this.saleMethodBranch?.HasPaymentLink && isNotFastFood;\r\n this.invoice.HasFactorLink = hasAutomaticChecked && this.saleMethodBranch?.HasFactorLink;\r\n }\r\n }\r\n\r\n private getItemCategory(): void {\r\n let findDefault;\r\n\r\n const ItemCategories = this?.saleMethodBranch?.ItemCategories;\r\n if (ItemCategories && ItemCategories?.length > 0) {\r\n this.itemCategoryList = this.itemCategoryList.filter((f) => !ItemCategories.some((s) => s.CategoryId === f.Id && !s.IsDefault));\r\n this.itemCategoryList[0].Items = this.itemCategoryList[0].Items.filter(\r\n (f) => !ItemCategories.some((s) => s.CategoryId === f.CategoryId && !s.IsDefault)\r\n );\r\n findDefault = this.saleMethodBranch?.ItemCategories?.find((f) => f.IsDefault);\r\n }\r\n if (this.selectedItemCategory.Id) {\r\n this.selectedItemCategory = Object.assign(\r\n {},\r\n this.itemCategoryList.find((f) => f.Id === this.selectedItemCategory.Id)\r\n );\r\n } else if (findDefault) {\r\n this.selectedItemCategory = Object.assign(\r\n {},\r\n this.itemCategoryList.find((f) => f.Id === (findDefault.Category?.ParentId || findDefault.CategoryId))\r\n );\r\n } else {\r\n this.selectedItemCategory = Object.assign({}, this.itemCategoryList[0]);\r\n }\r\n this.cd.markForCheck();\r\n this.detectChanges();\r\n }\r\n\r\n async checkOtherCustomerPrintAccess(printTemplateId: number): Promise {\r\n return new Promise((resolve, reject) => {\r\n this.httpCommonService\r\n .getItem(\"Invoice/CheckOtherCustomerPrintAccess\", printTemplateId)\r\n .pipe(take(1))\r\n .subscribe(\r\n async (res: boolean) => {\r\n this.otherCustomerPrintAccess = res;\r\n resolve(res);\r\n },\r\n (err) => {\r\n reject(false);\r\n }\r\n );\r\n return this.otherCustomerPrintAccess;\r\n });\r\n }\r\n\r\n private setApplySnapValue(): void {\r\n if (typeof this.invoice.ApplySnap !== \"boolean\") {\r\n this.setValue(\"ApplySnap\", this.saleMethodBranch?.HasSnap && this.saleMethodBranch?.AutoApplySnap);\r\n this.invoice.ApplySnap = this.saleMethodBranch?.HasSnap && this.saleMethodBranch?.AutoApplySnap;\r\n } else {\r\n this.setValue(\"ApplySnap\", this.invoice.ApplySnap);\r\n }\r\n }\r\n /// Create method For Filter All Data By SaleMethodBranch\r\n FilterSaleMethodBranch(en: SaleMethodBranchItemEnum, list: any[]): any {\r\n switch (en) {\r\n case SaleMethodBranchItemEnum.ItemCategory:\r\n list = list.filter((f) => !this.saleMethodBranch?.ItemCategories?.some((s) => s.CategoryId == f.Id && !s.IsDefault));\r\n list.forEach((category) => {\r\n category.Items = category.Items.filter((f) => !this.saleMethodBranch?.ItemCategories?.some((s) => s.CategoryId == f.Id && !s.IsDefault));\r\n });\r\n let findDefaultItemCategory = this.saleMethodBranch.ItemCategories.find((f) => f.IsDefault);\r\n\r\n if (findDefaultItemCategory)\r\n this.selectedItemCategory = Object.assign(\r\n list.find((f) => f.Id === (findDefaultItemCategory.Category?.ParentId || findDefaultItemCategory.CategoryId))\r\n );\r\n // else {\r\n //this.selectedItemCategory = Object.assign([], list[0]);\r\n //}\r\n\r\n break;\r\n }\r\n return list;\r\n }\r\n // دریاٝت لیست کالایی\r\n GetItemCategoryList(isfirstGet = false) {\r\n this.indexedDbService.get(\"FrontOffice\", \"Categories\").then(async (res) => {\r\n if (this.accountService.userHasPermission(\"RestaurantSale:FavoriteItem\", \"Get\")) {\r\n this.canSeeFavorites = true;\r\n try {\r\n await this.getFavoriteItems();\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n this.itemCategoryListAll = res;\r\n\r\n if (this.changeCachEnum.some((f) => f === ChangeCachEnum.ItemcategoryList) && this.itemCategoryListAll?.length) {\r\n this.itemCategoryList = this.FilterSaleMethodBranch(SaleMethodBranchItemEnum.ItemCategory, this.itemCategoryListAll);\r\n this.filterItembyBranchId(!this.isMultiBranch ? this.logInBranch.Id : this.invoice.BranchId || null);\r\n\r\n this.fillDataAfterGetFirstData();\r\n this.getSaleMethodType();\r\n if (this.orderOnlinePage && isfirstGet) this.setActivePage(ActivePageEnum.OnlineFactor);\r\n\r\n this.detectChanges();\r\n } else {\r\n const computerName: string = this.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .get(\"ItemCategory/GetOrderItemCategory\" + (computerName ? \"?ComputerName=\" + computerName : \"\"))\r\n .pipe(take(1))\r\n .subscribe(async (data: OrderItemCategory[]) => {\r\n await this.indexedDbService.put(\"FrontOffice\", \"Categories\", data).then();\r\n // this.GetItemCategoryList(isfirstGet);\r\n this.itemCategoryListAll = data;\r\n this.itemCategoryList = this.FilterSaleMethodBranch(SaleMethodBranchItemEnum.ItemCategory, this.itemCategoryListAll);\r\n this.filterItembyBranchId(!this.isMultiBranch ? this.logInBranch.Id : this.invoice.BranchId || null);\r\n this.fillDataAfterGetFirstData();\r\n this.getSaleMethodType();\r\n if (this.orderOnlinePage && isfirstGet) this.setActivePage(ActivePageEnum.OnlineFactor);\r\n this.detectChanges();\r\n });\r\n }\r\n });\r\n }\r\n fillDataAfterGetFirstData() {\r\n this.hasForbiddenItems();\r\n this.currentBranch = this.logInBranch;\r\n this.invoice.SaleMethodBranchId = this.saleMethodBranch.Id;\r\n }\r\n hasForbiddenItems() {\r\n if (this.saleMethodBranch.Id || !this.invoice.Items || this.invoice.Items.length <= 0) return;\r\n this.invoice.Items.forEach((element) => {\r\n const find_item = this.itemCategoryList[0].Items.find((s) => s.Id === element.ItemId);\r\n if (!find_item)\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.UnauthorizedItemInInvoice\")\r\n );\r\n else {\r\n const find_itemchild = this.itemCategoryList[0].Items.find((s) => s.ItemChild !== null && s.ItemChild.length > 0);\r\n if (!find_itemchild && find_itemchild.Title !== element.ItemTitle) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.UnauthorizedItemInInvoice\")\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n private calculateDiscount(): void {\r\n this.happyHourDiscountValidation();\r\n if (this.validHappyHour && !this.validFreeShipping) {\r\n this.applyHappyHourDiscount();\r\n }\r\n if (this.validFreeShipping) {\r\n this.applyFreeShippingDiscount();\r\n }\r\n if (this.validFreeService && this.invoice.customerDiscountValue) {\r\n this.applyFreeServiceDiscount();\r\n }\r\n }\r\n\r\n applyCustomerDiscount(totalDiscountAmount: number, totalNumber: number) {\r\n const priceAfterDisount = totalNumber - totalDiscountAmount;\r\n const customerDiscountAmount = (priceAfterDisount * this.invoice.Customer.PercentDiscount) / 100;\r\n\r\n return totalDiscountAmount + customerDiscountAmount;\r\n }\r\n\r\n applyOrganizationDiscount() {\r\n this.invoice.DiscountType = DiscountTypeEnum.None;\r\n const remainedDiscountOfCustomer = this.invoice.Customer?.RemainedOrganizationDiscount;\r\n if (!remainedDiscountOfCustomer || remainedDiscountOfCustomer < 0) return;\r\n const remainedDays = this.invoice.Customer?.Category?.RemainingDays;\r\n if (remainedDays < 0 || !remainedDays) return;\r\n\r\n const organizationItems = this.invoice.Items.filter((it) => it.IsOrganizationalDiscount == true);\r\n if (!organizationItems.length) return;\r\n\r\n if (!this.invoice.Customer?.Category?.Quantity) return;\r\n\r\n let allOrganizationItemCount = 0;\r\n\r\n for (const item of organizationItems) {\r\n allOrganizationItemCount += item.Quantity;\r\n }\r\n\r\n const categoryDiscount = this.invoice.Customer?.Category.OrganizationalDiscount;\r\n if (allOrganizationItemCount > remainedDiscountOfCustomer) {\r\n let sum = 0;\r\n let invoiceTotalPrice = 0;\r\n for (const item of organizationItems) {\r\n let discount = 0;\r\n const totalPrice = item.Quantity * (item.UnitPrice + item.UnitAdditive);\r\n invoiceTotalPrice += totalPrice;\r\n discount = (totalPrice * (item.OrganizationalDiscount > 0 ? item.OrganizationalDiscount : categoryDiscount)) / 100;\r\n sum += discount;\r\n this.invoice.DiscountType = DiscountTypeEnum.Organization;\r\n const formControlName = `RowDiscount${item.Index}${this.invoice.SaleMethodBranchId}`;\r\n this.formGroup.controls[formControlName].disable();\r\n }\r\n sum = (sum / allOrganizationItemCount) * remainedDiscountOfCustomer;\r\n const nonOrganizationItems = this.invoice.Items.filter((it) => !it.IsOrganizationalDiscount);\r\n for (const item of nonOrganizationItems) {\r\n invoiceTotalPrice += item.Quantity * (item.UnitPrice + item.UnitAdditive);\r\n }\r\n if (this.invoice.Customer.PercentDiscount) {\r\n sum = this.applyCustomerDiscount(sum, invoiceTotalPrice);\r\n }\r\n this.invoice.Total = invoiceTotalPrice;\r\n this.DiscountOrganization = sum;\r\n } else {\r\n let totalPrice = 0;\r\n let totalDiscountPrice = 0;\r\n for (const item of organizationItems) {\r\n let discountPercent = item.OrganizationalDiscount ? item.OrganizationalDiscount : this.invoice.Customer.Category.OrganizationalDiscount;\r\n totalPrice += (item.UnitPrice + item.UnitAdditive) * item.Quantity;\r\n let discountPrice = (((item.UnitPrice + item.UnitAdditive) * discountPercent) / 100) * item.Quantity;\r\n this.invoice.DiscountType = DiscountTypeEnum.Organization;\r\n totalDiscountPrice += discountPrice;\r\n const formControlName = `RowDiscount${item.Index}${this.invoice.SaleMethodBranchId}`;\r\n this.formGroup.controls[formControlName].disable();\r\n }\r\n const nonOrganizationItems = this.invoice.Items.filter((it) => !it.IsOrganizationalDiscount);\r\n for (const item of nonOrganizationItems) {\r\n totalPrice += item.Quantity * (item.UnitPrice + item.UnitAdditive);\r\n }\r\n\r\n this.invoice.Total = totalPrice;\r\n this.DiscountOrganization = totalDiscountPrice;\r\n }\r\n\r\n this.invoice.IsDiscountPercent = false;\r\n this.invoice.Discount = this.DiscountOrganization;\r\n this.setValue(\"Discount\", Math.round(this.DiscountOrganization));\r\n }\r\n\r\n applyFreeServiceDiscount() {\r\n let customerDiscountPrice = (this.invoice.Total * this.invoice.customerDiscountValue) / 100;\r\n if (this.saleMethodBranch.Discount) {\r\n if (!this.saleMethodBranch.IsDiscountPercent) {\r\n if (customerDiscountPrice < this.invoice.TotalService + this.saleMethodBranch.Discount) {\r\n this.invoice.IsDiscountPercent = false;\r\n } else {\r\n this.invoice.IsDiscountPercent = true;\r\n this.validFreeService = false;\r\n this.validHappyHour = false;\r\n this.invoice.Discount = this.invoice.customerDiscountValue;\r\n this.invoice.DiscountType = DiscountTypeEnum.Subscription;\r\n }\r\n } else {\r\n this.invoice.IsDiscountPercent = true;\r\n if (this.invoice.customerDiscountValue > this.invoice.ServiceRate + this.saleMethodBranch.Discount) {\r\n this.validFreeService = false;\r\n this.invoice.Discount = this.invoice.customerDiscountValue;\r\n this.validHappyHour = false;\r\n this.invoice.DiscountType = DiscountTypeEnum.Subscription;\r\n }\r\n }\r\n }\r\n }\r\n applyFreeShippingDiscount() {\r\n if (!this.invoice.customerDiscountValue) {\r\n this.invoice.Discount = this.invoice.ShippingCost;\r\n this.invoice.IsDiscountPercent = false;\r\n this.validHappyHour = true;\r\n this.invoice.DiscountType = DiscountTypeEnum.HappyHour;\r\n } else {\r\n this.invoice.DiscountPrice = (this.invoice.Total * this.invoice.customerDiscountValue) / 100;\r\n if (this.invoice.DiscountPrice < this.invoice.ShippingCost) {\r\n this.invoice.Discount = this.invoice.ShippingCost;\r\n this.invoice.IsDiscountPercent = false;\r\n this.validHappyHour = true;\r\n this.invoice.DiscountType = DiscountTypeEnum.HappyHour;\r\n } else {\r\n this.invoice.Discount = this.invoice.customerDiscountValue;\r\n this.invoice.IsDiscountPercent = true;\r\n this.validHappyHour = false;\r\n this.invoice.DiscountType = DiscountTypeEnum.Subscription;\r\n }\r\n }\r\n }\r\n applyHappyHourDiscount() {\r\n if (this.saleMethodBranch.IsDiscountPercent) {\r\n this.applyPercentDiscount();\r\n } else {\r\n this.applyFixedDiscount();\r\n }\r\n }\r\n\r\n applyFixedDiscount() {\r\n if (this.invoice.IsDiscountPercent) {\r\n this.invoice.DiscountPrice = (this.invoice.Total * this.invoice.Discount) / 100;\r\n this.invoice.DiscountPrice = !this.currentBranch.HasAuditorInSalesAmounts\r\n ? Math.round(this.invoice.DiscountPrice)\r\n : parseFloat(this.invoice.DiscountPrice.toFixed(4));\r\n }\r\n\r\n if (this.invoice.DiscountPrice <= this.saleMethodBranch.Discount + (this.validFreeService ? this.invoice.TotalService : 0)) {\r\n this.invoice.Discount = this.saleMethodBranch.Discount;\r\n this.validHappyHour = true;\r\n this.invoice.DiscountType = DiscountTypeEnum.HappyHour;\r\n this.invoice.IsDiscountPercent = false;\r\n } else {\r\n if (this.invoice.customerDiscountValue && this.validFreeService) {\r\n this.invoice.Discount = this.invoice.customerDiscountValue;\r\n this.validFreeService = false;\r\n this.validHappyHour = false;\r\n this.invoice.DiscountType = DiscountTypeEnum.Subscription;\r\n this.invoice.IsDiscountPercent = true;\r\n }\r\n }\r\n }\r\n applyPercentDiscount() {\r\n if (this.invoice.Discount <= this.saleMethodBranch.Discount + (this.validFreeService ? this.invoice.ServiceRate : 0)) {\r\n this.invoice.Discount = this.saleMethodBranch.Discount;\r\n this.invoice.DiscountType = DiscountTypeEnum.HappyHour;\r\n this.invoice.IsDiscountPercent = this.saleMethodBranch.IsDiscountPercent;\r\n } else {\r\n this.validHappyHour = false;\r\n this.validFreeService = false;\r\n }\r\n }\r\n\r\n setToDefaultPriceOrganization(items: InvoiceItem[]) {\r\n items.forEach((it) => {\r\n it.RowDiscountPrice = 0;\r\n it.RowDiscount = 0;\r\n const formControlName = `RowDiscount${it.Index}${this.invoice.SaleMethodBranchId}`;\r\n this.setValue(formControlName, it.RowDiscount);\r\n this.formGroup.controls[formControlName].enable();\r\n });\r\n }\r\n\r\n favoriteItems = [] as FavoriteItem[];\r\n async getFavoriteItems() {\r\n this.favoriteItems = await this.httpCommonService.getList(\"FavoriteItem\").toPromise();\r\n }\r\n\r\n async setFavorite(item: OrderItem) {\r\n let fav: FavoriteItem = {\r\n Id: undefined,\r\n ItemId: item.Id,\r\n SaleMethodBranchId: this.saleMethodBranch.Id,\r\n index: this.favoriteItems.length > 0 ? this.favoriteItems[this.favoriteItems.length - 1].index + 1 : 1,\r\n };\r\n const res = await this.httpCommonService.create(\"FavoriteItem\", fav).toPromise();\r\n if (typeof res == \"number\") {\r\n fav.Id = res;\r\n this.favoriteItems.push(fav);\r\n this.setIndexOnItems(fav, this.itemCategoryList);\r\n this.setIndexOnItems(fav, this.itemCategoryListAll);\r\n\r\n if (this.getItemInBundles(item.Id)) {\r\n this.itemCategoryList[0].Items.unshift(item);\r\n this.itemCategoryListAll[0].Items.unshift(item);\r\n }\r\n this.itemCategoryList[0].Items = this.sortingArrayByFav(this.itemCategoryList[0].Items);\r\n this.itemCategoryListAll[0].Items = this.sortingArrayByFav(this.itemCategoryListAll[0].Items);\r\n // await this.indexedDbService.put(\"FrontOffice\", \"Categories\", this.itemCategoryListAll).then();\r\n }\r\n }\r\n async deleteFav(fav: FavoriteItem) {\r\n await this.httpCommonService.delete(\"FavoriteItem\", fav.Id).toPromise();\r\n let indexInArray = this.favoriteItems.findIndex((it) => it.Id == fav.Id);\r\n this.favoriteItems.splice(indexInArray, 1);\r\n fav.index = -1;\r\n this.setIndexOnItems(fav, this.itemCategoryList);\r\n this.setIndexOnItems(fav, this.itemCategoryListAll);\r\n const itemInBundle = this.getItemInBundles(fav.ItemId);\r\n if (itemInBundle) {\r\n await this.deleteFromAllCategory(itemInBundle);\r\n }\r\n this.itemCategoryList[0].Items = this.sortingArrayByFav(this.itemCategoryList[0].Items);\r\n this.itemCategoryListAll[0].Items = this.sortingArrayByFav(this.itemCategoryListAll[0].Items);\r\n // await this.indexedDbService.put(\"FrontOffice\", \"Categories\", this.itemCategoryListAll).then();\r\n }\r\n\r\n sortByFavs(items: OrderItem[]) {\r\n return items.sort((a, b) => a.favoriteIndex - b.favoriteIndex);\r\n }\r\n\r\n defaultSort(items: OrderItem[]) {\r\n return items.sort((a, b) => a.Code - b.Code);\r\n }\r\n\r\n sortingArrayByFav(items: OrderItem[]) {\r\n let favorites = items.filter((it) => it.favoriteIndex >= 0);\r\n let nonFavorites = items.filter((it) => !it.favoriteIndex || it.favoriteIndex == -1);\r\n let temp = [...items];\r\n if (nonFavorites && nonFavorites.length > 0) {\r\n if (favorites && favorites.length > 0) temp = [...this.sortByFavs(favorites), ...this.defaultSort(nonFavorites)];\r\n else temp = [...this.defaultSort(nonFavorites)];\r\n } else {\r\n if (favorites && favorites.length > 0) temp = [...this.sortByFavs(favorites)];\r\n }\r\n items = null;\r\n items = JSON.parse(JSON.stringify(temp));\r\n return temp;\r\n }\r\n\r\n setIndexOnItems(fav: FavoriteItem, items: OrderItemCategory[]) {\r\n let orderItem;\r\n for (let i = 0; i < items.length; i++) {\r\n let category = items[i];\r\n orderItem = category.Items.find((item) => item.Id == fav.ItemId && fav.SaleMethodBranchId == this.saleMethodBranch.Id);\r\n if (orderItem) {\r\n if (i == 0) {\r\n orderItem.favoriteIndex = fav.index;\r\n } else {\r\n orderItem.favoriteIndex = fav.index;\r\n break;\r\n }\r\n }\r\n }\r\n if (!orderItem) {\r\n for (let category of items) {\r\n let bundles = category.Items.filter((it) => it.ItemChild && it.ItemChild.length > 0);\r\n if (bundles && bundles.length > 0) {\r\n for (let bundle of bundles) {\r\n orderItem = bundle.ItemChild.find((child) => child.Id == fav.ItemId && fav.SaleMethodBranchId == this.saleMethodBranch.Id);\r\n if (orderItem) {\r\n // if (fav.index == -1) this.deleteFromAllCategory(orderItem);\r\n // else if (this.selectedItemCategory.Id == 0) this.itemCategoryList[0].Items.push(orderItem);\r\n orderItem.favoriteIndex = fav.index;\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n async deleteFromAllCategory(item: OrderItem) {\r\n let index = this.itemCategoryList[0].Items.findIndex((it) => item.Id == it.Id);\r\n if (index !== -1) this.itemCategoryList[0].Items.splice(index, 1);\r\n let indexAll = this.itemCategoryListAll[0].Items.findIndex((it) => item.Id == it.Id);\r\n if (indexAll !== -1) this.itemCategoryListAll[0].Items.splice(index, 1);\r\n }\r\n\r\n // getFavItemsOutOfBundle() {\r\n // let items = [];\r\n // for (let bundle of this.getBundles()) {\r\n // items.push(...bundle.ItemChild.filter((it) => it.favoriteIndex >= 0));\r\n // }\r\n // return items;\r\n // }\r\n\r\n getItemInBundles(searchItemId: number) {\r\n let item: OrderItem;\r\n for (let bundle of this.getBundles()) {\r\n item = bundle.ItemChild.find((it) => it.Id == searchItemId);\r\n if (item) {\r\n break;\r\n }\r\n }\r\n return item;\r\n }\r\n\r\n getBundles() {\r\n let category = this.itemCategoryList[0];\r\n const bundles = category.Items.filter((it) => it.ItemChild && it.ItemChild.length > 0);\r\n return bundles;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\n\r\n@Component({\r\n selector: \"ngx-call-support\",\r\n templateUrl: \"./call-support.component.html\",\r\n styleUrls: [\"./call-support.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CallSupportComponent extends BaseFormComponent {\r\n CallSupport: any[] = [\r\n { Id: 9, title: this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.CallSupport.PriceDifferenceWithMenu\") },\r\n { Id: 10, title: this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.CallSupport.AddressProblem\") },\r\n { Id: 11, title: this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.CallSupport.CourierFee\") },\r\n { Id: 12, title: this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.CallSupport.FoodIsOver\") },\r\n { Id: 13, title: this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.CallSupport.CustomerInformation\") },\r\n { Id: 14, title: this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.CallSupport.OtherReasons\") },\r\n ];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.FillData();\r\n }\r\n\r\n FillData() {\r\n this.columns = [];\r\n const newGroup: any = {};\r\n // newGroup['test'] = new FormControl('');\r\n this.formGroup = new UntypedFormGroup(newGroup);\r\n this.setValue(\"callSupportId\", \"\");\r\n }\r\n public async save() {\r\n this.result = this.formGroup.controls[\"callSupportId\"].value;\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\n\r\n@Component({\r\n selector: \"cause-cancel\",\r\n templateUrl: \"./causecancel.component.html\",\r\n styleUrls: [\"./causecancel.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CausecancelComponent extends BaseFormComponent {\r\n Causecancel: any[] = [\r\n { Id: 6, title: this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.CauseCancel.AddressNotVerified\") },\r\n { Id: 7, title: this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.CauseCancel.LackOfFood\") },\r\n { Id: 8, title: this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.CauseCancel.ByCustomer\") },\r\n ];\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.FillData();\r\n }\r\n\r\n FillData() {\r\n this.columns = [];\r\n const newGroup: any = {};\r\n // newGroup['test'] = new FormControl('');\r\n this.formGroup = new UntypedFormGroup(newGroup);\r\n this.setValue(\"causeCancelId\", \"\");\r\n }\r\n public async save() {\r\n this.result = this.formGroup.controls[\"causeCancelId\"].value;\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewChild } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { NotificationService } from \"projects/sepidz-web-framework/src/lib/services/notification.service\";\r\nimport { CausecancelComponent } from \"./causecancel/causecancel.component\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { UpdateClientFactorState } from \"../model/update-Client-Factor-State.enum\";\r\nimport { Observable } from \"rxjs\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { Branch, Lookup, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { SuccessOrderComponent } from \"./success-order/success-order.component\";\r\nimport { CallSupportComponent } from \"./call-support/call-support.component\";\r\nimport { SuccessModel } from \"./success-order/success.model\";\r\nimport { NewCustomerOrderComponent } from \"../customerorder/newcustomerorder/newcustomerorder.component\";\r\nimport { Invoice, InvoiceCommand, InvoiceItem } from \"../model/invoice.model\";\r\nimport { OrderService } from \"../order.service\";\r\nimport { Customer, CustomerAddress } from \"../../parties/model/customer.model\";\r\nimport { CustomerFormComponent } from \"../../parties/customer/customer-form.component\";\r\nimport { InvoiceActionService } from \"../providers/invoiceaction.service\";\r\nimport { GridFilter, LookupService } from \"../../../../../projects/sepidz-web-framework/src/lib/services\";\r\nimport { RowState, WebKind } from \"../../../../../projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { OrderItem } from \"../model/orderItemcategory.model\";\r\nimport { UntypedFormGroup, UntypedFormControl } from \"@angular/forms\";\r\nimport { ReceiptPaymentModel, ReceiptPaymentTypeEnum } from \"../model/receiptpayment.model\";\r\nimport { PaymentMethodEnum } from \"../model/paymentmethod.enum\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { DelinoCheckCustomerAddressModel } from \"../model/delino-check-customer-address.model\";\r\nimport { SaleMethodNature } from \"../../sales/model/sale-method-branch.model\";\r\nimport { ClubViewModel } from \"../model/smartclub.model\";\r\nimport { ActivePageEnum } from \"../model/activepage.enum\";\r\nimport * as moment from \"moment\";\r\nimport * as jalaliMoment from \"jalali-moment\";\r\n\r\n@Component({\r\n selector: \"order-online\",\r\n templateUrl: \"./orderonline.component.html\",\r\n styleUrls: [\"./orderonline.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderonlineComponent extends BaseListComponent implements OnInit {\r\n @ViewChild(\"factorList\") factorList: KGridComponent;\r\n public orderItemsColumns: form_control[] = [];\r\n activeModel: boolean = false;\r\n dataList: any[] = [];\r\n masterList: any[] = [];\r\n currentRow: any;\r\n selectedFilter: any;\r\n filterInfo: GridFilter[] = [];\r\n onFilter: GridFilter[] = [];\r\n\r\n formGroup = new UntypedFormGroup({\r\n branchFilter: new UntypedFormControl(),\r\n invoiceFilter: new UntypedFormControl(),\r\n dateTimeFactorFilter: new UntypedFormControl(),\r\n });\r\n\r\n invoiceFilter: any[] = [\r\n {\r\n key: UpdateClientFactorState.InsertInFactorList,\r\n title: this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.NotApproved\"),\r\n count: 0,\r\n selected: false,\r\n value: UpdateClientFactorState.InsertInFactorList,\r\n },\r\n {\r\n key: UpdateClientFactorState.PrintToKitchen,\r\n title: this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.Invoiced\"),\r\n count: 0,\r\n selected: false,\r\n value: UpdateClientFactorState.PrintToKitchen,\r\n },\r\n {\r\n key: UpdateClientFactorState.CancelByCustomer,\r\n title: this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.Cancelled\"),\r\n count: 0,\r\n selected: false,\r\n value: UpdateClientFactorState.CancelByCustomer,\r\n },\r\n ];\r\n\r\n allBranchesExceptCallCenter: Branch[] = [];\r\n receiptPaymentType: Lookup[];\r\n currentRowCanNotInsertAgain: boolean;\r\n accessToDelinoConnection = false;\r\n constructor(\r\n private notification: NotificationService,\r\n public order: OrderService,\r\n private cd: ChangeDetectorRef,\r\n private lookupService: LookupService,\r\n public invoiceAction: InvoiceActionService,\r\n private tabService: TabularService\r\n ) {\r\n super();\r\n this.NoLog = true;\r\n this.inputEditorform = NewCustomerOrderComponent;\r\n this.allBranchesExceptCallCenter = this.order.Branches?.filter((x) => !x.AccessToAllBranches);\r\n }\r\n\r\n ngOnInit(): void {\r\n this.apiName = \"Delino\";\r\n this.areaName = \"RestaurantSale\";\r\n this.setColumns();\r\n this.init();\r\n this.getAndAcceptDelinoFactor();\r\n this.setDefaultBranch();\r\n const m = moment();\r\n const now = m.locale(\"fa\").format(\"YYYY/MM/DD\");\r\n this.formGroup.controls[\"dateTimeFactorFilter\"].setValue(now);\r\n const jalaliNow = jalaliMoment().locale(\"fa\").format(\"YYYY/MM/DD\");\r\n this.applyDateFilter(jalaliNow);\r\n this.lookupService\r\n .getLookupbyCategory(\"SALE\", \"ReceiptPaymentType\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: Lookup[]) => {\r\n this.receiptPaymentType = data;\r\n });\r\n this.tabService.tabItemonRefreshData.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x.includes(\"Delino\")) this.order.setActivePage(ActivePageEnum.OnlineFactor);\r\n\r\n if (x.includes(\"DelinoFactorId\")) {\r\n const id = x.split(\"DelinoFactorId:\")[1];\r\n this.order.autoDelinoInvoiceId = +id;\r\n this.getAndAcceptDelinoFactor();\r\n }\r\n });\r\n this.order.splashFormService.closeLoading();\r\n }\r\n\r\n private init(): void {\r\n this.notification.init();\r\n this.notification.notification$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((value) => {\r\n if (\r\n value.Key === \"UpdateDelino\" ||\r\n value.Key === \"DelinoHasOrder\" ||\r\n (value.Key === \"InvoiceChanges\" && value.Message === SaleMethodNature.Delivery)\r\n ) {\r\n this.getData();\r\n this.factorList?.refreshData();\r\n this.cd.markForCheck();\r\n }\r\n });\r\n }\r\n\r\n onRowsSelected(row) {\r\n if (row && row.OrderItems) {\r\n this.currentRow = row;\r\n this.currentRowCanNotInsertAgain = row.ClientFactorStateID === UpdateClientFactorState.PrintToKitchen;\r\n this.dataList = row.OrderItems as any[];\r\n }\r\n }\r\n\r\n protected getData() {\r\n this.order.getMaxInvoiceCode();\r\n }\r\n\r\n /// ارسال کد تغییر وضعیت فاکتور\r\n setClientFactorState(state: UpdateClientFactorState) {\r\n if (!this.currentRow || !this.currentRow.DelinoId) return;\r\n this.httpCommonService\r\n .get(`Delino/SetClientFactorState/${this.currentRow.DelinoId}/${state}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n this.getData();\r\n this.factorList?.refreshData();\r\n this.order.splashFormService.closeLoading();\r\n },\r\n (error) => {\r\n this.order.splashFormService.closeLoading();\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n //تغییر مدت زمان پخت و دلیوری\r\n async updateCookingDeliveryDuration(CookingDuration = 0, DeliveryDuration = 0, invoice: Invoice) {\r\n if (!this.currentRow || !this.currentRow.DelinoId) return;\r\n try {\r\n this.order.splashFormService.openDialog(\"\", \"\");\r\n await this.httpCommonService\r\n .get(`Delino/UpdateCookingDeliveryDuration/${this.currentRow.DelinoId}/${CookingDuration}/${DeliveryDuration}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise();\r\n this.order.splashFormService.closeLoading();\r\n this.factorList?.refreshData();\r\n this.order.getMaxInvoiceCode();\r\n } catch (error) {\r\n console.log(error);\r\n this.order.splashFormService.closeLoading();\r\n }\r\n }\r\n\r\n setColumns() {\r\n this.httpCommonService\r\n .getControlsList(this.apiName.split(\"/\")[0])\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.orignalColumns = data as form_control[];\r\n this.columns = this.orignalColumns.filter(\r\n (f) =>\r\n ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n if (this.orignalColumns?.find((x) => x.name === \"OrderItems\")?.DetailControlModels) {\r\n this.orderItemsColumns = this.orignalColumns.find((x) => x.name === \"OrderItems\").DetailControlModels[\"OrderItems\"];\r\n this.orderItemsColumns = this.orderItemsColumns.sort((a, b) => a.order - b.order);\r\n }\r\n this.getData();\r\n this.cd.markForCheck();\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n\r\n getDetailControlModels(keyName: string) {\r\n return [];\r\n }\r\n\r\n /** تایید سفارش */\r\n public showSuccessOrder(AutoFactor: any = null): void {\r\n if (AutoFactor != null) this.currentRow = AutoFactor;\r\n else if (!this.currentRow || !this.currentRow.DelinoId) return;\r\n const state = this.currentRow.ClientFactorStateID;\r\n if (state !== UpdateClientFactorState.InsertInFactorList && state !== UpdateClientFactorState.PrintToKitchen) {\r\n this.sts.showToast(\"warning\", this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.ConfirmMessage\"), null, 3000);\r\n return;\r\n }\r\n this.order.splashFormService.openDialog(\"\", \"\");\r\n const phone = this.getCurrentRowPhone();\r\n this.httpCommonService\r\n .getList(`Customer/ReadCustomerByMobile/${phone}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (customer: Customer) => {\r\n try {\r\n if (customer || AutoFactor) this.handleSaveInvoice(customer, AutoFactor);\r\n else {\r\n this.order.splashFormService.closeLoading();\r\n this.showCreateCustomerComponent()\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: Customer) => {\r\n if (model) this.handleSaveInvoice(model, AutoFactor);\r\n });\r\n }\r\n } catch (error) {}\r\n },\r\n () => {\r\n this.order.splashFormService.closeLoading();\r\n }\r\n );\r\n }\r\n\r\n /** درخواست پشتیبانی */\r\n public showSupport(): void {\r\n this.dialogService\r\n .open(CallSupportComponent, { errorMessage: \"NotFound!!!\" }, { closeOnClickOutside: false })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((res) => {\r\n if (typeof res === \"number\") {\r\n this.setClientFactorState(res);\r\n }\r\n });\r\n }\r\n\r\n public onEdit($event: any): void {\r\n this.dialogService.open(\r\n this.inputEditorform,\r\n { currentrow: $event, apiName: this.apiName, areaName: this.areaName, label: this.label },\r\n { autoFocus: true, closeOnClickOutside: true, closeOnEscape: true }\r\n );\r\n this.factorList?.refreshData();\r\n }\r\n\r\n /** کنسلی سفارش */\r\n public ShowCauseCancel(): void {\r\n if (!this.currentRow || !this.currentRow.DelinoId) return;\r\n this.order.splashFormService.openDialog(\"\", \"\");\r\n this.dialogService\r\n .open(CausecancelComponent, { errorMessage: \"NotFound!!!\" }, { closeOnClickOutside: false })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((res) => {\r\n if (typeof res === \"number\") {\r\n this.setClientFactorState(res);\r\n this.factorList?.refreshData();\r\n } else this.order.splashFormService.closeLoading();\r\n });\r\n }\r\n\r\n public newInvoice(invoice: Invoice): Invoice {\r\n this.setInvoiceHeader(invoice);\r\n this.order.ChangeBranch(invoice.BranchId);\r\n this.setInvoiceItems(invoice);\r\n return invoice;\r\n }\r\n\r\n public getLinkAddress(): void {\r\n if (!this.currentRow.AddressLink || this.currentRow.AddressLink === \"\") {\r\n this.sts.showToast(\"warning\", this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.InvoiceAddressLinkEmpty\"));\r\n }\r\n if (this.currentRow.AddressLink) {\r\n window.open(this.currentRow.AddressLink, \"_blank\");\r\n }\r\n }\r\n\r\n public onBranchFilterChanged(branches: Branch[]): void {\r\n if (branches.length) this.filterBranchWithOrOperator(branches);\r\n else this.onBranchFilterClear();\r\n }\r\n\r\n public onBranchFilterClear(): void {\r\n this.onFilter = [];\r\n }\r\n\r\n public applyDateFilter(value: string): void {\r\n this.selectedFilter = value;\r\n this.onFilter = Object.assign([], this.filterInfo);\r\n if (!value) return;\r\n const filterCustom: GridFilter = {\r\n Filed: \"ShamsiDateTime\",\r\n Value: value,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n this.onFilter.push(filterCustom);\r\n }\r\n\r\n public setFilter($event): void {\r\n const key = $event?.value;\r\n if (this.selectedFilter === key || !$event) {\r\n this.selectedFilter = null;\r\n this.onFilter = Object.assign([], this.filterInfo);\r\n return;\r\n }\r\n this.selectedFilter = key;\r\n this.onFilter = Object.assign([], this.filterInfo);\r\n\r\n switch (key) {\r\n case UpdateClientFactorState.CancelByCustomer:\r\n const cancel1: GridFilter = {\r\n Filed: \"ClientFactorStateID\",\r\n Value: UpdateClientFactorState.CancelByCustomer,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Logic: \"or\",\r\n Type: \"F\",\r\n };\r\n const cancel2: GridFilter = {\r\n Filed: \"ClientFactorStateID\",\r\n Value: UpdateClientFactorState.CancelForNoFoodRemain,\r\n Skip: 0,\r\n Take: 0,\r\n Logic: \"or\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n const cancel3: GridFilter = {\r\n Filed: \"ClientFactorStateID\",\r\n Value: UpdateClientFactorState.CanceledForAddress,\r\n Skip: 0,\r\n Take: 0,\r\n Logic: \"or\",\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n this.onFilter.push(...[cancel1, cancel2, cancel3]);\r\n break;\r\n\r\n default:\r\n const f: GridFilter = {\r\n Filed: \"ClientFactorStateID\",\r\n Value: key,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Logic: \"or\",\r\n Type: \"F\",\r\n };\r\n this.onFilter.push(f);\r\n break;\r\n }\r\n\r\n if (this.onFilter.length <= 0) this.onFilter = Object.assign([], this.filterInfo);\r\n }\r\n\r\n private getCurrentRowPhone(): any {\r\n return this.currentRow.Mobile !== \"\" && this.currentRow.Mobile\r\n ? this.currentRow.Mobile\r\n : this.currentRow.Tel && this.currentRow.Tel !== \"\"\r\n ? this.currentRow.Tel\r\n : null;\r\n }\r\n\r\n private getAndAcceptDelinoFactor(): void {\r\n if (this.order.autoDelinoInvoiceId) {\r\n this.httpCommonService\r\n .get(\"Delino/\" + this.order.autoDelinoInvoiceId)\r\n .pipe(take(1))\r\n .subscribe((factor: any) => {\r\n if (factor) this.showSuccessOrder(factor);\r\n });\r\n }\r\n }\r\n\r\n private setDefaultBranch(): void {\r\n if (this.order.currentSaleMethodNature === this.order.SaleMethodNature.Delivery && this.order.isMultiBranch) {\r\n const branchId = this.order.formGroup.get(\"BranchId\").value;\r\n if (branchId) {\r\n const branch = this.order.Branches.find((x) => x.Id === branchId);\r\n this.formGroup.get(\"branchFilter\").setValue([branchId]);\r\n this.onBranchFilterChanged([branch]);\r\n } else {\r\n this.onFilter = [];\r\n }\r\n }\r\n }\r\n\r\n private setInvoiceHeader(invoice: Invoice): void {\r\n const webKind = this.order.WebKinds?.find((x) => x.Code == (this.currentRow?.RegisteredInDelino ? WebKind.Delino : WebKind.Vendo));\r\n invoice.SaleMethodBranchId = this.order.saleMethodBranch.Id;\r\n invoice.CustomerId = invoice.Customer.Id;\r\n invoice.CustomerName = invoice.Customer.DisplayName;\r\n invoice.CustomerNumber = invoice.Customer?.Number;\r\n invoice.CustomerLastName = invoice.Customer?.Party?.LastName;\r\n invoice.CustomerDisplayName = invoice.Customer?.Party?.DisplayName;\r\n invoice.CustomerTitle = invoice.CustomerTitle;\r\n invoice.CustomerAddress = invoice.Customer.Addresses?.find((f) => f.Id === invoice.AddressId);\r\n invoice.CustomerAddres = invoice.CustomerAddress?.Address;\r\n invoice.PhoneId = invoice.Customer.Numbers?.find((f) => f.IsDefault).Id;\r\n invoice.PayableTotal = this.currentRow.PayableTotal;\r\n invoice.ShippingCost = this.currentRow.ShippingCost;\r\n invoice.CourierShippingCost =\r\n invoice.CustomerAddress?.Zone?.Branches?.find((x) => x.BranchId == this.currentRow.BranchId)?.CourierShippingCost ?? 0;\r\n invoice.PackingPrice = this.currentRow.PackingPrice;\r\n invoice.TotalTax = this.currentRow.TotalTax;\r\n invoice.Description = this.currentRow.Description;\r\n invoice.Discount = this.currentRow.Discount || 0;\r\n invoice.IsDiscountPercent = false;\r\n invoice.TotalDiscount = this.currentRow.Totaldiscount;\r\n invoice.WebId = this.currentRow.DelinoId;\r\n invoice.HasClub = this.currentRow.HasClub;\r\n invoice.Debit = 0;\r\n invoice.BranchId = this.currentRow.BranchId;\r\n invoice.IsPickUp = this.currentRow.IsPickupOrder;\r\n invoice.PreparationPrintCount = invoice.PreparationPrintCount ?? 0;\r\n invoice.WebKindId = webKind?.Id;\r\n invoice.CustomerPrintCount = invoice.CustomerPrintCount ?? 0;\r\n invoice.Items = [];\r\n this.setClubOfDelinoFactor(invoice);\r\n this.setReceiptPayment(invoice);\r\n this.setSalePriceTypeId(invoice);\r\n this.setFiscalYearId(invoice);\r\n }\r\n\r\n private setClubOfDelinoFactor(invoice: Invoice) {\r\n if (\r\n this.currentRow?.smartUsedCreditRequestId ||\r\n this.currentRow?.usedCredit ||\r\n this.currentRow?.creditUsedRial ||\r\n this.currentRow?.creditUsedPersent\r\n ) {\r\n invoice.ClubCode = this.currentRow.smartUsedCreditRequestId;\r\n invoice.HasClub = true;\r\n invoice.ClubViewModel = new ClubViewModel();\r\n invoice.ClubViewModel.Customer = null;\r\n invoice.ClubViewModel.usedDiscountPercent = this.currentRow.creditPersent;\r\n invoice.ClubViewModel.UsedProductDiscount = [];\r\n invoice.ClubViewModel.UseCreditPrice = this.currentRow.creditUsedRial;\r\n invoice.ClubViewModel.usedCredit = this.currentRow.usedCredit;\r\n invoice.Discount += this.currentRow.usedCredit;\r\n invoice.TotalDiscount = invoice.Discount;\r\n invoice.ClubViewModel.UsedCreditResponseId = this.currentRow.smartUsedCreditRequestId;\r\n invoice.ClubViewModel[\"codeOrMobile\"] = invoice.Customer.PhoneNumber;\r\n invoice.ClubViewModel.ClubTotalDiscount = this.currentRow.usedCredit;\r\n invoice.ClubViewModel.DiscountPrice = this.currentRow.creditPersent;\r\n }\r\n }\r\n\r\n private setInvoiceItems(invoice: Invoice): void {\r\n const Items = this.order.itemCategoryList[0].Items;\r\n for (let index = 0; index < this.currentRow.OrderItems?.length; index++) {\r\n const ele = this.currentRow.OrderItems[index];\r\n let findItem: OrderItem;\r\n Items.forEach((element: OrderItem) => {\r\n if (element.Id === ele.ItemId) {\r\n findItem = Object.assign({}, element);\r\n }\r\n if (!findItem && element.ItemChild?.length > 0) {\r\n element.ItemChild?.forEach((chl: OrderItem) => {\r\n if (chl.Id === ele.ItemId) {\r\n findItem = Object.assign({}, chl);\r\n }\r\n });\r\n }\r\n });\r\n if (!findItem) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.Item\") +\r\n \" \" +\r\n ele.Title +\r\n \" \" +\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.HasNotItem\")\r\n );\r\n this.order.splashFormService.closeLoading();\r\n throw new Error(ele.Title + \" \" + this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.HasNotItem\"));\r\n }\r\n const item = new InvoiceItem();\r\n item.Index = 0;\r\n item.ApplyTax = !!ele.ApplyTax;\r\n item.Tax = ele.Tax ?? 0;\r\n item.Toll = ele.Toll ?? 0;\r\n item.Quantity = ele.Quantity ?? 0;\r\n item.Description = ele.Description ?? \"\";\r\n item.ItemId = ele.ItemId;\r\n item.RowDiscount = ele.RowDiscount ?? 0;\r\n item.UnitPrice = ele.UnitPrice ?? 0;\r\n item.BranchId = this.order.logInBranch.Id;\r\n item.NewQuantity = ele.Quantity ?? 0;\r\n item.UnitPrice = ele.UnitPrice ?? 0;\r\n item.UnitAdditive = item.UnitAdditive ?? 0;\r\n item.TotalPrice = ele.TotalPrice ?? 0;\r\n item.UnitDiscount = item.UnitDiscount ?? 0;\r\n item.AdditiveUnitDiscount = item.AdditiveUnitDiscount ?? 0;\r\n item.TotalDiscount = item.TotalDiscount ?? 0;\r\n item.RowDiscountPrice = item.RowDiscountPrice ?? 0;\r\n item.UnitService = item.UnitService ?? 0;\r\n item.UnitTax = item.UnitTax ?? 0;\r\n item.UnitToll = item.UnitToll ?? 0;\r\n item.RowDiscount = 0;\r\n item.CategoryId = findItem.CategoryId;\r\n item.ItemTitle = ele.Title;\r\n item.CookingTime = findItem.CookingTime;\r\n invoice.Items.push(item);\r\n }\r\n\r\n invoice.Items?.forEach((s) => {\r\n if (s.State != RowState.Delete) {\r\n invoice.Total += s.UnitPrice * s.Quantity + s.UnitAdditive * s.Quantity;\r\n }\r\n });\r\n }\r\n\r\n private filterBranchWithOrOperator(branches: Branch[]): void {\r\n if (branches.length > 1) {\r\n this.filterInfo.forEach((x) => (x.Logic = \"and\"));\r\n }\r\n this.onFilter = Object.assign([], this.filterInfo);\r\n branches.forEach((branch) => {\r\n const branchFilter: GridFilter = {\r\n Filed: \"BranchId\",\r\n Value: branch.Id,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n const SaleMethodBranch = this.order.saleMethodList.find(\r\n (f) => f.BranchId == branch.Id && f.SaleMethodId === this.order.saleMethodBranch.SaleMethodId\r\n );\r\n const SaleMethodBranchFilter: GridFilter = {\r\n Filed: \"SaleMethodId\",\r\n Value: SaleMethodBranch.SaleMethodId,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"eq\",\r\n Type: \"F\",\r\n };\r\n if (branches.length > 1) {\r\n branchFilter.Logic = \"or\";\r\n SaleMethodBranchFilter.Logic = \"or\";\r\n }\r\n this.onFilter.push(...[branchFilter, SaleMethodBranchFilter]);\r\n });\r\n }\r\n\r\n private setReceiptPayment(invoice: Invoice): void {\r\n invoice.ReceiptPayments = [];\r\n const defaultReceiptPaymentTypeId = this.receiptPaymentType.find((f) => f.Code == ReceiptPaymentTypeEnum.Receipt).Id;\r\n const currentBranch = this.order.Branches.find((x) => x.Id == invoice.BranchId);\r\n const stringPayment = +currentBranch?.PaymentType || +this.order.logInBranch?.PaymentType; //online\r\n const cashPayment = this.order.paymentMethodTypeLookup?.find((x) => x.PaymentMethodCode === PaymentMethodEnum.Cash).Id;\r\n const paymentMethodId = this.currentRow.Payment == 1 ? stringPayment : cashPayment;\r\n const rc = new ReceiptPaymentModel();\r\n rc.InvoiceId = invoice.Id;\r\n rc.ReceiptPaymentTypeId = defaultReceiptPaymentTypeId;\r\n rc.PaymentMethodId = paymentMethodId;\r\n rc.Amount = invoice.PayableTotal;\r\n rc.BranchId = invoice.BranchId;\r\n rc.State = RowState.New;\r\n invoice.ReceiptPayments.push(rc);\r\n }\r\n\r\n private setSalePriceTypeId(invoice: Invoice) {\r\n const findDefaultSalePrice = this.order.saleMethodBranch.SalePriceTypes.find((f) => f.IsDefault);\r\n if (findDefaultSalePrice) invoice.SalePriceTypeId = findDefaultSalePrice.SalePriceTypeId;\r\n else invoice.SalePriceTypeId = this.order.salePriceType[0]?.Id;\r\n }\r\n\r\n private setFiscalYearId(invoice: Invoice): void {\r\n const authService = this.accountService.authService;\r\n if (authService.currentFiscalYear) invoice.FiscalYearId = authService.currentFiscalYear.Id;\r\n else\r\n authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) invoice.FiscalYearId = x.Id;\r\n });\r\n }\r\n\r\n private showCreateCustomerComponent(): Observable {\r\n let customerModel = new Customer();\r\n customerModel.Address = this.currentRow.CustomerAddress;\r\n customerModel.LastName = this.currentRow.CustomerName;\r\n customerModel.PhoneNumber = this.currentRow.Mobile;\r\n const address = new CustomerAddress();\r\n address.Address = this.currentRow.CustomerAddress;\r\n address.Latitude = this.currentRow.Lat;\r\n address.Longitude = this.currentRow.Lng;\r\n address.BranchId = this.currentRow.BranchId;\r\n address.IsDefault = true;\r\n address.ShippingCost = this.currentRow.ShippingCost;\r\n customerModel.Addresses = [address];\r\n return this.dialogService.open(\r\n CustomerFormComponent,\r\n {\r\n Customer: customerModel,\r\n apiName: \"Customer\",\r\n areaName: \"RestaurantSale\",\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderOnline.Customer\"),\r\n },\r\n { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false }\r\n );\r\n }\r\n\r\n private handleSaveInvoice(c: Customer, AutoFactor: any): void {\r\n this.order.newInvoice(false);\r\n let invoice = new Invoice();\r\n invoice.DelinoFactor = true;\r\n this.order.splashFormService.openDialog(\"\", \"\");\r\n this.checkCustomerAddress(c?.Id).subscribe(\r\n (customer: Customer) => {\r\n this.currentRow.Lng = this.currentRow.Lng ?? 0;\r\n this.currentRow.Lat = this.currentRow.Lat ?? 0;\r\n invoice.AddressId = customer.Addresses.find((x) =>\r\n this.currentRow.Lng == 0 || this.currentRow.Lat == 0\r\n ? this.currentRow.CustomerAddress == x.Address\r\n : x.Longitude?.toFixed(6) == this.currentRow.Lng?.toFixed(6) && x.Latitude?.toFixed(6) == this.currentRow.Lat?.toFixed(6)\r\n )?.Id;\r\n invoice.Customer = c;\r\n this.newInvoice(invoice);\r\n if (!AutoFactor) this.showSuccessOrderComponentAndSaveInvoice(invoice);\r\n else this.getCookingAndSendTimeFromItemAndSaveInvoice(invoice);\r\n },\r\n () => {\r\n this.order.splashFormService.closeLoading();\r\n }\r\n );\r\n }\r\n\r\n private checkCustomerAddress(CustomerId: number): Observable {\r\n const payload = new DelinoCheckCustomerAddressModel();\r\n payload.Lat = this.currentRow.Lat;\r\n payload.Lng = this.currentRow.Lng;\r\n payload.CustomerId = CustomerId;\r\n payload.Address = this.currentRow.CustomerAddress;\r\n payload.BranchId = this.currentRow.BranchId;\r\n payload.CustomerName = this.currentRow.CustomerName;\r\n payload.PhoneNumber = this.currentRow.Mobile;\r\n payload.ShippingCost = this.currentRow.ShippingCost;\r\n payload.isPickup = this.currentRow.isPickup;\r\n return this.httpCommonService.create(\"Customer/CheckCustomer\", payload).pipe(take(1));\r\n }\r\n\r\n private getCookingAndSendTimeFromItemAndSaveInvoice(invoice: Invoice): void {\r\n const res = new SuccessModel();\r\n res.CookingTime = 0;\r\n res.SendingTime = 0;\r\n invoice.Items?.forEach((element) => {\r\n res.CookingTime = element.CookingTime > res.CookingTime ? element.CookingTime : res.CookingTime;\r\n });\r\n res.CookingTime = !res.CookingTime ? this.order.logInBranch?.StandardDelayTimeForPreparation : res.CookingTime;\r\n res.SendingTime = invoice.CustomerAddress?.Zone?.MinutesToDelivery;\r\n if (this.currentRowCanNotInsertAgain) {\r\n this.updateCookingDeliveryDuration(+res.CookingTime, +res.SendingTime, invoice).then();\r\n return;\r\n }\r\n this.SaveInvoice(res, invoice);\r\n this.factorList?.refreshData();\r\n }\r\n\r\n private showSuccessOrderComponentAndSaveInvoice(invoice: Invoice): void {\r\n this.order.splashFormService.closeLoading();\r\n if (!this.currentRow.CookingDuration) {\r\n const cookingTime = invoice.Items?.sort((a, b) => a.CookingTime - b.CookingTime)[invoice.Items?.length - 1]?.CookingTime;\r\n this.currentRow.CookingDuration = cookingTime || this.order.logInBranch.StandardDelayTimeForPreparation;\r\n }\r\n if (!invoice.IsPickUp && !this.currentRow.DeliveryDuration) {\r\n const zoneBranch = invoice.CustomerAddress?.Zone?.Branches?.find((x) => x.BranchId === invoice?.BranchId);\r\n this.currentRow.DeliveryDuration = zoneBranch?.MinutesToDelivery;\r\n }\r\n this.dialogService\r\n .open(SuccessOrderComponent, { errorMessage: \"NotFound!!!\", model: this.currentRow }, { closeOnClickOutside: false })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((res: SuccessModel) => {\r\n if (res) {\r\n if (this.currentRowCanNotInsertAgain) {\r\n this.updateCookingDeliveryDuration(+res?.CookingTime, +res?.SendingTime, invoice).then();\r\n return;\r\n }\r\n this.SaveInvoice(res, invoice);\r\n this.factorList?.refreshData();\r\n }\r\n });\r\n }\r\n\r\n private SaveInvoice(res: SuccessModel, invoice: Invoice): void {\r\n const tollPercentage = this.order.currentBranch.TollPercentage;\r\n const packingPrice = invoice.PackingPrice;\r\n this.order.formGroup.controls[\"PackingPrice\"].setValue(packingPrice);\r\n this.order.formGroup.controls[\"Discount\"].setValue(invoice.Discount);\r\n invoice.isPackingDisable = true;\r\n this.order.currentBranch.TollPercentage = 0;\r\n this.order.invoice = invoice;\r\n this.order.calculate();\r\n this.order.currentBranch.TollPercentage = tollPercentage;\r\n this.invoiceAction.order = this.order;\r\n this.invoiceAction.SaveInvoice(InvoiceCommand.PreparationPrint, this.order.invoice);\r\n this.invoiceAction.saveEnd.pipe(take(1)).subscribe((x) => {\r\n if (x) {\r\n this.updateCookingDeliveryDuration(+res?.CookingTime, +res?.SendingTime, invoice).then((x) => {\r\n this.order.newInvoice(false);\r\n });\r\n } else this.order.newInvoice(false);\r\n if (this.order.autoDelinoInvoiceId) this.order.autoDelinoInvoiceId = null;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderOnline.Delino\" | translate }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderOnline.Snap\" | translate }}\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderOnline.SuccessOrder\" | translate }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderOnline.AddressLinkFactor\" | translate }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderOnline.CauseCancel.CauseCancel\" | translate }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderOnline.CallSupport.CallSupport\" | translate }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n 0\"\r\n [apiName]=\"apiName\"\r\n [name]=\"apiName\"\r\n [columns]=\"columns\"\r\n [areaName]=\"areaName\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [isAdd]=\"false\"\r\n (onRowSelected)=\"onRowsSelected($event)\"\r\n [isModal]=\"false\"\r\n [filters]=\"onFilter\"\r\n defaultSortKey=\"ClientFactorStateID,CreatedDate\"\r\n defaultSortKeyKind=\"asc\"\r\n [noAutoFitColumns]=\"true\"\r\n [groupable]=\"false\">\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SuccessModel } from \"./success.model\";\r\n\r\n@Component({\r\n selector: \"ngx-success-order\",\r\n templateUrl: \"./success-order.component.html\",\r\n styleUrls: [\"./success-order.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SuccessOrderComponent extends BaseFormComponent {\r\n public model: any;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit(): Promise {\r\n this.FillData();\r\n }\r\n\r\n FillData(): void {\r\n this.columns = [];\r\n const newGroup: any = {};\r\n this.formGroup = new UntypedFormGroup(newGroup);\r\n this.setValue(\"CookingTime\", this.model?.CookingDuration ?? \"0\");\r\n this.setValue(\"SendingTime\", this.model?.DeliveryDuration ?? \"0\");\r\n }\r\n\r\n onCookingTimeChange(value: number): void {\r\n if (Number(value) > 60) this.formGroup.controls[\"CookingTime\"].setValue(60);\r\n }\r\n\r\n public async save(): Promise {\r\n const successModel = new SuccessModel();\r\n successModel.CookingTime = this.formGroup.controls[\"CookingTime\"].value;\r\n successModel.SendingTime = this.formGroup.controls[\"SendingTime\"].value;\r\n this.result = successModel;\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n","export class SuccessModel {\r\n CookingTime: number;\r\n SendingTime: number;\r\n constructor() {\r\n this.CookingTime = 0;\r\n this.SendingTime = 0;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { OrderService } from \"../../../order.service\";\r\nimport { UntypedFormControl, UntypedFormGroup } from \"@angular/forms\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\n\r\n@Component({\r\n selector: \"order-paymentlinkfastaccess\",\r\n templateUrl: \"./paymentlinkfastaccess.component.html\",\r\n styleUrls: [\"./paymentlinkfastaccess.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PaymentLinkFastAccessComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, public order: OrderService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"\";\r\n this.label = \"\";\r\n this.areaName = \"\";\r\n this.FillData();\r\n }\r\n FillData(): void {\r\n const controllers = {\r\n HasPaymentLink: new UntypedFormControl(!!this.order.invoice?.HasPaymentLink),\r\n HasFactorLink: new UntypedFormControl(!!this.order.invoice?.HasFactorLink),\r\n };\r\n this.formGroup = new UntypedFormGroup(controllers);\r\n if (this.order.invoice.Customer.AutomaticDebtor) {\r\n this.formGroup.controls[\"HasPaymentLink\"].disable({ emitEvent: false });\r\n this.formGroup.controls[\"HasFactorLink\"].disable({ emitEvent: false });\r\n }\r\n }\r\n\r\n addControl() {\r\n this.setValue(\"HasPaymentLink\", this.model.ApplyTax);\r\n this.setValue(\"HasFactorLink\", this.model.ApplyService);\r\n }\r\n\r\n public onPaymentLinkChanges(value: boolean): void {\r\n if (!this.order.common.smartConnection) {\r\n this.order.invoice.HasPaymentLink = false;\r\n this.setValue(\"HasPaymentLink\", false);\r\n this.sts.showToast(\"danger\", \"\", this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.PaymentLink.SmartConnectionFailed\"));\r\n return;\r\n }\r\n this.order.invoice.HasPaymentLink = value;\r\n if (value) this.setValue(\"HasFactorLink\", value);\r\n }\r\n public onFactorLinkChanges(value: boolean): void {\r\n if (!this.order.common.smartConnection) {\r\n this.order.invoice.HasFactorLink = false;\r\n this.setValue(\"HasFactorLink\", false);\r\n this.sts.showToast(\"danger\", \"\", this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.PaymentLink.SmartConnectionFailed\"));\r\n return;\r\n }\r\n this.order.invoice.HasFactorLink = value;\r\n if (!value) this.setValue(\"HasPaymentLink\", false);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.PaymentLink.TitleHeader\" | translate }} \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { CustomerDetailInfoViewModel } from \"src/app/frontoffice/parties/model/customer.model\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { BaseFormComponent } from \"../../../../../../../projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-address-phone-form\",\r\n templateUrl: \"./address-phone-form.component.html\",\r\n styleUrls: [\"./address-phone-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AddressPhoneFormComponent extends BaseFormComponent {\r\n AddressId: number;\r\n PhoneId: number;\r\n erroremessage: string;\r\n CallerIdNumber: string;\r\n public columns2: form_control[] = [];\r\n constructor(public selectorService: SelectorService, public cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.label = this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.address-phone-form.ChoosingCustomerAddressAndTelephoneNumber\");\r\n this.setdefault();\r\n this.setColumns();\r\n }\r\n setdefault() {\r\n this.AddressId = this.model.Addresses.length === 1 ? this.model.Addresses[0].Id : null;\r\n this.PhoneId = this.model.Numbers.find((f) => f.IsDefault).Id;\r\n if (this.CallerIdNumber && this.CallerIdNumber !== \"\") {\r\n this.PhoneId = this.model.Numbers.find((x) => x.Number === this.CallerIdNumber)?.Id;\r\n }\r\n this.model.Addresses.forEach((x) => (x.Address = (x?.Zone?.Title || \"\") + \" - \" + x.Address));\r\n this.addControl();\r\n }\r\n async setColumns() {\r\n this.columns = [];\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.address-phone-form.AddressId\"),\r\n controlType: FormControlTypes.radioList,\r\n modelName: \"AddressId\",\r\n name: \"AddressId\",\r\n order: 1,\r\n textType: \"number\",\r\n formVisible: true,\r\n listVisible: true,\r\n required: true,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.address-phone-form.radioboxPhoneId\"),\r\n name: \"PhoneId\",\r\n order: 2,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"number\",\r\n modelName: \"PhoneId\",\r\n controlType: FormControlTypes.radioList,\r\n });\r\n this.orignalColumns = this.columns;\r\n this.setFormGroup(this.model);\r\n }\r\n addControl() {\r\n this.setValue(\"AddressId\", this.AddressId, true);\r\n this.setValue(\"PhoneId\", this.PhoneId, true);\r\n this.cd.markForCheck();\r\n }\r\n isValid() {\r\n this.erroremessage = undefined;\r\n if (!this.formGroup.controls[\"AddressId\"].value) {\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.address-phone-form.SelectingAddressRequired\");\r\n return false;\r\n }\r\n if (!this.formGroup.controls[\"PhoneId\"].value) {\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.address-phone-form.PhoneSelectionIsRequired\");\r\n return false;\r\n }\r\n return true;\r\n }\r\n async save() {\r\n if (this.formGroup?.valid && this.isValid()) {\r\n this.result = { AddressId: this.formGroup.controls[\"AddressId\"].value, PhoneId: this.formGroup.controls[\"PhoneId\"].value };\r\n this.closeModal();\r\n } else this.selectorService.submitted$.next(this.submitted);\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { ClubConfirmationEnum } from \"src/app/frontoffice/order/model/clubconfirmation.enum\";\r\nimport { OrderService } from \"src/app/frontoffice/order/order.service\";\r\n\r\n@Component({\r\n selector: \"ngx-clubconfirmation\",\r\n templateUrl: \"./clubconfirmation.component.html\",\r\n styleUrls: [\"./clubconfirmation.component.scss\"],\r\n})\r\nexport class ClubConfirmationComponent extends BaseFormComponent {\r\n public clubModelEnum: typeof ClubConfirmationEnum = ClubConfirmationEnum;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, public order: OrderService) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.FillData();\r\n }\r\n FillData() {\r\n this.columns = [];\r\n const newGroup: any = {};\r\n this.formGroup = new UntypedFormGroup(newGroup);\r\n }\r\n public Action(number: ClubConfirmationEnum) {\r\n this.result = number;\r\n this.close();\r\n }\r\n}\r\n","\r\n \r\n
\r\n

{{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.ClubConfirmation.CustomerDefinedCluSelected\" | translate }}

\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectorRef, Component, OnDestroy } from \"@angular/core\";\r\nimport { UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { NumericFilterCellComponent } from \"@progress/kendo-angular-grid\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { Customer } from \"src/app/frontoffice/parties/model/customer.model\";\r\nimport { SaleMethodNature } from \"src/app/frontoffice/sales/model/sale-method-branch.model\";\r\nimport { ClubEnum } from \"../../../model/club.enum\";\r\nimport { ClubConfirmationEnum } from \"../../../model/clubconfirmation.enum\";\r\nimport { OrderService } from \"../../../order.service\";\r\nimport { ItemOrderService } from \"../../item/itemorder.service\";\r\nimport { ClubConfirmationComponent } from \"./clubconfirmation/clubconfirmation.component\";\r\nimport { ClubViewModel, SmartClubModel, UsedProductDiscount } from \"../../../model/smartclub.model\";\r\nimport { CustomerFormComponent } from \"src/app/frontoffice/parties/customer/customer-form.component\";\r\nimport { of } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"order-clubfastacces\",\r\n templateUrl: \"./orderclubfastacces.component.html\",\r\n styleUrls: [\"./orderclubfastacces.component.scss\"],\r\n providers: [ItemOrderService],\r\n})\r\nexport class ClubFastAccessComponent extends BaseFormComponent implements OnDestroy {\r\n clubAction: number;\r\n clubActionEnum: NumericFilterCellComponent;\r\n public clubModelEnum: typeof ClubEnum = ClubEnum;\r\n constructor(\r\n protected selectorService: SelectorService,\r\n public order: OrderService,\r\n public cd: ChangeDetectorRef,\r\n public itemService: ItemOrderService\r\n ) {\r\n super(selectorService, cd);\r\n this.order.cd_FastAccessClub = cd;\r\n this.apiName = \"\";\r\n this.areaName = \"\";\r\n this.label = \"\";\r\n }\r\n ngOnDestroy(): void {}\r\n FillData() {\r\n let group: any = {};\r\n this.formGroup = new UntypedFormGroup(group);\r\n this.model = this.order.invoice.ClubViewModel;\r\n if (!this.model?.Code && !this.model?.LongMobile) {\r\n this.model = new ClubViewModel();\r\n }\r\n const club = this.order.invoice.ClubViewModel;\r\n this.setValue(\"CreditCode\", club?.Code ? club?.Code : club?.LongMobile ? \"0\" + `${club?.LongMobile}` : null);\r\n this.setValue(\"Phone\", club?.LongMobile ? \"0\" + `${club?.LongMobile}` : \"\");\r\n this.setValue(\"UseCredit\", club?.usedCredit);\r\n this.setValue(\"OperatorPhone\", club?.OperatorPhone);\r\n }\r\n async ngOnInit() {\r\n this.FillData();\r\n }\r\n SendCodeToCustomer() {\r\n if (!this.formGroup.controls[\"Phone\"].value) {\r\n this.sts.showToast(\r\n \"warning\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Error\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.PhoneNotEntered\")\r\n );\r\n return;\r\n }\r\n this.order.splashFormService.openDialog();\r\n const mobileNumber = this.formGroup.controls[\"Phone\"].value;\r\n const branchId = this.order.logInBranch.Id;\r\n this.httpCommonService\r\n .getList(`Invoice/SendCodeToCustomer/${mobileNumber}/${branchId}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: any) => {\r\n this.order.splashFormService.closeLoading();\r\n if (!data) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Send\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Error\")\r\n );\r\n return;\r\n }\r\n this.sts.showToast(\"success\", \"\", this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.ClubCodeSentToCustomer\"));\r\n },\r\n (err) => {\r\n this.order.splashFormService.closeLoading();\r\n console.log(err);\r\n }\r\n );\r\n }\r\n GetCustomerInquiry() {\r\n if (!this.order.invoice.ClubViewModel) this.order.invoice.ClubViewModel = new ClubViewModel();\r\n if (!this.formGroup.controls[\"CreditCode\"].valid) return;\r\n if (this.order.invoice.Items?.length <= 0) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Error\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.BasketIsEmpty\"),\r\n 600\r\n );\r\n return;\r\n }\r\n if (this.order.invoice.TotalDiscount > 0) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Error\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.InvoiceDiscountOrderToUsecredit\"),\r\n 600\r\n );\r\n return;\r\n }\r\n if (!this.formGroup.controls[\"CreditCode\"].value) {\r\n this.sts.showToast(\r\n \"warning\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Error\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.PhoneNotEntered\")\r\n );\r\n return;\r\n }\r\n this.reset();\r\n this.order.splashFormService.openDialog();\r\n const clubModel = new SmartClubModel();\r\n clubModel.codeOrMobile = this.formGroup.controls[\"CreditCode\"].value;\r\n clubModel.posUserId = this.order.currentUser.Id.toString();\r\n switch (this.order.currentSaleMethodNature) {\r\n case SaleMethodNature.Restaurant:\r\n clubModel.orderType = 1;\r\n break;\r\n case SaleMethodNature.Delivery:\r\n clubModel.orderType = 2;\r\n break;\r\n case SaleMethodNature.FastFood:\r\n clubModel.orderType = 3;\r\n break;\r\n default:\r\n clubModel.orderType = 4;\r\n break;\r\n }\r\n clubModel.retry = false;\r\n clubModel.InvoiceId = this.order.invoice.Id;\r\n clubModel.BranchId = this.order.invoice.BranchId;\r\n this.httpCommonService\r\n .create(`Invoice/GetCustomerInquiry`, clubModel)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: ClubViewModel) => {\r\n this.order.splashFormService.closeLoading();\r\n if (data.CustomerInquiryResponseStatus < 1) {\r\n this.sts.showToast(\"danger\", this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Error\"), data.Message, 3000);\r\n return;\r\n }\r\n //اگر مشترک بدون اشتراک انتخاب شده\r\n if (data?.Customer?.Id && this.order.invoice.Customer?.Id !== data?.Customer?.Id) {\r\n if (this.order.invoice.Customer?.Id === this.order.defaultCustomerId) {\r\n this.order.invoice.CustomerId = data.Customer.Id;\r\n this.order.invoice.ShippingCost = data.Customer.ShippingCost;\r\n this.order.setValue(\"ShippingCost\", this.order.invoice.ShippingCost);\r\n this.order.invoice.CourierShippingCost = data.Customer.CourierShippingCost;\r\n this.order.invoice.Customer.Number = data.Customer.Party.Number;\r\n this.order.invoice.CustomerDisplayName = data.Customer.DisplayName;\r\n this.order.invoice.PhoneNumber = data.Customer.PhoneNumber;\r\n this.order.invoice.PhoneId = data.Customer?.Numbers?.find((f) => f.IsDefault)?.Id;\r\n this.order.invoice.AddressId = data.Customer.Addresses?.find((f) => f.IsDefault)?.Id;\r\n this.order.invoice.CustomerAddress = data.Customer.Addresses?.find((f) => f.IsDefault);\r\n this.order.invoice.Customer = data.Customer;\r\n this.order.calculate();\r\n if (this.CalculatePayableTotla()) {\r\n const ClubDiscount = this.order.invoice.ClubViewModel.DiscountPrice;\r\n if (data.AvailableCredit + (ClubDiscount ? ClubDiscount : 0) > this.CalculatePayableTotla()) {\r\n const diff = this.CalculatePayableTotla() - (ClubDiscount ? ClubDiscount : 0);\r\n this.setValue(\"UseCredit\", diff);\r\n this.order.invoice.ClubViewModel.usedCredit = diff;\r\n } else {\r\n this.setValue(\"UseCredit\", data.AvailableCredit);\r\n this.order.invoice.ClubViewModel.usedCredit = data.AvailableCredit;\r\n }\r\n }\r\n } else {\r\n this.dialogService\r\n .open(ClubConfirmationComponent, { errorMessage: \"NotFound!!!\" }, { closeOnClickOutside: false })\r\n .pipe(take(1))\r\n .subscribe((res: ClubConfirmationEnum) => {\r\n switch (res) {\r\n case ClubConfirmationEnum.Save:\r\n this.order._opened = true;\r\n break;\r\n case ClubConfirmationEnum.Cancel:\r\n this.Reset();\r\n return;\r\n case ClubConfirmationEnum.Replace:\r\n this.order.invoice.CustomerId = data.Customer.Id;\r\n this.order.invoice.ShippingCost = data.Customer.ShippingCost;\r\n this.order.setValue(\"ShippingCost\", this.order.invoice.ShippingCost);\r\n this.order.invoice.CourierShippingCost = data.Customer.CourierShippingCost;\r\n this.order.invoice.Customer.Number = data.Customer.Party.Number;\r\n this.order.invoice.CustomerDisplayName = data.Customer.DisplayName;\r\n this.order.invoice.PhoneNumber = data.Customer.PhoneNumber;\r\n this.order.invoice.PhoneId = data.Customer?.Numbers?.find((f) => f.IsDefault)?.Id;\r\n this.order.invoice.AddressId = data.Customer.Addresses?.find((f) => f.IsDefault)?.Id;\r\n this.order.invoice.CustomerAddress = data.Customer.Addresses?.find((f) => f.IsDefault);\r\n this.order.invoice.Customer = data.Customer;\r\n this.order.calculate();\r\n if (this.CalculatePayableTotla()) {\r\n const ClubDiscount = this.order.invoice.ClubViewModel.DiscountPrice;\r\n if (data.AvailableCredit + (ClubDiscount ? ClubDiscount : 0) > this.CalculatePayableTotla()) {\r\n const diff = this.CalculatePayableTotla() - (ClubDiscount ? ClubDiscount : 0);\r\n this.setValue(\"UseCredit\", diff);\r\n this.order.invoice.ClubViewModel.usedCredit = diff;\r\n } else {\r\n this.setValue(\"UseCredit\", data.AvailableCredit);\r\n this.order.invoice.ClubViewModel.usedCredit = data.AvailableCredit;\r\n }\r\n }\r\n this.order._opened = true;\r\n break;\r\n default:\r\n this.Reset();\r\n return;\r\n }\r\n this.order.detectChanges();\r\n });\r\n\r\n // this.sts.showDialog(`مشتری تعریف در باشگاه مشتریان با مشتری انتخاب شده برابر نمی باشد ایا مایل به ادامه می باشید ؟ `, 'عدم تطابق کد اشتراک', DialogType.confirm, () => {\r\n // setTimeout(() => { this.order._opened = true; },100);\r\n // }, () => { this.Reset(); return; }, \"جایگذاری\");\r\n\r\n /**/\r\n }\r\n }\r\n this.order.invoice.ClubViewModel = data;\r\n\r\n this.order.invoice.ClubViewModel.UsedProductDiscount = [];\r\n if (data.ProductDiscounts && data.ProductDiscounts.length > 0) {\r\n data.ProductDiscounts.forEach((element) => {\r\n if (!this.order.invoice.Items.some((s) => s.IsClubItem && s.ItemId === element.ProductId)) {\r\n const findOrderItem = this.order.itemCategoryList[0].Items.find((f) => f.Id === element.ProductId);\r\n findOrderItem.IsClubItem = true;\r\n this.itemService.setSelectedItem(findOrderItem, element.QuantityRemain);\r\n this.order.selectedInvoiceItem.RowDiscount = element.Percentage;\r\n const findInvoiceIndex = this.order.invoice.Items.findIndex((i) => i.ItemId === element.ProductId);\r\n this.order.formGroup.controls[`RowDiscount${findInvoiceIndex}`].setValue(element.Percentage);\r\n const usedProductDiscount = new UsedProductDiscount();\r\n usedProductDiscount.ProductId = element.ProductId;\r\n usedProductDiscount.UsedCount = element.QuantityRemain;\r\n this.order.invoice.ClubViewModel.UsedProductDiscount.push(usedProductDiscount);\r\n this.order.calculate();\r\n if (this.CalculatePayableTotla()) {\r\n const ClubDiscount = this.order.invoice.ClubViewModel.DiscountPrice;\r\n if (data.AvailableCredit + (ClubDiscount ? ClubDiscount : 0) > this.CalculatePayableTotla()) {\r\n const diff = this.CalculatePayableTotla() - (ClubDiscount ? ClubDiscount : 0);\r\n this.setValue(\"UseCredit\", diff);\r\n this.order.invoice.ClubViewModel.usedCredit = diff;\r\n } else {\r\n this.setValue(\"UseCredit\", data.AvailableCredit);\r\n this.order.invoice.ClubViewModel.usedCredit = data.AvailableCredit;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n this.order.calculate();\r\n if (this.CalculatePayableTotla()) {\r\n const ClubDiscount = this.order.invoice.ClubViewModel.DiscountPrice;\r\n if (data.AvailableCredit + (ClubDiscount ? ClubDiscount : 0) > this.CalculatePayableTotla()) {\r\n const diff = this.CalculatePayableTotla() - (ClubDiscount ? ClubDiscount : 0);\r\n this.setValue(\"UseCredit\", diff);\r\n this.order.invoice.ClubViewModel.usedCredit = diff;\r\n } else {\r\n this.setValue(\"UseCredit\", data.AvailableCredit);\r\n this.order.invoice.ClubViewModel.usedCredit = data.AvailableCredit;\r\n }\r\n }\r\n },\r\n (err) => {\r\n this.order.splashFormService.closeLoading();\r\n console.log(err);\r\n }\r\n );\r\n }\r\n /// Calculate PayableTotla\r\n private CalculatePayableTotla(): number {\r\n const payable =\r\n this.order.invoice.PayableTotal -\r\n this.order.invoice.TotalTax -\r\n this.order.invoice.RoundingAmount -\r\n this.order.invoice.TotalToll -\r\n this.order.invoice.TotalService +\r\n (this.order.invoice.TotalDiscount ? this.order.invoice.TotalDiscount : 0);\r\n return payable;\r\n }\r\n\r\n showCustomerForm() {\r\n if (!this.order.invoice.Items.length) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.ItemNotSelected\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Error\")\r\n );\r\n return of(true);\r\n }\r\n if (this.order.invoice.CustomerNumber === 0) {\r\n this.dialogService\r\n .open(\r\n CustomerFormComponent,\r\n {\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.NoSubscription\"),\r\n hasClubCustomer: true,\r\n nameIsNotNecessary: !this.order.saleMethodBranch.HasNecessaryName,\r\n apiName: \"Customer\",\r\n LastName: this.order.invoice.Customer.LastName,\r\n currentrow: null,\r\n },\r\n { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.httpCommonService\r\n .getItem(\"Customer/GetCustomerDetails\", res.Id)\r\n .pipe(take(1))\r\n .subscribe((customer: Customer) => {\r\n this.order.invoice.Customer = customer;\r\n this.order.invoice.CustomerId = customer.Id;\r\n this.order.invoice.Customer.Number = customer.Number;\r\n this.order.invoice.CustomerDisplayName = customer?.LastName;\r\n this.order.invoice.PhoneNumber = customer.PhoneNumber;\r\n this.order.invoice.PhoneId = customer?.Numbers?.find((f) => f.IsDefault)?.Id;\r\n this.order.invoice.CustomerAddres = customer.Address;\r\n this.order.invoice.AddressId = customer.Addresses?.find((f) => f.IsDefault)?.Id;\r\n this.order.detectChanges();\r\n });\r\n return of(true);\r\n } else {\r\n return of(true);\r\n }\r\n });\r\n } else {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.SharedMobileNumberRegistered\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Error\")\r\n );\r\n this.order.detectChanges();\r\n return of(true);\r\n }\r\n this.cd.markForCheck();\r\n this.order.detectChanges();\r\n }\r\n\r\n /// Use CreditPrice in Invoice As DiscountPrice\r\n UseCredit() {\r\n this.order.invoice.ClubViewModel.usedCredit = 0;\r\n this.order.invoice.ClubViewModel.UseCreditPrice = 0;\r\n this.order.calculate();\r\n this.order.invoice.HasClub = true;\r\n this.order.invoice.ClubCode = this.order.invoice.ClubViewModel?.UsedCreditResponseId;\r\n // if(!this.CalculatePayableTotla()) {this.sts.showToast('warning','کالایی انتخاب نشده است','فاکتور خالی'); return;}\r\n if (this.CalculatePayableTotla() < this.order.invoice.ClubViewModel.MinFactorPriceToActiveDiscountPercent) {\r\n const minimumPriceWithComma = this.order.invoice.ClubViewModel.MinFactorPriceToActiveDiscountPercent?.toString().replace(\r\n /\\B(?=(\\d{3})+(?!\\d))/g,\r\n \",\"\r\n );\r\n this.sts.showToast(\r\n \"warning\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.MinimumInvoiceAmount\"),\r\n `${this.translate(\r\n \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.AmountShoppingCartLessThanMinimumAmount\"\r\n )} ${minimumPriceWithComma}`,\r\n 2000\r\n );\r\n return;\r\n }\r\n if (this.formGroup.controls[\"UseCredit\"].value > this.CalculatePayableTotla()) {\r\n this.sts.showToast(\r\n \"warning\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.CreditUsageRate\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.AmountOfCreditGreaterThanSumOfInvoices\"),\r\n 2000\r\n );\r\n return;\r\n }\r\n if (this.CalculatePayableTotla()) {\r\n const ClubDiscount = this.order.invoice.ClubViewModel.DiscountPrice;\r\n this.order.invoice.ClubViewModel.usedCredit = this.formGroup.controls[\"UseCredit\"].value ? this.formGroup.controls[\"UseCredit\"].value : 0;\r\n this.order.invoice.ClubViewModel.UseCreditPrice = (ClubDiscount ? ClubDiscount : 0) + this.order.invoice.ClubViewModel.usedCredit;\r\n }\r\n /// تنظیم تخفیف ریالی\r\n //if (!this.order.formGroup.controls[\"Discount\"].value && this.order.invoice.ClubViewModel.ClubTotalDiscount <= this.CalculatePayableTotla()) {\r\n // this.order.invoice.IsDiscountPercent = false;\r\n // this.order.invoice.ClubViewModel.ClubTotalDiscount = this.order.invoice.ClubViewModel.UseCreditPrice + this.order.invoice.ClubViewModel.DiscountPrice;\r\n // this.order.formGroup.controls[\"Discount\"].setValue(this.order.invoice.ClubViewModel.ClubTotalDiscount);\r\n // this.order.invoice.ClubViewModel.usedCredit = this.formGroup.controls[\"UseCredit\"].value;\r\n if (this.order.invoice.ClubViewModel.DiscountPrice > 0) {\r\n this.order.invoice.ClubViewModel.usedDiscountPercent = this.order.invoice.ClubViewModel.DiscountPercent;\r\n }\r\n //}\r\n /// ccc تخفیف کلی در صورت وجود باشگاه\r\n if (this.order.invoice?.HasClub) {\r\n const discount = this.order.invoice?.ClubViewModel?.UseCreditPrice ? this.order.invoice?.ClubViewModel?.UseCreditPrice : 0;\r\n this.order.invoice.IsDiscountPercent = false;\r\n this.order.invoice.DiscountPrice = discount;\r\n this.order.invoice.Discount = discount;\r\n this.order.setValue(\"Discount\", discount);\r\n }\r\n this.order.calculate();\r\n // this.order.formGroup.controls[\"Discount\"].disable();\r\n // this.cd.markForCheck();\r\n this.order._opened = false;\r\n }\r\n /// CreditPriceChange\r\n CreditPriceChange(value) {\r\n if (value !== this.order.invoice.ClubViewModel.usedCredit) {\r\n if (this.CalculatePayableTotla()) {\r\n const ClubDiscount =\r\n (this.order.invoice.TotalWidthRowDiscount *\r\n (this.order.invoice.ClubViewModel.DiscountPercent ? this.order.invoice.ClubViewModel.DiscountPercent : 0)) /\r\n 100;\r\n if (this.order.invoice.ClubViewModel.AvailableCredit + (ClubDiscount ? ClubDiscount : 0) > this.CalculatePayableTotla()) {\r\n const diff = this.CalculatePayableTotla() - (ClubDiscount ? ClubDiscount : 0);\r\n if (value > diff) this.setValue(\"UseCredit\", diff);\r\n else {\r\n this.order.invoice.ClubViewModel.usedCredit = value;\r\n this.order.invoice.ClubViewModel.isDisableusedCredit = true;\r\n }\r\n }\r\n if (this.order.invoice.ClubViewModel.AvailableCredit + (ClubDiscount ? ClubDiscount : 0) < this.CalculatePayableTotla()) {\r\n if (value > this.order.invoice.ClubViewModel.AvailableCredit) this.setValue(\"UseCredit\", this.order.invoice.ClubViewModel.AvailableCredit);\r\n else {\r\n this.order.invoice.ClubViewModel.usedCredit = value;\r\n this.order.invoice.ClubViewModel.isDisableusedCredit = true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n ChangeInput(event) {\r\n this.order.invoice.ClubViewModel.ClubTotalDiscount = Number(event.target.value);\r\n }\r\n /// SetInputNumber By\r\n SetInputNumber(numberValue: string) {\r\n switch (this.clubAction) {\r\n case ClubEnum.Code:\r\n if (!this.formGroup.controls[\"CreditCode\"]?.value) {\r\n this.setValue(\"CreditCode\", numberValue);\r\n } else\r\n this.setValue(\"CreditCode\", !this.formGroup.controls[\"CreditCode\"]?.value ? \"\" : this.formGroup.controls[\"CreditCode\"].value + numberValue);\r\n break;\r\n case ClubEnum.UseCredit:\r\n if (!this.formGroup.controls[\"UseCredit\"]?.value) {\r\n this.setValue(\"UseCredit\", numberValue);\r\n } else\r\n this.setValue(\"UseCredit\", !this.formGroup.controls[\"UseCredit\"]?.value ? \"\" : this.formGroup.controls[\"UseCredit\"].value + numberValue);\r\n break;\r\n case ClubEnum.Mobile:\r\n if (!this.formGroup.controls[\"Phone\"]?.value) {\r\n this.setValue(\"Phone\", numberValue);\r\n } else this.setValue(\"Phone\", !this.formGroup.controls[\"Phone\"]?.value ? \"\" : this.formGroup.controls[\"Phone\"].value + numberValue);\r\n break;\r\n case ClubEnum.SupportNumber:\r\n if (!this.formGroup.controls[\"OperatorPhone\"]?.value) {\r\n this.setValue(\"OperatorPhone\", numberValue);\r\n } else\r\n this.setValue(\r\n \"OperatorPhone\",\r\n !this.formGroup.controls[\"OperatorPhone\"]?.value ? \"\" : this.formGroup.controls[\"OperatorPhone\"].value + numberValue\r\n );\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n DeleteInputNumber() {\r\n switch (this.clubAction) {\r\n case ClubEnum.Code:\r\n this.setValue(\"CreditCode\", \"\");\r\n break;\r\n case ClubEnum.UseCredit:\r\n this.setValue(\"UseCredit\", \"\");\r\n break;\r\n case ClubEnum.Mobile:\r\n this.setValue(\"Phone\", \"\");\r\n break;\r\n case ClubEnum.SupportNumber:\r\n this.setValue(\"OperatorPhone\", \"\");\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n BackInputNumber() {\r\n let name: string = \"\";\r\n switch (this.clubAction) {\r\n case ClubEnum.Code:\r\n name = \"CreditCode\";\r\n break;\r\n case ClubEnum.UseCredit:\r\n name = \"CreditCode\";\r\n break;\r\n case ClubEnum.Mobile:\r\n name = \"Phone\";\r\n break;\r\n case ClubEnum.SupportNumber:\r\n name = \"OperatorPhone\";\r\n break;\r\n default:\r\n break;\r\n }\r\n const EndString = this.formGroup?.controls[name]?.value?.length - 1;\r\n this.setValue(name, this.formGroup.controls[name].value.substring(0, EndString));\r\n }\r\n Reset() {\r\n this.order.invoice.HasClub = false;\r\n this.order.invoice.ClubCode = null;\r\n this.order.invoice.ClubViewModel = null;\r\n this.order.invoice.ClubViewModel = new ClubViewModel();\r\n this.setValue(\"CreditCode\", this.order.invoice.ClubViewModel?.Code);\r\n this.setValue(\"Phone\", this.order.invoice.ClubViewModel?.LongMobile);\r\n this.setValue(\"UseCredit\", null);\r\n this.order.formGroup.controls[\"Discount\"].setValue(0);\r\n this.order.invoice.IsDiscountPercent = false;\r\n this.order.invoice.DiscountPrice = 0;\r\n this.order.invoice.Discount = 0;\r\n this.order.calculate();\r\n }\r\n HealthCheckClub() {\r\n this.order.splashFormService.openDialog();\r\n const branchId = this.order.logInBranch.Id;\r\n this.httpCommonService\r\n .getList(`Invoice/HealthCheckClub/${branchId}`)\r\n .pipe(take(1))\r\n .subscribe((data: number) => {\r\n this.order.splashFormService.closeLoading();\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.CommunicationWithCustomerClubEstablished\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Message\")\r\n );\r\n console.log(`time:${data}`);\r\n });\r\n }\r\n NeedSmartSupport() {\r\n if (!this.formGroup.controls[\"OperatorPhone\"].value) {\r\n this.sts.showToast(\r\n \"warning\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Error\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.PhoneNotEntered\")\r\n );\r\n return;\r\n }\r\n this.order.splashFormService.openDialog();\r\n const branchId = this.order.logInBranch.Id;\r\n const phone = this.formGroup.controls[\"OperatorPhone\"].value;\r\n this.httpCommonService\r\n .getList(`Invoice/NeedSmartSupport/${phone}/${branchId}`)\r\n .pipe(take(1))\r\n .subscribe((data: number) => {\r\n this.order.splashFormService.closeLoading();\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.SupportRequestSentToRelevantUnit\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Error\")\r\n );\r\n });\r\n }\r\n GetCustomerByFilter(Code: string) {\r\n let mobile = Code;\r\n\r\n this.httpCommonService\r\n .get(`Customer/ReadCustomerByMobile/${mobile}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n (x: Customer) => {\r\n this.order.invoice.CustomerId = x.Id;\r\n this.order.invoice.Customer = x;\r\n this.order.invoice.CustomerDisplayName = x.DisplayName;\r\n this.order.invoice.PhoneNumber = x.PhoneNumber;\r\n this.order.invoice.PhoneId = x.Numbers[0].Id;\r\n this.order.invoice.CustomerAddres = x.Address;\r\n this.order.invoice.AddressId = x.Addresses[0].Id;\r\n this.order.invoice.CustomerAddress = x.Addresses[0];\r\n },\r\n (e) => console.error(e),\r\n () => {\r\n this.sts.showToast(\r\n \"info\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Invoice\"),\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Customer\")} ${\r\n this.order.invoice.CustomerDisplayName\r\n } ${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Validated\")}`,\r\n 5000\r\n );\r\n this.cd.markForCheck();\r\n }\r\n );\r\n }\r\n ClubCodeChange($event) {\r\n if (!this.order.saleMethodBranch.UseMobileInValidation) {\r\n const patternKey = `^[1-9]\\\\d{1,20}`;\r\n this.formGroup.controls[\"CreditCode\"].setValidators([Validators.pattern(patternKey)]);\r\n }\r\n }\r\n\r\n reset(): void {\r\n this.id = 0;\r\n this.isNewRow = true;\r\n if (!this.id || this.id <= 0) this.setMaxCode();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.ClubTitle\" | translate }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.Balance\" | translate }} : \r\n \r\n {{ this.order.invoice.ClubViewModel?.AvailableCredit | number }}\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.UnitPrice\" | translate }}\r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.DiscountPercent\" | translate }} : \r\n {{ this.order.invoice.ClubViewModel?.DiscountPercent }} ٪\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.PercentCredit\" | translate }} : \r\n \r\n {{ this.order.invoice.ClubViewModel?.DiscountPrice | number }}\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.UnitPrice\" | translate }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.SumCredit\" | translate }} : \r\n {{ this.order.invoice?.ClubViewModel?.UseCreditPrice | number }}\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.ClubFastaccess.UnitPrice\" | translate }}\r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Output } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { OrderService } from \"../../../order.service\";\r\nimport { debounceTime, take, takeUntil, tap } from \"rxjs/operators\";\r\nimport { Customer, CustomerDetailInfoViewModel } from \"../../../../parties/model/customer.model\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { UntypedFormControl, UntypedFormGroup } from \"@angular/forms\";\r\nimport { CustomerFilter } from \"../../../model/customer-filter.model\";\r\nimport { CallCustomerList, CallRead } from \"../../../model/call-read.model\";\r\nimport { NotificationService } from \"projects/sepidz-web-framework/src/lib/services/notification.service\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { CustomerOrderService } from \"../../../customerorder/customerorder.service\";\r\n// import { ThousandSeparatorPipe } from \"projects/sepidz-web-framework/src/lib/pipes/thousand-separator.pipe\";\r\n// import { InvoiceService } from \"../../invoice/invoice.service\";\r\n\r\n@Component({\r\n selector: \"order-customerfastaccess\",\r\n templateUrl: \"./customerfastaccess.component.html\",\r\n styleUrls: [\"./customerfastaccess.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CustomerFastAccessComponent extends BaseListComponent {\r\n _customers: Customer[];\r\n _ToDayCallList: CallCustomerList[];\r\n _RingingMissCallList: CallRead[];\r\n _allowSearch: boolean = false;\r\n _isCreateFormGroup: boolean = false;\r\n moreInfo: Customer;\r\n @Output() StayOnPage: EventEmitter = new EventEmitter();\r\n\r\n constructor(\r\n __id: FormContainerModel,\r\n public dialog: SimpleModalService,\r\n private notification: NotificationService,\r\n public cd: ChangeDetectorRef,\r\n public customerService: CustomerOrderService,\r\n public order: OrderService // private invoiceService: InvoiceService\r\n ) {\r\n super();\r\n this.currentTabId = __id.metadata.id;\r\n this.order.cd_FastAccessCustomer = cd;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Customer/GetFilterGrid\";\r\n this.areaName = \"RestaurantSale\";\r\n this._customers = [];\r\n this.GetCustomersPagination(10);\r\n this.getRingingMissCallList();\r\n this.getToDayCallList();\r\n let group: any = {};\r\n group[\"inputName\"] = new UntypedFormControl(null, null);\r\n group[\"inputNumber\"] = new UntypedFormControl(null, null);\r\n group[\"inputPhone\"] = new UntypedFormControl(null, null);\r\n group[\"inputAddress\"] = new UntypedFormControl(null, null);\r\n this.group = new UntypedFormGroup(group);\r\n this._isCreateFormGroup = true;\r\n\r\n this.init();\r\n }\r\n\r\n private init() {\r\n this.notification.init();\r\n this.notification.notification$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((value) => {\r\n if (value.Key === \"CallerIdNotification\") {\r\n this.getToDayCallList();\r\n this.getRingingMissCallList();\r\n }\r\n });\r\n }\r\n\r\n GetCustomersPagination(numberOfCustomer: number) {\r\n this.httpCommonService\r\n .getItem(\"Customer/GetCustomerByNumber\", numberOfCustomer)\r\n .pipe(take(1))\r\n .subscribe((customers: Customer[]) => {\r\n this._customers = customers.sort((a, b) => a.Number - b.Number);\r\n this.cd.markForCheck();\r\n });\r\n }\r\n getToDayCallList() {\r\n this.httpCommonService\r\n .getItem(\"CallerId/ToDayCallList\", this.order.logInBranch.Id)\r\n .pipe(take(1))\r\n .subscribe((toDayCallList: CallCustomerList[]) => {\r\n this._ToDayCallList = toDayCallList;\r\n this._ToDayCallList.forEach((x) => {\r\n if (x.CustomerName) {\r\n return x.CustomerName;\r\n } else {\r\n return x.CustomerName == this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.NoSubscription\");\r\n }\r\n });\r\n this.cd.markForCheck();\r\n });\r\n }\r\n getRingingMissCallList() {\r\n this.httpCommonService\r\n .getItem(\"CallerId/RingingMissCallList\", this.order.logInBranch.Id)\r\n .pipe(take(1))\r\n .subscribe((ringingMissCallList: CallRead[]) => {\r\n this._RingingMissCallList = ringingMissCallList;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n FilterName() {\r\n //setTimeout(() => {\r\n let inputName, inputNumber, inputPhone, inputAddress: string;\r\n inputName = this.group.controls[\"inputName\"].value;\r\n inputNumber = this.group.controls[\"inputNumber\"].value;\r\n inputPhone = this.group.controls[\"inputPhone\"].value;\r\n inputAddress = this.group.controls[\"inputAddress\"].value;\r\n\r\n var customerFilter = new CustomerFilter();\r\n customerFilter.DisplayName = inputName;\r\n customerFilter.Code = inputNumber;\r\n customerFilter.PhoneNumber = inputPhone;\r\n customerFilter.Address = inputAddress;\r\n\r\n this.httpCommonService\r\n .create(\"Customer/GetCustomersByFilter\", customerFilter)\r\n .pipe(take(1))\r\n .subscribe((x: Customer[]) => {\r\n this._customers = x;\r\n this.cd.markForCheck();\r\n });\r\n //}, 2000);\r\n }\r\n //پر کردن نام مشتری در فاکتور جاری\r\n SetInvoiceCustomerName(customerId: number) {\r\n this.httpCommonService\r\n .getItem(\"Customer/GetCustomerDetails\", customerId)\r\n .pipe(take(1))\r\n .subscribe(\r\n async (customer: CustomerDetailInfoViewModel) => {\r\n if (this.order.invoice.CustomerId !== customer.Id || customer.Addresses.length > 0) {\r\n this.order.invoice.ShippingCost = 0;\r\n this.order.invoice.CourierShippingCost = 0;\r\n this.order.invoice.Discount = 0;\r\n this.customerService.setCostomerInfo(null, customer);\r\n\r\n this.order.closeSidebar();\r\n }\r\n },\r\n (err) => {\r\n this.order.closeSidebar();\r\n console.log(err);\r\n }\r\n );\r\n\r\n this.order.detectChanges();\r\n }\r\n //ماندن در صفحه دسترسی سریع\r\n StayOnFastAccessPage() {\r\n this.StayOnPage.emit();\r\n }\r\n setselectedItem(customer: Customer) {\r\n if (this.moreInfo === customer) this.moreInfo = null;\r\n else this.moreInfo = customer;\r\n }\r\n GetCustomerDetails(id: number) {\r\n this.httpCommonService\r\n .getItem(\"Customer/GetCustomerDetails\", id)\r\n .pipe(take(1))\r\n .subscribe((customer: Customer) => {\r\n if (this.moreInfo?.Id === customer.Id) this.moreInfo = null;\r\n else this.moreInfo = customer;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.CustomerHeaderTitle\" | translate }}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ customer.Party.DisplayName }}\r\n
\r\n
\r\n {{ customer.Number }}\r\n
\r\n
\r\n
\r\n {{ customer.Numbers[0]?.Number }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.Continue\" | translate }}\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.LimitCredit\" | translate }}: \r\n {{ moreInfo.CreditLimit }}\r\n 0\">{{\r\n \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.UnitPrice\" | translate\r\n }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.TimeArrive\" | translate }} : \r\n {{ moreInfo?.MinutesToDelivery }}\r\n 0\">{{\r\n \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.Minutes\" | translate\r\n }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.LastPurchase\" | translate }}: \r\n {{ moreInfo.LastBuy }}\r\n 0\">{{\r\n \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.UnitPrice\" | translate\r\n }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.SumPrice\" | translate }}: \r\n {{ moreInfo.TotalBuy }}\r\n 0\">{{\r\n \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.UnitPrice\" | translate\r\n }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.CallHeaderTitle\" | translate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
{{ ringingMissCall.Number }}
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.Line\" | translate }} {{ ringingMissCall.Line }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.CallBoxTitle\" | translate }}\r\n\r\n
\r\n
\r\n
\r\n \r\n {{\r\n toDayCall.CustomerName\r\n ? toDayCall.CustomerName\r\n : (\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.NoSubscription\" | translate)\r\n }}\r\n
\r\n
\r\n {{ toDayCall.CallStatusTitle }}\r\n
\r\n
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.Number\" | translate }}: {{ toDayCall.Number }}\r\n
\r\n
{{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.CustomerFastacces.Line\" | translate }}: {{ toDayCall.Line }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { OrderService } from \"../../../order.service\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { PaymentMethodLookUp } from \"../../../model/payment.lookup\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { WebKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\n\r\n@Component({\r\n selector: \"order-delino-offlinefactor\",\r\n templateUrl: \"./delinoofflinefactor.component.html\",\r\n styleUrls: [\"./delinoofflinefactor.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class DelinoOfflineFactorcomponent extends BaseFormComponent {\r\n public PaymentTypeData: PaymentMethodLookUp[] = [];\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, public order: OrderService) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"\";\r\n this.label = \"\";\r\n this.areaName = \"\";\r\n this.setValue(\"WebId\", null);\r\n this.setValue(\"DelinoPaymentMethod\", \"\");\r\n const invoice = this.order.invoice;\r\n if (invoice.WebId) this.setValue(\"WebId\", `${invoice.WebId}`);\r\n if (invoice.PaymentMethodTypeId) this.setValue(\"DelinoPaymentMethod\", `${invoice.PaymentMethodTypeId}`);\r\n this.fillPaymentMethodType();\r\n }\r\n\r\n fillPaymentMethodType() {\r\n this.httpCommonService\r\n .getList(\"PaymentMethod/PaymentMethodLookUp\" + \"/\" + this.order.logInBranch.Id)\r\n .pipe(take(1))\r\n .subscribe((data: PaymentMethodLookUp[]) => {\r\n this.PaymentTypeData = data;\r\n const paymentTypeId = this.order.invoice.PaymentMethodTypeId ?? this.order.currentBranch?.PaymentType;\r\n this.setValue(\"DelinoPaymentMethod\", paymentTypeId);\r\n this.cd.markForCheck();\r\n this.order.detectChanges();\r\n });\r\n }\r\n\r\n public SaveDelinoFactor(): void {\r\n this.order.invoice.WebId = Number(this.formGroup.controls[\"WebId\"].value);\r\n this.order.invoice.WebKindId = this.order.WebKinds.find(x=>x.Code == WebKind.Delino)?.Id;\r\n this.order.invoice.PaymentMethodTypeId = Number(this.formGroup.controls[\"DelinoPaymentMethod\"].value);\r\n this.order._opened = false;\r\n }\r\n\r\n public onDelinoPaymentMethodChanges(): void {\r\n this.order.shouldCloseSidebar = false;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.DelinoOfflineFactor.TitleHeader\" | translate }} \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';\r\nimport * as moment from 'moment';\r\nimport { DriverAssignementService } from 'src/app/frontoffice/driverassignment/driverassignment.service';\r\nimport { OrderService } from '../../../order.service';\r\nimport { FormContainerModel } from 'projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model';\r\n\r\n@Component({\r\n selector: 'order-driverassignmentfastaccess',\r\n templateUrl: './driverassignmentfastaccess.component.html',\r\n styleUrls: ['./driverassignmentfastaccess.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [DriverAssignementService]\r\n})\r\n\r\nexport class DriverAssignmentFastAccessComponent {\r\n constructor(public driverservice: DriverAssignementService, public order: OrderService, public cd: ChangeDetectorRef,__id: FormContainerModel) {\r\n this.driverservice.isFastAccess = true;\r\n const m = moment();\r\n this.driverservice.GetAllInvoicesByDate(m.locale('fa').format('YYYY/MM/DD'));\r\n this.order.cd_FastAccessDriverAssignment = cd;\r\n this.driverservice._id = __id.metadata.id;\r\n this.driverservice.inputSearch = 'searchInput'+ __id.metadata.id;\r\n this.driverservice.inputBarCode = 'barcodeInput'+__id.metadata.id;\r\n this.driverservice.setFormGroupValue();\r\n }\r\n\r\n async ngOnInit() {\r\n setTimeout(() => {\r\n this.driverservice.focus();\r\n }, 500);\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.DriverAssignmentFastaccess.TitleHeader\" | translate }}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.DriverAssignmentFastaccess.FactorsTitle\" | translate }}\r\n
\r\n
\r\n \r\n
\r\n
    \r\n \r\n
    \r\n
    \r\n
    {{ item.title }}
    \r\n {{ item.count }}\r\n
    \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.DriverAssignmentFastaccess.FactorsTitle\" | translate }} {{ invoice.NumberingInDate }}\r\n
\r\n
\r\n {{ invoice.FactorStringTime }} {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.DriverAssignmentFastaccess.AgoTitle\" | translate }}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.DriverAssignmentFastaccess.DriverTitle\" | translate }}\r\n
\r\n \r\n
\r\n
    \r\n \r\n \r\n {{ item.title }}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ driver.DisplayName }}\r\n
{{ driver.DriverAssignmentInvoicesCount }}
\r\n
\r\n
\r\n {{ driver.AssignmentInvoicesTotal | number | persianNumber }}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { FastAccessService } from \"./fastaccess.service\";\r\nimport { AuthService } from \"projects/sepidz-web-framework/src/lib/services\";\r\n@Component({\r\n selector: \"order-fast-access\",\r\n templateUrl: \"./fastaccess.component.html\",\r\n styleUrls: [\"./fastaccess.component.scss\"],\r\n providers: [FastAccessService],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FastAccessComponent {\r\n constructor(public fastaccessservcie: FastAccessService, public cd: ChangeDetectorRef) {\r\n this.fastaccessservcie.order.cd_FastAccess = cd;\r\n }\r\n}\r\n","
\r\n \r\n\r\n \r\n
\r\n \r\n \r\n
{{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.Factor\" | translate }}
\r\n
\r\n \r\n \r\n
{{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.Table\" | translate }}
\r\n
\r\n \r\n \r\n
{{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.Driver\" | translate }}
\r\n \r\n \r\n \r\n
{{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.Customer\" | translate }}
\r\n \r\n \r\n \r\n
{{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.Waiter\" | translate }}
\r\n \r\n \r\n \r\n
{{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.Pager\" | translate }}
\r\n \r\n \r\n \r\n
{{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.Club\" | translate }}
\r\n \r\n \r\n \r\n
{{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.PaymentLink\" | translate }}
\r\n \r\n \r\n \r\n
{{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.DelinoOfflineFactor\" | translate }}
\r\n \r\n \r\n \r\n
{{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.Protel\" | translate }}
\r\n \r\n
\r\n \r\n
{{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.Tare\" | translate }}
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BaseService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-service.component\";\r\nimport { AuthService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { SaleMethodNature } from \"src/app/frontoffice/sales/model/sale-method-branch.model\";\r\nimport { ActivePageEnum } from \"../../model/activepage.enum\";\r\nimport { FastAccessEnum } from \"../../model/fastaccessenum\";\r\nimport { InvoiceStatus } from \"../../model/invoice.model\";\r\nimport { OrderService } from \"../../order.service\";\r\nimport { ProtelModel } from \"projects/sepidz-web-framework/src/lib/models/Protel.model\";\r\nimport { take } from \"rxjs/operators\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class FastAccessService extends BaseService {\r\n // currentSaleMethodBranch: SaleMethodBranchModel;1\r\n saleMethodNature: typeof SaleMethodNature = SaleMethodNature;\r\n descriptionExpantion: boolean = false;\r\n public fastAccessEnum: typeof FastAccessEnum = FastAccessEnum;\r\n public activePageEnum: typeof ActivePageEnum = ActivePageEnum;\r\n public invoicestatus: typeof InvoiceStatus = InvoiceStatus;\r\n hasClub: boolean;\r\n hasLinkPayment: boolean;\r\n protel: ProtelModel;\r\n\r\n constructor(public order: OrderService, public authService: AuthService, public common: CommonService) {\r\n super();\r\n this.hasClub = this.authService?.currentInformation().HasClub;\r\n this.hasLinkPayment = this.authService?.currentInformation().PaymentPanelAVA;\r\n }\r\n\r\n public _toggleOpened(fastAccessName: FastAccessEnum) {\r\n if (this.order._opened && fastAccessName && this.order.selectedFastAccess != fastAccessName) this.order._opened = true;\r\n else this.order._opened = !this.order._opened;\r\n\r\n this.order.selectedFastAccess = fastAccessName;\r\n setTimeout(() => {\r\n this.order.cd.markForCheck();\r\n }, 1000);\r\n }\r\n\r\n closeSidebar(clickEvent: any) {\r\n if (clickEvent[\"closest\"](\".mobile-fast-access\")) return;\r\n\r\n if (this.common.isMobileMode && this.order.hideFastAccess) this.order.hideFastAccess = false;\r\n\r\n if (this.order._opened) {\r\n if (this.order.shouldCloseSidebar) this.order._opened = false;\r\n else this.order.shouldCloseSidebar = true;\r\n }\r\n }\r\n GetProtelInfo() {\r\n const roomNumber = this.order.invoice.Customer.Party.LastName;\r\n if (this.order.invoice.AutomaticDebtor || this.order.invoice.isDebit) {\r\n this.httpCommonService\r\n .get(`Invoice/GetProtelData/${roomNumber}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: ProtelModel[]) => {\r\n this.protel = data[0];\r\n if (this.protel == null) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.InformationToDisplay\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.Attention\")\r\n );\r\n } else {\r\n const name = this.protel.FullName;\r\n let reservationNumber = this.protel.ReservationNumber;\r\n const rmNumber = this.protel.RoomNumber;\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.Name\")}: ${name}\r\n ${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.RoomNumber\")}: ${rmNumber}\r\n ${this.translate(\r\n \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.ReservationNumber\"\r\n )}: ${reservationNumber}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.Attention\")\r\n );\r\n }\r\n },\r\n (err) => {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.CommunicationWithProtelEstablished\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.Attention\")\r\n );\r\n }\r\n );\r\n } else {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.DesiredSubscriberIsNotValid\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.Fastacces.Attention\")\r\n );\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { OrderService } from \"../../../order.service\";\r\nimport { SaleMethodBranchModel, SaleMethodNature } from \"src/app/frontoffice/sales/model/sale-method-branch.model\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SalonOrderService } from \"../../../salonorder/salonorder.service\";\r\nimport { CustomerOrderService } from \"../../../customerorder/customerorder.service\";\r\nimport { ActivePageEnum } from \"../../../model/activepage.enum\";\r\nimport { ItemOrderService } from \"../../item/itemorder.service\";\r\nimport { InvoiceStatus } from \"../../../model/invoice.model\";\r\nimport { Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { HttpCommonService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { AppInjector } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\n\r\n@Component({\r\n selector: \"order-invoicechangefastaccess\",\r\n templateUrl: \"./invoicechangefastaccess.component.html\",\r\n styleUrls: [\"./invoicechangefastaccess.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class InvoiceChangeFastAccess extends BaseListComponent {\r\n @Input() currentSaleMethodBranch: SaleMethodBranchModel;\r\n itemDependentQty: number;\r\n constructor(\r\n public order: OrderService,\r\n private itemOrder: ItemOrderService,\r\n __id: FormContainerModel,\r\n public salonService: SalonOrderService,\r\n public cd: ChangeDetectorRef,\r\n public customer: CustomerOrderService,\r\n public _httpCommonService: HttpCommonService\r\n ) {\r\n super();\r\n this.currentTabId = __id.metadata.id;\r\n this.order.cd_FastAccessInvoiceChange = cd;\r\n this._httpCommonService = AppInjector.get(HttpCommonService);\r\n }\r\n ngOnInit() {\r\n this.getSaleMethod();\r\n this.areaName = \"RestaurantSale\";\r\n }\r\n getSaleMethod() {\r\n if (this.order.saleMethodList && this.order.saleMethodList.length > 0) {\r\n this.order.currentsaleMethodList = this.order.saleMethodList.filter(\r\n (f) => f.Id !== this.order.saleMethodBranch.Id && f.BranchId === this.order.accountService.authService?.currentBranchId && !!f.IsActive\r\n );\r\n return;\r\n }\r\n this.httpCommonService\r\n .getList(\"Invoice/GetSaleMethodBranch\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: SaleMethodBranchModel[]) => {\r\n this.order.saleMethodList = data;\r\n this.order.currentsaleMethodList = this.order.saleMethodList.filter(\r\n (f) => f.Id !== this.order.saleMethodBranch.Id && f.BranchId === this.order.accountService.authService?.currentBranchId && !!f.IsActive\r\n );\r\n this.order.detectChanges();\r\n });\r\n }\r\n async changeSaleMethod(SaleMethodBranch: SaleMethodBranchModel) {\r\n if (\r\n (this.order.saleMethodBranch.SaleMethod.SaleMethodNatureCode === SaleMethodNature.Restaurant ||\r\n this.order.saleMethodBranch.SaleMethod.SaleMethodNatureCode === SaleMethodNature.FastFood) &&\r\n SaleMethodBranch.SaleMethodNatureCode == SaleMethodNature.Delivery &&\r\n !SaleMethodBranch.HasDeposit\r\n )\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.InvoiceChangeFastaccess.TransferredToPaidSubscribers\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.InvoiceChangeFastaccess.ChangingWayOfSelling\"),\r\n DialogType.confirm,\r\n () => {\r\n for (let i = 0; i < this.order.invoice.ReceiptPayments.length; i++) {\r\n this.order.invoice.ReceiptPayments[i].State = RowState.Delete;\r\n }\r\n this.order.getSaleMethodType();\r\n this.order.invoice.State = RowState.Modify;\r\n this.setChangeSaleMethod(SaleMethodBranch);\r\n }\r\n );\r\n else if (\r\n this.order.saleMethodBranch.SaleMethod.SaleMethodNatureCode === SaleMethodNature.Delivery &&\r\n this.order.invoice?.StatusCode == InvoiceStatus.Assigned\r\n ) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.InvoiceChangeFastaccess.RemoveInvoiceFromCourierName\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.InvoiceChangeFastaccess.Warning\")\r\n );\r\n return;\r\n } else this.setChangeSaleMethod(SaleMethodBranch);\r\n }\r\n setChangeSaleMethod(SaleMethodBranch: SaleMethodBranchModel) {\r\n const hasAccess = this.accountService.userHasPermission(`RestaurantSale:Invoice_${SaleMethodBranch.SaleMethodId}`, Permission.viewPermission);\r\n if (!hasAccess) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.InvoiceChangeFastaccess.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.InvoiceChangeFastaccess.AccessToThisArea\")\r\n );\r\n return;\r\n }\r\n this.setStateOfInvoice(SaleMethodBranch);\r\n if (this.order.oldSaleMethodBranchId !== SaleMethodBranch.Id) {\r\n /// تعویض از رستورانی به باقی نحوه های فروش\r\n if (SaleMethodBranch.SaleMethodNatureCode === SaleMethodNature.Restaurant) {\r\n this.order.saleMethodBranchChanged = true;\r\n this.salonService.tableFilter.forEach((element) => {\r\n if (element.key === 1) element.selected = true;\r\n else element.selected = false;\r\n });\r\n } else this.order.saleMethodBranchChanged = false;\r\n }\r\n this.order.currentsaleMethodList = this.order.saleMethodList.filter(\r\n (f) => f.Id !== this.order.saleMethodBranch.Id && f.BranchId === this.order.accountService.authService?.currentBranchId && !!f.IsActive\r\n );\r\n this.order.invoiceChanged = true;\r\n if (!SaleMethodBranch.TableIsRequired && this.order.invoice.TableId) this.order.invoice.TableId = null;\r\n this.order.saleMethodBranch = JSON.parse(JSON.stringify(SaleMethodBranch));\r\n this.order.invoice.Discount = SaleMethodBranch.Discount ? SaleMethodBranch.Discount : 0;\r\n this.order.setInvoiceHasFactorAndHasPaymentLink();\r\n this.order.currentSaleMethodNature = SaleMethodBranch.SaleMethodNatureCode;\r\n this.order.invoice.SaleMethodBranch = this.order.saleMethodBranch;\r\n this.order.invoice.OldSaleMethodBranchId = this.order.oldSaleMethodBranchId;\r\n this.order.invoice.SaleMethodBranchId = this.order.saleMethodBranch.Id;\r\n this.itemDependentQty = this.order?.selectedOrderItem?.InvoiceQty;\r\n if (SaleMethodBranch.SaleMethod.SaleMethodNatureCode === SaleMethodNature.Restaurant && this.order.currentActivePage === ActivePageEnum.Salon)\r\n this.salonService.getSalon();\r\n this.order.getSaleMethodType();\r\n\r\n /// حذف ایتم های وابسته درصورت نداشتن در نحوه فروش\r\n // if (SaleMethodBranch.SaleMethod.SaleMethodNatureCode === SaleMethodNature.Delivery)\r\n // this.customer.setCostomerInfo(null, this.order.customer);\r\n this.itemOrder.hasDependents(this.order.selectedOrderItem, this.itemDependentQty);\r\n this.order.hasDependents();\r\n this.order.formGroupControl();\r\n this.order.setValueformGroupControl();\r\n this.order.calculate();\r\n this.order.setValueQuantity();\r\n this.order.detectChanges();\r\n\r\n this.order.checkInvoiceState(this.order.invoice.CommandCode);\r\n this.sts.showToast(\r\n \"success\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.InvoiceChangeFastaccess.Attention\"),\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.InvoiceChangeFastaccess.SalesInvoiceAccording\")} ${\r\n SaleMethodBranch.SaleMethodNatureTitle\r\n } ${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.InvoiceChangeFastaccess.Transferred\")}`\r\n );\r\n this.order.closeSidebar();\r\n this.sts.showToast(\r\n \"success\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.InvoiceChangeFastaccess.Attention\"),\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.InvoiceChangeFastaccess.SalesInvoiceAccording\")} ${\r\n SaleMethodBranch.SaleMethodNatureTitle\r\n } ${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.InvoiceChangeFastaccess.Transferred\")}`\r\n );\r\n }\r\n\r\n setStateOfInvoice(SaleMethodBranch: SaleMethodBranchModel) {\r\n const currentSaleMethodNatureCode = this.order.saleMethodBranch?.SaleMethodNatureCode,\r\n newSaleMethodNatureCode = SaleMethodBranch.SaleMethodNatureCode,\r\n currentStatusCode = this.order.invoice?.StatusCode;\r\n\r\n switch (currentSaleMethodNatureCode) {\r\n case SaleMethodNature.Restaurant:\r\n switch (newSaleMethodNatureCode) {\r\n case SaleMethodNature.FastFood:\r\n if (\r\n currentStatusCode === InvoiceStatus.Pending ||\r\n currentStatusCode === InvoiceStatus.Ordering ||\r\n currentStatusCode === InvoiceStatus.Clearing\r\n ) {\r\n this.order.invoice.StatusCode = InvoiceStatus.Pending;\r\n } else if (currentStatusCode === InvoiceStatus.Cleared) {\r\n this.order.invoice.StatusCode = InvoiceStatus.Cleared;\r\n }\r\n break;\r\n case SaleMethodNature.Delivery:\r\n if (currentStatusCode === InvoiceStatus.Pending) {\r\n this.order.invoice.StatusCode = InvoiceStatus.Pending;\r\n } else if (\r\n currentStatusCode === InvoiceStatus.Cleared ||\r\n currentStatusCode === InvoiceStatus.Ordering ||\r\n currentStatusCode === InvoiceStatus.Clearing\r\n ) {\r\n this.order.invoice.StatusCode = InvoiceStatus.Ordering;\r\n }\r\n break;\r\n }\r\n break;\r\n case SaleMethodNature.FastFood:\r\n switch (newSaleMethodNatureCode) {\r\n case SaleMethodNature.Restaurant:\r\n if (currentStatusCode === InvoiceStatus.Pending) {\r\n this.order.invoice.StatusCode = InvoiceStatus.Pending;\r\n } else if (currentStatusCode === InvoiceStatus.Cleared) {\r\n this.order.invoice.StatusCode = InvoiceStatus.Cleared;\r\n }\r\n break;\r\n case SaleMethodNature.Delivery:\r\n if (currentStatusCode === InvoiceStatus.Pending) {\r\n this.order.invoice.StatusCode = InvoiceStatus.Pending;\r\n } else if (currentStatusCode === InvoiceStatus.Cleared) {\r\n this.order.invoice.StatusCode = InvoiceStatus.Ordering;\r\n }\r\n break;\r\n }\r\n\r\n break;\r\n case SaleMethodNature.Delivery:\r\n switch (newSaleMethodNatureCode) {\r\n case SaleMethodNature.FastFood:\r\n if (currentStatusCode === InvoiceStatus.Pending) {\r\n this.order.invoice.StatusCode = InvoiceStatus.Pending;\r\n } else if (currentStatusCode === InvoiceStatus.Ordering) {\r\n this.order.invoice.StatusCode = InvoiceStatus.Pending;\r\n }\r\n break;\r\n case SaleMethodNature.Restaurant:\r\n if (currentStatusCode === InvoiceStatus.Pending) {\r\n this.order.invoice.StatusCode = InvoiceStatus.Pending;\r\n } else if (currentStatusCode === InvoiceStatus.Ordering) {\r\n this.order.invoice.StatusCode = InvoiceStatus.Ordering;\r\n }\r\n break;\r\n }\r\n break;\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.InvoiceChangeFastaccess.BoxTitle\" | translate }} \r\n
\r\n
\r\n
\r\n {{ item.SaleMethodTitle }}\r\n
\r\n
\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { OrderService } from \"../../../order.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { isNullOrEmptyString } from \"@progress/kendo-angular-grid/dist/es2015/utils\";\r\nimport { InvoiceService } from \"../../invoice/invoice.service\";\r\n\r\n@Component({\r\n selector: \"order-pagerfastaccess\",\r\n templateUrl: \"./pagerfastaccess.component.html\",\r\n styleUrls: [\"./pagerfastaccess.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PagerFastAccessComponent extends BaseListComponent {\r\n constructor(public invoiceservice: InvoiceService, public order: OrderService, __id: FormContainerModel, public cd: ChangeDetectorRef) {\r\n super();\r\n this.currentTabId = __id.metadata.id;\r\n this.order.cd_FastAccessPager = cd;\r\n }\r\n\r\n ngOnInit() {\r\n let group: any = {};\r\n group[\"inputPager\"] = new UntypedFormControl(null, Validators.required);\r\n this.group = new UntypedFormGroup(group);\r\n this.group.controls[\"inputPager\"].setValue(\"\");\r\n }\r\n\r\n SetInputPager(numberValue: number) {\r\n this.group.controls[\"inputPager\"].setValue(`${this.group.controls[\"inputPager\"].value}` + numberValue.toString());\r\n }\r\n\r\n BackSpaceInputPager() {\r\n let inputPagerValue: string = this.group.controls[\"inputPager\"].value;\r\n let newInputPagerValue = inputPagerValue.substr(0, inputPagerValue.length - 1);\r\n this.group.controls[\"inputPager\"].setValue(newInputPagerValue);\r\n }\r\n\r\n ClearInputPager() {\r\n this.group.controls[\"inputPager\"].setValue(\"\");\r\n }\r\n\r\n SetInvoicePager() {\r\n let inputPagerValue: string = this.group.controls[\"inputPager\"].value;\r\n\r\n if (inputPagerValue && !isNullOrEmptyString(inputPagerValue)) {\r\n this.order.invoice.Description =\r\n this.order.invoice[\"Description\"].valueOf() +\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.PagerFastaccess.PagerNumber\") +\r\n inputPagerValue;\r\n this.order.formGroup.controls[\"Description\"].setValue(this.order.invoice.Description);\r\n\r\n this.order.invoiceChanged = true;\r\n }\r\n this.order._opened = false;\r\n }\r\n\r\n SetInvoicePagerDestCustomerKitchen() {\r\n let inputPagerValue: string = this.group.controls[\"inputPager\"].value;\r\n\r\n if (inputPagerValue && !isNullOrEmptyString(inputPagerValue)) {\r\n this.order.invoice.DescCustomer =\r\n this.order.invoice[\"DescCustomer\"].valueOf() +\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.PagerFastaccess.PagerNumber\") +\r\n inputPagerValue;\r\n this.order.formGroup.controls[\"DescCustomer\"].setValue(this.order.invoice.DescCustomer);\r\n\r\n this.order.invoice.DescKitchen =\r\n this.order.invoice[\"DescKitchen\"].valueOf() +\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.PagerFastaccess.PagerNumber\") +\r\n inputPagerValue;\r\n this.order.formGroup.controls[\"DescKitchen\"].setValue(this.order.invoice.DescKitchen);\r\n\r\n this.order.invoiceChanged = true;\r\n }\r\n this.order._opened = false;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.PagerFastaccess.TitleHeader\" | translate }} \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SalonOrderService } from \"../../../salonorder/salonorder.service\";\r\n\r\n@Component({\r\n selector: \"order-salonfastaccess\",\r\n templateUrl: \"./salonfastaccess.component.html\",\r\n styleUrls: [\"./salonfastaccess.component.scss\"],\r\n})\r\nexport class SalonFastAccessComponent extends BaseListComponent {\r\n constructor(public salonorder: SalonOrderService) {\r\n super();\r\n salonorder.getSalon();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Fastaccess.SalonFastacces.TitleHeader\" | translate }}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {{ salon.Title }}\r\n
\r\n
\r\n
\r\n
    \r\n \r\n
    \r\n {{ item.title }} {{ item.count }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
{{ table.Title }}
\r\n
\r\n
\r\n {{ table.RelativeInvoiceTimeString }}\r\n -- : --\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { OrderService } from \"../../../order.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { Personnel } from \"../../../../parties/model/personnel.model\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\n\r\n@Component({\r\n selector: \"order-waiterfastaccess\",\r\n templateUrl: \"./waiterfastaccess.component.html\",\r\n styleUrls: [\"./waiterfastaccess.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class WaiterFastAccessComponent extends BaseListComponent {\r\n _noWaiters: boolean = undefined;\r\n\r\n constructor(public order: OrderService, public cd: ChangeDetectorRef, __id: FormContainerModel) {\r\n super();\r\n this.currentTabId = __id.metadata.id;\r\n this.order.cd_FastAccessWaiter = cd;\r\n this.getWaiters();\r\n }\r\n ngOnInit() {}\r\n //دریافت گارسون ها\r\n getWaiters() {\r\n if (this.order?.waiters?.length > 0) {\r\n this.order.detectChanges();\r\n return;\r\n }\r\n this.httpCommonService\r\n .getList(\"Personnel/GetWaiterList\")\r\n .pipe(take(1))\r\n .subscribe((data: Personnel[]) => {\r\n if (data.length > 0) {\r\n this.order.waiters = data;\r\n this.order.detectChanges();\r\n }\r\n });\r\n }\r\n //پر کردن نام گارسون در فاکتور جاری\r\n SetInvoiceWaiter(personnel: Personnel) {\r\n if (this.order.invoice.WaiterId !== personnel.Id) {\r\n this.order.invoice.WaiterId = personnel.Id;\r\n this.order.invoice.WaiterName = personnel.DisplayName;\r\n this.order.invoiceChanged = true;\r\n this.order.itemChanged = true;\r\n }\r\n this.order._opened = false;\r\n this.order.checkInvoiceState(this.order.invoice.CommandCode);\r\n this.order.detectChanges();\r\n }\r\n}\r\n","
\r\n
\r\n \r\n {{'ClientApp.FrontOffice.Order.OrderPage.Fastaccess.WaiterFastacces.TitleHeader'| translate }}\r\n
\r\n\r\n
\r\n
\r\n {{'ClientApp.FrontOffice.Order.OrderPage.Fastaccess.WaiterFastacces.GarsonMessage'| translate }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n {{personnel.DisplayName}}\r\n
\r\n
\r\n
\r\n","import { Component, Input, ChangeDetectorRef } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { OrderService } from \"../../order.service\";\r\nimport { ActivePageEnum } from \"../../model/activepage.enum\";\r\nimport { CustomerOrderService } from \"../../customerorder/customerorder.service\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { SaleMethodNature } from \"src/app/frontoffice/sales/model/sale-method-branch.model\";\r\n@Component({\r\n selector: \"order-footer\",\r\n templateUrl: \"./orderfooter.component.html\",\r\n styleUrls: [\"./orderfooter.component.scss\"],\r\n})\r\nexport class OrderFooterComponent extends BaseListComponent {\r\n @Input() currentActivePage: ActivePageEnum;\r\n @Input() customerOrder: CustomerOrderService;\r\n activePageEnum: typeof ActivePageEnum = ActivePageEnum;\r\n constructor(public order: OrderService, public cd: ChangeDetectorRef, public common: CommonService) {\r\n super();\r\n this.NoLog = true;\r\n this.order.cd_Footer = this.cd;\r\n }\r\n\r\n showFastAccess($event) {\r\n this.order.hideFastAccess = !this.order.hideFastAccess;\r\n }\r\n setDestinationPage(): void {\r\n switch (this.order.currentSaleMethodNature) {\r\n case SaleMethodNature.FastFood:\r\n this.order.shouldActivateSalonPage = false;\r\n this.order.shouldActivateInvoicesPage = false;\r\n break;\r\n case SaleMethodNature.Delivery:\r\n this.order.shouldActivateSalonPage = false;\r\n this.order.shouldActivateInvoicesPage = false;\r\n break;\r\n case SaleMethodNature.Restaurant:\r\n this.order.shouldActivateSalonPage = true;\r\n this.order.shouldActivateInvoicesPage = false;\r\n break;\r\n }\r\n }\r\n}\r\n","
\r\n
    \r\n
  • \r\n \r\n
  • \r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Footer.Table\" | translate }}\r\n \r\n
  • \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Footer.Customer\" | translate }}\r\n
  • \r\n
  • \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Footer.Order\" | translate }}\r\n
  • \r\n
  • \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Footer.Basket\" | translate }}\r\n
  • \r\n
  • \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Footer.Invoices\" | translate }}\r\n
  • \r\n
  • \r\n \r\n
  • \r\n
\r\n
\r\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef, EventEmitter, Output } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { OrderService } from \"../../order.service\";\r\nimport { ActivePageEnum } from \"../../model/activepage.enum\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { Subscription, timer } from \"rxjs\";\r\nimport { map, take } from \"rxjs/operators\";\r\nimport { InvoicePrintService } from \"../../providers/invoiceprint.service\";\r\nimport { GroupByPipe } from \"projects/sepidz-web-framework/src/lib/pipes/group-by.pipe\";\r\nimport { SaleMethodNature } from \"src/app/frontoffice/sales/model/sale-method-branch.model\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\n\r\n@Component({\r\n selector: \"order-header\",\r\n templateUrl: \"./orderheader.component.html\",\r\n styleUrls: [\"./orderheader.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderHeaderComponent extends BaseListComponent {\r\n @Output() onBtnClicked = new EventEmitter();\r\n activePageEnum: typeof ActivePageEnum = ActivePageEnum;\r\n rowState: typeof RowState = RowState;\r\n timerSubscription: Subscription;\r\n constructor(\r\n public order: OrderService,\r\n private cd: ChangeDetectorRef,\r\n private printService: InvoicePrintService,\r\n private storage: LocalStoreManager\r\n ) {\r\n super();\r\n this.NoLog = true;\r\n this.order.cd_Header = cd;\r\n }\r\n async ngOnInit() {\r\n this.timerSubscription = timer(0, 60000)\r\n .pipe(\r\n map(async () => {\r\n await this.PrinterQueue(); // load data contains the http request\r\n })\r\n )\r\n .subscribe();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.timerSubscription.unsubscribe();\r\n }\r\n\r\n async PrinterQueue() {\r\n const computerName: string = this.storage.getData(ClearableCache.ComputerName);\r\n const branches = this.order.Branches.filter((f) => f.IsActive);\r\n if (branches?.length > 0 && this.order.isMultiBranch) {\r\n this.order.printerQueue = [];\r\n branches.forEach((branch) => {\r\n const printers: any[] = [];\r\n if (branch?.HasLocalService) {\r\n const url = \"http://\" + branch.LocalServiceIp + \"/PrinterQueue\";\r\n this.printService?.PrintPolicy?.forEach((element) => {\r\n if (element) {\r\n element?.Printers?.forEach((ele) => {\r\n printers.push(ele.Name);\r\n });\r\n }\r\n });\r\n\r\n this.httpCommonService\r\n .postCustom(url, printers)\r\n .pipe(take(1))\r\n .subscribe(async (data: any[]) => {\r\n data?.forEach((ele) => {\r\n ele.BranchTitle = branch?.Title;\r\n this.order.printerQueue.push(ele);\r\n });\r\n this.cd.markForCheck();\r\n });\r\n }\r\n });\r\n } else {\r\n if (this.order.currentBranch?.HasLocalService) {\r\n const url = \"http://\" + this.order.currentBranch.LocalServiceIp + \"/PrinterQueue\";\r\n const printers: any[] = [];\r\n this.printService?.PrintPolicy?.forEach((element) => {\r\n if (element) {\r\n element?.Printers?.forEach((ele) => {\r\n printers.push(ele.Name);\r\n });\r\n }\r\n });\r\n await this.httpCommonService\r\n .postCustom(url, printers)\r\n .pipe(take(1))\r\n .subscribe(async (data: any[]) => {\r\n this.order.printerQueue = data;\r\n this.cd.markForCheck();\r\n });\r\n } else {\r\n await this.httpCommonService\r\n .getList(\"Invoice/PrinterQueue\")\r\n .pipe(take(1))\r\n .subscribe(async (data: any[]) => {\r\n this.order.printerQueue = data;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n if (this.printService.HasLocalPrint) {\r\n const group = new GroupByPipe();\r\n const newList = group.transform(this.printService.PrintPolicy, [\"LocalServiceIp\"]);\r\n newList?.forEach((element) => {\r\n if (element?.key && element?.key !== \"undefined\" && element?.value) {\r\n const url = \"http://\" + element.key + \"/PrinterQueue\";\r\n const printersList: any[] = [];\r\n const printers: any[] = [];\r\n element?.value?.forEach((ele) => {\r\n if (ele.HasLocalSetting && ele.LocalServiceIp && ele.ComputerName) {\r\n if (ele.ComputerName?.replace(\".local\", \"\") === computerName?.replace(\".local\", \"\")) printersList.push(ele.Printers);\r\n } else {\r\n printersList.push(ele.Printers);\r\n }\r\n });\r\n if(printersList.length > 0)\r\n {\r\n printersList?.forEach((x) => {\r\n if (!printers.some((x) => x === x[0].Name)) printers.push(x[0].Name);\r\n }); \r\n }\r\n if (printers && printers.length > 0) {\r\n this.httpCommonService\r\n .postCustom(url, printers)\r\n .pipe(take(1))\r\n .subscribe(\r\n async (data: any) => {\r\n this.order.printerQueue = data;\r\n this.cd.markForCheck();\r\n },\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n setDestinationPage(): void {\r\n switch (this.order.currentSaleMethodNature) {\r\n case SaleMethodNature.FastFood:\r\n this.order.shouldActivateSalonPage = false;\r\n this.order.shouldActivateInvoicesPage = false;\r\n break;\r\n case SaleMethodNature.Delivery:\r\n this.order.shouldActivateSalonPage = false;\r\n this.order.shouldActivateInvoicesPage = false;\r\n break;\r\n case SaleMethodNature.Restaurant:\r\n this.order.shouldActivateSalonPage = true;\r\n this.order.shouldActivateInvoicesPage = false;\r\n break;\r\n }\r\n }\r\n\r\n onInvoicesListClick(): void {\r\n this.onBtnClicked.emit(ActivePageEnum.Invoices);\r\n this.order.shouldActivateSalonPage = false;\r\n this.order.shouldActivateInvoicesPage = true;\r\n }\r\n\r\n onOrderClick(): void {\r\n this.order.shouldActivateSalonPage = false;\r\n this.order.shouldActivateInvoicesPage = false;\r\n }\r\n\r\n onSalonClick() {\r\n this.onBtnClicked.emit(ActivePageEnum.Salon);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Header.Order\" | translate }}\r\n \r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Header.Table\" | translate }}\r\n \r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Header.Customer\" | translate }}\r\n \r\n
0\">\r\n
{{ order.printerQueue?.length }}
\r\n \r\n
0\" class=\"menuitem\">\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Header.Printer\" | translate }} {{ print.PrinterName }}\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Header.FromComputer\" | translate }} {{ print.ComputerName }}\r\n {{ print.BranchTitle }} \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Header.Number\" | translate }} {{ print.Queue }}\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Header.UnprintedInvoice\" | translate }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Header.OrdreOnline\" | translate }}\r\n \r\n {{ order.DelinoInvoiceCount }}\r\n
\r\n
\r\n ترازو\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Header.FactorCode\" | translate }}\r\n :\r\n {{ this.order.invoice.Code }}\r\n ,\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Header.FactorDate\" | translate }}-\r\n {{ this.order.invoice.ShamsiCreatedDate }}\r\n
\r\n\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Header.OldFactor\" | translate }}\r\n :\r\n {{ this.order.invoice.LastInvoiceCode }}\r\n ,\r\n {{ this.order.invoice.LastInvoiceAmount | number }}\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Header.UnitPrice\" | translate }}\r\n
\r\n \r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Header.Factors\" | translate }}\r\n \r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Header.ReserveOnline\" | translate }}\r\n \r\n
\r\n
\r\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\nimport { UntypedFormControl, UntypedFormGroup } from '@angular/forms';\r\nimport { BaseFormComponent } from 'projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component';\r\nimport { SelectorService } from 'projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service';\r\nimport { Lookup } from 'projects/sepidz-web-framework/src/lib/models';\r\nimport { HttpCommonService } from 'projects/sepidz-web-framework/src/lib/services';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { OrderService } from 'src/app/frontoffice/order/order.service';\r\nimport { PrintTemplate } from 'src/app/frontoffice/prints/model/print-template.model';\r\n\r\n@Component({\r\n selector: 'app-customer-print-template-form',\r\n templateUrl: './customer-print-template-form.component.html',\r\n styleUrls: ['./customer-print-template-form.component.scss']\r\n})\r\nexport class CustomerPrintTemplateFormComponent extends BaseFormComponent {\r\n otherCustomerPrintTemplates: Lookup[] = [];\r\n order: OrderService;\r\n deactivateSave: boolean = false;\r\n constructor(protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n public httpCommonService: HttpCommonService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.fillData();\r\n this.fillOtherCustomerPrintTemplates();\r\n }\r\n submitButtonDisabled(): boolean {\r\n if (!this.formGroup.controls['otherPrintTempplateId'].value) {\r\n this.isSaved = false;\r\n return true;\r\n }\r\n else {\r\n this.isSaved = true;\r\n return false;\r\n }\r\n }\r\n valueChanges() {\r\n this.submitButtonDisabled();\r\n }\r\n fillOtherCustomerPrintTemplates() {\r\n this.httpCommonService.getItem(\"PrintTemplate/ReadValidCustomerPrintTemplates\", this.order.saleMethodBranch.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: any[]) => {\r\n this.otherCustomerPrintTemplates = data;\r\n });\r\n }\r\n fillData() {\r\n const newGroup: any = {};\r\n newGroup['otherPrintTempplateId'] = new UntypedFormControl(undefined);\r\n this.formGroup = new UntypedFormGroup(newGroup);\r\n }\r\n async save() {\r\n if (this.submitButtonDisabled())\r\n return;\r\n this.result = this.formGroup.controls['otherPrintTempplateId'].value;\r\n this.close();\r\n }\r\n\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, QueryList, ViewChildren } from \"@angular/core\";\r\nimport { InvoiceService } from \"../invoice.service\";\r\nimport { AccountService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Subject } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"order-invoice\",\r\n templateUrl: \"./invoice.component.html\",\r\n styleUrls: [\"./invoice.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class OrderInvoiceComponent implements AfterViewInit, OnDestroy {\r\n @ViewChildren(`factorss`) things: QueryList;\r\n destroy$ = new Subject();\r\n\r\n constructor(\r\n private cd: ChangeDetectorRef,\r\n public invoiceservice: InvoiceService,\r\n public accountService: AccountService,\r\n private translate: TranslateService\r\n ) {\r\n this.invoiceservice.order.cd_Invoice = this.cd;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.things.changes.pipe(takeUntil(this.destroy$)).subscribe((t) => {\r\n this.scrollToItem();\r\n });\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n }\r\n\r\n scrollToItem() {\r\n const order = this.invoiceservice.order;\r\n if (!order.selectedInvoiceItem || order.selectedInvoiceItem?.Quantity > 1) return;\r\n var el = document.getElementById(`factor${order.invoice.SaleMethodBranchId}`);\r\n let item = document.getElementById(order.selectedInvoiceItem.Index.toString());\r\n this.scrollParentToChild(el, item);\r\n }\r\n scrollParentToChild(parent, child) {\r\n // Where is the parent on page\r\n var parentRect = parent?.getBoundingClientRect();\r\n // What can you see?\r\n var parentViewableArea = {\r\n height: parent?.clientHeight,\r\n width: parent?.clientWidth,\r\n };\r\n\r\n // Where is the child\r\n var childRect = child?.getBoundingClientRect();\r\n // Is the child viewable?\r\n var isViewable = childRect?.top >= parentRect?.top && childRect?.bottom <= parentRect?.top + parentViewableArea?.height;\r\n\r\n // if you can't see the child try to scroll parent\r\n if (!isViewable) {\r\n // Should we scroll using top or bottom? Find the smaller ABS adjustment\r\n const scrollTop = childRect?.top - parentRect?.top;\r\n const scrollBot = childRect?.bottom - parentRect?.bottom;\r\n if (parent && Math.abs(scrollTop) < Math.abs(scrollBot)) {\r\n // we're near the top of the list\r\n parent.scrollTop += scrollTop;\r\n } else if (parent) {\r\n // we're near the bottom of the list\r\n parent.scrollTop += scrollBot;\r\n }\r\n }\r\n }\r\n\r\n afterChangeBranchFromView(id: number) {\r\n const order = this.invoiceservice.order;\r\n const isActiveCategory = order.customerInActiveCategory(order.invoice?.AddressId, order.invoice?.Customer, id);\r\n if (isActiveCategory) {\r\n order.invoice.BranchId = id;\r\n order.sts?.showDialog(\r\n `${this.translate.instant(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.AllowedPlaceOrderSelectedCustomerGroupBranch\")}`,\r\n this.translate.instant(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.ErrorMessage\")\r\n );\r\n return;\r\n }\r\n // find minutes to delivery from related zone branch\r\n if (order.invoice?.Customer) {\r\n order.invoice.Customer.MinutesToDelivery = order.invoice.CustomerAddress?.Zone?.Branches?.find((x) => x.BranchId === id)?.MinutesToDelivery;\r\n order.defaultMinutesToDelivery = order.invoice.Customer.MinutesToDelivery;\r\n }\r\n order.ChangeBranch(id);\r\n order.clearAllAdditivesAndDescriptions();\r\n order.checkActivationOfInvoiceItem();\r\n order.setShippingCost(id);\r\n this.invoiceservice.checkDescription();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.CustomerInformation\" | translate }}\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.CustomerName\" | translate }}: \r\n {{ invoiceservice.order.invoice.CustomerDisplayName }}\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.CustomerCode\" | translate }} : \r\n {{ invoiceservice.order.invoice.Customer?.Number }}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.HostName\" | translate }}:\r\n \r\n {{ invoiceservice.order.invoice.WaiterName }}\r\n \r\n \r\n \r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.SalonName\" | translate }}:\r\n {{ invoiceservice.order.invoice.TableTitle }}\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.Address\" | translate }}:\r\n
\r\n {{ (invoiceservice.order.invoice.CustomerAddress?.Zone?.Title || \"\") + \" - \" + invoiceservice.order.invoice.CustomerAddress.Address }}\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.Phone\" | translate }}:\r\n
\r\n {{ invoiceservice.order.invoice.PhoneNumber }}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.DebtRate\" | translate }} : \r\n {{ invoiceservice.order.invoice.Customer?.DebitRate | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.DateOfLastPurchase\" | translate }}: \r\n {{ invoiceservice.order.invoice.Customer?.LastBuyDate }}\r\n
\r\n\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.MostPurchases\" | translate }} : \r\n {{ invoiceservice.order.invoice.Customer?.MaximumBuy | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.ArrivingTime\" | translate }} : \r\n {{ invoiceservice.order.invoice.Customer?.MinutesToDelivery }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.Description\" | translate }}: \r\n {{ invoiceservice.order.invoice.Customer?.Description }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.Title\" | translate }}\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.Count\" | translate }}\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.Price\" | translate }}\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.SumPrice\" | translate }}\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {{ item.ItemTitle }}\r\n
\r\n \r\n \r\n \r\n
\r\n {{ item.UnitPrice + item.UnitAdditive | number }}\r\n {{ item.ItemTotal | number }}\r\n \r\n
\r\n
\r\n
\r\n {{ item.Description }}\r\n
\r\n \r\n \r\n {{ ((item.UnitPrice + item.UnitAdditive) * item.RowDiscount) / 100 | number }}\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Desktop.UnitPrice\" | translate }}\r\n
\r\n 0\" class=\"icon-close-o\" (click)=\"invoiceservice.clearDescription(item)\">\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { UntypedFormControl } from \"@angular/forms\";\r\nimport { BaseService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-service.component\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { FastAccessEnum } from \"../../model/fastaccessenum\";\r\nimport { ItemStateEnum, InvoiceItem, InvoiceStatus, DiscountTypeEnum } from \"../../model/invoice.model\";\r\nimport { OrderService } from \"../../order.service\";\r\nimport { OrderItem } from \"../../model/orderItemcategory.model\";\r\nimport { ActionStateModel } from \"../../model/actionstate.model\";\r\nimport { CustomerFormComponent } from \"src/app/frontoffice/parties/customer/customer-form.component\";\r\nimport { CustomerOrderService } from \"../../customerorder/customerorder.service\";\r\nimport { InvDailyBalanceInhibitorValueEnum } from \"src/app/gnr/branch/branch.enum\";\r\nimport { threadId } from \"worker_threads\";\r\n@Injectable({ providedIn: \"root\" })\r\nexport class InvoiceService extends BaseService {\r\n itemStateEnum: typeof ItemStateEnum = ItemStateEnum;\r\n\r\n public fastAccessEnum: typeof FastAccessEnum = FastAccessEnum;\r\n\r\n constructor(public order: OrderService, public customerOrder: CustomerOrderService) {\r\n super();\r\n this.fillData();\r\n }\r\n\r\n fillData() {}\r\n\r\n ngOnInit() {}\r\n\r\n SalePriceChange(event: any) {\r\n this.order.SalePriceChange(event.Id);\r\n this.order.invoiceChanged = true;\r\n }\r\n\r\n clearInvoice() {\r\n this.order.invoice.Items = null;\r\n this.order.invoice.Items = [];\r\n this.order.selectedInvoiceItem = null;\r\n this.order.invoice.PayableTotal = 0;\r\n this.order.invoice.TotalDiscount = 0;\r\n if (this.accountService.authService.currentFiscalYear) this.order.invoice.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) this.order.invoice.FiscalYearId = x.Id;\r\n });\r\n if (this.order.selectedOrderItem) this.order.selectedOrderItem.ItemDescription = [];\r\n this.order.invoice.Discount = 0;\r\n this.order.invoice.TotalService = 0;\r\n this.order.invoice.Total = 0;\r\n this.order.invoice.TotalWidthRowDiscount = 0;\r\n this.order.invoice.TotalTax = 0;\r\n this.order.invoice.TotalToll = 0;\r\n this.order.invoice.TotalNet = 0;\r\n this.order.invoice.TotalToll = 0;\r\n this.order.invoice.DiscountPrice = 0;\r\n this.order.invoice.ServiceTax = 0;\r\n this.order.invoice.RoundingAmount = 0;\r\n this.order.setValue(\"TotalService\", null);\r\n this.order.invoice.PackingPrice = 0;\r\n this.order.invoice.isPackingDisable = false;\r\n this.order.setValue(\"PackingPrice\", null);\r\n this.order.setValue(\"Debit\", null);\r\n this.order.setValue(\"Credit\", null);\r\n this.order.setValue(\"Discount\", this.order.invoice.DiscountPrice);\r\n this.setItemQuantity(undefined, ItemStateEnum.Clear);\r\n const findDefault = this.order.saleMethodBranch.ItemCategories.find((f) => f.IsDefault);\r\n if (findDefault) this.order.selectedItemCategory = this.order.itemCategoryList.find((f) => f.Id === findDefault.CategoryId);\r\n else this.order.selectedItemCategory = Object.assign({}, this.order.itemCategoryList[0]);\r\n\r\n this.order.actionState = new ActionStateModel();\r\n this.order.formGroup.markAllAsTouched();\r\n this.order.detectChanges();\r\n this.order.freeShippingCostDiscount = 0;\r\n this.order.focus(`Discount`);\r\n setTimeout(() => {\r\n this.order.focus(`Code${this.order.invoice.SaleMethodBranchId}`);\r\n }, 50);\r\n }\r\n changeQuantity(item: InvoiceItem, ItemState: ItemStateEnum) {\r\n let hasNoActionOnQuantity: Boolean = false;\r\n let qty: number = 0;\r\n if (item) {\r\n qty = this.order.formGroup.controls[`itemsQuantity${item.Index}${this.order.invoice.SaleMethodBranchId}`].value;\r\n if (qty !== item.Quantity && ItemState == ItemStateEnum.NoAction) {\r\n hasNoActionOnQuantity = true;\r\n if (qty > item.Quantity) ItemState = ItemStateEnum.Increase;\r\n else ItemState = ItemStateEnum.Decrease;\r\n }\r\n if (!this.order.isLight && (ItemState == ItemStateEnum.Decrease || ItemState == ItemStateEnum.Increase)) {\r\n const hasDeposit = this.order.currentInformation?.OrderServices && this.order.saleMethodBranch?.HasDeposit;\r\n const branchId = this.order.invoice.BranchId || this.order.logInBranch.Id;\r\n const goodsStockInfo = this.order.warehouseStockItems.find(\r\n (x) =>\r\n (x.PrevRemainAmount || x.EntryAmount) &&\r\n x.BranchId === branchId &&\r\n (x.ItemsInRelation.some((x) => x.Id === item.ItemId) || x.GoodsId === item.GoodsId)\r\n );\r\n\r\n const goodsFormulaQty =\r\n (goodsStockInfo?.ItemsInRelation?.some((x) => x.Id === item.ItemId)\r\n ? goodsStockInfo?.ItemsInRelation.find((x) => x.Id === item.ItemId).DecreaseAmount\r\n : goodsStockInfo?.DecreaseAmount) ?? 0;\r\n\r\n let quantity = 0;\r\n\r\n if (!!this.order.invoice.Id) {\r\n const oldQuantity = this.order.invoice.OriginalValue.Items.find((x) => x.Id == item.Id)?.Quantity || 0;\r\n quantity = (qty - oldQuantity + (ItemState == ItemStateEnum.Decrease ? -1 : +1)) * goodsFormulaQty;\r\n } else {\r\n quantity = (qty + (ItemState == ItemStateEnum.Decrease ? -1 : +1)) * goodsFormulaQty;\r\n }\r\n\r\n if (goodsStockInfo?.Amount < quantity && (!hasDeposit || this.order.invoice?.StatusCode === InvoiceStatus.Ordering)) {\r\n const notStock = { goodsTitle: goodsStockInfo.GoodsTitle, itemTitle: item.ItemTitle, neededAmount: goodsStockInfo?.Amount - quantity };\r\n const info =\r\n \"(\" +\r\n notStock.goodsTitle +\r\n \" - \" +\r\n notStock.itemTitle +\r\n \" - \" +\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Number\") +\r\n \" \" +\r\n notStock.neededAmount +\r\n \")\";\r\n this.sts.showDialog(\r\n `\r\n ${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.FollowingProductUnavailable\")}:
\r\n \r\n ${info}\r\n \r\n `,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.OutOfStock\")\r\n );\r\n const branch = this.order.Branches?.find((x) => x.Id === this.order.invoice.BranchId) || this.order.logInBranch;\r\n if (branch?.InvDailyBalanceInhibitorId === InvDailyBalanceInhibitorValueEnum.Inhibitor) return false;\r\n if (hasNoActionOnQuantity) {\r\n this.order.formGroup.controls[`itemsQuantity${item.Index}${this.order.invoice.SaleMethodBranchId}`].setValue(item.Quantity);\r\n }\r\n }\r\n }\r\n }\r\n let find_item = -1;\r\n if (item) find_item = this.order.invoice.Items.findIndex((f) => f.Id === item.Id && f.Index === item.Index);\r\n\r\n switch (ItemState) {\r\n case ItemStateEnum.Increase:\r\n if (\r\n !this.order.HasAccess(\"PositiveEditOrderingStatus\") &&\r\n !this.order.HasAccess(\"PositiveEditClearingStatus\") &&\r\n !this.order.HasAccess(\"PositiveEditClearedStatus\") &&\r\n !this.order.HasAccess(\"PositiveEditAssignedStatus\")\r\n ) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.AccessToThisArea\")\r\n );\r\n } else if (!(find_item < 0)) {\r\n if (!hasNoActionOnQuantity) this.order.invoice.Items[find_item].Quantity += 1;\r\n else {\r\n this.order.invoice.Items[find_item].Quantity = qty;\r\n }\r\n this.setItemQuantity(this.order.invoice.Items[find_item], ItemStateEnum.Increase);\r\n }\r\n break;\r\n case ItemStateEnum.Decrease:\r\n if (\r\n this.order.HasAccess(\"NegativeEditOrderingStatus\") ||\r\n this.order.HasAccess(\"NegativeEditClearingStatus\") ||\r\n this.order.HasAccess(\"NegativeEditClearedStatus\") ||\r\n this.order.HasAccess(\"NegativeEditAssignedStatus\") ||\r\n item.State == RowState.New\r\n ) {\r\n if (!(find_item < 0)) {\r\n if (!hasNoActionOnQuantity) this.order.invoice.Items[find_item].Quantity -= 1;\r\n else {\r\n this.order.invoice.Items[find_item].Quantity = qty;\r\n }\r\n this.setItemQuantity(this.order.invoice.Items[find_item], ItemStateEnum.Decrease);\r\n if (this.order.invoice.Items[find_item].Quantity === 0) {\r\n this.setItemQuantity(this.order.invoice.Items[find_item]);\r\n this.order.invoice.Items.splice(find_item, 1);\r\n this.changeSelectItem();\r\n this.setItemQuantity(this.order.invoice.Items[find_item], ItemStateEnum.Decrease);\r\n }\r\n }\r\n } else {\r\n if (\r\n this.order.invoice.OriginalValue.Items.find(\r\n (f) => f.ItemId === this.order.invoice.Items[find_item].ItemId && f.Index === this.order.invoice.Items[find_item].Index\r\n )?.Quantity < this.order.invoice.Items[find_item].Quantity\r\n )\r\n this.order.invoice.Items[find_item].Quantity -= 1;\r\n else {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.AccessToThisArea\")\r\n );\r\n }\r\n }\r\n break;\r\n case ItemStateEnum.Remove:\r\n if (\r\n !this.order.HasAccess(\"NegativeEditOrderingStatus\") &&\r\n !this.order.HasAccess(\"NegativeEditClearingStatus\") &&\r\n !this.order.HasAccess(\"NegativeEditClearedStatus\") &&\r\n !this.order.HasAccess(\"NegativeEditAssignedStatus\") &&\r\n item.State !== RowState.New\r\n ) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.AccessToThisArea\")\r\n );\r\n } else if (!(find_item < 0)) {\r\n this.setItemQuantity(this.order.invoice.Items[find_item], ItemStateEnum.Remove);\r\n this.order.itemQuantityChanged = true;\r\n this.order.invoice.Items.splice(find_item, 1);\r\n this.changeSelectItem();\r\n if (this.order.invoice.Items.length === 0) this.order.freeShippingCostDiscount = 0;\r\n }\r\n if (item.IsClubItem && this.order.invoice.ClubViewModel?.UsedProductDiscount?.length > 0) {\r\n const find = this.order.invoice.ClubViewModel?.UsedProductDiscount.findIndex((f) => f.ProductId === item.ItemId);\r\n this.order.invoice.ClubViewModel?.UsedProductDiscount.splice(find, 1);\r\n }\r\n\r\n break;\r\n case ItemStateEnum.Clear:\r\n if (\r\n !this.order.HasAccess(\"NegativeEditOrderingStatus\") &&\r\n !this.order.HasAccess(\"NegativeEditClearingStatus\") &&\r\n !this.order.HasAccess(\"NegativeEditClearedStatus\") &&\r\n !this.order.HasAccess(\"NegativeEditAssignedStatus\")\r\n ) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.AccessToThisArea\")\r\n );\r\n } else {\r\n let message = `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.DeleteBasket\")}`;\r\n this.sts.showDialog(message, this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.DeleteCart\"), DialogType.confirm, () =>\r\n this.clearInvoice()\r\n );\r\n }\r\n if (item?.IsClubItem && this.order.invoice.ClubViewModel?.UsedProductDiscount?.length > 0) {\r\n const find = this.order.invoice.ClubViewModel?.UsedProductDiscount.findIndex((f) => f.ProductId === item.ItemId);\r\n this.order.invoice.ClubViewModel?.UsedProductDiscount.splice(find, 1);\r\n }\r\n break;\r\n }\r\n if (this.order.invoice.OriginalValue) {\r\n let target = this.order.invoice.OriginalValue.Items.find((c) => c.Id === item.Id);\r\n if (target) {\r\n if (target.Quantity != item.Quantity) this.order.itemQuantityChanged = true;\r\n else {\r\n if (ItemState !== ItemStateEnum.Remove) this.order.itemQuantityChanged = false;\r\n }\r\n }\r\n } else this.order.itemQuantityChanged = true;\r\n\r\n this.order.calculate();\r\n }\r\n\r\n addFreeCustomer() {\r\n this.dialogService\r\n .open(\r\n CustomerFormComponent,\r\n {\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.SubscriberWithoutNewSubscription\"),\r\n currentrow: { hasAddFastCustomer: true },\r\n apiName: \"Customer\",\r\n },\r\n { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe(async (model) => {\r\n if (model) this.customerOrder.GetCustomerDetails(model.Id, true);\r\n });\r\n }\r\n changeSelectItem() {\r\n const len = this.order.invoice.Items.length;\r\n if (len > 0) {\r\n this.setSelectedItem(this.order.invoice.Items[len - 1], len - 1);\r\n } else {\r\n this.order.invoice.TotalService = 0;\r\n this.order.selectedInvoiceItem = null;\r\n this.order.selectedOrderItemIndex = null;\r\n this.order.selectedOrderItem = null;\r\n }\r\n }\r\n /// Whene Selected Item in Invoice\r\n setSelectedItem(selectedItem: InvoiceItem, index: number) {\r\n this.order.selectedInvoiceItem = selectedItem;\r\n this.order.selectedOrderItemIndex = index;\r\n this.checkDescription();\r\n }\r\n /// reset description\r\n checkDescription() {\r\n var find_item = this.order?.itemCategoryList[0]?.Items?.find((f) => f.Id === this.order?.selectedInvoiceItem?.ItemId);\r\n if (!find_item) {\r\n const findItemHasChild = this.order.itemCategoryList[0].Items.filter((f) => f.ItemChild && f.ItemChild.length > 0);\r\n if (findItemHasChild) {\r\n findItemHasChild.forEach((ele) => {\r\n if (!find_item) find_item = ele.ItemChild.find((f) => f.Id === this.order.selectedInvoiceItem.ItemId);\r\n });\r\n }\r\n }\r\n\r\n find_item?.ItemDescription?.forEach((f) => {\r\n if (this.order.selectedInvoiceItem.Descriptions.some((s) => s.DescriptionId === f.Id)) f.IsSelected = true;\r\n else f.IsSelected = false;\r\n });\r\n find_item?.Additive?.forEach((f) => {\r\n if (this.order.selectedInvoiceItem.Additives.some((s) => s.AdditiveId === f.Id)) f.IsSelected = true;\r\n else f.IsSelected = false;\r\n });\r\n if (find_item) {\r\n const findItem: OrderItem = JSON.parse(JSON.stringify(find_item));\r\n findItem.ItemDescription = findItem.ItemDescription?.filter((x) => x.BranchId === this.order.invoice.BranchId) || [];\r\n findItem.Additive = findItem.Additive?.filter((x) => x.Branches.some((x) => x === this.order.invoice.BranchId)) || [];\r\n this.order.selectedOrderItem = findItem;\r\n }\r\n this.order.SalePriceChange(this.order.invoice.SalePriceTypeId);\r\n }\r\n changeNumberOfGuests(state: number) {\r\n this.order.invoiceChanged = true;\r\n this.order.itemChanged = true;\r\n if (this.order.formGroup.controls[\"NumberOfGuests\"].value)\r\n this.order.invoice.NumberOfGuests = this.order.formGroup.controls[\"NumberOfGuests\"].value;\r\n if (state === 1) this.order.invoice.NumberOfGuests += 1;\r\n else {\r\n if (this.order.invoice.NumberOfGuests !== 0) this.order.invoice.NumberOfGuests -= 1;\r\n }\r\n this.order.formGroup.controls[\"NumberOfGuests\"].setValue(this.order.invoice.NumberOfGuests);\r\n this.order.checkInvoiceState(this.order.invoice.CommandCode);\r\n this.order.detectChanges();\r\n }\r\n\r\n OnChangedDescription(event: any, controlName: string) {\r\n const inputValue = event.target.value;\r\n this.order.invoice[controlName] = inputValue;\r\n this.order.invoiceChanged = true;\r\n this.order.checkInvoiceState(this.order.invoice.CommandCode);\r\n }\r\n\r\n //جهت نمایش صفحه گارسون ها در دسترسی سریع\r\n openFastAccess(value: FastAccessEnum, event?: Event) {\r\n event.stopPropagation();\r\n setTimeout(() => {\r\n this.order._opened = true;\r\n this.order.selectedFastAccess = value;\r\n this.order.detectChanges();\r\n }, 50);\r\n }\r\n //حذف گارسون\r\n DeleteWaiter() {\r\n this.order.invoice.WaiterId = null;\r\n this.order.invoice.WaiterName = null;\r\n this.order.invoiceChanged = true;\r\n }\r\n //حذف مشتری\r\n DeleteCustomer() {\r\n this.order.invoice.CustomerId = null;\r\n this.order.invoice.CustomerDisplayName = null;\r\n this.order.invoice.CustomerName = null;\r\n this.order.invoice.CustomerAddress = null;\r\n this.order.invoice.PhoneId = null;\r\n this.order.invoice.PhoneNumber = null;\r\n this.order.invoice.Customer = null;\r\n this.order.invoiceChanged = true;\r\n }\r\n setItemQuantity(invoiceItem: InvoiceItem, ItemState?: ItemStateEnum) {\r\n this.addRowDiscount();\r\n if (!this.order.common.isMobileMode && !this.order.common.isDigitalMenu) return;\r\n this.order.itemCategoryList.forEach((element) => {\r\n element.Items.forEach((item) => {\r\n if (item.Id === invoiceItem?.ItemId || ItemState === ItemStateEnum.Clear) {\r\n item.InvoiceQty = invoiceItem && (ItemState === ItemStateEnum.Increase || ItemState === ItemStateEnum.Decrease) ? invoiceItem.Quantity : 0;\r\n this.order.setValueQuantity();\r\n } else {\r\n if (item.ItemChild && item.ItemChild.length > 0) {\r\n //const find = item.ItemChild.find(f => f.Id === invoiceItem?.CategoryId);\r\n const findchild = item?.ItemChild?.find((f) => f.Id === invoiceItem?.ItemId && f.BranchId === invoiceItem?.BranchId);\r\n if (findchild) {\r\n item.InvoiceQty =\r\n invoiceItem && (ItemState === ItemStateEnum.Increase || ItemState === ItemStateEnum.Decrease) ? invoiceItem.Quantity : 0;\r\n if (this.order.itemHasParent) {\r\n this.order.itemHasParent.find((f) => f.Id === invoiceItem?.ItemId).InvoiceQty =\r\n invoiceItem && (ItemState === ItemStateEnum.Increase || ItemState === ItemStateEnum.Decrease) ? invoiceItem.Quantity : 0;\r\n } else {\r\n console.log(invoiceItem);\r\n }\r\n\r\n this.order.setValueQuantity();\r\n }\r\n }\r\n }\r\n });\r\n });\r\n this.order.detectChanges();\r\n }\r\n // Add RowDiscount\r\n addRowDiscount() {\r\n this.order.invoice.Items.forEach((f) => {\r\n if (!this.order.formGroup.controls[`RowDiscount${f.Index}${this.order.invoice.SaleMethodBranchId}`]) {\r\n this.order.formGroup.addControl(`RowDiscount${f.Index}${this.order.invoice.SaleMethodBranchId}`, new UntypedFormControl(f.RowDiscount));\r\n } else {\r\n this.order.formGroup.controls[`RowDiscount${f.Index}${this.order.invoice.SaleMethodBranchId}`].setValue(\r\n this.order.formGroup.controls[`RowDiscount${f.Index}${this.order.invoice.SaleMethodBranchId}`].value\r\n );\r\n }\r\n if (f.Id && f.Id !== 0) f.State = RowState.Modify;\r\n });\r\n\r\n this.order.detectChanges();\r\n }\r\n // حذف توضیح ها\r\n clearDescription(item: InvoiceItem) {\r\n item.Description = \"\";\r\n\r\n if (this.order.selectedInvoiceItem) {\r\n this.order.selectedInvoiceItem.Descriptions = [];\r\n this.order.selectedInvoiceItem.Additives = [];\r\n }\r\n\r\n this.order.invoice.Items.find((f) => f.Id === item.Id && f.Index === item.Index).Additives = [];\r\n this.order.invoice.Items.find((f) => f.Id === item.Id && f.Index === item.Index).Descriptions = [];\r\n this.order.invoice.Items.find((f) => f.Id === item.Id && f.Index === item.Index).Description = \"\";\r\n const findItemSelected = this.order.selectedItemCategory.Items.find((f) => f.Id === item.ItemId);\r\n findItemSelected?.Additive?.forEach((f) => {\r\n f.IsSelected = false;\r\n });\r\n findItemSelected?.ItemDescription?.forEach((f) => {\r\n f.IsSelected = false;\r\n });\r\n\r\n //}\r\n\r\n this.setSelectedItem(this.order.selectedInvoiceItem, this.order.selectedOrderItemIndex);\r\n this.order.itemChanged = true;\r\n this.order.calculate();\r\n }\r\n // تخفیفات ردیفی\r\n RowDiscountChange(value) {\r\n if (\r\n (this.order.invoice.Items.find((f) => f.Index === value).RowDiscount !==\r\n Number(this.order.formGroup.controls[`RowDiscount${value}${this.order.invoice.SaleMethodBranchId}`].value) &&\r\n this.order.invoice.Items.find((f) => f.Index === value).RowDiscount > 0) ||\r\n (this.order.formGroup.controls[`RowDiscount${value}${this.order.invoice.SaleMethodBranchId}`].value > 0 &&\r\n this.order.invoice.Items.find((f) => f.Index === value).RowDiscount !==\r\n Number(this.order.formGroup.controls[`RowDiscount${value}${this.order.invoice.SaleMethodBranchId}`].value))\r\n ) {\r\n if (this.order.invoice.Items.find((f) => f.Index === value).Id && this.order.invoice.Items.find((f) => f.Index === value).Id !== 0) {\r\n this.order.invoice.Items.find((f) => f.Index === value).State = RowState.Modify;\r\n }\r\n if (\r\n this.order.currentUser.PercentDiscount > 0 &&\r\n this.order.formGroup.controls[`RowDiscount${value}${this.order.invoice.SaleMethodBranchId}`].value > this.order.currentUser.PercentDiscount\r\n ) {\r\n this.order.setValue(`RowDiscount${value}${this.order.invoice.SaleMethodBranchId}`, this.order.currentUser.PercentDiscount);\r\n }\r\n\r\n this.order.invoiceChanged = true;\r\n\r\n this.order.calculate();\r\n }\r\n }\r\n ShowRowDiscount(item) {\r\n item.showPercent = !item.showPercent;\r\n this.order.detectChanges();\r\n if (item?.showPercent) this.order.focus(`RowDiscount${item.Index}${this.order.invoice.SaleMethodBranchId}`);\r\n if (!this.order.HasAccess(\"GiveDiscount\")) {\r\n item.showPercent = false;\r\n this.order.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.AccessToThisArea\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Attention\")\r\n );\r\n }\r\n }\r\n closeHeader() {\r\n this.order.showHeader = false;\r\n }\r\n clearRowDiscount() {\r\n this.order.setValue(`RowDiscount${this.order.invoice.SaleMethodBranchId}`, 0);\r\n this.order.invoiceChanged = true;\r\n this.order.calculate();\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup } from \"@angular/forms\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { ProtelModel } from \"projects/sepidz-web-framework/src/lib/models/Protel.model\";\r\nimport { LocalStoreManager, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { LocalSetting } from \"src/app/frontoffice/local-setting/local-setting-model\";\r\nimport { SaleMethodBranchPaymentMethod } from \"src/app/frontoffice/sales/model/sale-method-branch.model\";\r\nimport { DialogType } from \"../../../../../../../projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { RowState } from \"../../../../../../../projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { PaymentMethodType } from \"../../../../financial/model/payment-method.enum\";\r\nimport { FastAccessEnum } from \"../../../model/fastaccessenum\";\r\nimport { Invoice, InvoiceCommand, InvoiceStatus, PosPaymentResponse } from \"../../../model/invoice.model\";\r\nimport { PaymentEnum } from \"../../../model/payment.enum\";\r\nimport { PaymentMethodLookUp } from \"../../../model/payment.lookup\";\r\nimport { PaymentMethodEnum } from \"../../../model/paymentmethod.enum\";\r\nimport { ReceiptPaymentModel, ReceiptPaymentTypeEnum } from \"../../../model/receiptpayment.model\";\r\nimport { OrderService } from \"../../../order.service\";\r\nimport { InvoiceActionService } from \"../../../providers/invoiceaction.service\";\r\n\r\n@Component({\r\n selector: \"order-payment\",\r\n templateUrl: \"./payment.component.html\",\r\n styleUrls: [\"./payment.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PaymentComponent extends BaseFormComponent {\r\n order: OrderService;\r\n receiptPayments: ReceiptPaymentModel[] = [];\r\n PaymentMethod: PaymentMethodLookUp[];\r\n ReceiptPaymentType: Lookup[];\r\n hasDebitTransfer: boolean;\r\n hasCreditTransfer: boolean;\r\n hasTipTransfer: boolean;\r\n PaymentEnum: typeof PaymentEnum = PaymentEnum;\r\n rowState: typeof RowState = RowState;\r\n deactivateSave: boolean;\r\n deactivateClose: boolean = false;\r\n isClearWithoutPrint: boolean = false;\r\n deactiveForm: boolean;\r\n isFirst: boolean;\r\n isFinished: number = 0;\r\n shouldUpdateInvoice: boolean = false;\r\n invoiceAction: InvoiceActionService;\r\n defaultPayment: SaleMethodBranchPaymentMethod;\r\n isDeposit = false;\r\n action: InvoiceCommand;\r\n nonBalanceChangedManualy: boolean;\r\n protel: ProtelModel;\r\n closeDialog: boolean = false;\r\n paymentMethodId: number;\r\n originalInvoice: any;\r\n savePaymentClicked: boolean = false;\r\n lSetting: LocalSetting[] = [];\r\n hasAutorecord: boolean;\r\n constructor(\r\n private lookupservice: LookupService,\r\n private splashFormService: SplashFormService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n private storage: LocalStoreManager\r\n ) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.invoiceAction.ngOnInit();\r\n this.apiName = \"ReceiptPayment\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.Payment\");\r\n this.FillData();\r\n if (this.order.invoice.HasPaymentLink && this.order.saleMethodBranch?.HasDeposit)\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.PayInvoiceByLink\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.Attention\"),\r\n DialogType.confirm,\r\n () => {},\r\n () => {\r\n this.order.selectedFastAccess = FastAccessEnum.PaymentLink;\r\n this.order._opened = true;\r\n this.close();\r\n }\r\n );\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.invoiceAction.saveEndSubscription) {\r\n this.invoiceAction.saveEndSubscription.unsubscribe();\r\n this.invoiceAction.saveEndSubscription = null;\r\n }\r\n }\r\n\r\n FillData() {\r\n this.result = false;\r\n this.defaultPayment = this.order.saleMethodBranch.PaymentMethods.find((s) => s.IsDefault);\r\n if (this.order.invoice.StatusCode === InvoiceStatus.Completed) this.deactiveForm = true;\r\n this.deactivateSave = true;\r\n const newGroup: any = {};\r\n newGroup[\"remaining\"] = new UntypedFormControl(undefined);\r\n newGroup[\"tip\"] = new UntypedFormControl(undefined);\r\n newGroup[\"debit\"] = new UntypedFormControl(undefined);\r\n newGroup[\"credit\"] = new UntypedFormControl(undefined);\r\n this.formGroup = new UntypedFormGroup(newGroup);\r\n this.formGroup.controls[`remaining`].disable();\r\n this.formGroup.controls[`tip`].setValue(this.order.invoice.Tip);\r\n this.formGroup.controls[`debit`].setValue(this.order.invoice.Debit);\r\n this.formGroup.controls[`credit`].setValue(this.order.invoice.Credit);\r\n\r\n if (this.order.invoice.Customer?.HasCredit) {\r\n this.hasDebitTransfer = true;\r\n }\r\n this.checkValidation();\r\n this.isSaved = false;\r\n this.receiptPayments = null;\r\n this.receiptPayments = JSON.parse(JSON.stringify(this.order.invoice.ReceiptPayments));\r\n this.getPaymentMethod();\r\n this.setValue(\"NonBalance\", false);\r\n }\r\n //اضافه کردن به فرم گروپ\r\n addGroup() {\r\n if ((this.order.invoice.Customer && this.order.invoice.Customer && this.order.invoice.Customer.AutomaticDebtor) || this.order.invoice.Debit > 0) {\r\n if (this.order.invoice.State === RowState.Modify && this.order.invoice.ReceiptPayments?.length <= 0)\r\n this.order.invoice.Debit = this.order.invoice.PayableTotal;\r\n else this.order.invoice.Debit = this.order.invoice.Debit > 0 ? this.order.invoice.Debit : this.order.invoice.PayableTotal;\r\n this.formGroup.controls[`debit`].setValue(this.order.invoice.Debit);\r\n }\r\n if (this.order.invoice.Credit > 0) this.formGroup.controls[`credit`].setValue(this.order.invoice.Credit);\r\n const defaultReceiptPaymentTypeId = this.ReceiptPaymentType.find((f) => f.Code === 2).Id;\r\n if (!this.receiptPayments || (this.receiptPayments.length <= 0 && this.order.invoice.PayableTotal > 0)) {\r\n const index = Math.floor(Math.random() * 10000000);\r\n const ReceiptModel = new ReceiptPaymentModel();\r\n ReceiptModel.State = RowState.New;\r\n ReceiptModel.Index = index;\r\n ReceiptModel.ReceiptPaymentType = JSON.parse(JSON.stringify(this.ReceiptPaymentType));\r\n ReceiptModel.PaymentMethod = JSON.parse(JSON.stringify(this.PaymentMethod));\r\n this.receiptPayments.push(ReceiptModel);\r\n const PaymentMethodId = this.defaultPayment\r\n ? this.PaymentMethod.find((f) => f.Id === this.defaultPayment.PaymentMethodId).Id\r\n : this.PaymentMethod[0].Id;\r\n this.setValue(`PaymentMethodId${index}`, PaymentMethodId, true);\r\n this.setValue(`ReceiptPaymentTypeId${index}`, defaultReceiptPaymentTypeId, true);\r\n this.receiptPayments[0].Amount =\r\n this.order.invoice?.Customer?.AutomaticDebtor || this.order.invoice.Debit > 0\r\n ? this.order.invoice.PayableTotal - this.order.invoice.Debit\r\n : this.order.invoice.PayableTotal;\r\n this.receiptPayments[0].Amount =\r\n this.order.invoice.Credit > 0 ? this.order.invoice.PayableTotal - this.order.invoice.Credit : this.receiptPayments[0].Amount;\r\n this.setValue(`receivedmoney${index}`, this.receiptPayments[0].Amount, true);\r\n this.receiptPayments[0].PaymentMethodId = PaymentMethodId;\r\n this.receiptPayments[0].ReceiptPaymentTypeId = defaultReceiptPaymentTypeId;\r\n if (this.defaultPayment)\r\n this.receiptPayments[0].ShowPospayment =\r\n this.PaymentMethod.find((f) => f.Id === this.defaultPayment.PaymentMethodId)?.PaymentMethodCode === 2;\r\n else this.receiptPayments[0].ShowPospayment = this.PaymentMethod[0].PaymentMethodCode === 2;\r\n if (this.receiptPayments[0].ShowPospayment) this.deactivateSave = true;\r\n } else {\r\n if (this.receiptPayments && this.receiptPayments.length > 0 && !this.formGroup) {\r\n for (let i = 0; i < this.receiptPayments.length; i++) {\r\n const index = Math.floor(Math.random() * 10000000);\r\n this.receiptPayments[i].Index = index;\r\n this.setValue(`PaymentMethodId${index}`, this.receiptPayments[i].PaymentMethodId, true);\r\n this.setValue(`ReceiptPaymentTypeId${index}`, defaultReceiptPaymentTypeId, true);\r\n this.setValue(`receivedmoney${index}`, this.receiptPayments[i].Amount, true);\r\n if (this.order.invoice.StatusCode !== InvoiceStatus.New) this.receiptPayments[i].State = RowState.Modify;\r\n if (this.receiptPayments[i].PaymentMethod.length === 1) this.setValue(`PaymentMethodId${index}`, this.PaymentMethod[0].Id, true);\r\n }\r\n } else {\r\n if (this.receiptPayments && this.receiptPayments.length > 0) {\r\n const index = this.receiptPayments.length - 1;\r\n const i = Math.floor(Math.random() * 10000000);\r\n this.setValue(`PaymentMethodId${i}`, this.receiptPayments[index].PaymentMethodId, true);\r\n this.setValue(`ReceiptPaymentTypeId${i}`, defaultReceiptPaymentTypeId, true);\r\n this.setValue(`receivedmoney${i}`, this.receiptPayments[index].Amount, true);\r\n this.receiptPayments[index].Id = 0;\r\n this.receiptPayments[index].State = RowState.New;\r\n this.receiptPayments[index].Index = i;\r\n this.deactiveForm = false;\r\n if (this.receiptPayments[index].PaymentMethod.length === 1) this.setValue(`PaymentMethodId${i}`, this.PaymentMethod[0].Id, true);\r\n this.setValue(`ReceiptPaymentTypeId${i}`, defaultReceiptPaymentTypeId, true);\r\n }\r\n }\r\n }\r\n this.checkValidation();\r\n this.calculate(true);\r\n }\r\n\r\n getReceiptPaymentTypeLookUp() {\r\n this.lookupservice\r\n .getLookupbyCategory(\"SALE\", \"ReceiptPaymentType\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: Lookup[]) => {\r\n this.ReceiptPaymentType = data.sort((a, b) => a.Code - b.Code);\r\n if (this.receiptPayments && this.receiptPayments.length > 0) {\r\n for (let i = 0; i < this.receiptPayments.length; i++) {\r\n const index = Math.floor(Math.random() * 10000000);\r\n this.receiptPayments[i].ReceiptPaymentType = JSON.parse(JSON.stringify(this.ReceiptPaymentType));\r\n this.receiptPayments[i].PaymentMethod = JSON.parse(JSON.stringify(this.PaymentMethod));\r\n this.receiptPayments[i].Index = index;\r\n if (this.order.invoice.ReceiptPayments && this.order.invoice.ReceiptPayments.length > 0) {\r\n this.setValue(`PaymentMethodId${index}`, this.receiptPayments[i].PaymentMethodId, true);\r\n this.setValue(`ReceiptPaymentTypeId${index}`, this.receiptPayments[i].ReceiptPaymentTypeId, true);\r\n this.setValue(`receivedmoney${index}`, this.receiptPayments[i].Amount, true);\r\n this.formGroup.controls[`PaymentMethodId${index}`].disable();\r\n this.formGroup.controls[`receivedmoney${index}`].disable();\r\n this.formGroup.controls[`ReceiptPaymentTypeId${index}`].disable();\r\n this.deactivateSave = true;\r\n }\r\n }\r\n /// اضافه کردن اتوماتیک یک رکورد در صورت اختلاف قیمت کل با با قیمانده در مود ویرایش\r\n if (this.order.invoice?.OriginalValue?.PayableTotal !== this.order.invoice.PayableTotal) {\r\n const receipt = new ReceiptPaymentModel();\r\n const i = Math.floor(Math.random() * 10000000);\r\n receipt.ReceiptPaymentType = JSON.parse(JSON.stringify(this.ReceiptPaymentType));\r\n receipt.PaymentMethod = JSON.parse(JSON.stringify(this.PaymentMethod));\r\n receipt.Index = i;\r\n receipt.Id = 0;\r\n let PaymentMethodId = this.defaultPayment\r\n ? this.PaymentMethod.find((f) => f.Id === this.defaultPayment.PaymentMethodId).Id\r\n : this.PaymentMethod[0].Id;\r\n this.setValue(`PaymentMethodId${i}`, PaymentMethodId, true);\r\n this.setValue(`ReceiptPaymentTypeId${i}`, receipt.ReceiptPaymentTypeId, true);\r\n this.setValue(`receivedmoney${i}`, this.order.invoice?.OriginalValue?.PayableTotal - this.order.invoice?.PayableTotal, true);\r\n if (this.order.invoice?.OriginalValue?.PayableTotal > this.order.invoice.PayableTotal) {\r\n this.setValue(`ReceiptPaymentTypeId${i}`, this.ReceiptPaymentType.find((f) => f.Code === ReceiptPaymentTypeEnum.Payment).Id, true);\r\n this.setValue(`receivedmoney${i}`, this.order.invoice?.OriginalValue?.PayableTotal - this.order.invoice.PayableTotal, true);\r\n PaymentMethodId = this.PaymentMethod[0].Id;\r\n this.setValue(`PaymentMethodId${i}`, PaymentMethodId, true);\r\n } else {\r\n this.setValue(`ReceiptPaymentTypeId${i}`, this.ReceiptPaymentType.find((f) => f.Code === ReceiptPaymentTypeEnum.Receipt).Id, true);\r\n this.setValue(`receivedmoney${i}`, this.order.invoice.PayableTotal - this.order.invoice?.OriginalValue?.PayableTotal, true);\r\n }\r\n receipt.State = RowState.New;\r\n const paymentMethodCode = receipt.PaymentMethod.find((f) => f.Id == PaymentMethodId).PaymentMethodCode;\r\n if (paymentMethodCode === PaymentMethodEnum.Pos || paymentMethodCode === PaymentMethodEnum.TabletPos) receipt.ShowPospayment = true;\r\n else receipt.ShowPospayment = false;\r\n this.receiptPayments[this.receiptPayments.length] = receipt;\r\n this.deactivateSave = false;\r\n }\r\n }\r\n\r\n if (!this.receiptPayments || this.receiptPayments.length <= 0) this.addGroup();\r\n else this.calculate(true);\r\n if (this.formGroup.controls[`remaining`].value < 0) this.addPayment();\r\n this.splashFormService.closeLoading();\r\n });\r\n }\r\n // برای بایند کردن نام در سند html\r\n\r\n // گرفتن نوع پرداخت\r\n getPaymentMethod() {\r\n const hasForbidden: SaleMethodBranchPaymentMethod[] = this.order.saleMethodBranch.PaymentMethods.filter((f) => !f.IsDefault);\r\n const paymentMethodTypeLookup = this.order.paymentMethodTypeLookup.filter(\r\n (x) => x.PaymentMethodCode !== PaymentMethodType.Internet && x.PaymentMethodCode !== PaymentMethodType.Check\r\n );\r\n if (hasForbidden && hasForbidden.length > 0)\r\n this.PaymentMethod = paymentMethodTypeLookup\r\n .filter((f) => !hasForbidden.some((s) => s.PaymentMethodId === f.Id))\r\n .sort((a, b) => a.PaymentMethodCode - b.PaymentMethodCode);\r\n else this.PaymentMethod = paymentMethodTypeLookup.sort((a, b) => a.PaymentMethodCode - b.PaymentMethodCode);\r\n //گرفتن لوک اپ\r\n this.getReceiptPaymentTypeLookUp();\r\n }\r\n addPayment() {\r\n // this.shouldUpdateInvoice = false;\r\n const posPaymentMethodIds = this.PaymentMethod.filter((c) => c.PaymentMethodCode === PaymentMethodType.Pos).map((e) => e.Id);\r\n const ReceiptModel = new ReceiptPaymentModel();\r\n ReceiptModel.ReceiptPaymentType = JSON.parse(JSON.stringify(this.ReceiptPaymentType));\r\n if (this.formGroup.controls[\"remaining\"].value < 0 && this.receiptPayments.some((c) => posPaymentMethodIds.includes(c.PaymentMethodId))) {\r\n this.shouldUpdateInvoice = true;\r\n ReceiptModel.State = RowState.New;\r\n ReceiptModel.PaymentMethodId = this.PaymentMethod.find((c) => c.PaymentMethodCode === PaymentMethodType.Cash).Id;\r\n }\r\n // if (this.formGroup.controls[\"remaining\"].value < 0 && this.receiptPayments.some((c) => posPaymentMethodIds.includes(c.PaymentMethodId))) {\r\n // this.shouldUpdateInvoice = true;\r\n // const index = Math.floor(Math.random() * 10000000);\r\n // ReceiptModel.Index = index;\r\n // ReceiptModel.State = RowState.New;\r\n // ReceiptModel.PaymentMethodId = this.PaymentMethod.find((c) => c.PaymentMethodCode === PaymentMethodType.Cash).Id;\r\n // ReceiptModel[\"IsCashAfterPos\"] = true;\r\n // }\r\n ReceiptModel.PaymentMethod = JSON.parse(JSON.stringify(this.PaymentMethod));\r\n if (this.formGroup.controls[`remaining`].value < 0) ReceiptModel.Amount = -this.formGroup.controls[`remaining`].value;\r\n this.receiptPayments.push(ReceiptModel);\r\n this.addGroup();\r\n }\r\n removePayment(index: number) {\r\n const findIndex = this.receiptPayments.findIndex((f) => f.Index === index);\r\n this.receiptPayments.splice(findIndex, 1);\r\n this.formGroup.removeControl(`PaymentMethodId${index}`);\r\n this.formGroup.removeControl(`ReceiptPaymentTypeId${index}`);\r\n this.formGroup.removeControl(`receivedmoney${index}`);\r\n this.calculate();\r\n }\r\n cancel() {\r\n this.closeModal();\r\n }\r\n isConfirm(): boolean {\r\n return true;\r\n }\r\n isValid(): boolean {\r\n if (this.formGroup.controls[`remaining`].value > 0 && !this.formGroup.controls[\"NonBalance\"].value) {\r\n this.sts.showToast(\"danger\", \"\", this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.ResidualValueGreaterThanZero\"));\r\n this.splashFormService.closeLoading();\r\n return false;\r\n }\r\n\r\n this.deactivateSave = false;\r\n return true;\r\n }\r\n // پر کردن فاکتور قبل از زخیره دیتا\r\n beforeSaveData() {\r\n let depositAmount = 0;\r\n this.receiptPayments.forEach((f) => {\r\n const controls = this.formGroup.controls;\r\n if (controls[`receivedmoney${f.Index}`].value > 0) {\r\n const rp = this.receiptPayments.find((w) => w.Index === f.Index);\r\n if (this.isDeposit) {\r\n const rpType = this.ReceiptPaymentType.find((x) => x.Id === rp.ReceiptPaymentTypeId);\r\n if (rpType.Code === ReceiptPaymentTypeEnum.Receipt) depositAmount += controls[`receivedmoney${f.Index}`].value;\r\n else depositAmount -= controls[`receivedmoney${f.Index}`].value;\r\n }\r\n rp.PaymentMethodId = this.formGroup.controls[`PaymentMethodId${f.Index}`].value;\r\n rp.ReceiptPaymentTypeId = this.formGroup.controls[`ReceiptPaymentTypeId${f.Index}`].value;\r\n rp.Amount = this.formGroup.controls[`receivedmoney${f.Index}`].value;\r\n rp.BranchId = this.order.invoice.BranchId;\r\n rp.InvoiceId = this.order.invoice.Id;\r\n const findTitle = this.ReceiptPaymentType.find((x) => x.Id === rp.ReceiptPaymentTypeId);\r\n rp.ReceiptPaymentTypeTitle = findTitle ? findTitle.Title : null;\r\n rp.PaymentMethodCode = f.PaymentMethod.find((x) => x.Id === f.PaymentMethodId)?.PaymentMethodCode;\r\n }\r\n });\r\n if (this.isDeposit) {\r\n this.order.depositFormGroup.controls[\"DepositAmount\"].setValue(depositAmount);\r\n this.order.depositFormGroup.markAsDirty();\r\n }\r\n this.order.invoice.Debit = this.formGroup.controls[`debit`].value ?? 0;\r\n this.order.invoice.Credit = this.formGroup.controls[`credit`].value ?? 0;\r\n this.order.invoice.Tip = this.formGroup.controls[`tip`].value ?? 0;\r\n this.order.invoice.ReceiptPayments = JSON.parse(JSON.stringify(this.receiptPayments.filter((f) => f.Amount > 0)));\r\n }\r\n async BeforeSaveCheck(paymentMethodType?: PaymentMethodType) {\r\n if (this.accountService.authService.currentInformation().HasProtel && this.order.invoice.Customer?.AutomaticDebtor && !this.closeDialog) {\r\n const roomNumber = this.order.invoice.Customer.Party.LastName;\r\n this.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.PleaseWait\"));\r\n\r\n this.httpCommonService\r\n .get(`Invoice/GetProtelData/${roomNumber}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: ProtelModel[]) => {\r\n this.protel = data[0];\r\n\r\n this.splashFormService.closeLoading();\r\n let name = this.protel.FullName;\r\n let reservationNumber = this.protel.ReservationNumber;\r\n let rmNumber = this.protel.RoomNumber;\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.Name\")}: ${name}\r\n ${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.RoomNumber\")}: ${rmNumber}\r\n ${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.ReservationNumber\")}: ${reservationNumber}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.Attention\"),\r\n DialogType.confirm,\r\n () => {\r\n if (this.order.invoice.CustomerPrintCount < 1) {\r\n this.order.invoice.Description += `,reservationNumber: ${reservationNumber},`;\r\n this.order.invoice.Description += `,roomNumber: ${rmNumber},`;\r\n this.order.invoice.Description += `,fullName: ${name},`;\r\n }\r\n this.save();\r\n this.order.newInvoice();\r\n this.closeDialog = true;\r\n this.closeModal();\r\n }\r\n );\r\n },\r\n (error) => {\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.ConnectToProtel\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.Attention\")\r\n );\r\n this.save();\r\n this.order.newInvoice();\r\n this.closeDialog = true;\r\n }\r\n );\r\n } else {\r\n this.save(paymentMethodType);\r\n }\r\n }\r\n async save(paymentMethodType?: PaymentMethodType) {\r\n this.isFinished++;\r\n if (this.isFinished > 1 || !this.isValid()) {\r\n this.isFinished = 0;\r\n return;\r\n }\r\n const localSettings = this.storage.getData(ClearableCache.LocalSetting);\r\n const selectRow = this.receiptPayments?.find((r) => this.PaymentMethod.find((x) => x.Id === r.PaymentMethodId));\r\n const localSetting = localSettings.find((x) => x.PaymentMethodId === selectRow.PaymentMethodId);\r\n if (\r\n localSetting?.IsWebService &&\r\n this.receiptPayments?.find((r) => r.PaymentMethodCode === PaymentMethodEnum.Pos && r.State === this.rowState.New)\r\n ) {\r\n this.order.splashFormService\r\n .openDialogwithCancelButton(\"\", this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.WaitForCardDraw\"))\r\n .pipe(take(1))\r\n .subscribe((flag: any) => {\r\n if (!flag) {\r\n const ComputerName = this.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .get(`ReceiptPayment/CancelSamanaPosRequest/${ComputerName}`)\r\n .pipe(take(1))\r\n .subscribe((data: PosPaymentResponse) => {\r\n this.sts.showToast(\"danger\", \"\", data.Message);\r\n this.isSaved = false;\r\n this.submitted = false;\r\n this.isClosing = false;\r\n this.isSaving = false;\r\n this.deactivateClose = false;\r\n this.deactivateSave = false;\r\n this.deactiveForm = false;\r\n this.isFinished = 0;\r\n this.selectorService.submitted$.next(this.submitted);\r\n });\r\n }\r\n });\r\n }\r\n\r\n this.beforeSaveData();\r\n let commandCode = paymentMethodType\r\n ? InvoiceCommand.PosPayment\r\n : this.isClearWithoutPrint\r\n ? InvoiceCommand.ClearWithoutPrint\r\n : InvoiceCommand.Clear;\r\n\r\n const tabletPosPayment = this.receiptPayments?.find((f) => f.PaymentMethodCode === PaymentMethodType.TabletPos && f.State === RowState.New);\r\n if ((!paymentMethodType && tabletPosPayment) || paymentMethodType === PaymentMethodType.TabletPos) {\r\n this.order.invoice.posPaymentIndex = tabletPosPayment.Index;\r\n commandCode = InvoiceCommand.TabletPos;\r\n }\r\n\r\n if (this.isDeposit) {\r\n if (!this.order.invoice.StatusCode) this.order.invoice.StatusCode = InvoiceStatus.Pending;\r\n commandCode = this.action;\r\n }\r\n this.invoiceAction.openFromPaymentForm = true;\r\n this.invoiceAction.SaveInvoice(commandCode, this.order.invoice);\r\n\r\n if (!this.invoiceAction.saveEndSubscription) {\r\n this.invoiceAction.saveEndSubscription = this.invoiceAction.saveEnd.subscribe(\r\n (data) => {\r\n if (data === true && (this.formGroup.controls[`remaining`].value == 0 || this.formGroup.controls[\"NonBalance\"].value)) {\r\n this.closeModal();\r\n this.order.newInvoice();\r\n } else if (data) {\r\n this.splashFormService.openDialog(\r\n \"\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.PaymentCompletedLoadingInformation\")\r\n );\r\n this.invoiceAction.openFromPaymentForm = false;\r\n this.receiptPayments = data?.ReceiptPayments;\r\n this.httpCommonService\r\n .getItem(\"Invoice/GetInvoiceById\", data.Id)\r\n .pipe(take(1))\r\n .subscribe(\r\n (invoice: Invoice) => {\r\n this.order.invoice.State = RowState.Modify;\r\n invoice.Items.forEach((ele) => {\r\n ele.State = RowState.NoChange;\r\n });\r\n /// Change By Nima Azin For Support Edit Mode With Remain\r\n if (\r\n this.formGroup.controls[`remaining`].value < 0 &&\r\n -this.formGroup.controls[`remaining`].value === invoice.ReceiptPayments[invoice.ReceiptPayments.length - 1].Amount\r\n ) {\r\n /// Read Reamain and delete it for ready row edit by user input\r\n const findItem = Object.assign(\r\n {},\r\n invoice.ReceiptPayments.find((f) => f.Comment === \"1000\")\r\n );\r\n findItem.State = RowState.New;\r\n findItem.Id = 0;\r\n findItem.Comment = \"10001\";\r\n findItem.RowVersion = null;\r\n invoice.ReceiptPayments.push(findItem);\r\n invoice.ReceiptPayments.find((f) => f.Comment === \"1000\").State = RowState.Delete;\r\n this.hasAutorecord = true;\r\n invoice.Items.map((ele) => {\r\n ele.NewQuantity = ele.Quantity;\r\n });\r\n }\r\n /// End\r\n /// Get Old Cash User Input And Deleted And push In New State\r\n let existReceiptLst: any[] = [];\r\n invoice.ReceiptPayments.forEach((ele) => {\r\n if (\r\n ele.State != this.rowState.Delete &&\r\n ele.Id &&\r\n this.receiptPayments?.some(\r\n (s) =>\r\n (s.Id == 0 || !s.Id) &&\r\n s.PaymentMethodCode == PaymentMethodType.Cash &&\r\n s.State != this.rowState.Modify &&\r\n s.State != this.rowState.Delete &&\r\n s.ReceiptPaymentTypeId === ele.ReceiptPaymentTypeId &&\r\n s.PaymentMethodId === ele.PaymentMethodId &&\r\n s.Amount === ele.Amount\r\n )\r\n ) {\r\n const newRow = Object.assign({}, ele);\r\n newRow.Id = 0;\r\n newRow.State = this.rowState.New;\r\n existReceiptLst.push(newRow);\r\n ele.State = this.rowState.Delete;\r\n }\r\n });\r\n if (existReceiptLst?.length > 0) {\r\n existReceiptLst.forEach((ele) => {\r\n invoice.ReceiptPayments.push(Object.assign({}, ele));\r\n });\r\n }\r\n /// End\r\n\r\n this.order.invoice.Items = invoice.Items;\r\n this.order.invoice.NumberingInDate = invoice.NumberingInDate;\r\n this.order.invoice.Id = invoice.Id;\r\n this.order.invoice.RowVersion = invoice.RowVersion;\r\n this.order.invoice.CreatedUserId = invoice.CreatedUserId;\r\n this.order.invoice.ModifiedDate = invoice.ModifiedDate;\r\n this.order.invoice.CreateDateTime = invoice.CreateDateTime;\r\n this.order.invoice.CreatedDate = invoice.CreatedDate;\r\n this.order.invoice.CreatedUserName = invoice.CreatedUserName;\r\n this.order.invoice.ModifiedDateTime = invoice.ModifiedDateTime;\r\n this.order.invoice.ModifiedUserId = invoice.ModifiedUserId;\r\n\r\n // const invalidList = invoice.ReceiptPayments.filter(f=>f.State == this.rowState.Delete && f.Id == 0);\r\n // if(invalidList == null && invalidList?.length > 0) {\r\n // invalidList.forEach(element => {\r\n // invoice.ReceiptPayments = invoice.ReceiptPayments.filter(f=>f !== element);\r\n // });\r\n // }\r\n this.receiptPayments = Object.assign([], invoice.ReceiptPayments);\r\n this.order.invoice.ReceiptPayments = Object.assign([], invoice.ReceiptPayments);\r\n\r\n for (let i = 0; i < this.receiptPayments?.length; i++) {\r\n const index = Math.floor(Math.random() * 10000000);\r\n this.receiptPayments[i].ReceiptPaymentType = JSON.parse(JSON.stringify(this.ReceiptPaymentType));\r\n this.receiptPayments[i].PaymentMethod = JSON.parse(JSON.stringify(this.PaymentMethod));\r\n this.receiptPayments[i].Index = index;\r\n if (this.order.invoice.ReceiptPayments && this.order.invoice.ReceiptPayments.length > 0) {\r\n this.setValue(`PaymentMethodId${index}`, this.receiptPayments[i].PaymentMethodId, true);\r\n this.setValue(`ReceiptPaymentTypeId${index}`, this.receiptPayments[i].ReceiptPaymentTypeId, true);\r\n this.setValue(`receivedmoney${index}`, this.receiptPayments[i].Amount, true);\r\n if (invoice.ReceiptPayments[i].Id !== 0 && invoice.ReceiptPayments[i].Id) {\r\n if (\r\n this.receiptPayments[i].PaymentMethodCode === PaymentMethodType.Pos ||\r\n this.receiptPayments[i].PaymentMethodCode === PaymentMethodType.TabletPos\r\n ) {\r\n this.receiptPayments[i].State = RowState.Modify;\r\n }\r\n this.receiptPayments[i].Id = invoice.ReceiptPayments[i].Id;\r\n this.receiptPayments[i].Comment = invoice.ReceiptPayments[i].Comment;\r\n if (this.receiptPayments[i].State !== RowState.New) {\r\n this.formGroup.controls[`PaymentMethodId${index}`].disable();\r\n this.formGroup.controls[`receivedmoney${index}`].disable();\r\n this.formGroup.controls[`ReceiptPaymentTypeId${index}`].disable();\r\n }\r\n }\r\n }\r\n }\r\n if (\r\n this.formGroup.controls[`remaining`].value === 0 &&\r\n commandCode === InvoiceCommand.PosPayment &&\r\n data.ReceiptPayments.length === invoice.ReceiptPayments.length &&\r\n !invoice.ReceiptPayments.some((s) => s.Comment === \"1000\") &&\r\n !this.savePaymentClicked\r\n ) {\r\n this.invoiceAction.SaveInvoice(InvoiceCommand.Clear, invoice, null, this.order);\r\n this.invoiceAction.isStartAction = 0;\r\n }\r\n\r\n if (\r\n this.formGroup.controls[`remaining`].value === 0 &&\r\n commandCode === InvoiceCommand.TabletPos &&\r\n data.ReceiptPayments.length === invoice.ReceiptPayments.length\r\n ) {\r\n this.invoiceAction.SaveInvoice(InvoiceCommand.Clear, invoice, null, this.order);\r\n this.invoiceAction.isStartAction = 0;\r\n }\r\n\r\n this.cd.markForCheck();\r\n if (!this.receiptPayments?.some((s) => s.Comment == null))\r\n this.receiptPayments = this.receiptPayments?.sort((a, b) => Number(a.Comment) - Number(b.Comment));\r\n this.calculate();\r\n if (this.savePaymentClicked) {\r\n setTimeout(() => {\r\n this.deactivateSave = false;\r\n this.deactivateClose = false;\r\n this.isSaved = false;\r\n this.isSaving = false;\r\n this.isFinished = 0;\r\n }, 10);\r\n }\r\n this.cd.markForCheck();\r\n this.splashFormService.closeLoading();\r\n },\r\n (error) => {\r\n this.sts.showToast(\"danger\", \"\", `${Utilities.getHttpResponseMessage(error)}`);\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.splashFormService.closeLoading();\r\n }\r\n );\r\n } else {\r\n this.invoiceAction.openFromPaymentForm = false;\r\n this.isSaved = false;\r\n this.isSaving = false;\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.calculate();\r\n }\r\n this.isFinished = 0;\r\n },\r\n (error) => {\r\n this.isSaved = false;\r\n this.isSaving = false;\r\n this.isFinished = 0;\r\n this.calculate();\r\n this.sts.showToast(\"danger\", \"\", `${Utilities.getHttpResponseMessage(error)}`);\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.splashFormService.closeLoading();\r\n }\r\n );\r\n }\r\n\r\n this.invoiceAction.ActionFinish.pipe(take(1)).subscribe((result) => {\r\n this.isSaved = false;\r\n this.submitted = false;\r\n this.isClosing = false;\r\n this.isSaving = false;\r\n this.deactivateClose = false;\r\n this.deactivateSave = false;\r\n this.deactiveForm = false;\r\n this.isFinished = 0;\r\n this.selectorService.submitted$.next(this.submitted);\r\n });\r\n }\r\n closeForm() {\r\n this.sts.showToast(\"info\", \"\", this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.SavingChanges\"));\r\n this.isSaving = false;\r\n this.isSaved = false;\r\n this.isClosing = false;\r\n this.submitted = true;\r\n this.hasChange();\r\n this.sts.showToast(\r\n \"success\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.Successful\"),\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.InformationChanges\")} ${this.label} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.SavedSuccessfully\"\r\n )} `\r\n );\r\n this.result = true;\r\n this.closeModal();\r\n }\r\n hasChange() {\r\n if (!this.order.invoice.ReceiptPayments || this.order.invoice.ReceiptPayments.length <= 0) return;\r\n else {\r\n for (let i = 0; i < this.receiptPayments?.length; i++) {\r\n const findPayment = this.order.invoice.ReceiptPayments.find((f) => f.Id === this.receiptPayments[i].Id);\r\n if (findPayment && this.receiptPayments[i] !== findPayment) {\r\n this.receiptPayments[i].State = RowState.Modify;\r\n }\r\n }\r\n }\r\n }\r\n checkIsPosPayment(model: any, index: number) {\r\n let posOrTabletPos = this.PaymentMethod?.filter(\r\n (c) => c.PaymentMethodCode == PaymentMethodEnum.Pos || c.PaymentMethodCode == PaymentMethodEnum.TabletPos\r\n ).map((c) => c.Id);\r\n let posOrTabletPosReciptPayment = this.receiptPayments?.filter((c) => posOrTabletPos.includes(c.PaymentMethodId) && c.State === RowState.New);\r\n if (posOrTabletPosReciptPayment && posOrTabletPosReciptPayment?.length > 1) {\r\n this.setValue(`PaymentMethodId${index}`, null);\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.PaymentByMethodNotPossible\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.ErrorMessage\")\r\n );\r\n }\r\n const receiptPayment = this.receiptPayments?.find((x) => x.Index === index);\r\n const receiptPaymentType = this.receiptPayments[0].ReceiptPaymentType.find(\r\n (f) => f.Id === this.formGroup.controls[`ReceiptPaymentTypeId${index}`].value\r\n ).Code;\r\n const paymentMethod = this.receiptPayments[0].PaymentMethod.find(\r\n (f) => f.Id === this.formGroup.controls[`PaymentMethodId${index}`].value\r\n ).PaymentMethodCode;\r\n if (receiptPaymentType === ReceiptPaymentTypeEnum.Payment && paymentMethod === PaymentMethodEnum.Pos) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.PaymentByMethodNotPossible\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.ErrorMessage\")\r\n );\r\n this.setValue(`PaymentMethodId${index}`, null);\r\n }\r\n if (model.Category !== \"ReceiptPaymentType\") {\r\n const receiptPaymentType = receiptPayment?.ReceiptPaymentType.find((f) => f.Id === receiptPayment?.ReceiptPaymentTypeId).Code;\r\n if ((model.PaymentMethodCode === PaymentMethodEnum.Pos || model.PaymentMethodCode === PaymentMethodEnum.TabletPos) && receiptPaymentType === 2)\r\n this.receiptPayments.find((w) => w.Index === index).ShowPospayment = true;\r\n else this.receiptPayments.find((w) => w.Index === index).ShowPospayment = false;\r\n } else {\r\n if (model.Code !== 2) this.receiptPayments.find((w) => w.Index === index).ShowPospayment = false;\r\n else {\r\n const PaymentType = receiptPayment?.PaymentMethod.find((f) => f.Id === receiptPayment?.PaymentMethodId).PaymentMethodCode;\r\n if (PaymentType === PaymentMethodEnum.Pos || PaymentType === PaymentMethodEnum.TabletPos)\r\n this.receiptPayments.find((w) => w.Index === index).ShowPospayment = true;\r\n }\r\n }\r\n this.checkValidation();\r\n }\r\n calculate(isFirst?: boolean) {\r\n let remain = 0;\r\n if (this.formGroup.controls[`remaining`].value < 0 && this.formGroup.controls[`credit`].value) {\r\n this.setValue(\"credit\", null);\r\n this.setValue(\"tip\", null);\r\n this.hasCreditTransfer = false;\r\n this.hasTipTransfer = false;\r\n }\r\n if (this.formGroup.controls[`remaining`].value > 0 && this.formGroup.controls[`debit`].value) {\r\n this.setValue(\"debit\", null);\r\n this.hasDebitTransfer = false;\r\n }\r\n const debit = this.formGroup.controls[`debit`].value ? this.formGroup.controls[`debit`].value : 0;\r\n const credit = this.formGroup.controls[`credit`].value ? this.formGroup.controls[`credit`].value : 0;\r\n const tip = this.formGroup.controls[`tip`].value ? this.formGroup.controls[`tip`].value : 0;\r\n if (this.receiptPayments?.length && this.receiptPayments?.length > 0) {\r\n this.receiptPayments\r\n .filter((f) => f.State !== RowState.Delete)\r\n .forEach((f) => {\r\n if (\r\n this.formGroup.controls[`ReceiptPaymentTypeId${this.receiptPayments.find((w) => w.Index === f.Index).Index}`].value &&\r\n this.formGroup.controls[`receivedmoney${this.receiptPayments.find((w) => w.Index === f.Index).Index}`].value\r\n ) {\r\n if (\r\n this.ReceiptPaymentType?.find((f) => f.Code === 2)?.Id ===\r\n this.formGroup.controls[`ReceiptPaymentTypeId${this.receiptPayments.find((w) => w.Index === f.Index).Index}`].value\r\n )\r\n remain += Number(this.formGroup.controls[`receivedmoney${this.receiptPayments.find((w) => w.Index === f.Index).Index}`].value);\r\n else {\r\n remain -= Number(this.formGroup.controls[`receivedmoney${this.receiptPayments.find((w) => w.Index === f.Index).Index}`].value);\r\n }\r\n }\r\n this.receiptPayments.find((w) => w.Index === f.Index).Amount = Number(\r\n this.formGroup.controls[`receivedmoney${this.receiptPayments.find((w) => w.Index === f.Index).Index}`].value\r\n );\r\n this.receiptPayments.find((w) => w.Index === f.Index).ReceiptPaymentTypeId = Number(\r\n this.formGroup.controls[`ReceiptPaymentTypeId${this.receiptPayments.find((w) => w.Index === f.Index).Index}`].value\r\n );\r\n this.receiptPayments.find((w) => w.Index === f.Index).PaymentMethodId = Number(\r\n this.formGroup.controls[`PaymentMethodId${this.receiptPayments.find((w) => w.Index === f.Index).Index}`].value\r\n );\r\n });\r\n this.formGroup.controls[`remaining`].setValue(remain - Number(tip) - Number(credit) + Number(debit) - this.order.invoice.PayableTotal);\r\n } else {\r\n if (!this.formGroup.controls[`debit`].value || this.formGroup.controls[`debit`].value === 0)\r\n this.formGroup.controls[`remaining`].setValue(-this.order.invoice.PayableTotal);\r\n }\r\n if ((this.formGroup.controls[`remaining`].value > 0 || this.formGroup.controls[`tip`].value) && this.receiptPayments.length > 0)\r\n this.hasTipTransfer = true;\r\n else {\r\n this.hasTipTransfer = false;\r\n this.setValue(\"tip\", null);\r\n }\r\n if ((this.formGroup.controls[`remaining`].value > 0 || this.formGroup.controls[`credit`].value) && this.order.invoice.Customer?.HasCredit)\r\n this.hasCreditTransfer = true;\r\n else this.hasCreditTransfer = false;\r\n if (\r\n (this.formGroup.controls[`remaining`].value < 0 || isFirst || this.formGroup.controls[`debit`].value) &&\r\n this.order.invoice.Customer?.HasCredit\r\n )\r\n this.hasDebitTransfer = true;\r\n else this.hasDebitTransfer = false;\r\n if (this.formGroup.controls[`remaining`].value === 0) this.deactivateSave = false;\r\n else if (!this.formGroup.controls[\"NonBalance\"].value) {\r\n this.deactivateSave = true;\r\n }\r\n if (this.formGroup.controls[`remaining`].value < 0 || this.formGroup.controls[`debit`].value) {\r\n this.setValue(\"credit\", null);\r\n this.hasCreditTransfer = false;\r\n }\r\n if (this.formGroup.controls[`remaining`].value > 0 || this.formGroup.controls[`credit`].value) {\r\n this.setValue(\"debit\", null);\r\n this.hasDebitTransfer = false;\r\n }\r\n this.checkValidation();\r\n }\r\n // فعال کردن دکنه تسویه\r\n checkValidation() {\r\n if (this.formGroup.controls[\"NonBalance\"]?.value) {\r\n this.deactivateSave = false;\r\n return;\r\n }\r\n if (\r\n this.receiptPayments?.some((s) => !s.PaymentMethodId) ||\r\n this.receiptPayments?.some((s) => !s.ReceiptPaymentTypeId) ||\r\n this.formGroup.controls[`remaining`].value !== 0 ||\r\n !this.receiptPayments ||\r\n (this.receiptPayments.length === 0 &&\r\n (!this.formGroup.controls[`debit`].value || this.formGroup.controls[`debit`].value === 0) &&\r\n this.formGroup.controls[`remaining`].value > 0)\r\n ) {\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n if (this.receiptPayments?.filter((s) => s.ShowPospayment)?.length > 1) {\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n if (!this.receiptPayments?.some((s) => s.State === RowState.New) && !this.isDeposit) {\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n if (this.order.invoice.Customer?.HasCredit) this.deactivateSave = false;\r\n else {\r\n this.deactivateSave = true;\r\n }\r\n this.deactivateSave = false;\r\n }\r\n\r\n // انتقال باقیمانده\r\n transfer(value: PaymentEnum) {\r\n switch (value) {\r\n case PaymentEnum.Debit:\r\n if (this.formGroup.controls[`remaining`].value >= 0) {\r\n return;\r\n }\r\n if (this.formGroup.controls[\"NonBalance\"].value) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.ActivationOptionReceiveBalanceByCourier\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.Attention\"),\r\n DialogType.alert\r\n );\r\n return;\r\n }\r\n this.formGroup.controls[`debit`].setValue(-this.formGroup.controls[`remaining`].value + Number(this.formGroup.controls[\"debit\"].value));\r\n this.setValue(\"remaining\", 0);\r\n this.calculate();\r\n break;\r\n case PaymentEnum.Credit:\r\n if (this.formGroup.controls[`remaining`].value <= 0) {\r\n return;\r\n }\r\n this.formGroup.controls[`credit`].setValue(this.formGroup.controls[`remaining`].value + Number(this.formGroup.controls[\"credit\"].value));\r\n this.setValue(\"remaining\", 0);\r\n this.calculate();\r\n break;\r\n case PaymentEnum.Tip:\r\n if (this.formGroup.controls[`remaining`].value <= 0) {\r\n return;\r\n }\r\n this.formGroup.controls[`tip`].setValue(this.formGroup.controls[`remaining`].value + Number(this.formGroup.controls[\"tip\"].value));\r\n this.setValue(\"remaining\", 0);\r\n this.calculate();\r\n this.deactivateSave = false;\r\n break;\r\n }\r\n }\r\n /// حذف ورودی ها\r\n clear(value: PaymentEnum) {\r\n switch (value) {\r\n case PaymentEnum.Debit:\r\n this.formGroup.controls[`debit`].setValue(null);\r\n this.calculate();\r\n break;\r\n case PaymentEnum.Credit:\r\n this.formGroup.controls[`credit`].setValue(null);\r\n this.calculate();\r\n break;\r\n case PaymentEnum.Tip:\r\n this.formGroup.controls[`tip`].setValue(null);\r\n this.calculate();\r\n break;\r\n }\r\n }\r\n Payment(Index: number) {\r\n this.savePaymentClicked = true;\r\n if (!this.formGroup.valid) {\r\n this.sts.showToast(\"danger\", \"\", `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.EnterFormValues\")}`);\r\n return;\r\n }\r\n const findPayment = this.receiptPayments?.find((f) => f.Index === Index);\r\n const localSettings = this.storage.getData(ClearableCache.LocalSetting);\r\n const localSetting = localSettings.find((x) => x.PaymentMethodId === findPayment.PaymentMethodId);\r\n if (!localSetting?.IsWebService) {\r\n this.order.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.WaitForCardDraw\"));\r\n } else {\r\n this.order.splashFormService\r\n .openDialogwithCancelButton(\"\", this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.WaitForCardDraw\"))\r\n .subscribe((flag: any) => {\r\n if (!flag) {\r\n const ComputerName = this.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .get(`ReceiptPayment/CancelSamanaPosRequest/${ComputerName}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: any) => {\r\n if (data.IsSuccess)\r\n this.sts.showToast(\r\n \"danger\",\r\n \"\",\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.PaymentCanceledSuccessfully\")}`\r\n );\r\n else {\r\n this.sts.showToast(\"danger\", \"\", `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.CancellationFailed\")}`);\r\n }\r\n },\r\n (error) => {\r\n this.sts.showToast(\"danger\", \"\", `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.CancellationFailed\")}`);\r\n }\r\n );\r\n }\r\n });\r\n }\r\n this.order.invoice.posPaymentIndex = Index;\r\n const findPaymentCode = findPayment?.PaymentMethod?.find((f) => f.Id === findPayment.PaymentMethodId)?.PaymentMethodCode;\r\n if (findPaymentCode === PaymentMethodType.Pos || findPaymentCode === PaymentMethodType.TabletPos) {\r\n this.save(findPaymentCode);\r\n } else this.save();\r\n }\r\n /// چک کردن ورودی ها\r\n changeInputValue(kind?: PaymentEnum, value?: string) {\r\n switch (kind) {\r\n case PaymentEnum.Debit:\r\n if (this.formGroup.controls[`debit`].value === 0) {\r\n this.setValue(\"debit\", null);\r\n return;\r\n }\r\n if (this.formGroup.controls[`remaining`].value > 0) {\r\n this.setValue(\"debit\", null);\r\n return;\r\n }\r\n if (-this.formGroup.controls[`remaining`].value < Number(value)) {\r\n this.clear(kind);\r\n this.transfer(kind);\r\n return;\r\n }\r\n break;\r\n case PaymentEnum.Credit:\r\n if (this.formGroup.controls[`credit`].value === 0) {\r\n this.setValue(\"credit\", null);\r\n return;\r\n }\r\n if (this.formGroup.controls[`remaining`].value < 0) {\r\n this.setValue(\"credit\", null);\r\n return;\r\n }\r\n if (this.formGroup.controls[`remaining`].value < Number(value)) {\r\n this.clear(kind);\r\n this.transfer(kind);\r\n return;\r\n }\r\n break;\r\n case PaymentEnum.Tip:\r\n if (this.formGroup.controls[`tip`].value === 0) {\r\n this.setValue(\"tip\", null);\r\n return;\r\n }\r\n if (this.formGroup.controls[`remaining`].value < Number(value)) {\r\n this.clear(kind);\r\n this.transfer(kind);\r\n return;\r\n }\r\n break;\r\n }\r\n this.calculate();\r\n }\r\n\r\n nonBalanceValidation() {\r\n const controls = this.formGroup.controls;\r\n if ((controls[`remaining`].value > 0 || controls[\"credit\"].value || controls[\"debit\"].value) && !this.nonBalanceChangedManualy) {\r\n this.nonBalanceChangedManualy = true;\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.PossibleToSelectReceiveRemainingByCourier\")}`,\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.Attention\")}`,\r\n DialogType.alert\r\n );\r\n this.setValue(\"NonBalance\", false);\r\n this.model.NonBalance = false;\r\n return;\r\n }\r\n this.nonBalanceChangedManualy = false;\r\n this.checkValidation();\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.Payable\" | translate }}: \r\n
\r\n
\r\n {{ this.order.invoice.PayableTotal | number }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.TransferToDebit\" | translate }} \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.TransferToCredit\" | translate }} \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.Payment.TransferToTip\" | translate }} \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectorRef, Component } from '@angular/core';\r\nimport { FormControl, FormGroup } from '@angular/forms';\r\nimport { BaseFormComponent } from 'projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component';\r\nimport { SelectorService } from 'projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service';\r\nimport { HttpCommonService } from 'projects/sepidz-web-framework/src/lib/services';\r\n\r\n@Component({\r\n selector: 'ngx-preparation-delivery-time-form',\r\n templateUrl: './preparation-delivery-time-form.component.html',\r\n styleUrls: ['./preparation-delivery-time-form.component.scss']\r\n})\r\nexport class PreparationDeliveryTimeFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n public httpCommonService: HttpCommonService) {\r\n super(selectorService, cd);\r\n }\r\n formGroup: FormGroup = new FormGroup({\r\n PreprationDeliveryTime: new FormControl(null),\r\n });\r\n async save() {\r\n if (this.submitButtonDisabled())\r\n return;\r\n this.result = this.formGroup.controls['PreprationDeliveryTime'].value;\r\n this.close();\r\n }\r\n submitButtonDisabled(): boolean {\r\n if (!this.formGroup.controls['PreprationDeliveryTime'].value) {\r\n this.isSaved = false;\r\n return true;\r\n }\r\n else {\r\n this.isSaved = true;\r\n return false;\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostListener, ViewChild } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { TotalPriceService } from \"./totalprice.service\";\r\nimport { SaleMethodNature } from \"src/app/frontoffice/sales/model/sale-method-branch.model\";\r\nimport { InvoiceStatus } from \"../../../model/invoice.model\";\r\n\r\n@Component({\r\n selector: \"order-totalprice\",\r\n templateUrl: \"./totalprice.component.html\",\r\n styleUrls: [\"./totalprice.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [TotalPriceService],\r\n})\r\nexport class TotalPriceComponent extends BaseListComponent {\r\n @ViewChild(\"clearButton\") clearButton!: ElementRef;\r\n isContentFitting: boolean = true;\r\n\r\n constructor(public totalPriceService: TotalPriceService, public cd: ChangeDetectorRef) {\r\n super();\r\n this.NoLog = true;\r\n this.totalPriceService.order.cd_Total = this.cd;\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this.setShowChangeClearingButton();\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.totalPriceService.order.currentSaleMethodNature === this.totalPriceService.order.SaleMethodNature.Restaurant) {\r\n setTimeout(() => {\r\n this.checkContentWidth();\r\n }, 10);\r\n }\r\n }\r\n\r\n @HostListener(\"window:resize\", [\"$event\"])\r\n onResize() {\r\n if (this.totalPriceService.order.currentSaleMethodNature === this.totalPriceService.order.SaleMethodNature.Restaurant) {\r\n this.checkContentWidth();\r\n }\r\n }\r\n\r\n checkContentWidth() {\r\n const divElement = this.clearButton.nativeElement;\r\n const contentWidth = divElement.scrollWidth;\r\n const divWidth = divElement.clientWidth;\r\n\r\n this.isContentFitting = contentWidth <= divWidth;\r\n this.cd.markForCheck();\r\n }\r\n\r\n public changeClearing(): void {\r\n this.totalPriceService.openMixClearingDialog(false);\r\n }\r\n\r\n public onApplySnapChanges(value: boolean): void {\r\n this.totalPriceService.order.invoice.ApplySnap = value;\r\n }\r\n\r\n private setShowChangeClearingButton(): void {\r\n const invoiceIsCleared = this.totalPriceService.order.invoice.StatusCode == InvoiceStatus.Cleared;\r\n if (!invoiceIsCleared) return;\r\n const isFastFood = this.totalPriceService.order.saleMethodBranch.SaleMethodNatureCode === SaleMethodNature.FastFood;\r\n const isRestaurant = this.totalPriceService.order.saleMethodBranch.SaleMethodNatureCode === SaleMethodNature.Restaurant;\r\n const isSalonOrFastFood = isFastFood || isRestaurant;\r\n if (!isSalonOrFastFood) return;\r\n const hasAccess = this.totalPriceService.order.HasAccess(isFastFood ? \"ClearClearedStatus\" : \"ClearClearingStatus\");\r\n this.totalPriceService.showChangeClearing = invoiceIsCleared && hasAccess && isSalonOrFastFood;\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Payable\" | translate }} {{ totalPriceService.order.invoice.PayableTotal | number }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Rent\" | translate }} \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Percent\" | translate }}\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.UnitOfPrice\" | translate }}\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.HourlyDiscount\" | translate }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n 0 || totalPriceService.order.invoice.isDebit\">\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Debit\" | translate }}\r\n \r\n 0 || !totalPriceService.order.invoice.isDebit\">\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Credit\" | translate }}\r\n \r\n
\r\n 0 || !totalPriceService.order.invoice.isDebit\r\n ? ('ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Creditor' | translate)\r\n : ('ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Debtor' | translate)\r\n }}\">\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Service\" | translate }}\r\n \r\n
\r\n {{ totalPriceService.order.invoice.TotalService | number }}\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.SumPrice\" | translate }} {{ totalPriceService.order.invoice.Total | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.ServiceRate\" | translate }} {{ totalPriceService.order.depositFormGroup.controls[\"ServicesAmount\"]?.value | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.SumPercent\" | translate }}{{ totalPriceService.order.invoice.TotalDiscount | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Taxation\" | translate }} {{ totalPriceService.order.invoice.TotalTax + totalPriceService.order.invoice.TotalToll | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Remainder\" | translate }} {{ totalPriceService.order.invoice.PayableTotal - totalPriceService.order.depositFormGroup?.value?.DepositAmount | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.RoundingAmount\" | translate }}{{ totalPriceService.order.invoice.RoundingAmount | number }}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n 0) ||\r\n (totalPriceService.order.currentSaleMethodNature === totalPriceService.order.SaleMethodNature.Delivery &&\r\n totalPriceService.order.invoice.Items.length > 0) ||\r\n (totalPriceService.order?.saleMethodBranch.PreprationTimeIsActive && totalPriceService.order.invoice.Items.length > 0)\r\n \"\r\n icon=\"icon-more_vert-o\"\r\n class=\"menubox\"\r\n up=\"true\">\r\n \r\n
\r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.TabletPosCustomerPrint\" | translate }}\r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.TabletPosClearAndPrint\" | translate }}\r\n
\r\n \r\n \r\n \r\n \r\n {{ item.PrintTemplate.Title }}\r\n
\r\n
\r\n \r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.ChangeClearing\" | translate }}\r\n
\r\n
\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Cancel\" | translate }}\r\n \r\n \r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Print\" | translate }}\r\n \r\n \r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.ClearWithoutPrint\" | translate }}\r\n \r\n \r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.CombinedSettlement\" | translate }}\r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.ChangeCustomerPrintTemplate\" | translate }}\r\n
\r\n \r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.PreparationDeliveryTime.DeliveryTime\" | translate }}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Injectable, OnDestroy, OnInit, SimpleChanges } from \"@angular/core\";\r\nimport { BaseService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-service.component\";\r\nimport { Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { map, mergeMap, take, takeUntil } from \"rxjs/operators\";\r\nimport { CustomerFormComponent } from \"src/app/frontoffice/parties/customer/customer-form.component\";\r\nimport { DeliveryCustomerPrintTime, SaleMethodNature } from \"src/app/frontoffice/sales/model/sale-method-branch.model\";\r\nimport { NumberType } from \"../../../../../../../projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { CustomerDetailInfoViewModel } from \"../../../../parties/model/customer.model\";\r\nimport { DiscountTypeEnum, Invoice, InvoiceCommand, InvoiceStatus } from \"../../../model/invoice.model\";\r\nimport { OrderActionEnum } from \"../../../model/orderactioncontrol.model\";\r\nimport { PaymentMethodEnum } from \"../../../model/paymentmethod.enum\";\r\nimport { OrderService } from \"../../../order.service\";\r\nimport { InvoiceActionService } from \"../../../providers/invoiceaction.service\";\r\nimport { CustomerPrintTemplateFormComponent } from \"../customer-print-template-form/customer-print-template-form/customer-print-template-form.component\";\r\nimport { PaymentComponent } from \"../payment/payment.component\";\r\nimport { PreparationDeliveryTimeFormComponent } from \"../preparation-delivery-time-form/preparation-delivery-time-form.component\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class TotalPriceService extends BaseService implements OnInit, OnDestroy {\r\n readOnlyRent: boolean;\r\n invoice: Invoice;\r\n _rotate: boolean;\r\n isPercent: boolean;\r\n isShowAdvanse: boolean = true;\r\n currentRow: any;\r\n _invoiceStatus: typeof InvoiceStatus = InvoiceStatus;\r\n orderActionEnum: typeof OrderActionEnum = OrderActionEnum;\r\n hasDefultPayment: boolean;\r\n isPosPayment: boolean;\r\n isTabletPosPayment: boolean;\r\n showPrintButton: boolean;\r\n showChangeClearing: boolean;\r\n public isStartAction: number = 0;\r\n invoiceCommand: typeof InvoiceCommand = InvoiceCommand;\r\n showMorePrint: boolean = false;\r\n printTamplateList: Lookup[] = [];\r\n PrintTemplatesClear: Lookup[] = [];\r\n printTitle: string;\r\n showDiscount: boolean = false;\r\n HasHappyHour: boolean = false;\r\n saleMethodNatureCode: number;\r\n changeByUser: boolean = false;\r\n oldDiscountPercent: number;\r\n discountTypeEnum: typeof DiscountTypeEnum = DiscountTypeEnum;\r\n changeDiscountType: boolean = false;\r\n clearDiscountFlag: boolean = false;\r\n hasTemporary: boolean;\r\n\r\n constructor(public order: OrderService, public invoiceAction: InvoiceActionService, public common: CommonService) {\r\n super();\r\n this.fillData(this.order.invoice?.Id ? false : true);\r\n this.hasPermissionDiscount();\r\n this.HasTemporaryRegistration();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes[\"currentSaleMethodBranch\"].currentValue && this.order.saleMethodBranch) {\r\n this.showPrintButton = this.order.saleMethodBranch.DeliveryCustomerPrintTimeCode === DeliveryCustomerPrintTime.PreparationPrint;\r\n }\r\n }\r\n hasPermissionDiscount() {\r\n if (this.order.HasAccess(\"GiveDiscount\")) {\r\n this.showDiscount = true;\r\n }\r\n }\r\n ngOnDestroy() {}\r\n ngOnInit() {}\r\n fillData(applyDiscount: boolean = false) {\r\n if (!this.order.HasAccess(\"EditShippingCost\")) {\r\n this.readOnlyRent = true;\r\n }\r\n this.readOnlyRent = false;\r\n this.hasDefultPayment = this.order.saleMethodBranch?.PaymentMethods?.some((s) => s.IsDefault);\r\n const DefultPaymentId = this.order.saleMethodBranch?.PaymentMethods?.find((s) => s.IsDefault)?.PaymentMethodId;\r\n if (DefultPaymentId) {\r\n const findItem = this.order.paymentMethodTypeLookup.find((f) => f.Id === DefultPaymentId).PaymentMethodCode;\r\n if (findItem && findItem === PaymentMethodEnum.Pos) this.isPosPayment = findItem === PaymentMethodEnum.Pos;\r\n if (findItem && findItem === PaymentMethodEnum.TabletPos) this.isTabletPosPayment = findItem === PaymentMethodEnum.TabletPos;\r\n }\r\n //this.isDebit = (this.order.invoice.Debit > 0 || (this.order?.invoice?.Customer?.HasCredit) || this.order?.invoice?.Customer?.AutomaticDebtor) ? true : false;\r\n this.order.setValue(\"Discount\", this.order.invoice.Discount);\r\n if (this.order?.invoice?.Customer?.HasCredit) {\r\n this.order.invoice.isDebit = true;\r\n if (this.order.invoice.Debit > 0) this.order.invoice.isDebit = true;\r\n if (this.order.invoice.Credit > 0) this.order.invoice.isDebit = false;\r\n this.order.setValue(\"Debit\", this.order.invoice.isDebit ? this.order.invoice.Debit : this.order.invoice.Credit);\r\n }\r\n this.order.happyHourDiscountValidation();\r\n this.applyDiscount(this.order.invoice.Discount?.toString() ?? \"\", null, false, this.order.itemChanged);\r\n this.order.detectChanges();\r\n }\r\n //DiscountFocus\r\n onDiscountfocus() {\r\n if (this.order.formGroup.controls[\"Discount\"].value === \"0\" || this.order.formGroup.controls[\"Discount\"].value === 0) {\r\n this.order.setValue(\"Discount\", \"\");\r\n }\r\n }\r\n //اعمال هزینه بسته بندی\r\n applyPackingPrice(value: string) {\r\n if (this.order.formGroup.controls[\"PackingPrice\"].value) this.order.invoice.isPackingDisable = true;\r\n this.order.invoiceChanged = true;\r\n this.order.itemChanged = true;\r\n this.order.calculate();\r\n this.order.detectChanges();\r\n }\r\n //Clear PackingPrice\r\n clearPackingPrice() {\r\n this.order.invoice.PackingPrice = 0;\r\n this.order.setValue(\"PackingPrice\", 0);\r\n\r\n this.order.invoice.isPackingDisable = true;\r\n this.order.invoiceChanged = true;\r\n this.order.itemChanged = true;\r\n this.order.calculate();\r\n this.order.detectChanges();\r\n }\r\n //تغییر کاربر روی تخٝیٝ\r\n inputChange() {\r\n this.order.invoice.DiscountType = DiscountTypeEnum.User;\r\n this.order.validHappyHour = false;\r\n }\r\n //اعمال تخفیف\r\n applyDiscount(value: string, isPercent: boolean, changed: boolean = false, itemChanged: boolean = true) {\r\n this.order.invoiceChanged = true;\r\n this.order.itemChanged = itemChanged;\r\n if (isPercent != null) {\r\n this.order.invoice.changeDiscountType = true;\r\n this.order.invoice.IsDiscountPercent = isPercent;\r\n this.order.invoice.Discount = 0;\r\n this.order.invoice.DiscountType = DiscountTypeEnum.None;\r\n this.order.validHappyHour = false;\r\n this.order.invoice.TotalDiscount = 0;\r\n this.order.invoice.DiscountPrice = 0;\r\n this.order.setValue(\"Discount\", null);\r\n this.order.calculate();\r\n this.order.detectChanges();\r\n return;\r\n }\r\n let discountValue = Number(this.order.formGroup.controls[\"Discount\"].value);\r\n if (this.order.invoice.IsDiscountPercent) {\r\n this.order.invoice.Discount = discountValue;\r\n if (Number(value) > 100) {\r\n value = \"100\";\r\n this.order.invoice.Discount = Number(value);\r\n }\r\n } else {\r\n this.order.invoice.Discount = discountValue;\r\n if (this.order.invoice.PayableTotalLessDiscount < discountValue && discountValue > 0 && this.order.invoice.Items.length > 0) {\r\n this.order.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.PossibleEnterDiscount\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Attention\")\r\n );\r\n }\r\n }\r\n this.order.formGroup.controls[\"Discount\"].setValue(this.order.invoice.Discount);\r\n this.order.invoiceChanged = true;\r\n if (this.order.invoice.DiscountType === DiscountTypeEnum.User) {\r\n if (this.order.invoice.IsDiscountPercent) {\r\n if (this.order.currentUser.PercentDiscount)\r\n if (Number(value) > this.order.currentUser.PercentDiscount) this.order.invoice.Discount = this.order.currentUser.PercentDiscount;\r\n } else {\r\n if (this.order.currentUser.RialDiscount)\r\n if (Number(value) > this.order.currentUser.RialDiscount) this.order.invoice.Discount = this.order.currentUser.RialDiscount;\r\n }\r\n }\r\n this.order.calculate();\r\n }\r\n\r\n //Clear Discount\r\n clearDiscount() {\r\n this.oldDiscountPercent = this.order.invoice.Discount;\r\n this.clearDiscountFlag = true;\r\n this.order.shouldCalculateFreeShippingCost = false;\r\n this.order.invoiceChanged = true;\r\n this.order.itemChanged = true;\r\n this.order.detectChanges();\r\n this.HasHappyHour = false;\r\n this.order.invoice.DiscountType = DiscountTypeEnum.User;\r\n this.order.calculate(null, true);\r\n }\r\n //اعمال کرایه\r\n applyShippingCost(value: number) {\r\n //else {\r\n if (!value) return;\r\n this.order.invoice.ShippingCost = Number(value);\r\n //}\r\n if (!value) return;\r\n this.order.invoiceChanged = true;\r\n this.order.itemChanged = true;\r\n this.order.calculate();\r\n }\r\n\r\n //حذٝ کرایه\r\n clearShippingCost() {\r\n this.order.invoice.ShippingCost = null;\r\n this.order.formGroup.controls[\"ShippingCost\"].setValue(0);\r\n this.order.invoiceChanged = true;\r\n this.order.itemChanged = true;\r\n this.order.calculate();\r\n }\r\n\r\n //اعمال بدهکاری\r\n applyDebit(value: string, isDebit: boolean) {\r\n if (isDebit != null) {\r\n this.order.invoice.isDebit = isDebit;\r\n }\r\n if (this.order.invoice.isDebit) {\r\n if (this.order.formGroup.controls[\"Debit\"].value != this.order.invoice.Debit && this.order.invoice.Debit > 0)\r\n this.order.invoice.isDebitDisable = true;\r\n else {\r\n this.order.invoice.isDebitDisable = false;\r\n }\r\n this.order.invoice.Credit = 0;\r\n this.order.invoice.Debit = this.order.formGroup.controls[\"Debit\"].value;\r\n } else {\r\n this.order.invoice.isDebitDisable = true;\r\n this.order.invoice.Debit = 0;\r\n this.order.invoice.Credit = this.order.formGroup.controls[\"Debit\"].value;\r\n }\r\n if (this.order.invoice.Debit !== this.order.formGroup.controls[\"Debit\"].value) {\r\n this.order.invoiceChanged = true;\r\n } else {\r\n this.order.invoiceChanged = true;\r\n }\r\n this.order.calculate();\r\n }\r\n\r\n clearAndPrintTabletPos() {\r\n this.invoiceAction.tabletPos.tabletPosPrint(this.order.invoice, this.accountService.authService.currentInformation().BrandName);\r\n this.clear(InvoiceCommand.Clear);\r\n }\r\n\r\n /// انتقال کل مبلغ فاکتور به بدهکاری زمانی که مشترک اتوماتیک بدهکار داشته باشد\r\n debitTransfer() {\r\n if (this.order.currentSaleMethodNature === this.order.SaleMethodNature.Delivery && this.order.invoice?.Customer?.HasCredit) {\r\n this.order.invoice.isDebitDisable = false;\r\n this.order.invoice.isDebit = true;\r\n this.order.invoice.Credit = 0;\r\n this.order.invoice.Debit = this.order.invoice.PayableTotal;\r\n this.order.formGroup.controls[\"Debit\"].setValue(this.order.invoice.Debit);\r\n this.order.invoiceChanged = true;\r\n this.order.itemChanged = true;\r\n this.order.calculate();\r\n }\r\n }\r\n\r\n //مودال پرداخت\r\n openMixClearingDialog(isClearWithoutPrint?: Boolean) {\r\n this.invoiceAction.order = this.order;\r\n if (!this.invoiceAction.isValid(this.order.invoice)) return;\r\n if (!this.order.isLight && !this.order.stockDialogIsOpened) {\r\n const notStockList = this.invoiceAction.getNotStockList(this.order.invoice);\r\n if (notStockList.length) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.FollowingItemsUnavailable\")}:
\r\n ${notStockList.join(\"
\")}\r\n `,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.NoStock\"),\r\n DialogType.confirm,\r\n () => {\r\n this.order.stockDialogIsOpened = true;\r\n this.openMixClearingDialog(isClearWithoutPrint);\r\n },\r\n () => {\r\n this.order.stockDialogIsOpened = false;\r\n }\r\n );\r\n this.order.stockDialogIsOpened = true;\r\n return false;\r\n }\r\n }\r\n if (this.order.invoice.PayableTotal === 0 && this.order.invoice.TotalDiscount > 0) {\r\n this.invoiceAction.SaveInvoice(InvoiceCommand.Clear, this.order.invoice, null, this.order);\r\n this.invoiceAction.saveEnd.pipe(take(1)).subscribe((res) => {\r\n if (res) this.order.setActivePage();\r\n });\r\n return;\r\n }\r\n if (\r\n this.order.saleMethodBranch.PreprationTimeRequired &&\r\n !this.order.invoice.PreprationDeliveryTime &&\r\n this.order.invoice.PreparationPrintCount < 1 &&\r\n this.order.invoice.CustomerPrintCount < 1\r\n ) {\r\n this.dialogService\r\n .open(PreparationDeliveryTimeFormComponent, {\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.DeliveryTime\"),\r\n })\r\n .pipe(take(1))\r\n .subscribe((preparationDeliveryTime) => {\r\n if (preparationDeliveryTime) {\r\n this.order.invoice.PreprationDeliveryTime = preparationDeliveryTime;\r\n this.dialogService\r\n .open(\r\n PaymentComponent,\r\n { order: this.order, isClearWithoutPrint: isClearWithoutPrint, invoiceAction: this.invoiceAction, group: null },\r\n { closeOnClickOutside: false }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) this.order.newInvoice();\r\n });\r\n } else {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Error\"),\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.SelectDeliveryTime\")}`\r\n );\r\n }\r\n });\r\n } else {\r\n this.dialogService\r\n .open(\r\n PaymentComponent,\r\n { order: this.order, isClearWithoutPrint: isClearWithoutPrint, invoiceAction: this.invoiceAction, group: null },\r\n { closeOnClickOutside: false }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) this.order.newInvoice();\r\n });\r\n }\r\n }\r\n // انتخاب نحوه باز کردن تسویه\r\n clear(Action?: InvoiceCommand) {\r\n this.fillData();\r\n this.showCustomerForm(Action)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n this.order.invoice?.ReceiptPayments?.forEach((x) => {\r\n x.PaymentMethodCode = this.order.paymentMethodTypeLookup?.find((f) => f.Id === x.PaymentMethodId)?.PaymentMethodCode;\r\n });\r\n\r\n if (\r\n (this.order.invoice.PayableTotal > 0 &&\r\n this.order.invoice?.OriginalValue?.StatusCode == InvoiceStatus.Cleared &&\r\n this.order.invoice?.OriginalValue?.PayableTotal > 0 &&\r\n this.order.invoice.PayableTotal === this.order.invoice?.OriginalValue?.PayableTotal &&\r\n this.order.invoice.Debit === this.order.invoice?.OriginalValue?.Debit) ||\r\n (this.hasDefultPayment &&\r\n (!this.order.invoice?.OriginalValue?.PayableTotal ||\r\n this.order.invoice?.PayableTotal >= this.order.invoice?.OriginalValue?.PayableTotal) &&\r\n this.order.invoice?.OriginalValue?.StatusCode !== InvoiceStatus.Cleared &&\r\n !this.order.invoice?.Customer?.HasCredit)\r\n )\r\n this.invoicesAction(\r\n Action\r\n ? Action\r\n : this.isPosPayment\r\n ? InvoiceCommand.PosPayment\r\n : this.isTabletPosPayment\r\n ? InvoiceCommand.PosPayment\r\n : InvoiceCommand.Clear\r\n );\r\n else this.openMixClearingDialog(Action === InvoiceCommand.ClearWithoutPrint);\r\n }\r\n });\r\n }\r\n\r\n delivered() {\r\n if (this.order.currentSaleMethodNature !== SaleMethodNature.Delivery) {\r\n this.invoicesAction(InvoiceCommand.Clear);\r\n } else this.invoicesAction(InvoiceCommand.PreparationPrint);\r\n }\r\n\r\n //-------------------------------------------------------------Begin HelpMethod\r\n public stateChange(): void {\r\n // this.openTotalPrice = !this.openTotalPrice;\r\n this.order.OrderSetting.IsShowTotalBox = !this.order.OrderSetting.IsShowTotalBox;\r\n this.common.updateSettings(this.order.OrderSetting);\r\n // this.onStateChange.emit();\r\n }\r\n public async invoicesAction(Action: InvoiceCommand) {\r\n if (this.order.invoice.Items?.length <= 0) {\r\n this.order.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.BasketIsEmpty\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Attention\")\r\n );\r\n return;\r\n }\r\n this.invoiceAction.isStartAction++;\r\n this.showCustomerForm(Action)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((res) => {\r\n if (res) {\r\n switch (Action) {\r\n case InvoiceCommand.Save:\r\n this.invoiceAction.SaveInvoice(this.invoiceCommand.Save, this.order.invoice, null, this.order);\r\n break;\r\n case InvoiceCommand.TemporaryRegister:\r\n this.invoiceAction.SaveInvoice(this.invoiceCommand.TemporaryRegister, this.order.invoice, null, this.order);\r\n break;\r\n case InvoiceCommand.PreparationPrint:\r\n this.invoiceAction.SaveInvoice(this.invoiceCommand.PreparationPrint, this.order.invoice, null, this.order);\r\n break;\r\n case InvoiceCommand.CustomerPrint:\r\n this.invoiceAction.SaveInvoice(this.invoiceCommand.CustomerPrint, this.order.invoice, null, this.order);\r\n break;\r\n case InvoiceCommand.CustomerTabletPrint:\r\n this.invoiceAction.SaveInvoice(this.invoiceCommand.CustomerTabletPrint, this.order.invoice, null, this.order);\r\n break;\r\n case InvoiceCommand.Print:\r\n this.invoiceAction.SaveInvoice(this.invoiceCommand.Print, this.order.invoice, null, this.order);\r\n break;\r\n case InvoiceCommand.Clear:\r\n this.invoiceAction.SaveInvoice(this.invoiceCommand.Clear, this.order.invoice, null, this.order);\r\n break;\r\n case InvoiceCommand.PosPayment:\r\n this.invoiceAction.SaveInvoice(this.invoiceCommand.PosPayment, this.order.invoice, null, this.order);\r\n break;\r\n case InvoiceCommand.ClearWithoutPrint:\r\n this.invoiceAction.SaveInvoice(this.invoiceCommand.ClearWithoutPrint, this.order.invoice, null, this.order);\r\n break;\r\n case InvoiceCommand.CustomerFinancialPrint:\r\n this.invoiceAction.SaveInvoice(this.invoiceCommand.CustomerFinancialPrint, this.order.invoice, null, this.order);\r\n break;\r\n case InvoiceCommand.CustomerA5Print:\r\n this.invoiceAction.SaveInvoice(this.invoiceCommand.CustomerA5Print, this.order.invoice, null, this.order);\r\n break;\r\n case InvoiceCommand.CustomerFinancialA5Print:\r\n this.invoiceAction.SaveInvoice(this.invoiceCommand.CustomerFinancialA5Print, this.order.invoice, null, this.order);\r\n break;\r\n default:\r\n return;\r\n }\r\n }\r\n this.invoiceAction.saveEnd.pipe(take(1)).subscribe((res) => {\r\n if (res === true) this.order.newInvoice();\r\n else {\r\n const DefultPaymentId = this.order.saleMethodBranch?.PaymentMethods?.find((s) => s.IsDefault)?.PaymentMethodId;\r\n if (DefultPaymentId && res) {\r\n const findItem = this.order.paymentMethodTypeLookup.find((f) => f.Id === DefultPaymentId).PaymentMethodCode;\r\n let isPosPayment: boolean, isTabletPosPayment: boolean;\r\n if (findItem && findItem === PaymentMethodEnum.Pos) isPosPayment = findItem === PaymentMethodEnum.Pos;\r\n if (findItem && findItem === PaymentMethodEnum.TabletPos) isTabletPosPayment = findItem === PaymentMethodEnum.TabletPos;\r\n if (isPosPayment || isTabletPosPayment) {\r\n this.httpCommonService\r\n .getItem(\"Invoice/GetInvoiceById\", res.Id)\r\n .pipe(take(1))\r\n .subscribe((invoice: Invoice) => {\r\n this.invoiceAction.SaveInvoice(InvoiceCommand.Clear, invoice, null, this.order);\r\n this.invoiceAction.saveEnd.pipe(take(1)).subscribe((res: boolean | Invoice) => {\r\n if (res === true) {\r\n this.invoiceAction.isStartAction = 0;\r\n this.order.newInvoice();\r\n }\r\n });\r\n });\r\n }\r\n }\r\n }\r\n });\r\n this.invoiceAction.ActionFinish.pipe(takeUntil(this.ngUnsubscribe)).subscribe((res) => {\r\n this.invoiceAction.isStartAction = 0;\r\n this.order.detectChanges();\r\n });\r\n });\r\n }\r\n // This function runs when subscribe() is called\r\n getValueFromObservable(): Observable {\r\n return;\r\n }\r\n\r\n /* نمایش فرم ایجاد مشتری در صورت داشتن کد باشگاه */\r\n showCustomerForm(Action?: InvoiceCommand): Observable {\r\n let MobileLookupId: number = this.order.PhoneTypeLookup.find((f) => f.Code === NumberType.Mobile).Id;\r\n const saleMethodBranch = this.order.saleMethodBranch;\r\n if (\r\n saleMethodBranch.HasNecessaryMobile &&\r\n (this.order.invoice.Customer.Number === 0 || !this.order.invoice?.Customer?.Numbers?.some((s) => s.NumberTypeId === MobileLookupId))\r\n ) {\r\n if (\r\n this.order.SaleMethodNature.Restaurant === this.order.currentSaleMethodNature &&\r\n Action !== InvoiceCommand.Clear &&\r\n Action !== InvoiceCommand.ClearWithoutPrint &&\r\n (this.order.invoice.StatusCode === InvoiceStatus.Ordering ||\r\n this.order.invoice.StatusCode === InvoiceStatus.New ||\r\n this.order.invoice.StatusCode === InvoiceStatus.Pending)\r\n ) {\r\n return Observable.of(true);\r\n }\r\n\r\n if (!this.order.customerFormIsShowBefore) {\r\n this.order.customerFormIsShowBefore = true;\r\n return this.dialogService\r\n .open(\r\n CustomerFormComponent,\r\n {\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.SubscriberWithoutNewSubscription\"),\r\n hasClubCustomer: true,\r\n nameIsNotNecessary: !saleMethodBranch.HasNecessaryName,\r\n apiName: \"Customer\",\r\n LastName: this.order.invoice.Customer.LastName,\r\n currentrow: this.order.invoice.Customer.Number === 0 ? null : this.order.invoice?.Customer,\r\n },\r\n { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false }\r\n )\r\n .pipe(\r\n take(1),\r\n mergeMap((ele) => {\r\n if (ele) {\r\n return this.httpCommonService.getItem(\"Customer/GetCustomerDetails\", ele.Id).pipe(\r\n take(1),\r\n map((data: CustomerDetailInfoViewModel) => {\r\n if (data?.Numbers.some((s) => s.NumberTypeId === MobileLookupId)) {\r\n this.order.invoice.Customer = ele;\r\n this.order.invoice.CustomerId = ele.Id;\r\n this.order.invoice.Customer.Number = ele.Number;\r\n this.order.invoice.CustomerDisplayName = data.DisplayName;\r\n this.order.invoice.PhoneNumber = ele.PhoneNumber;\r\n this.order.invoice.PhoneId = data?.Numbers?.find((f) => f.IsDefault)?.Id;\r\n this.order.invoice.CustomerAddres = ele.Address;\r\n this.order.invoice.AddressId = data.Addresses?.find((f) => f.IsDefault)?.Id;\r\n this.order.detectChanges();\r\n this.invoiceAction.isStartAction = 0;\r\n return true;\r\n } else {\r\n this.invoiceAction.isStartAction = 0;\r\n this.order.detectChanges();\r\n return false;\r\n }\r\n })\r\n );\r\n } else {\r\n this.invoiceAction.isStartAction = 0;\r\n this.order.detectChanges();\r\n return of(true);\r\n }\r\n })\r\n );\r\n } else return of(true);\r\n } else {\r\n return of(true);\r\n }\r\n }\r\n\r\n changePrintTemplate(invoice?: Invoice) {\r\n if (invoice) {\r\n this.httpCommonService\r\n .getItem(\"Invoice/GetInvoiceById\", invoice.Id)\r\n .pipe(take(1))\r\n .subscribe((invoice: Invoice) => {\r\n this.order.invoice = invoice;\r\n });\r\n }\r\n this.dialogService\r\n .open(CustomerPrintTemplateFormComponent, {\r\n order: this.order,\r\n areaName: \"RestaurantSale\",\r\n invoiceAction: this.invoiceAction,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.CustomerPrintTemplate\"),\r\n })\r\n .pipe(take(1))\r\n .subscribe((model) => {\r\n if (model) {\r\n this.order.invoice.OtherPrintTemplateId = model;\r\n if (invoice) {\r\n invoice.OtherPrintTemplateId = model;\r\n this.invoiceAction.SaveInvoice(invoice.CommandCode, invoice, true, this.order);\r\n } else {\r\n if (this.order.SaleMethodNature.Delivery === this.order.currentSaleMethodNature)\r\n this.invoiceAction.SaveInvoice(InvoiceCommand.PreparationPrint, this.order.invoice, null, this.order);\r\n else if (this.order.SaleMethodNature.FastFood === this.order.currentSaleMethodNature) this.clear();\r\n else if (this.order.SaleMethodNature.Restaurant === this.order.currentSaleMethodNature)\r\n this.invoiceAction.SaveInvoice(InvoiceCommand.CustomerPrint, this.order.invoice, null, this.order);\r\n }\r\n }\r\n }),\r\n 500;\r\n this.order.detectChanges();\r\n }\r\n\r\n setDeliveryTime() {\r\n this.dialogService\r\n .open(PreparationDeliveryTimeFormComponent, { label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.DeliveryTime\") })\r\n .pipe(take(1))\r\n .subscribe((preparationDeliveryTime) => {\r\n if (preparationDeliveryTime) {\r\n this.order.invoice.PreprationDeliveryTime = preparationDeliveryTime;\r\n }\r\n }),\r\n 500;\r\n }\r\n HasTemporaryRegistration() {\r\n if (this.order.HasAccess(\"TemporaryRegistration\")) this.hasTemporary = true;\r\n }\r\n}\r\n","import { Component, EventEmitter, Output } from \"@angular/core\";\r\nimport { MenuPackage } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu-injector\";\r\nimport { ContextMenuService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu.service\";\r\nimport { MenuComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/menu.component\";\r\nimport { Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { AccountService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { DepositSelectShowHideComponent } from \"./deposit-select-show-hide/deposit-select-show-hide.component\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"app-deposit-menu\",\r\n template: `\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Item.Deposit.Settings\" | translate }}\r\n \r\n `,\r\n})\r\nexport class DepositMenuComponent extends MenuComponent {\r\n lazy = false;\r\n @Output() hasActiveItem = new EventEmitter();\r\n constructor(\r\n public menuPackage: MenuPackage,\r\n public contextMenuService: ContextMenuService,\r\n public dialogService: SimpleModalService,\r\n public accountService: AccountService,\r\n public common: CommonService,\r\n protected sts: ShowToastrService,\r\n private translate: TranslateService\r\n ) {\r\n super(menuPackage, contextMenuService);\r\n }\r\n async handleClick(value: any) {\r\n this.contextMenuService.closeAll();\r\n if (!value && !this.accountService.userHasPermission(`General:DepositFormSetting`, Permission.createPermission)) {\r\n this.sts.showToast(\"danger\", \"\", this.translate.instant(\"ClientApp.FrontOffice.Order.OrderPage.Item.Deposit.NotAccessThisArea\"));\r\n return;\r\n }\r\n if (value && !this.accountService.userHasPermission(`General:DepositFormSetting`, Permission.editPermission)) {\r\n this.sts.showToast(\"danger\", \"\", this.translate.instant(\"ClientApp.FrontOffice.Order.OrderPage.Item.Deposit.NotAccessThisArea\"));\r\n return;\r\n }\r\n this.contextMenuService.closeAll();\r\n value = this.common.storage.getData(ClearableCache.FormSetting);\r\n this.dialogService\r\n .open(\r\n DepositSelectShowHideComponent,\r\n { currentrow: value, service: this.menuPackage.context.service },\r\n { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((model: any) => {});\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { OrderService } from \"src/app/frontoffice/order/order.service\";\r\nimport { DepositFormSettingModel } from \"../depositformsetting.model\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { LocalStoreManager, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Observable } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"ngx-deposit-select-show-hide\",\r\n templateUrl: \"./deposit-select-show-hide.component.html\",\r\n styleUrls: [\"./deposit-select-show-hide.component.scss\"],\r\n})\r\nexport class DepositSelectShowHideComponent extends BaseFormComponent {\r\n service: OrderService;\r\n depositformsetting: DepositFormSettingModel;\r\n\r\n constructor(selectorService: SelectorService, cd: ChangeDetectorRef, public storage: LocalStoreManager) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"DepositFormSetting\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Deposit.Settings\");\r\n this.customColumnInfoApi = \"DepositFormSetting/GetFormColumnInfo\";\r\n this.changeNoCheck = true;\r\n super.ngOnInit();\r\n this.FillData();\r\n }\r\n\r\n FillData() {\r\n this.httpCommonService\r\n .getList(\"DepositFormSetting\")\r\n .pipe(take(1))\r\n .subscribe((result: any[]) => {\r\n if (result?.length > 0) this.model = result[0];\r\n else {\r\n this.setValue(\"FoodPricePerson\", true);\r\n this.setValue(\"HasClearType\", true);\r\n this.setValue(\"HasDeliveryType\", true);\r\n this.setValue(\"HasDepositAmount\", true);\r\n this.setValue(\"HasNumberOfCooks\", true);\r\n this.setValue(\"HasNumberOfPeople\", true);\r\n this.setValue(\"HasServicesAmount\", true);\r\n }\r\n });\r\n this.addControl();\r\n }\r\n addControl(): void {\r\n this.setValue(\"FoodPricePerson\", this.model.FoodPricePerson ?? true);\r\n this.setValue(\"HasClearType\", this.model.HasClearType ?? true);\r\n this.setValue(\"HasDeliveryType\", this.model.HasDeliveryType ?? true);\r\n this.setValue(\"HasDepositAmount\", this.model.HasDepositAmount ?? true);\r\n this.setValue(\"HasNumberOfCooks\", this.model.HasNumberOfCooks ?? true);\r\n this.setValue(\"HasNumberOfPeople\", this.model.HasNumberOfPeople ?? true);\r\n this.setValue(\"HasServicesAmount\", this.model.HasServicesAmount ?? true);\r\n this.cd.markForCheck();\r\n }\r\n async saveForm() {\r\n if (this.model.Id === undefined || this.model.Id === 0 || Number.isNaN(this.model.Id) || this.model.Id === null) {\r\n this.httpCommonService\r\n .create(this.apiName, this.getDataFromFormGroup())\r\n .pipe(take(1))\r\n .subscribe(\r\n (response) => {\r\n this.saveSuccessHelper();\r\n this.model.Id = response;\r\n this.result = this.model;\r\n this.storage.savePermanentData(this.result, ClearableCache.FormSetting);\r\n this.service.controlsVisibility();\r\n this.closeModal();\r\n this.service.detectChanges();\r\n },\r\n (error) => {\r\n this.sts.showDialog(\r\n `${this.label}: ${Utilities.getHttpResponseMessage(error)}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Deposit.ErrorSavingData\")\r\n );\r\n this.result = this.model;\r\n }\r\n );\r\n } else {\r\n this.httpCommonService\r\n .update(this.apiName, this.getDataFromFormGroup())\r\n .pipe(take(1))\r\n .subscribe(\r\n (response) => {\r\n this.saveSuccessHelper();\r\n this.result = this.model;\r\n this.storage.savePermanentData(this.result, ClearableCache.FormSetting);\r\n this.service.controlsVisibility();\r\n this.closeModal();\r\n this.service.detectChanges();\r\n },\r\n (error) => {\r\n this.sts.showDialog(\r\n `${this.label}: ${Utilities.getHttpResponseMessage(error)}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Deposit.ErrorSavingData\")\r\n );\r\n this.result = this.model;\r\n }\r\n );\r\n }\r\n this.closeModal();\r\n }\r\n\r\n refreshSetting() {\r\n this.httpCommonService\r\n .getList(\"DepositFormSetting\")\r\n .pipe(take(1))\r\n .subscribe((result: any[]) => {\r\n if (result?.length > 0) {\r\n this.storage.savePermanentData(result[0], ClearableCache.FormSetting);\r\n }\r\n });\r\n }\r\n\r\n override canDeactivate(): boolean | Observable {\r\n this.closeForm(true);\r\n return true;\r\n }\r\n}\r\n","\r\n\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { OrderService } from \"../../../order.service\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { Permission, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { MealEnum, DeliveryEnum, ClearEnum, DeliveryEnumEng } from \"src/app/frontoffice/catalog/model/deposit.enum\";\r\nimport { DepositPersonnelModel } from \"src/app/frontoffice/catalog/model/deposit.model\";\r\nimport { Validators } from \"@angular/forms\";\r\nimport { DepositMenuComponent } from \"./deposit-menu.component\";\r\nimport { DepositFormSettingModel } from \"./depositformsetting.model\";\r\nimport { LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\n\r\nexport interface EnumModel {\r\n Id: number;\r\n Title: string;\r\n}\r\n\r\n@Component({\r\n selector: \"order-deposit\",\r\n templateUrl: \"./deposit.component.html\",\r\n styleUrls: [\"./deposit.component.scss\"],\r\n})\r\nexport class DepositComponent extends BaseListComponent {\r\n menu = DepositMenuComponent;\r\n depositformsetting: DepositFormSettingModel;\r\n formVisible: boolean = true;\r\n numberOfCooksIsRequired: boolean = true;\r\n MealTimeDataList: EnumModel[];\r\n DeliveryTypeDataList: EnumModel[];\r\n ClearTypeDataList: EnumModel[];\r\n constructor(\r\n public order: OrderService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n public storage: LocalStoreManager\r\n ) {\r\n super();\r\n if (!this.accountService.userHasPermission(`General:DepositFormSetting`, Permission.viewPermission)) {\r\n this.sts.showToast(\"danger\", \"\", this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Deposit.AccessToThisArea\"));\r\n this.formVisible = false;\r\n }\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"Deposit\";\r\n this.setColumns();\r\n super.ngOnInit();\r\n this.MealTimeDataList = this.enumToEnumModelArray(MealEnum);\r\n this.DeliveryTypeDataList = this.enumToEnumModelArray(DeliveryEnum);\r\n this.ClearTypeDataList = this.enumToEnumModelArray(ClearEnum);\r\n this.order.controlsVisibility();\r\n this.order.cd_Deposit = this.cd;\r\n }\r\n\r\n enumToArray(enumObj: any): any[] {\r\n return Object.keys(enumObj)\r\n .filter((key) => !isNaN(Number(enumObj[key])))\r\n .map((key) => ({ Id: Number(enumObj[key]), Title: key }));\r\n }\r\n enumToEnumModelArray(enumObj: any): EnumModel[] {\r\n return Object.keys(enumObj)\r\n .filter((key) => !isNaN(Number(enumObj[key])))\r\n .map((key) => ({ Id: enumObj[key], Title: key }));\r\n }\r\n\r\n setColumns() {\r\n var col: form_control[] = [];\r\n col = [\r\n {\r\n name: \"PersonnelId\",\r\n modelName: \"PersonnelId\",\r\n controlType: FormControlTypes.dropdown,\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Deposit.Personnel\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n disabled: false,\r\n areaName: \"default\",\r\n apiName: \"Personnel/GetCooksAndDrivers\",\r\n displayMember: \"DisplayName\",\r\n valueMember: \"Id\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 200,\r\n required: true,\r\n },\r\n {\r\n name: \"Amount\",\r\n modelName: \"Amount\",\r\n controlType: FormControlTypes.textbox,\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Deposit.Amount\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n disabled: false,\r\n areaName: undefined,\r\n apiName: \"\",\r\n displayMember: \"Title\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 300,\r\n withComma: true,\r\n },\r\n ];\r\n this.columns = col;\r\n this.orignalColumns = col;\r\n }\r\n\r\n public afterSavedList(entity: DepositPersonnelModel): void {\r\n if (!!entity.PersonnelId) {\r\n const otherRows = this.order.depositPersonnelList.filter((x) => x.PersonnelId !== entity.PersonnelId);\r\n this.order.calcDepositServiceAmount(otherRows, entity.Amount);\r\n }\r\n const depositControls = this.order.depositFormGroup.controls;\r\n depositControls[\"ServicesAmount\"].setValidators([Validators.required]);\r\n this.setChangesOnInvoice();\r\n }\r\n\r\n public afterDeletedList(entity: DepositPersonnelModel): void {\r\n if (!!entity.PersonnelId) {\r\n this.order.depositPersonnelList = this.order.depositPersonnelList.filter((x) => x.PersonnelId !== entity.PersonnelId);\r\n this.order.calcDepositServiceAmount(this.order.depositPersonnelList);\r\n }\r\n if (!this.order.depositPersonnelList.length) {\r\n const depositControls = this.order.depositFormGroup.controls;\r\n depositControls[\"ServicesAmount\"].clearValidators();\r\n }\r\n this.setChangesOnInvoice();\r\n }\r\n\r\n public setChangesOnInvoice(): void {\r\n this.order.invoiceChanged = true;\r\n this.order.detectChanges();\r\n this.order.calculate();\r\n }\r\n\r\n public onDeliveryTypeChanges(selectedItem: { Id: number; Title: string }): void {\r\n const NumberOfCooks = this.order.depositFormGroup.controls[\"NumberOfCooks\"];\r\n if (selectedItem?.Id === DeliveryEnumEng.cooking) {\r\n this.numberOfCooksIsRequired = true;\r\n NumberOfCooks.addValidators([Validators.required]);\r\n NumberOfCooks.updateValueAndValidity();\r\n NumberOfCooks.markAsDirty();\r\n NumberOfCooks.markAsTouched();\r\n this.order.focus(\"NumberOfCooks\");\r\n } else {\r\n this.numberOfCooksIsRequired = false;\r\n NumberOfCooks.clearValidators();\r\n NumberOfCooks.updateValueAndValidity();\r\n }\r\n this.order.depositFormGroup.updateValueAndValidity();\r\n this.order.detectChanges();\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n\r\nexport class DepositFormSettingModel extends EntityBase {\r\n public HasServicesAmount: boolean;\r\n public HasDepositAmount: boolean;\r\n public HasNumberOfCooks: boolean;\r\n public HasDeliveryType: boolean;\r\n public HasNumberOfPeople: boolean;\r\n public HasClearType: boolean;\r\n public FoodPricePerson: boolean;\r\n constructor() {\r\n super();\r\n this.HasServicesAmount = true;\r\n this.HasDepositAmount = true;\r\n this.HasNumberOfCooks = true;\r\n this.HasDeliveryType = true;\r\n this.HasNumberOfPeople = true;\r\n this.HasClearType = true;\r\n this.FoodPricePerson = true;\r\n }\r\n}\r\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { OrderService } from \"src/app/frontoffice/order/order.service\";\r\nimport { OrderItem, OrderDescription } from \"src/app/frontoffice/order/model/orderItemcategory.model\";\r\nimport { InvoiceItemAdditive, InvoiceItemDescription, InvoiceItem } from \"src/app/frontoffice/order/model/invoice.model\";\r\nimport { LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { Validators, UntypedFormControl, UntypedFormGroup, FormControl, FormGroup } from \"@angular/forms\";\r\nimport { OrderSettingModel } from \"../../../model/ordersetting.model\";\r\nimport { RowState } from \"../../../../../../../projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { ItemOrderService } from \"../itemorder.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\n\r\n@Component({\r\n selector: \"order-description\",\r\n templateUrl: \"./description.component.html\",\r\n styleUrls: [\"./description.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [ItemOrderService],\r\n})\r\nexport class DescriptionComponent extends BaseListComponent {\r\n currentItem: OrderItem;\r\n _rotate: boolean = true;\r\n showBox: boolean;\r\n dailyInventory: boolean = false;\r\n\r\n formGroup: FormGroup = new FormGroup({\r\n justInBasket: new FormControl(null),\r\n });\r\n\r\n constructor(\r\n public order: OrderService,\r\n private itemservice: ItemOrderService,\r\n public cd: ChangeDetectorRef,\r\n public storage: LocalStoreManager,\r\n private common: CommonService\r\n ) {\r\n super();\r\n this.NoLog = true;\r\n order.cd_Description = cd;\r\n }\r\n ngOnInit() {\r\n let group: any = {};\r\n group[\"ExtraDescription\"] = new UntypedFormControl(undefined, Validators.maxLength(200));\r\n group[\"Extraingredient\"] = new UntypedFormControl(undefined, Validators.maxLength(200));\r\n this.group = new UntypedFormGroup(group);\r\n if (!this.order.isLight) this.initializeInvColumns();\r\n this.dailyInventory = this.common.LocalSetting.OrderSetting.OrderDescriptionBox;\r\n }\r\n\r\n public stateChange(): void {\r\n if (this.order.OrderSetting.IsShowDescriptionBox) {\r\n this._rotate = false;\r\n }\r\n if (!this.order.OrderSetting.IsShowDescriptionBox) {\r\n this._rotate = true;\r\n }\r\n if (this.order.OrderSetting) this.order.OrderSetting.IsShowDescriptionBox = !this.order.OrderSetting.IsShowDescriptionBox;\r\n else {\r\n this.order.OrderSetting = new OrderSettingModel();\r\n this.order.OrderSetting.IsShowDescriptionBox = !this.order.OrderSetting.IsShowDescriptionBox;\r\n }\r\n this.common.updateSettings(this.order.OrderSetting);\r\n }\r\n addAdditive(item: any) {\r\n if (this.order.invoice.Items.length <= 0) return;\r\n item.IsSelected = !item.IsSelected;\r\n const find_item = this.order.selectedInvoiceItem;\r\n if (item.IsSelected) {\r\n const find_item = this.order.selectedInvoiceItem;\r\n let additive = new InvoiceItemAdditive();\r\n additive.AdditiveId = item.Id;\r\n additive.qty = 1;\r\n additive.UnitPrice = item.MainPrice;\r\n additive.AdditiveTitle = item.Title;\r\n additive.ApplyTax = item.ApplyTax;\r\n additive.ApplyService = item.ApplyService;\r\n additive.Tax = item.Tax;\r\n additive.State = RowState.New;\r\n additive.Toll = item.Toll;\r\n additive.PackingPrice = item.PackingPrice;\r\n const find_PriceType = item.Prices?.find((f) => f.SalePriceTypeId === this.order.invoice.SalePriceTypeId);\r\n if (find_PriceType) additive.MainPrice = find_PriceType?.Price;\r\n else additive.MainPrice = item.Prices?.find((f) => f.IsDefault).Price;\r\n const findInvoiceItem = this.order.invoice.Items.find((f) => f.ItemId === find_item.ItemId && f.Index === find_item.Index);\r\n if (findInvoiceItem) {\r\n if (\r\n !this.order.HasAccess(\"PositiveEditOrderingStatus\") &&\r\n !this.order.HasAccess(\"PositiveEditClearingStatus\") &&\r\n !this.order.HasAccess(\"PositiveEditClearedStatus\") &&\r\n !this.order.HasAccess(\"PositiveEditAssignedStatus\")\r\n ) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Description.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Description.AccessToThisArea\")\r\n );\r\n item.IsSelected = false;\r\n return;\r\n }\r\n findInvoiceItem.Additives.push(additive);\r\n }\r\n } else {\r\n const find = this.order.invoice.Items.findIndex((f) => f.ItemId === find_item.ItemId && f.Index === find_item.Index);\r\n const find_description_Index = this.order.invoice.Items[find].Additives.findIndex((f) => f.AdditiveId === item.Id);\r\n this.order.invoice.Items[find].Additives.splice(find_description_Index, 1);\r\n }\r\n if (!item.IsSelected) {\r\n const mainstring = this.order.invoice.Items.find((f) => f.ItemId === find_item.ItemId && f.Index === find_item.Index).Description;\r\n this.order.invoice.Items.find((f) => f.ItemId === find_item.ItemId && f.Index === find_item.Index).Description = mainstring.replace(\r\n item.Title + \" ، \",\r\n \"\"\r\n );\r\n } else {\r\n this.order.invoice.Items.find((f) => f.ItemId === find_item.ItemId && f.Index === find_item.Index).Description += item.Title + \" ، \";\r\n }\r\n this.refreshItemDescription(find_item);\r\n }\r\n addDescription(item: OrderDescription) {\r\n if (this.order.invoice.Items.length <= 0) return;\r\n item.IsSelected = !item.IsSelected;\r\n const find_item = JSON.parse(JSON.stringify(this.order.selectedInvoiceItem));\r\n if (item.IsSelected) {\r\n const orderDescription = new InvoiceItemDescription();\r\n orderDescription.DescriptionId = item.Id;\r\n orderDescription.DescriptionTitle = item.Title;\r\n orderDescription.State = RowState.New;\r\n const findInvoiceItem = this.order.invoice.Items.find((f) => f.ItemId === find_item.ItemId && f.Index === find_item.Index);\r\n if (findInvoiceItem) {\r\n orderDescription.InvoiceItemId = findInvoiceItem.Id;\r\n findInvoiceItem.Descriptions.push(orderDescription);\r\n }\r\n } else {\r\n const find = this.order.invoice.Items.findIndex((f) => f.ItemId === find_item.ItemId && f.Index === find_item.Index);\r\n const find_description_Index = this.order.invoice.Items[find].Descriptions.findIndex((f) => f.DescriptionId === item.Id);\r\n if (find_description_Index >= 0) this.order.invoice.Items[find].Descriptions.splice(find_description_Index, 1);\r\n }\r\n if (!item.IsSelected) {\r\n const mainstring = this.order.invoice.Items.find((f) => f.ItemId === find_item.ItemId && f.Index === find_item.Index).Description;\r\n this.order.invoice.Items.find((f) => f.ItemId === find_item.ItemId && f.Index === find_item.Index).Description = mainstring.replace(\r\n item.Title + \" ، \",\r\n \"\"\r\n );\r\n } else {\r\n this.order.invoice.Items.find((f) => f.ItemId === find_item.ItemId && f.Index === find_item.Index).Description += item.Title + \" ، \";\r\n }\r\n this.refreshItemDescription(find_item);\r\n }\r\n refreshItemDescription(invoiceitem: InvoiceItem) {\r\n this.order.itemChanged = true;\r\n this.order.calculate();\r\n this.itemservice.scrollToItem(invoiceitem, true);\r\n }\r\n addCustomDescription() {\r\n if (\r\n !this.order.formGroup.controls[`CustomDescription${this.order.invoice.SaleMethodBranchId}`].value ||\r\n this.order.formGroup.controls[`CustomDescription${this.order.invoice.SaleMethodBranchId}`].value === \"\" ||\r\n !this.order.selectedInvoiceItem\r\n )\r\n return;\r\n if (!this.order.CustomDescriptionId) {\r\n this.httpCommonService\r\n .get(`Description/CustomDescription`)\r\n .pipe(take(1))\r\n .subscribe((data: number) => {\r\n this.order.CustomDescriptionId = data;\r\n const des = new OrderDescription();\r\n des.Title = this.order.formGroup.controls[`CustomDescription${this.order.invoice.SaleMethodBranchId}`].value;\r\n des.Id = data;\r\n this.addDescription(des);\r\n this.order.formGroup.controls[`CustomDescription${this.order.invoice.SaleMethodBranchId}`].setValue(\"\");\r\n this.showBox = !this.showBox;\r\n this.order.detectChanges();\r\n });\r\n } else {\r\n const desc = new OrderDescription();\r\n desc.Title = this.order.formGroup.controls[`CustomDescription${this.order.invoice.SaleMethodBranchId}`].value;\r\n desc.Id = this.order.CustomDescriptionId;\r\n this.addDescription(desc);\r\n this.order.formGroup.controls[`CustomDescription${this.order.invoice.SaleMethodBranchId}`].setValue(\"\");\r\n this.showBox = !this.showBox;\r\n this.order.detectChanges();\r\n }\r\n }\r\n // حذف توضیح\r\n removeItemDescription(additive: OrderDescription, invoiceitem: InvoiceItem) {\r\n if (\r\n invoiceitem?.Descriptions?.length > 0 &&\r\n invoiceitem?.Descriptions.some((s) =>\r\n s.DescriptionTitle.includes(this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Description.ManualDescription\"))\r\n )\r\n ) {\r\n if (additive.IsSelected) {\r\n const mainstring = this.order.invoice.Items.find((f) => f.ItemId === invoiceitem.ItemId && f.Index === invoiceitem.Index).Description;\r\n this.order.invoice.Items.find((f) => f.ItemId === invoiceitem.ItemId && f.Index === invoiceitem.Index).Description = mainstring.replace(\r\n additive.Title,\r\n \"\"\r\n );\r\n } else {\r\n this.order.invoice.Items.find((f) => f.ItemId === invoiceitem.ItemId && f.Index === invoiceitem.Index).Description += additive.Title + \" ، \";\r\n }\r\n } else {\r\n this.refreshItemDescription(invoiceitem);\r\n }\r\n }\r\n ClearCustomDescription() {\r\n this.order.setValue(`CustomDescription${this.order.invoice.SaleMethodBranchId}`, \"\");\r\n }\r\n ShowDescription() {\r\n this.showBox = !this.showBox;\r\n setTimeout(() => {\r\n this.order.focus(`CustomDescription${this.order.invoice.SaleMethodBranchId}`);\r\n }, 50);\r\n }\r\n\r\n onShowMinimumJustInBasketChanges(showMinimumJustInBasket: boolean) {\r\n const branchId = this.order.invoice.BranchId || this.order.logInBranch.Id;\r\n if (showMinimumJustInBasket) {\r\n let list = [];\r\n this.order.invoice?.Items?.forEach((item) => {\r\n const stockItems = this.order.dailyInventoryList.filter((x) => x.ItemsInRelation.some((x) => x.Id === item.ItemId));\r\n list.push(...stockItems);\r\n });\r\n this.order.dailyInventoryList = list;\r\n } else this.order.setDailyInventoryList(branchId);\r\n this.cd.markForCheck();\r\n }\r\n\r\n private initializeInvColumns() {\r\n this.columns = [\r\n {\r\n name: \"GoodsCode\",\r\n modelName: \"GoodsCode\",\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Description.ItemCode\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: false,\r\n disabled: false,\r\n areaName: \"default\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 100,\r\n },\r\n {\r\n name: \"GoodsTitle\",\r\n modelName: \"GoodsTitle\",\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Description.ItemTitle\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: false,\r\n disabled: false,\r\n areaName: \"default\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 150,\r\n },\r\n {\r\n name: \"MinAmount\",\r\n modelName: \"MinAmount\",\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Description.MinimumInventory\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: false,\r\n disabled: false,\r\n areaName: undefined,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 120,\r\n },\r\n {\r\n name: \"EntryAmount\",\r\n modelName: \"EntryAmount\",\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Description.Charge\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: false,\r\n disabled: false,\r\n areaName: undefined,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 70,\r\n },\r\n {\r\n name: \"SaleAmount\",\r\n modelName: \"SaleAmount\",\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Description.Sell\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: false,\r\n disabled: false,\r\n areaName: undefined,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 70,\r\n },\r\n {\r\n name: \"Amount\",\r\n modelName: \"Amount\",\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Description.Inventory\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: false,\r\n disabled: false,\r\n areaName: undefined,\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 70,\r\n },\r\n ];\r\n }\r\n\r\n dailyInventoryShow(state: \"desc\" | \"dailyInventory\") {\r\n if (state === \"desc\") {\r\n this.dailyInventory = false;\r\n this.common.LocalSetting.OrderSetting.OrderDescriptionBox = false;\r\n this.common.updateSettings();\r\n } else {\r\n this.dailyInventory = true;\r\n this.common.LocalSetting.OrderSetting.OrderDescriptionBox = true;\r\n this.common.updateSettings();\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Item.Description.DescriptionTitle\" | translate }} \r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Item.Description.DailyInventory\" | translate }} \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Item.Description.AddDescription\" | translate }}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
{{ item.Title }}
\r\n
\r\n \r\n
{{ additive.Title }}
\r\n
{{ additive.MainPrice | number }}
\r\n
\r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, OnInit, Output } from \"@angular/core\";\r\nimport { MenuPackage } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu-injector\";\r\nimport { ContextMenuService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu.service\";\r\nimport { MenuComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/menu.component\";\r\nimport { AccountService, AuthService, HttpCommonService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ContextMenuEnum } from \"../../../model/contextMenuenum\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { CategoryPopupState, StockInWebKind } from \"src/app/frontoffice/catalog/model/item.model\";\r\n\r\n@Component({\r\n selector: \"simple-menu\",\r\n // add your menu html\r\n template: `\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Item.Desktop.MakeAvailable\" | translate }}\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Item.Desktop.MakeUnavailable\" | translate }}\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Item.Desktop.UnavailableOnSite\" | translate }}\r\n \r\n \r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Item.Desktop.MakeAvailable\" | translate }}\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Item.Desktop.MakeUnavailable\" | translate }}\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Item.Desktop.UnavailableOnSite\" | translate }}\r\n \r\n '\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Item.Desktop.MakeAvailable\" | translate }}\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Item.Desktop.MakeUnavailable\" | translate }}\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Item.Desktop.UnavailableOnSite\" | translate }}\r\n \r\n \r\n \r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SimpleMenuComponent extends MenuComponent implements OnInit {\r\n // this module does not have animations, set lazy false\r\n lazy = false;\r\n StockInWebKindEnum = StockInWebKind;\r\n isCategory: boolean = true;\r\n showStockInWeb: boolean = false;\r\n @Output() hasActiveItem = new EventEmitter();\r\n showStockInWebDeposit: boolean;\r\n availableCount: number = 0;\r\n unAvailableCount: number = 0;\r\n unAvailableInSiteCount: number = 0;\r\n categoryPopupState = CategoryPopupState;\r\n constructor(\r\n public menuPackage: MenuPackage,\r\n public contextMenuService: ContextMenuService,\r\n public http: HttpCommonService,\r\n private accountService: AccountService,\r\n public authService: AuthService\r\n ) {\r\n super(menuPackage, contextMenuService);\r\n // grab any required menu context passed via menuContext input\r\n }\r\n ngOnInit(): void {\r\n if (this.menuPackage?.context?.enum === ContextMenuEnum.Category) this.isCategory = true;\r\n else this.isCategory = false;\r\n this.hasPermissionChangeStockInWeb();\r\n }\r\n handleClick(StockInWeb?: StockInWebKind) {\r\n // IMPORTANT! tell the menu to close, anything passed in here is given to (menuAction)\r\n switch (this.menuPackage.context.enum) {\r\n case ContextMenuEnum.Category:\r\n this.menuPackage.context.order?.splashFormService?.openDialog(\"\");\r\n this.http\r\n .get(\r\n `ItemCategory/StockInWebItemsByCategory/${this.menuPackage.context.value.Id}/${StockInWeb}/${this.accountService.authService.currentBranchId}`\r\n )\r\n .pipe(take(1))\r\n .subscribe(\r\n (data) => {\r\n this.menuPackage.context.order.itemHasParent = null;\r\n this.menuPackage.context.order?.detectChanges();\r\n this.menuPackage.context.value.categoryPopupState == StockInWeb;\r\n this.menuPackage.context.order?.splashFormService?.closeLoading();\r\n },\r\n (err) => {\r\n this.menuPackage.context.order?.splashFormService?.closeLoading();\r\n }\r\n );\r\n\r\n break;\r\n case ContextMenuEnum.Item:\r\n this.menuPackage.context.order?.splashFormService?.openDialog(\"\");\r\n this.http\r\n .get(`Item/StockInWeb/${this.menuPackage.context.value.Id}/${StockInWeb}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data) => {\r\n this.menuPackage.context.value.StockInWeb = data;\r\n this.menuPackage.context.order.itemHasParent = null;\r\n this.menuPackage.context.order?.detectChanges();\r\n this.menuPackage.context.order?.splashFormService?.closeLoading();\r\n },\r\n (err) => {\r\n this.menuPackage.context.order?.splashFormService?.closeLoading();\r\n }\r\n );\r\n\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n this.contextMenuService.closeAll();\r\n }\r\n hasPermissionChangeStockInWeb() {\r\n if (this.menuPackage.context.order.HasAccess(\"StockInWeb\")) {\r\n this.showStockInWeb = true;\r\n }\r\n }\r\n hasStockInWebIndeposit() {\r\n if (this.menuPackage.context.order.saleMethodBranch.HasDeposit) {\r\n this.showStockInWebDeposit = true;\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, OnDestroy, ViewChild } from \"@angular/core\";\r\nimport { AngularResizeElementEvent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/resizable/angular-resize-element-event.interface\";\r\nimport { AngularResizeElementDirection } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/resizable/angular-resize-element.enum\";\r\nimport { ContextMenuEnum } from \"../../../model/contextMenuenum\";\r\nimport { ItemOrderService } from \"../itemorder.service\";\r\nimport { SimpleMenuComponent } from \"./contextment\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { OrderSizeEnum } from \"../../../model/orderSize.enum\";\r\nimport { OrderSettingModel, OrderSizeModel } from \"../../../model/ordersetting.model\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { Validators } from \"@angular/forms\";\r\nimport { Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Subject } from \"rxjs\";\r\nimport { CategoryPopupState } from \"src/app/frontoffice/catalog/model/item.model\";\r\nimport { OrderItem } from \"../../../model/orderItemcategory.model\";\r\n@Component({\r\n selector: \"order-item\",\r\n templateUrl: \"./item.component.html\",\r\n styleUrls: [\"./item.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ItemComponent implements OnDestroy {\r\n [x: string]: any;\r\n public changeView: boolean = false;\r\n public changeCatView: boolean = false;\r\n menu = SimpleMenuComponent;\r\n popUpState = CategoryPopupState;\r\n public contextmenuEnum: typeof ContextMenuEnum = ContextMenuEnum;\r\n highlightStar: boolean = false;\r\n @ViewChild(\"container\", { read: ElementRef })\r\n public readonly containerElement;\r\n ngUnsubscribe = new Subject();\r\n constructor(public cd: ChangeDetectorRef, public itemService: ItemOrderService, public common: CommonService, __id: FormContainerModel) {\r\n this.itemService.order.cd_Footer = this.cd;\r\n this.itemService.order.__id = __id.metadata.id;\r\n }\r\n\r\n public readonly AngularResizeElementDirection = AngularResizeElementDirection;\r\n public data: any = {};\r\n\r\n public Resize(evt: AngularResizeElementEvent): void {\r\n this.data.width = evt.currentWidthValue;\r\n this.data.height = evt.currentHeightValue;\r\n this.data.top = evt.currentTopValue;\r\n this.data.left = evt.currentLeftValue;\r\n }\r\n resizeEnd(evt: AngularResizeElementEvent) {\r\n const orderSize = new OrderSizeModel();\r\n orderSize.width = evt.currentWidthValue;\r\n orderSize.height = evt.currentHeightValue;\r\n orderSize.top = evt.currentTopValue;\r\n orderSize.left = evt.currentLeftValue;\r\n orderSize.key = OrderSizeEnum.Item;\r\n orderSize.saleBranchId = this?.itemService?.order?.saleMethodBranch?.Id;\r\n\r\n if (!this.common.LocalSetting.OrderSetting) this.common.LocalSetting.OrderSetting = new OrderSettingModel();\r\n if (!this.common?.LocalSetting?.OrderSetting?.OrderSize) this.common.LocalSetting.OrderSetting.OrderSize = [];\r\n\r\n const index = this.common.LocalSetting.OrderSetting.OrderSize.findIndex(\r\n (f) => f.key === OrderSizeEnum.Item && f.saleBranchId === this.itemService.order.saleMethodBranch.Id\r\n );\r\n\r\n if (index < 0) this.common.LocalSetting.OrderSetting.OrderSize.push(orderSize);\r\n else this.common.LocalSetting.OrderSetting.OrderSize[index] = orderSize;\r\n\r\n this.common.updateSettings();\r\n }\r\n getSetting() {\r\n this.itemService.order.OrderSetting = this.common.LocalSetting?.OrderSetting;\r\n this.changeView = this.itemService.order.OrderSetting.changeView;\r\n this.changeCatView = this.itemService.order.OrderSetting.changeCatView;\r\n const evt = this.itemService?.order?.OrderSetting?.OrderSize?.find(\r\n (f) => f.key === OrderSizeEnum.Item && f.saleBranchId === this.itemService.order.saleMethodBranch.Id\r\n );\r\n if (evt) {\r\n this.data.width = evt.width;\r\n this.data.height = evt.height;\r\n this.data.top = evt.top;\r\n this.data.left = evt.left;\r\n this.itemService.order.saleMethodBranch.Id = evt.saleBranchId;\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n changeCategoryView() {\r\n this.changeCatView = !this.changeCatView;\r\n this.common.LocalSetting.OrderSetting.changeCatView = this.changeCatView;\r\n this.common?.updateSettings(this.common?.LocalSetting?.OrderSetting);\r\n }\r\n\r\n changeItemView() {\r\n this.changeView = !this.changeView;\r\n this.common.LocalSetting.OrderSetting.changeView = this.changeView;\r\n this.common?.updateSettings(this.common?.LocalSetting?.OrderSetting);\r\n }\r\n\r\n ngOnInit() {\r\n this.itemService.order.setValue(`Quantity${this.itemService.order.__id}`, undefined, false, Validators.maxLength(20));\r\n this.itemService.order.setValue(`ItemTitle${this.itemService.order.__id}`, undefined, false, Validators.maxLength(500));\r\n this.itemService.order.setValue(`Code${this.itemService.order.__id}`, undefined, false, Validators.maxLength(20));\r\n this.itemService.order.focusInput();\r\n this.getSetting();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n }\r\n\r\n depositShowHide() {\r\n const hasAccess = this.itemService.order.accountService.userHasPermission(`RestaurantSale:Deposit`, Permission.createPermission);\r\n if (hasAccess) this.itemService.order.isShowDeposit = !this.itemService.order.isShowDeposit;\r\n else this.itemService.sts.showToast(\"danger\", \"\", this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Desktop.AccessToThisArea\"));\r\n }\r\n\r\n ClearItemNameInput() {\r\n this.itemService.order.setValue(`ItemTitle${this.itemService.order.__id}`, \"\");\r\n }\r\n\r\n async checkfavorite(item: OrderItem) {\r\n if (item.favoriteIndex > -1) {\r\n let favItem = this.itemService.order.favoriteItems.find((it) => it.ItemId == item.Id);\r\n if (this.itemService.order.accountService.userHasPermission(\"RestaurantSale:FavoriteItem\", \"Delete\")) {\r\n await this.itemService.order.deleteFav(favItem);\r\n item.favoriteIndex = -1;\r\n this.updateArray();\r\n } else {\r\n this.itemService.sts.showToast(\r\n \"control\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Desktop.NoAccess\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Desktop.DoNotAccessToChangePreferences\")\r\n );\r\n }\r\n } else {\r\n if (this.itemService.order.accountService.userHasPermission(\"RestaurantSale:FavoriteItem\", \"Post\")) {\r\n await this.itemService.order.setFavorite(item);\r\n this.updateArray();\r\n } else {\r\n this.itemService.sts.showToast(\r\n \"control\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Desktop.NoAccess\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Desktop.DoNotAccessToChangePreferences\")\r\n );\r\n }\r\n }\r\n this.cd.detectChanges();\r\n }\r\n\r\n updateArray() {\r\n if (this.itemService.order.selectedItemCategory.Id == 0) {\r\n const bundles = this.itemService.order.getBundles();\r\n for (let bundle of bundles) {\r\n this.itemService.order.sortingArrayByFav(bundle.ItemChild);\r\n }\r\n let tempArr = this.itemService.order.sortingArrayByFav(this.itemService.order.selectedItemCategory.Items);\r\n this.itemService.order.selectedItemCategory.Items = null;\r\n this.itemService.order.selectedItemCategory.Items = [...tempArr];\r\n if (this.itemService.order.itemHasParent) {\r\n tempArr = this.itemService.order.sortingArrayByFav(this.itemService.order.itemHasParent);\r\n this.itemService.order.itemHasParent = null;\r\n this.itemService.order.itemHasParent = [...tempArr];\r\n }\r\n }\r\n this.cd.detectChanges();\r\n }\r\n\r\n backOfBundle() {\r\n this.itemService.order.itemHasParent = null;\r\n if (this.itemService.order.selectedItemCategory.Id == 0) {\r\n let itemCategoryAll = this.itemService.order.itemCategoryList.find((it) => it.Id == 0);\r\n this.itemService.changeItemCategory(itemCategoryAll);\r\n }\r\n this.updateArray();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {{ itemCategory.Title }}\r\n
\r\n \r\n \r\n \r\n \r\n {{ itemCategory.Title }}\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ itemService.order.selectedItemCategory.Title }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n = 0 ? 'd-inline-flex' : ''\">\r\n = 0 ? 'icon-starradius-f' : 'icon-starradius-o'\" class=\"staricon\">\r\n \r\n \r\n
\r\n
{{ item.Title }}
\r\n
\r\n {{ item.DetaultPrice | number }}\r\n 0\" class=\"itemnumber\">{{ item.Code }}\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
{{ item.Title }}
\r\n
\r\n {{ item.DetaultPrice | number }}\r\n 0\" class=\"itemnumber\">{{ item.Code }}\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n 0 && itemService.common.isMobileMode\"\r\n (click)=\"itemService.changeInvoiceQuantity(item, itemService.invoiceservice.itemStateEnum.Increase)\">\r\n \r\n 0 && itemService.common.isMobileMode\">{{ item.InvoiceQty }}\r\n 0 && itemService.common.isMobileMode\"\r\n (click)=\"itemService.changeInvoiceQuantity(item, itemService.invoiceservice.itemStateEnum.Decrease)\">\r\n \r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n = 0 ? 'd-inline-flex' : ''\">\r\n = 0 ? 'icon-starradius-f' : 'icon-starradius-o'\" class=\"staricon\">\r\n \r\n \r\n
\r\n
{{ item.Title }}
\r\n
\r\n \r\n {{ item.DetaultPrice | number }}\r\n \r\n {{ item.Code }}\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n
{{ item.Title }}
\r\n
\r\n \r\n {{ item.DetaultPrice | number }}\r\n \r\n {{ item.Code }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n 0\" (click)=\"itemService.setSelectedItem(item)\"> \r\n 0\">\r\n {{ item.InvoiceQty }}\r\n \r\n 0\"\r\n (click)=\"itemService.changeInvoiceQuantity(item, itemService.invoiceservice.itemStateEnum.Decrease)\">\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BaseService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-service.component\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { DiscountTypeEnum, InvoiceItem, InvoiceStatus, ItemStateEnum } from \"../../model/invoice.model\";\r\nimport { ItemDependencyType, UnitKindEnum } from \"../../model/ItemOrder.model\";\r\nimport { OrderItem, OrderItemCategory } from \"../../model/orderItemcategory.model\";\r\nimport { OrderService } from \"../../order.service\";\r\nimport { InvoiceService } from \"../invoice/invoice.service\";\r\nimport { InvDailyBalanceInhibitorValueEnum } from \"src/app/gnr/branch/branch.enum\";\r\nimport { BarCodeType, StockInWebKind } from \"src/app/frontoffice/catalog/model/item.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport * as moment from \"moment\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ItemOrderService extends BaseService {\r\n public _opened: boolean = false;\r\n public selectedItemCategory: OrderItemCategory = new OrderItemCategory();\r\n public ItemCategory: OrderItemCategory[];\r\n public findOrderItem: OrderItem;\r\n public changeview: boolean;\r\n public findOrderItemByCode: OrderItem;\r\n public findOrderItemByBarCodes: OrderItem;\r\n\r\n public itemsList: string[] = [];\r\n\r\n private oldSelectedItemCategory: any;\r\n constructor(public order: OrderService, public common: CommonService, public invoiceservice: InvoiceService) {\r\n super();\r\n }\r\n\r\n async setSelectedItem(item?: OrderItem, qty?: number) {\r\n item.activeItem = true;\r\n if (item.Code === 0) {\r\n this.order.itemHasParent = item.ItemChild;\r\n return;\r\n }\r\n item.UnitKind = UnitKindEnum.NormalItem;\r\n if (this.order.hasPosScale && this.order.posScaleService.isConnected && !qty) {\r\n const success = await this.order.posScaleService.getWeight().then((res: number) => {\r\n if (res > 0) {\r\n qty = res;\r\n item.UnitKind = UnitKindEnum.PosScaleItem;\r\n return true;\r\n } else if (res < 0) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.PosScaleNegative\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Warning\"),\r\n DialogType.confirm,\r\n () => this.setSelectedItem(item, 1)\r\n );\r\n return false;\r\n }\r\n });\r\n if (success === false) return;\r\n }\r\n const currentBranch = this.order.Branches?.find((x) => x.Id === this.order.invoice.BranchId) || this.order.logInBranch;\r\n const hasDeposit = this.order.currentInformation?.OrderServices && this.order.saleMethodBranch?.HasDeposit;\r\n if (!hasDeposit || this.order.invoice?.StatusCode === InvoiceStatus.Ordering) {\r\n if (item.StockInWeb === StockInWebKind.UnAvailable) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Product\")}: ${item.Title} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.OrderPage.Item.NotAvailable\"\r\n )}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.OutOfStock\")\r\n );\r\n if (currentBranch?.InvDailyBalanceInhibitorId === InvDailyBalanceInhibitorValueEnum.Inhibitor) return false;\r\n } else if (item.notAvailableGoodIds?.length && item.StockInWeb === StockInWebKind.UnAvailableFromInv) {\r\n let title = \"\";\r\n if (item.notAvailableGoodIds?.length) {\r\n const goodsStockInfos = this.order.warehouseStockItems?.filter(\r\n (x) =>\r\n (x.PrevRemainAmount || x.EntryAmount) &&\r\n x.BranchId === this.order.invoice.BranchId &&\r\n item.notAvailableGoodIds.some((goodsId) => x.GoodsId === goodsId)\r\n );\r\n if (goodsStockInfos?.length) {\r\n goodsStockInfos.forEach((info) => {\r\n title += info.GoodsTitle + \" -- \";\r\n });\r\n }\r\n }\r\n if (title)\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Product\")}: ${title} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.OrderPage.Item.NotAvailable\"\r\n )}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.OutOfStock\")\r\n );\r\n if (currentBranch?.InvDailyBalanceInhibitorId === InvDailyBalanceInhibitorValueEnum.Inhibitor) return false;\r\n } else if (!this.order.isLight) {\r\n const goodsStockInfo = this.order.warehouseStockItems.find(\r\n (x) =>\r\n (x.PrevRemainAmount || x.EntryAmount) &&\r\n x.BranchId === this.order.invoice.BranchId &&\r\n (x.ItemsInRelation.some((x) => x.Id === item.Id) || x.GoodsId === item.GoodsId)\r\n );\r\n\r\n const goodsFormulaQty =\r\n (goodsStockInfo?.ItemsInRelation?.some((x) => x.Id === item.Id)\r\n ? goodsStockInfo?.ItemsInRelation?.find((x) => x.Id === item.Id).DecreaseAmount\r\n : goodsStockInfo?.DecreaseAmount) ?? 0;\r\n\r\n const currentItem = this.order.invoice.Items.find((f) => f.ItemId === item.Id);\r\n let quantity = 0;\r\n\r\n if (!!this.order.invoice.Id) {\r\n const oldQuantity = this.order.invoice.OriginalValue?.Items.find((x) => x.Id == item.Id)?.Quantity || 0;\r\n quantity = ((currentItem?.Quantity || 0) - oldQuantity + (qty ? qty : 1)) * goodsFormulaQty;\r\n } else {\r\n quantity = ((currentItem?.Quantity || 0) + (qty ? qty : 1)) * goodsFormulaQty;\r\n }\r\n if (this.order.invoice.OriginalValue) {\r\n let target = this.order.invoice.OriginalValue.Items.find((c) => c.ItemId === item.Id);\r\n if (target) {\r\n if (target.Quantity != quantity) this.order.itemQuantityChanged = true;\r\n else this.order.itemQuantityChanged = false;\r\n }\r\n } else this.order.itemQuantityChanged = true;\r\n if (goodsStockInfo?.Amount < quantity) {\r\n const notStock = { goodsTitle: goodsStockInfo.GoodsTitle, itemTitle: item.Title, neededAmount: goodsStockInfo?.Amount - quantity };\r\n const info =\r\n \"(\" +\r\n notStock.goodsTitle +\r\n \" - \" +\r\n notStock.itemTitle +\r\n \" - \" +\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Number\") +\r\n \" \" +\r\n notStock.neededAmount +\r\n \")\";\r\n this.sts.showDialog(\r\n `\r\n ${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.FollowingProductUnavailable\")}:
\r\n \r\n ${info}\r\n \r\n `,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.OutOfStock\")\r\n );\r\n if (currentBranch?.InvDailyBalanceInhibitorId === InvDailyBalanceInhibitorValueEnum.Inhibitor) return false;\r\n }\r\n }\r\n }\r\n\r\n this.order.selectedOrderItem = JSON.parse(JSON.stringify(item));\r\n this.addInvoiceItem(item, qty);\r\n this.order.SalePriceChange(this.order.invoice.SalePriceTypeId);\r\n this.order.itemChanged = true;\r\n this.order.calculate();\r\n this.order.invoiceChanged = true;\r\n this.hasDependents(item, qty);\r\n this.order.focusInput();\r\n item.activeItem = false;\r\n this.order.detectChanges();\r\n }\r\n\r\n public hasDependents(item: OrderItem, qty?: number) {\r\n let shouldContinue: boolean = true;\r\n if (item?.Dependents?.length > 0) {\r\n const saleMethodBranch = this.order.saleMethodBranch;\r\n if (saleMethodBranch.IncludeItemDependency || saleMethodBranch.IncludeFreeItemDependency) {\r\n item.Dependents.forEach((dependent) => {\r\n shouldContinue = true;\r\n const dependentQty = qty ? dependent.Quantity * qty : dependent.Quantity;\r\n if (dependent.ItemDependencySaleMethodBranch.length) {\r\n const hasValidSaleMethodBranch = dependent.ItemDependencySaleMethodBranch.find((e) => e.SaleMethodId === saleMethodBranch.SaleMethodId);\r\n if (hasValidSaleMethodBranch) {\r\n dependent.DependentItem.IsDependent = true;\r\n if (dependent.ItemDependencyTypeCode === ItemDependencyType.Free && saleMethodBranch.IncludeFreeItemDependency) {\r\n let find_Item = this.order.itemCategoryList[0].Items?.find((i) => i.Id === dependent?.DependentItem?.Id);\r\n if (!find_Item) {\r\n const hasItemChild = this.order.itemCategoryList[0].Items.filter((c) => c.ItemChild && c.ItemChild?.length > 0);\r\n hasItemChild.forEach((element) => {\r\n if (shouldContinue) {\r\n find_Item = element.ItemChild.find((c) => c.Id === dependent?.DependentItem?.Id);\r\n if (find_Item) shouldContinue = false;\r\n }\r\n });\r\n }\r\n this.addDependentItem(find_Item, dependentQty, true);\r\n }\r\n if (dependent.ItemDependencyTypeCode === ItemDependencyType.Related && saleMethodBranch.IncludeItemDependency) {\r\n let find_Item = this.order.itemCategoryList[0].Items?.find((i) => i.Id === dependent?.DependentItem?.Id);\r\n if (!find_Item) {\r\n const hasItemChild = this.order.itemCategoryList[0].Items.filter((c) => c.ItemChild && c.ItemChild?.length > 0);\r\n hasItemChild.forEach((element) => {\r\n if (shouldContinue) {\r\n find_Item = element.ItemChild.find((c) => c.Id === dependent?.DependentItem?.Id);\r\n if (find_Item) shouldContinue = false;\r\n }\r\n });\r\n }\r\n this.addDependentItem(find_Item, dependentQty, false);\r\n }\r\n }\r\n } else {\r\n dependent.DependentItem.IsDependent = true;\r\n let find_Item = this.order.itemCategoryList[0].Items?.find((i) => i.Id === dependent?.DependentItem?.Id);\r\n if (!find_Item) {\r\n const hasItemChild = this.order.itemCategoryList[0].Items.filter((c) => c.ItemChild && c.ItemChild?.length > 0);\r\n hasItemChild.forEach((element) => {\r\n if (shouldContinue) {\r\n find_Item = element.ItemChild.find((c) => c.Id === dependent?.DependentItem?.Id);\r\n if (find_Item) shouldContinue = false;\r\n }\r\n });\r\n }\r\n if (dependent.ItemDependencyTypeCode === ItemDependencyType.Free && saleMethodBranch.IncludeFreeItemDependency) {\r\n this.addDependentItem(find_Item, dependentQty, true);\r\n }\r\n if (dependent.ItemDependencyTypeCode === ItemDependencyType.Related && saleMethodBranch.IncludeItemDependency) {\r\n this.addDependentItem(find_Item, dependentQty, false);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n addDependentItem(item: OrderItem, qty?: number, isFreeDependent?: boolean) {\r\n let invoiceItem = new InvoiceItem();\r\n invoiceItem.IsClubItem = item?.IsClubItem;\r\n const Items = this.order.invoice.Items;\r\n let find_Dependent_Item = Items.findIndex((f) => {\r\n const dependentCondition = isFreeDependent ? f.Price === 0 : f.Price !== 0;\r\n return (!f.Description || f.Description === \"\") && f.ItemId === item.Id && dependentCondition;\r\n });\r\n let find_Club_Item = Items.some((f) => !f.IsClubItem && f.ItemId === item.Id);\r\n\r\n // dependent item\r\n if (find_Dependent_Item >= 0 && typeof isFreeDependent == \"boolean\") {\r\n if (item.DetaultPrice === 0 && !find_Club_Item && !item.IsClubItem) qty = 1;\r\n Items[find_Dependent_Item].Quantity += qty;\r\n invoiceItem = Items[find_Dependent_Item];\r\n this.order.selectedOrderItemIndex = Items.length - 1;\r\n item.InvoiceQty = invoiceItem.Quantity;\r\n invoiceItem.ItemDependencyTypeCode = isFreeDependent ? ItemDependencyType.Free : ItemDependencyType.Related;\r\n this.order.setValueQuantity();\r\n this.invoiceservice.setSelectedItem(invoiceItem, invoiceItem.Index);\r\n return;\r\n } else {\r\n this.addItemToInvoiceItems(item, invoiceItem, qty, Items, isFreeDependent);\r\n this.setValueQuantityAndScrollToItem(Items, item, invoiceItem);\r\n }\r\n }\r\n\r\n private setValueQuantityAndScrollToItem(Items: InvoiceItem[], item: OrderItem, invoiceItem: InvoiceItem) {\r\n this.order.selectedOrderItemIndex = Items.length - 1;\r\n item.InvoiceQty = invoiceItem.Quantity;\r\n this.order.setValueQuantity();\r\n if (item.IsDependent) this.invoiceservice.setItemQuantity(invoiceItem, ItemStateEnum.Increase);\r\n this.invoiceservice.setSelectedItem(invoiceItem, invoiceItem.Index);\r\n\r\n this.order.detectChanges();\r\n this.invoiceservice.addRowDiscount();\r\n if (invoiceItem?.Quantity > 1) this.scrollToItem(invoiceItem);\r\n }\r\n\r\n public addInvoiceItem(item: OrderItem, qty?: number) {\r\n //main item\r\n let invoiceItem = new InvoiceItem();\r\n invoiceItem.IsClubItem = item?.IsClubItem;\r\n const Items = this.order.invoice.Items;\r\n if (this.order.invoice) {\r\n let find_item_index = Items.findIndex((invoiceItem) => {\r\n const isNotFreeDependent = invoiceItem.Price !== 0 || item.DetaultPrice === 0;\r\n return invoiceItem.ItemId === item.Id && isNotFreeDependent && invoiceItem.UnitKind !== UnitKindEnum.PosScaleItem;\r\n });\r\n let find_free_Item = Items.findIndex(\r\n (invoiceItem) => !invoiceItem.Description && invoiceItem.ItemId === item.Id && (invoiceItem.Price !== 0 || item.DetaultPrice === 0)\r\n );\r\n if (find_item_index < 0 || item.IsClubItem || find_free_Item < 0) {\r\n this.addItemToInvoiceItems(item, invoiceItem, qty, Items, false);\r\n } else {\r\n if (\r\n !this.order.HasAccess(\"PositiveEditOrderingStatus\") &&\r\n !this.order.HasAccess(\"PositiveEditClearingStatus\") &&\r\n !this.order.HasAccess(\"PositiveEditClearedStatus\") &&\r\n !this.order.HasAccess(\"PositiveEditAssignedStatus\")\r\n ) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.AccessToThisArea\")\r\n );\r\n return;\r\n }\r\n if (find_free_Item < 0) {\r\n Items[find_item_index].Quantity += 1;\r\n invoiceItem = Items[find_item_index];\r\n } else {\r\n if (qty && qty > 0) {\r\n const quantity = Items[find_free_Item].Quantity + qty;\r\n Items[find_free_Item].Quantity = +quantity.toFixed(2);\r\n } else Items[find_free_Item].Quantity += 1;\r\n invoiceItem = Items[find_free_Item];\r\n }\r\n }\r\n }\r\n this.setValueQuantityAndScrollToItem(Items, item, invoiceItem);\r\n }\r\n addItemToInvoiceItems(item: OrderItem, invoiceItem: InvoiceItem, qty: number, Items: InvoiceItem[], isFreeDependent?: boolean) {\r\n if (qty && qty > 0) invoiceItem.Quantity = qty;\r\n else invoiceItem.Quantity = 1;\r\n invoiceItem.ItemId = item.Id;\r\n invoiceItem.Ingredients = item.Ingredients;\r\n invoiceItem.Ingredients_En = item.Ingredients_En;\r\n invoiceItem.CategoryId = item.CategoryId;\r\n invoiceItem.ItemTitle = item.Title;\r\n invoiceItem.UnitKind = item.UnitKind;\r\n invoiceItem.ApplyService = item.ApplyService ? item.ApplyService : false;\r\n invoiceItem.ApplyTax = item.ApplyTax ? item.ApplyTax : false;\r\n invoiceItem.State = RowState.New;\r\n invoiceItem.GoodsId = item.GoodsId;\r\n invoiceItem.IsDependent = !!item.IsDependent;\r\n invoiceItem.Tax = item.Tax;\r\n invoiceItem.Toll = item.Toll;\r\n invoiceItem.CookingTime = item.CookingTime;\r\n invoiceItem.PackingPrice = item.PackingPrice;\r\n invoiceItem.PrintDisplayOrder = item.PrintDisplayOrder;\r\n invoiceItem.OrganizationalDiscount = item.OrganizationalDiscount;\r\n invoiceItem.IsOrganizationalDiscount = item.IsOrganizationalDiscount;\r\n invoiceItem.Index = Items.length === 0 ? 0 : Items[Items.length - 1].Index + 1;\r\n this.order.setValue(`RowDiscount${invoiceItem.Index}${this.order.invoice.SaleMethodBranchId}`, null);\r\n if (isFreeDependent) {\r\n invoiceItem.UnitPrice = 0;\r\n invoiceItem.Price = 0;\r\n } else {\r\n const findPrice = item.Prices.find((f) => f.SalePriceTypeId === this.order.invoice.SalePriceTypeId);\r\n if (findPrice) {\r\n invoiceItem.UnitPrice = findPrice.Price;\r\n invoiceItem.Price = findPrice.Price;\r\n } else {\r\n invoiceItem.UnitPrice = item.Prices.find((f) => f.IsDefault).Price;\r\n invoiceItem.Price = item.Prices.find((f) => f.IsDefault).Price;\r\n }\r\n }\r\n if (\r\n !this.order.HasAccess(\"PositiveEditOrderingStatus\") &&\r\n !this.order.HasAccess(\"PositiveEditClearingStatus\") &&\r\n !this.order.HasAccess(\"PositiveEditClearedStatus\") &&\r\n !this.order.HasAccess(\"PositiveEditAssignedStatus\")\r\n ) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.AccessToThisArea\")\r\n );\r\n return;\r\n }\r\n Items.push(invoiceItem);\r\n this.order.detectChanges();\r\n }\r\n\r\n public changeItemCategory(itemCategory: OrderItemCategory) {\r\n if (itemCategory.Id !== 0) {\r\n itemCategory.Items.sort((a, b) => moment(a.CreatedDate).diff(b.CreatedDate, \"ms\"));\r\n itemCategory.Items.sort((a, b) => a.Code - b.Code);\r\n }\r\n\r\n this.order.itemHasParent = null;\r\n this.order.selectedInvoiceItem = null;\r\n this.order.selectedOrderItemIndex = null;\r\n if (this.order.formGroup.controls[`ItemTitle${this.order.__id}`].value && this.oldSelectedItemCategory) {\r\n this.order.selectedItemCategory = Object.assign({}, this.oldSelectedItemCategory);\r\n }\r\n this.order.selectedItemCategory = Object.assign({}, itemCategory);\r\n this.oldSelectedItemCategory = null;\r\n if (this.order.formGroup.controls[`ItemTitle${this.order.__id}`].value) {\r\n this.oldSelectedItemCategory = null;\r\n this.findItemByName(null);\r\n }\r\n }\r\n\r\n /// بر اساس کد\r\n public findItem(event: string) {\r\n if (!event || Number(event) <= 0 || isNaN(Number(event))) return;\r\n const START_INDEX = 0;\r\n const END_INDEX = 2;\r\n const fixValue = Number(event?.substring(START_INDEX, END_INDEX));\r\n const barcodeWithoutFlag = event.slice(0, -1);\r\n this.findOrderItemByCode = this.order.itemCategoryList[0]?.Items?.find((f) => f.Code === Number(event));\r\n if (this.findOrderItemByCode) {\r\n if (this.findOrderItemByCode.StockInWeb > 1) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.Product\")}: ${this.findOrderItemByCode.Title} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.OrderPage.Item.NotAvailable\"\r\n )}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Item.OutOfStock\")\r\n );\r\n }\r\n this.order.formGroup.controls[`ItemTitle${this.order.__id}`].setValue(this.findOrderItemByCode.Title);\r\n this.order.formGroup.controls[`Quantity${this.order.__id}`].setValue(1);\r\n const inputElement = document.getElementById(`Quantity${this.order.__id}`)!;\r\n inputElement.focus();\r\n setTimeout(() => {\r\n inputElement.select();\r\n }, 10);\r\n } else {\r\n const findChildItemCategory = this.order.itemCategoryList[0].Items.filter((f) => f.ItemChild && f.ItemChild.length > 0);\r\n if (findChildItemCategory) {\r\n for (let index = 0; index < findChildItemCategory.length; index++) {\r\n this.findOrderItemByCode = findChildItemCategory[index].ItemChild.find((f) => f.Code === Number(event));\r\n if (this.findOrderItemByCode) {\r\n this.order.formGroup.controls[`ItemTitle${this.order.__id}`].setValue(this.findOrderItemByCode.Title);\r\n const inputElement = document.getElementById(`Quantity${this.order.__id}`);\r\n inputElement.focus();\r\n setTimeout(() => {\r\n inputElement.select();\r\n }, 10);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.findOrderItemByBarCodes = this.order.itemCategoryList[0]?.Items?.find((f) => f.Barcodes.some((s) => s.Code === event));\r\n if (!this.findOrderItemByBarCodes) {\r\n const findChildItemCategory = this.order.itemCategoryList[0].Items.filter((f) => f.ItemChild && f.ItemChild.length > 0);\r\n if (findChildItemCategory) {\r\n for (let index = 0; index < findChildItemCategory.length; index++) {\r\n this.findOrderItemByBarCodes = findChildItemCategory[index].ItemChild.find((f) => f.Barcodes.some((s) => s.Code === event));\r\n if (this.findOrderItemByBarCodes) {\r\n this.barcodeFinder(1);\r\n return;\r\n }\r\n }\r\n }\r\n }\r\n const allBarCodesFormat = this.order?.barCodeReaderFormat;\r\n const barCode = allBarCodesFormat?.find((f) => f?.FixValue === fixValue && f.BarCodeLength === event.length);\r\n if (barCode) {\r\n const productCode = Number(barcodeWithoutFlag?.substring(barCode?.CodeStart - 1, barCode?.CodeStart + barCode?.CodeLength - 1));\r\n this.findOrderItemByBarCodes = this.order.itemCategoryList[0]?.Items?.find((f) => f.Code === productCode);\r\n if (!this.findOrderItemByBarCodes) {\r\n const findChildItemCategory = this.order.itemCategoryList[0].Items.filter((f) => f.ItemChild && f.ItemChild.length > 0);\r\n if (findChildItemCategory) {\r\n for (let index = 0; index < findChildItemCategory.length; index++) {\r\n this.findOrderItemByBarCodes = findChildItemCategory[index].ItemChild.find((f) => f.Code === productCode);\r\n if (this.findOrderItemByBarCodes) {\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (this.findOrderItemByBarCodes) {\r\n const digitCode = Number(barcodeWithoutFlag?.substring(barCode?.DigitStart - 1, barCode?.DigitStart + barCode?.DigitLength - 1));\r\n const decimalCode = barcodeWithoutFlag?.substring(barCode?.DecimalStart - 1, barCode?.DecimalStart + barCode?.DecimalLength - 1);\r\n if (\r\n (barCode?.DigitLength === BarCodeType.WithoutDECIMAL && (!barCode?.DecimalStart || barCode?.DecimalStart === 0)) ||\r\n (barCode?.DigitLength && (!barCode?.DecimalStart || barCode?.DecimalStart === 0))\r\n ) {\r\n this.barcodeFinder(digitCode);\r\n } else if (barCode?.DigitLength === BarCodeType.WithDECIMAL && barCode?.DecimalStart && barCode?.DigitLength) {\r\n if (digitCode === 0) {\r\n this.barcodeFinder(parseFloat(decimalCode) / 1000);\r\n return;\r\n } else {\r\n this.barcodeFinder(digitCode.toString() + \".\" + decimalCode.toString());\r\n return;\r\n }\r\n }\r\n }\r\n } else {\r\n this.barcodeFinder(1);\r\n return;\r\n }\r\n }\r\n\r\n /// بر اساس نام\r\n public findItemByName(event: string): void {\r\n if (this.oldSelectedItemCategory?.Items?.length > 0) this.order.selectedItemCategory = Object.assign({}, this.oldSelectedItemCategory);\r\n if (this.order.formGroup.controls[`Code${this.order.__id}`].value || !event) {\r\n if (!event) {\r\n this.order.setValue(`ItemTitle${this.order.__id}`, \"\");\r\n }\r\n return;\r\n }\r\n\r\n if (event?.length > 0) {\r\n if (!this.oldSelectedItemCategory || this.oldSelectedItemCategory?.Items?.length == 0)\r\n this.oldSelectedItemCategory = Object.assign({}, this.order.selectedItemCategory);\r\n const tempItemsCategory = Object.assign([], this.order.selectedItemCategory.Items);\r\n this.order.selectedItemCategory.Items = [];\r\n tempItemsCategory.forEach((f) => {\r\n if (f.ItemChild?.length > 0) {\r\n f.ItemChild.forEach((el) => {\r\n if (el.Title.includes(event) && !this.order.selectedItemCategory.Items.some((s) => s.Id === el.Id && s.BranchId === el.BranchId)) {\r\n this.order.selectedItemCategory.Items.push(el);\r\n }\r\n });\r\n } else {\r\n if (f.Title.includes(event) && !this.order.selectedItemCategory.Items.some((s) => s.Id === f.Id && s.BranchId === f.BranchId)) {\r\n this.order.selectedItemCategory.Items.push(f);\r\n }\r\n }\r\n });\r\n } else {\r\n if (this.oldSelectedItemCategory?.Items?.length > 0) this.order.selectedItemCategory = Object.assign({}, this.oldSelectedItemCategory);\r\n }\r\n if (this.order.selectedItemCategory.Items.length > 0) {\r\n this.order.itemHasParent = null;\r\n }\r\n }\r\n\r\n //براساس بارکد پیدا کردن کالا\r\n public barcodeFinder(event: any) {\r\n if (this.order.formGroup.controls[`Quantity${this.order.__id}`].valid && event && this.findOrderItemByBarCodes && event > 0) {\r\n let foundItem = this.findOrderItemByBarCodes;\r\n this.setSelectedItem(foundItem, Number(event));\r\n this.findOrderItemByBarCodes = null;\r\n this.order.formGroup.controls[`Quantity${this.order.__id}`].setValue(\"\");\r\n this.order.formGroup.controls[`ItemTitle${this.order.__id}`].setValue(\"\");\r\n this.order.formGroup.controls[`Code${this.order.__id}`].setValue(\"\");\r\n this.order.focus(`Code${this.order.__id}`);\r\n }\r\n }\r\n\r\n public setQuantity(event: any) {\r\n if (this.order.formGroup.controls[`Quantity${this.order.__id}`].valid && event && this.findOrderItemByCode && event > 0) {\r\n this.setSelectedItem(this.findOrderItemByCode, event);\r\n this.findOrderItemByCode = null;\r\n this.order.formGroup.controls[`Quantity${this.order.__id}`].setValue(\"\");\r\n this.order.formGroup.controls[`ItemTitle${this.order.__id}`].setValue(\"\");\r\n this.order.formGroup.controls[`Code${this.order.__id}`].setValue(\"\");\r\n this.order.focus(`Code${this.order.__id}`);\r\n }\r\n }\r\n changeInvoiceQuantity(item: OrderItem, ItemState: ItemStateEnum) {\r\n const findInvocieItem = this.order.invoice.Items.find((f) => f.ItemId === item.Id);\r\n this.invoiceservice.changeQuantity(findInvocieItem, ItemState);\r\n }\r\n scrollToItem(invoiceitem: InvoiceItem, isDescription?: boolean) {\r\n var el = document.getElementById(`factor${this.order.invoice.SaleMethodBranchId}`);\r\n let item = document.getElementById(invoiceitem.Index.toString());\r\n if (el && item) this.scrollParentToChild(el, item);\r\n }\r\n scrollParentToChild(parent, child) {\r\n // Where is the parent on page\r\n var parentRect = parent.getBoundingClientRect();\r\n // What can you see?\r\n var parentViewableArea = {\r\n height: parent.clientHeight,\r\n width: parent.clientWidth,\r\n };\r\n\r\n // Where is the child\r\n var childRect = child.getBoundingClientRect();\r\n // Is the child viewable?\r\n var isViewable = childRect.top >= parentRect.top && childRect.bottom <= parentRect.top + parentViewableArea.height;\r\n\r\n // if you can't see the child try to scroll parent\r\n if (!isViewable) {\r\n // Should we scroll using top or bottom? Find the smaller ABS adjustment\r\n const scrollTop = childRect.top - parentRect.top;\r\n const scrollBot = childRect.bottom - parentRect.bottom;\r\n if (Math.abs(scrollTop) < Math.abs(scrollBot)) {\r\n // we're near the top of the list\r\n parent.scrollTop += scrollTop;\r\n } else {\r\n // we're near the bottom of the list\r\n parent.scrollTop += scrollBot;\r\n }\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostListener, Output, ViewChild } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { OrderService } from \"../order.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { SaleMethodBranchModel, SaleMethodNature } from \"../../sales/model/sale-method-branch.model\";\r\nimport { debounceTime, delay, take, takeUntil, tap } from \"rxjs/operators\";\r\nimport { FastAccessEnum } from \"../model/fastaccessenum\";\r\nimport { ActivePageEnum } from \"../model/activepage.enum\";\r\nimport { Branch, Lookup, User } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { OrderSettingModel, OrderSizeModel } from \"../model/ordersetting.model\";\r\nimport { SalonOrderService } from \"../salonorder/salonorder.service\";\r\nimport { ItemOrderService } from \"./item/itemorder.service\";\r\nimport { InvoiceService } from \"./invoice/invoice.service\";\r\nimport { FastAccessService } from \"./fastaccess/fastaccess.service\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { InvoiceActionService } from \"../providers/invoiceaction.service\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { CustomerOrderService } from \"../customerorder/customerorder.service\";\r\nimport { PaymentMethodLookUp } from \"../model/payment.lookup\";\r\nimport { Personnel } from \"../../parties/model/personnel.model\";\r\nimport { AngularResizeElementEvent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/resizable/angular-resize-element-event.interface\";\r\nimport { AngularResizeElementDirection } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/resizable/angular-resize-element.enum\";\r\nimport { TotalPriceService } from \"./invoice/totalprice/totalprice.service\";\r\nimport { DriverAssignementService } from \"../../driverassignment/driverassignment.service\";\r\nimport { Customer } from \"../../parties/model/customer.model\";\r\nimport { ChangeCachEnum } from \"../model/changecach.enum\";\r\nimport { ClearableCache } from \"../../../../../projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { InvoicePrintService } from \"../providers/invoiceprint.service\";\r\nimport { OrderSizeEnum } from \"../model/orderSize.enum\";\r\nimport { BarCodeReaderFormat } from \"src/app/gnr/bar-code-reader-format/bar-code-reader-format.model\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { InvDailyWarehouse } from \"../../inv/model/inv-daily-warehouse.model\";\r\nimport { NotificationService } from \"projects/sepidz-web-framework/src/lib/services/notification.service\";\r\nimport { ItemStateEnum, InvoiceStatus } from \"../model/invoice.model\";\r\nimport { NotificationModel } from \"projects/sepidz-web-framework/src/lib/models/notification-model\";\r\nimport { InvoicesComponent } from \"../invoices/invoices.component\";\r\nimport { WebKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { PosScaleService } from \"../providers/pos-scale.service\";\r\nimport { LocalSettingKind } from \"../../local-setting/local-setting-model\";\r\n\r\n@Component({\r\n selector: \"app-order\",\r\n templateUrl: \"./orderpage.component.html\",\r\n styleUrls: [\"./orderpage.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [\r\n InvoiceActionService,\r\n OrderService,\r\n TotalPriceService,\r\n ItemOrderService,\r\n InvoiceService,\r\n FastAccessService,\r\n SalonOrderService,\r\n CustomerOrderService,\r\n DriverAssignementService,\r\n InvoicePrintService,\r\n PosScaleService,\r\n ],\r\n})\r\nexport class OrderPageComponent extends BaseListComponent {\r\n @ViewChild(\"invoices\") invoicesElement: InvoicesComponent;\r\n public readonly AngularResizeElementDirection = AngularResizeElementDirection;\r\n public data: any = {};\r\n //ای دی نحوه فروش\r\n saleMethodBranchId: number;\r\n // دسترسی انتخاب شده\r\n selectedFastAccess: FastAccessEnum;\r\n // ماهیت فروش برای تب جاری\r\n saleMethodNature: typeof SaleMethodNature = SaleMethodNature;\r\n // تنظیمات مربوط به نحوه فروش\r\n saleMethodBranchModel: SaleMethodBranchModel;\r\n selectedWaiterFastAccess: boolean;\r\n selectedCustomerFastAccess: boolean;\r\n @Output() onShortKey: EventEmitter = new EventEmitter();\r\n currentInvoicesFilter: any;\r\n\r\n constructor(\r\n public order: OrderService,\r\n public common: CommonService,\r\n public invoiceAction: InvoiceActionService,\r\n private tabsservice: TabularService,\r\n public lookupservice: LookupService,\r\n public totalService: TotalPriceService,\r\n public invoiceservice: InvoiceService,\r\n __id: FormContainerModel,\r\n private splashFormService: SplashFormService,\r\n public cd: ChangeDetectorRef,\r\n private invoicePrint: InvoicePrintService,\r\n _VoucherKIndInfo: VoucherKindInfo,\r\n private notification: NotificationService,\r\n private salonService: SalonOrderService\r\n ) {\r\n super();\r\n this.order.orderOnlinePage = _VoucherKIndInfo[\"orderOnlinePage\"];\r\n this.order.autoDelinoInvoiceId = _VoucherKIndInfo[\"autoDelinoInvoiceId\"];\r\n if (this.order.orderOnlinePage) this.splashFormService.openDialog(\"\", \" \");\r\n\r\n this.NoLog = true;\r\n this.setUserSystemLog();\r\n //__id ای دی تب مرتبط با فرم\r\n //_VoucherKIndInfo; ای دی نحوه فروش\r\n //_tabsservice; سرویس تب در صورت نیاز می توان با ای دی دریافتی و سرویس تب تب جاری بست\r\n this.order.invoice.SaleMethodBranchId = _VoucherKIndInfo.VoucherKindId;\r\n\r\n this.saleMethodBranchId = _VoucherKIndInfo.VoucherKindId;\r\n this.order.invoice.SaleMethodBranchId = this.saleMethodBranchId;\r\n\r\n this.currentTabId = __id.metadata.id;\r\n this.order.cd = this.cd;\r\n this.order.tabsservice = this.tabsservice;\r\n this.order.isLight = order.currentInformation.SepidzWebKind === SoftWareLicenseKind.RestaurantLightWeb;\r\n }\r\n\r\n ngOnInit() {\r\n this.init();\r\n this.GetCachState();\r\n this.getWarehouseStock();\r\n this.checkHasPosScale();\r\n }\r\n getWarehouseStock() {\r\n const isLight = this.order.currentInformation.SepidzWebKind === SoftWareLicenseKind.RestaurantLightWeb;\r\n if (isLight) return;\r\n this.order.indexedDbService.get(\"FrontOffice\", \"InvDaily\").then((data) => {\r\n if (data && data.length) {\r\n const branchId = this.getCurrentBranchId();\r\n this.order.warehouseStockItems = data;\r\n this.order.setDailyInventoryList(branchId);\r\n } else this.loadWareHouseStockItems();\r\n });\r\n }\r\n\r\n GetCachState() {\r\n this.splashFormService.openDialog(\"\", \" \");\r\n const computerName: string = this.order.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .get(`LocalSetting/GetCachState` + (computerName ? \"?ComputerName=\" + computerName : \"\"))\r\n .pipe(take(1))\r\n .subscribe((data: any[]) => {\r\n localStorage.setItem(\"cacheState\", JSON.stringify(data));\r\n if (data) {\r\n this.order.changeCachEnum = data;\r\n this.invoiceAction.invoicePrint = this.invoicePrint;\r\n this.invoicePrint.changeCachEnum = data;\r\n }\r\n this.GetAllDataAfterSaleMethod();\r\n this.GetFirstData();\r\n });\r\n }\r\n\r\n /* گرفتن نحوه فروش به همراه اطلاعاتی که به نحوه فروش وابستگی ندارد */\r\n GetFirstData() {\r\n const data = this.order.storage.getData(ClearableCache.SaleMethodBranch);\r\n if (this.order.changeCachEnum.some((f) => f === ChangeCachEnum.SaleMethod) && data?.length) {\r\n this.order.saleMethodList = data;\r\n this.order.saleMethodBranch = data.find((f) => f.Id == this.saleMethodBranchId);\r\n this.order.changeSaleMethodBranch = this.order.saleMethodBranch;\r\n this.order.currentSaleMethodNature = this.order.saleMethodBranch.SaleMethod.SaleMethodNatureCode;\r\n this.order.oldSaleMethodBranchId = this.saleMethodBranchId;\r\n this.getDelinoWebId();\r\n this.order.formGroupControl();\r\n this.order.setInvoiceHasFactorAndHasPaymentLink();\r\n this.order.checkPermissions();\r\n this.getBarcodeReaderFormat();\r\n this.order.setActivePage();\r\n if (!this.order.currentUser) {\r\n this.httpCommonService\r\n .get(\"Authorization/CurrentUser/\" + this.accountService.authService.currentUser.Id)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: User) => {\r\n this.order.currentUser = data;\r\n localStorage.setItem(\"current_User_Info\", JSON.stringify(data));\r\n if (this.order.saleMethodBranch.WaiterIsRequired) this.getWaiters();\r\n },\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n } else if (this.order.saleMethodBranch.WaiterIsRequired) this.getWaiters();\r\n } else {\r\n const computerName = this.order.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .get(\"SaleMethodBranch/GetAllSaleMethodBranch\" + (computerName ? \"?ComputerName=\" + computerName : \"\"))\r\n .pipe(take(1))\r\n .subscribe((data: SaleMethodBranchModel[]) => {\r\n this.order.saleMethodBranch = data.find((f) => f.Id == this.saleMethodBranchId);\r\n this.order.saleMethodList = data;\r\n this.order.changeSaleMethodBranch = this.order.saleMethodBranch;\r\n this.order.currentSaleMethodNature = this.order.saleMethodBranch?.SaleMethod?.SaleMethodNatureCode;\r\n this.order.oldSaleMethodBranchId = this.saleMethodBranchId;\r\n this.order.formGroupControl();\r\n this.getDelinoWebId();\r\n this.order.storage.savePermanentData(data, ClearableCache.SaleMethodBranch);\r\n this.getBarcodeReaderFormat();\r\n this.order.setInvoiceHasFactorAndHasPaymentLink();\r\n this.order.checkPermissions();\r\n this.order.setActivePage();\r\n if (!this.order.currentUser) {\r\n this.httpCommonService\r\n .get(\"Authorization/CurrentUser/\" + this.accountService.authService.currentUser.Id)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: User) => {\r\n this.order.currentUser = data;\r\n localStorage.setItem(\"current_User_Info\", JSON.stringify(data));\r\n if (this.order.saleMethodBranch.WaiterIsRequired) this.getWaiters();\r\n },\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n } else if (this.order.saleMethodBranch.WaiterIsRequired) this.getWaiters();\r\n });\r\n }\r\n\r\n this.getLookUp();\r\n this.getBranch();\r\n this.getDefultCustomer();\r\n this.getSetting();\r\n }\r\n\r\n GetAllDataAfterSaleMethod() {\r\n this.order.getMaxInvoiceCode(this.order.logInBranch.Id, true, true);\r\n if (!this.order.orderOnlinePage) this.splashFormService.closeLoading();\r\n }\r\n\r\n checkHasPosScale() {\r\n const computerName: string = this.order.storage.getData(ClearableCache.ComputerName);\r\n const localSetting = this.order.storage\r\n .getData(ClearableCache.LocalSetting)\r\n .find((x) => x.LocalSettingKindCode === LocalSettingKind.PosScale && x.ComputerName === computerName);\r\n this.order.hasPosScale =\r\n localSetting !== null && localSetting?.Ip && localSetting?.Port && this.order.accountService.authService.currentBranch.HasDecimal;\r\n if (this.order.hasPosScale) {\r\n this.order.posScaleService.Url = `http://${localSetting.Ip}:${localSetting.Port}/api/PosScale`;\r\n this.order.posScaleService.connect().subscribe({\r\n next: () => {\r\n this.order.splashFormService.openDialog(\"\", \"درحال اتصال با ترازو\");\r\n this.order.posScaleService.connection().subscribe({\r\n next: (res: any) => {\r\n this.order.posScaleService.isConnected = res.isConnected;\r\n if (res.isConnected) this.sts.showToast(\"success\", \"\", \"اتصال با ترازو برقرار شد.\", 5000);\r\n else this.sts.showToast(\"danger\", \"\", res.Message, 5000);\r\n this.order.splashFormService.closeLoading();\r\n this.cd.markForCheck();\r\n this.order.detectChanges();\r\n },\r\n error: (err) => {\r\n this.order.splashFormService.closeLoading();\r\n },\r\n });\r\n },\r\n error: () => {\r\n this.sts.showDialog(\"مشکل در برقراری اتصال با لوکال سرویس\", \"خطا\");\r\n },\r\n });\r\n }\r\n }\r\n\r\n //گرفتن لیست شابلون بارکد\r\n getBarcodeReaderFormat() {\r\n if (this.order?.barCodeReaderFormat) return;\r\n this.httpCommonService\r\n .getList(\"BarCodeReaderFormat\")\r\n .pipe(take(1))\r\n .subscribe((data: BarCodeReaderFormat[]) => {\r\n if (data.length > 0) {\r\n this.order.barCodeReaderFormat = data;\r\n }\r\n localStorage.setItem(\"BarCodeReaderFormat\", JSON.stringify(data));\r\n });\r\n }\r\n\r\n //گرفتن گارسون ها\r\n getWaiters() {\r\n if (this.order?.waiters?.length > 0) return;\r\n this.httpCommonService\r\n .getList(\"Personnel/GetWaiterList\")\r\n .pipe(take(1))\r\n .subscribe((data: Personnel[]) => {\r\n if (data.length > 0) {\r\n this.order.waiters = data;\r\n const fidUserGarson = data.find((f) => f.UserId === this.order.currentUser?.Id);\r\n if (fidUserGarson) {\r\n this.order.invoice.WaiterId = fidUserGarson?.Id;\r\n this.order.invoice.WaiterName = fidUserGarson.DisplayName;\r\n this.order.waiterMobile = fidUserGarson.DisplayName;\r\n this.order.waiterId = fidUserGarson?.Id;\r\n }\r\n }\r\n });\r\n }\r\n\r\n public getLookUp() {\r\n this.lookupservice\r\n .getLookupbyCategory(\"SALE\", \"InvoiceStatus\")\r\n .pipe(take(1))\r\n .subscribe((lookups) => {\r\n this.order.invoiceStatusLookups = JSON.parse(JSON.stringify(lookups));\r\n });\r\n this.lookupservice\r\n .getLookupbyCategory(\"SALE\", \"InvoiceChanges\")\r\n .pipe(take(1))\r\n .subscribe((lookups) => {\r\n this.order.invoiceChangesLookups = lookups;\r\n });\r\n this.lookupservice\r\n .getLookupbyCategory(\"SALE\", \"InvoiceCommand\")\r\n .pipe(take(1))\r\n .subscribe((lookups) => {\r\n this.order.invoiceCommandLookups = lookups;\r\n });\r\n this.lookupservice\r\n .getLookupbyCategory(\"SALE\", \"InvoicePayableChange\")\r\n .pipe(take(1))\r\n .subscribe((lookups) => {\r\n this.order.invoicePayableChangeLookups = lookups;\r\n });\r\n this.lookupservice\r\n .getLookupbyCategory(\"SALE\", \"ReceiptPaymentType\")\r\n .pipe(take(1))\r\n .subscribe((lookups) => {\r\n this.order.receiptPaymentTypeLookup = lookups;\r\n });\r\n\r\n this.order.paymentMethodTypeLookup = this.order.storage.getData(ClearableCache.PaymentMethodLookUp);\r\n if (this.order.changeCachEnum.some((f) => f === ChangeCachEnum.paymentMethodType) && this.order.paymentMethodTypeLookup != null) {\r\n } else {\r\n const computerName: string = this.order.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .getList(\"PaymentMethod/PaymentMethodLookUp\" + \"/\" + this.order.logInBranch.Id + (computerName ? \"?ComputerName=\" + computerName : \"\"))\r\n .pipe(take(1))\r\n .subscribe((data: PaymentMethodLookUp[]) => {\r\n this.order.paymentMethodTypeLookup = data;\r\n this.order.storage.savePermanentData(data, ClearableCache.PaymentMethodLookUp);\r\n });\r\n }\r\n\r\n this.lookupservice\r\n .getLookupbyCategory(\"SALE\", \"NumberType\")\r\n .pipe(take(1))\r\n .subscribe((lookups) => {\r\n this.order.PhoneTypeLookup = lookups;\r\n });\r\n }\r\n\r\n // دریافت شعبه فروش\r\n async getBranch() {\r\n const currentBranchId = this.order.logInBranch.Id;\r\n this.order.Branches = this.order.storage.getData(ClearableCache.Branches);\r\n if (this.order.changeCachEnum.some((f) => f === ChangeCachEnum.Branches) && this.order.Branches != null) {\r\n this.order.currentBranch = this.order.Branches.find((f) => f.Id === currentBranchId);\r\n this.invoicePrint.currentBranch = Object.assign({}, this.order.currentBranch);\r\n this.invoiceAction.invoicePrint = this.invoicePrint;\r\n this.invoicePrint.PreData();\r\n this.order.storage.savePermanentData(this.order.Branches, ClearableCache.Branches);\r\n\r\n if (this.order.currentInformation.RestaurantCallCenter) {\r\n this.setCallCenterLookup();\r\n this.order.RestaurantCallCenter = true;\r\n }\r\n } else {\r\n const computerName: string = this.order.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .getList(\"Branch/GetAllBranch\" + (computerName ? \"?ComputerName=\" + computerName : \"\"))\r\n .pipe(take(1))\r\n .subscribe(\r\n async (data: Branch[]) => {\r\n this.order.Branches = data;\r\n this.order.Branches = this.order.Branches.filter((x) => !x.AccessToAllBranches);\r\n if (data?.length > 0 && this.order.currentInformation.RestaurantCallCenter) {\r\n if (!this.order.CallCenterLookUp) {\r\n this.order.CallCenterLookUp = [];\r\n }\r\n this.setCallCenterLookup();\r\n this.order.RestaurantCallCenter = true;\r\n }\r\n this.order.currentBranch = data.find((f) => f.Id === currentBranchId);\r\n this.invoicePrint.currentBranch = Object.assign({}, this.order.currentBranch);\r\n this.invoiceAction.invoicePrint = this.invoicePrint;\r\n this.invoicePrint.PreData();\r\n this.order.storage.savePermanentData(data, ClearableCache.Branches);\r\n },\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n }\r\n\r\n //تغییر فیلد نمایش یا عدم نمایش صفحه گارسون ها در دسترسی سریع\r\n ChangeShowWaiterFastAccess(event) {\r\n if (event === FastAccessEnum.Waiter) {\r\n this.selectedWaiterFastAccess = true;\r\n } else {\r\n this.selectedWaiterFastAccess = false;\r\n }\r\n }\r\n\r\n //تغییر فیلد نمایش یا عدم نمایش صفحه مشترکین در دسترسی سریع\r\n ChangeShowCustomerFastAccess(event) {\r\n if (event === FastAccessEnum.Customer) {\r\n this.selectedCustomerFastAccess = true;\r\n } else {\r\n this.selectedCustomerFastAccess = false;\r\n }\r\n }\r\n\r\n onResize(event) {\r\n if (window.screen.width > 993) {\r\n if (\r\n this.order.currentActivePage === this.order.activePageEnum.OrderItem ||\r\n this.order.currentActivePage === this.order.activePageEnum.Invoice\r\n ) {\r\n this.order.currentActivePage = ActivePageEnum.Order;\r\n }\r\n }\r\n if (window.screen.width < 993) {\r\n if (this.order.currentActivePage === this.order.activePageEnum.Order) {\r\n this.order.currentActivePage = ActivePageEnum.OrderItem;\r\n }\r\n }\r\n this.order.detectChanges();\r\n }\r\n\r\n @HostListener(\"document:keydown\", [\"$event\"]) onKeydownHandler($event: KeyboardEvent) {\r\n if (document.hidden || this.tabsservice.selectedTabId !== this.currentTabId) return;\r\n //this.onShortKey.emit($event);\r\n if (($event.key === \"*\" || $event.key === \"F2\") && this.order.actionState.temporaryRegister) {\r\n this.invoiceAction.SaveInvoice(this.invoiceAction.invoiceCommand.TemporaryRegister, this.order.invoice, null, this.invoiceservice.order);\r\n $event.preventDefault();\r\n }\r\n if (/*$event.key === \"-\" ||*/ $event.key === \"F1\") {\r\n if (\r\n (this.order.currentSaleMethodNature === SaleMethodNature.Restaurant || this.order.currentSaleMethodNature === SaleMethodNature.Delivery) &&\r\n this.order.actionState.preparationPrint\r\n ) {\r\n this.invoiceAction.SaveInvoice(this.invoiceAction.invoiceCommand.PreparationPrint, this.order.invoice, null, this.order);\r\n $event.preventDefault();\r\n }\r\n if (this.order.currentSaleMethodNature === SaleMethodNature.FastFood && this.order.actionState.clear) {\r\n this.invoiceAction.SaveInvoice(this.invoiceAction.invoiceCommand.Clear, this.order.invoice, null, this.order);\r\n $event.preventDefault();\r\n }\r\n }\r\n if ($event.key === \"F3\") {\r\n this.order.OrderSetting.showComplate = !this.order.OrderSetting.showComplate;\r\n this.common.updateSettings(this.order.OrderSetting);\r\n $event.preventDefault();\r\n setTimeout(() => this.order.detectChanges(), 50);\r\n }\r\n if ($event.key === \"F4\") {\r\n this.invoiceservice.changeQuantity(null, ItemStateEnum.Clear);\r\n $event.preventDefault();\r\n }\r\n if ($event.key === \"F6\") {\r\n this.invoiceAction.focus(\"Description\");\r\n $event.preventDefault();\r\n }\r\n if ($event.key === \"F7\") {\r\n this.order.OrderSetting.IsShowDescriptionBox = true;\r\n this.common.updateSettings(this.order.OrderSetting);\r\n $event.preventDefault();\r\n }\r\n if ($event.key === \"F8\") {\r\n this.order.selectedFastAccess = FastAccessEnum.Invoice;\r\n this.order._opened = true;\r\n $event.preventDefault();\r\n this.order.cd_FastAccess.markForCheck();\r\n }\r\n if ($event.key === \"F9\") {\r\n this.order.setActivePage(ActivePageEnum.Invoices);\r\n $event.preventDefault();\r\n }\r\n if ($event.key === \"F10\") {\r\n this.order.setActivePage(ActivePageEnum.Invoices);\r\n this.currentInvoicesFilter = {\r\n key: 2,\r\n title: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Temporary\"),\r\n count: 0,\r\n selected: false,\r\n value: InvoiceStatus.Pending,\r\n };\r\n $event.preventDefault();\r\n }\r\n if ($event.key === \"F11\" && this.order.currentSaleMethodNature === SaleMethodNature.Delivery) {\r\n this.order.setActivePage(ActivePageEnum.Invoices);\r\n this.currentInvoicesFilter = {\r\n key: 5,\r\n title: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.NotAssigned\"),\r\n count: 0,\r\n selected: false,\r\n value: InvoiceStatus.Ordering,\r\n };\r\n $event.preventDefault();\r\n }\r\n\r\n if ($event.key === \"Escape\") {\r\n this.order.newInvoice();\r\n $event.preventDefault();\r\n }\r\n }\r\n\r\n public Resize(evt: AngularResizeElementEvent): void {\r\n this.data.width = evt.currentWidthValue;\r\n this.data.height = evt.currentHeightValue;\r\n this.data.top = evt.currentTopValue;\r\n this.data.left = evt.currentLeftValue;\r\n }\r\n\r\n resizeEnd(evt: AngularResizeElementEvent) {\r\n const ordersize = new OrderSizeModel();\r\n ordersize.width = evt.currentWidthValue;\r\n ordersize.height = evt.currentHeightValue;\r\n ordersize.top = evt.currentTopValue;\r\n ordersize.left = evt.currentLeftValue;\r\n ordersize.key = OrderSizeEnum.OrderPage;\r\n ordersize.saleBranchId = this?.order?.saleMethodBranch?.Id;\r\n if (!this.common.LocalSetting.OrderSetting) this.common.LocalSetting.OrderSetting = new OrderSettingModel();\r\n if (!this.common?.LocalSetting?.OrderSetting?.OrderSize) {\r\n this.common.LocalSetting.OrderSetting.OrderSize = [];\r\n }\r\n const index = this.common.LocalSetting.OrderSetting.OrderSize.findIndex(\r\n (f) => f.key === OrderSizeEnum.OrderPage && f.saleBranchId === this?.saleMethodBranchId\r\n );\r\n if (index < 0) {\r\n this.common.LocalSetting.OrderSetting.OrderSize.push(ordersize);\r\n } else {\r\n this.common.LocalSetting.OrderSetting.OrderSize[index] = ordersize;\r\n }\r\n this.common.updateSettings();\r\n }\r\n\r\n //دریافت تنظیمات نمایشی\r\n getSetting() {\r\n this.order.OrderSetting = this.common.LocalSetting?.OrderSetting;\r\n if (this.common.isMobileMode) this.order.OrderSetting.IsShowDescriptionBox = false;\r\n const evt = this.order?.OrderSetting?.OrderSize?.find((f) => f.key === OrderSizeEnum.OrderPage && f.saleBranchId === this?.saleMethodBranchId);\r\n if (evt) {\r\n this.data.width = evt.width;\r\n this.data.height = evt.height;\r\n this.data.top = evt.top;\r\n this.data.left = evt.left;\r\n this.order.saleMethodBranch.Id = evt.saleBranchId;\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n getDefultCustomer() {\r\n if (!(this.order.invoice.CustomerId !== 0) || !this.order.invoice.CustomerId) {\r\n //دریافت اطلاعات مشتری پیش فرض\r\n const customer: Customer = this.order.storage.getData(ClearableCache.GetDefalultCustomer);\r\n if (customer) {\r\n this.order.customer = customer;\r\n this.order.DefultCustomer = customer;\r\n this.order.invoice.Customer = customer;\r\n this.order.invoice.CustomerNumber = customer.Party.Number;\r\n this.order.invoice.CustomerLastName = customer?.Party?.LastName;\r\n this.order.invoice.CustomerDisplayName = customer?.Party?.DisplayName;\r\n this.order.defaultCustomerId = this.order.invoice.CustomerId = customer.Id;\r\n this.order.invoice.CustomerId = this.order.invoice?.Customer?.Id;\r\n this.order.invoice.AddressId = customer?.Addresses[0]?.Id;\r\n this.order.invoice.CustomerAddress = customer?.Addresses?.find((f) => f.IsDefault);\r\n this.order.invoice.PhoneId = customer?.Numbers.length > 0 ? customer?.Numbers[0]?.Id : null;\r\n this.order.invoice.PhoneNumber = customer?.Numbers?.find((n) => n.IsDefault)?.Number;\r\n this.order.detectChanges();\r\n return;\r\n }\r\n this.httpCommonService\r\n .get(\"Customer/GetDefalultCustomer\")\r\n .pipe(take(1))\r\n .subscribe((customer: Customer) => {\r\n if (customer) {\r\n this.order.customer = customer;\r\n this.order.DefultCustomer = customer;\r\n this.order.invoice.Customer = customer;\r\n this.order.invoice.CustomerNumber = customer.Party.Number;\r\n this.order.invoice.CustomerLastName = customer?.Party?.LastName;\r\n this.order.invoice.CustomerDisplayName = customer?.Party?.DisplayName;\r\n this.order.defaultCustomerId = this.order.invoice.CustomerId = customer.Id;\r\n this.order.invoice.CustomerId = this.order.invoice?.Customer?.Id;\r\n this.order.invoice.AddressId = customer?.Addresses[0]?.Id;\r\n this.order.invoice.CustomerAddress = customer?.Addresses?.find((f) => f.IsDefault);\r\n this.order.invoice.PhoneId = customer?.Numbers.length > 0 ? customer?.Numbers[0]?.Id : null;\r\n this.order.invoice.PhoneNumber = customer?.Numbers?.find((n) => n.IsDefault)?.Number;\r\n this.order.storage.savePermanentData(customer, ClearableCache.GetDefalultCustomer);\r\n } else {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.ClientDoesNotExist\")\r\n );\r\n }\r\n });\r\n }\r\n }\r\n\r\n public refreshInvoicesGrid(ActivePage?: boolean) {\r\n if (this.order.currentActivePage == ActivePageEnum.Invoices || ActivePage) this.invoicesElement?.invoiceGrid?.refreshData();\r\n }\r\n\r\n public headerClickHandler(ActivePage: ActivePageEnum) {\r\n if (ActivePage == ActivePageEnum.Invoices) {\r\n this.refreshInvoicesGrid(true);\r\n }\r\n if (ActivePage == ActivePageEnum.Salon) {\r\n let salon = this.salonService.selectedSalons;\r\n this.salonService.getTablesRead(salon ? salon : this.salonService._salons[0]);\r\n }\r\n }\r\n\r\n private setCallCenterLookup(): void {\r\n const currentBranch = this.order.logInBranch;\r\n if (!this.order.isMultiBranch) {\r\n const lkp = new Lookup();\r\n lkp.Code = currentBranch.Code;\r\n lkp.Title = currentBranch.Title;\r\n lkp.Id = currentBranch.Id;\r\n this.order.CallCenterLookUp.push(lkp);\r\n this.order.setValue(\"BranchId\", currentBranch.Id);\r\n this.order.invoice.BranchId = currentBranch.Id;\r\n } else {\r\n this.order.Branches.filter((x) => !x.Suspend && x.IsActive && !x.AccessToAllBranches).forEach((x) => {\r\n const lkp = new Lookup();\r\n lkp.Code = x.Code;\r\n lkp.Title = x.Title;\r\n lkp.Id = x.Id;\r\n this.order.CallCenterLookUp.push(lkp);\r\n });\r\n }\r\n }\r\n\r\n private async init() {\r\n this.notification.init();\r\n await this.notification.notification$\r\n .pipe(\r\n takeUntil(this.ngUnsubscribe),\r\n tap(async (value) => {\r\n switch (value.Key) {\r\n case \"ItemStockInWeb\":\r\n case \"ItemCategoryStockInWeb\":\r\n this.order.indexedDbService.clear(\"FrontOffice\", \"Categories\").then(() => {\r\n this.order.GetItemCategoryList();\r\n });\r\n break;\r\n case \"UpdateWareHouseStock\":\r\n this.updateInvoiceOnWareHouseChanges(value);\r\n this.refreshInvoicesGrid();\r\n break;\r\n }\r\n }),\r\n delay(1000)\r\n )\r\n .subscribe((value) => {\r\n if (value.Key === \"InvoiceChanges\") {\r\n const activePage = this.order.currentActivePage;\r\n if (activePage === ActivePageEnum.Invoices) this.refreshInvoicesGrid();\r\n }\r\n });\r\n }\r\n\r\n private updateInvoiceOnWareHouseChanges(value: NotificationModel): void {\r\n if (value.Message?.goodsInfo?.length) {\r\n let notAvailableGoods = \"\";\r\n let nearToNotAvailableGoods = \"\";\r\n const branchId = value.Message?.goodsInfo[0]?.BranchId;\r\n (value.Message?.goodsInfo as InvDailyWarehouse[]).forEach((newInfo) => {\r\n let goodsInfo = this.order.warehouseStockItems.find((x) => x.GoodsId == newInfo.GoodsId && x.BranchId === branchId);\r\n if (goodsInfo) {\r\n goodsInfo.Amount = newInfo.Amount;\r\n goodsInfo.MinAmount = newInfo.MinAmount;\r\n goodsInfo.WasteAmount = newInfo.WasteAmount;\r\n goodsInfo.PrevRemainAmount = newInfo.PrevRemainAmount;\r\n goodsInfo.EntryAmount = newInfo.EntryAmount;\r\n goodsInfo.CancelAmount = newInfo.CancelAmount;\r\n goodsInfo.SaleAmount = newInfo.SaleAmount;\r\n if (goodsInfo.Amount <= 0 && (goodsInfo.EntryAmount || goodsInfo.PrevRemainAmount)) {\r\n notAvailableGoods += goodsInfo.GoodsTitle + \" - \";\r\n } else if (goodsInfo.Amount <= goodsInfo.MinAmount && (goodsInfo.EntryAmount || goodsInfo.PrevRemainAmount)) {\r\n nearToNotAvailableGoods += goodsInfo.GoodsTitle + \" - \";\r\n }\r\n } else this.order.warehouseStockItems.push(newInfo);\r\n });\r\n const stockItems = JSON.stringify(this.order.warehouseStockItems);\r\n this.order.warehouseStockItems = JSON.parse(stockItems);\r\n this.order.indexedDbService.put(\"FrontOffice\", \"InvDaily\", this.order.warehouseStockItems).then();\r\n this.order.setDailyInventoryList(branchId);\r\n this.order.filterItembyBranchId(branchId);\r\n this.order.updateStockInWebByInvSignal(branchId, this.order.warehouseStockItems, value.Message?.eventName);\r\n this.order.detectChanges();\r\n const activePage = this.order.currentActivePage;\r\n const canShowMessage = this.common.isMobileMode\r\n ? activePage === ActivePageEnum.OrderItem || activePage === ActivePageEnum.Invoice\r\n : activePage === ActivePageEnum.Order;\r\n if (canShowMessage) {\r\n if (notAvailableGoods)\r\n this.sts.showToast(\r\n \"danger\",\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Product\")}: ${notAvailableGoods} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.OrderPage.Disappeared\"\r\n )}`,\r\n \"\",\r\n 7000\r\n );\r\n if (nearToNotAvailableGoods)\r\n this.sts.showToast(\r\n \"warning\",\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.Inventory\")}: ${nearToNotAvailableGoods} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.OrderPage.LessThanMinimum\"\r\n )}`,\r\n \"\",\r\n 7000\r\n );\r\n }\r\n this.order.detectChanges();\r\n }\r\n }\r\n\r\n private loadWareHouseStockItems(): void {\r\n const branchId = this.order.invoice.BranchId || this.order.logInBranch.Id;\r\n this.httpCommonService\r\n .get(\"Invoice/GetWarehouseStockItems?branchId=\" + branchId)\r\n .pipe(\r\n take(1),\r\n tap((res: InvDailyWarehouse[]) => {\r\n this.order.warehouseStockItems = res;\r\n this.order.indexedDbService.put(\"FrontOffice\", \"InvDaily\", res).then();\r\n this.order.setDailyInventoryList(branchId);\r\n }),\r\n debounceTime(1000)\r\n )\r\n .subscribe(() => {\r\n if (!this.isMultiBranch && this.order.warehouseStockItems?.length && this.order.itemCategoryList) this.order.filterItembyBranchId(branchId);\r\n });\r\n }\r\n\r\n private getCurrentBranchId(): number {\r\n const info = this.order.currentInformation;\r\n const hasCallCenterLicence = info.BranchingAdvancedEnabled || info.BranchingLightEnabled || info.RestaurantCallCenter;\r\n let branchId = this.order.logInBranch.Id;\r\n if (hasCallCenterLicence && this.isMultiBranch && this.order.invoice.BranchId) branchId = this.order.invoice.BranchId;\r\n return branchId;\r\n }\r\n\r\n private getDelinoWebId() {\r\n if (this.order.saleMethodBranch.HasDelino) {\r\n this.lookupservice\r\n .getLookupbyCategory(\"SALE\", \"WebKind\")\r\n .pipe(take(1))\r\n .subscribe((list) => {\r\n this.order.WebKinds = list;\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n 0 && !!order.currentSaleMethodNature\"\r\n [currentSaleMethodBranch]=\"order.saleMethodBranch\"\r\n [currentFilter]=\"currentInvoicesFilter\"\r\n [ngClass]=\"order.currentActivePage === order.activePageEnum.Invoices ? '' : 'd-none'\">\r\n 0 &&\r\n !!order.currentSaleMethodNature &&\r\n order.saleMethodBranch.HasDelino\r\n \"\r\n [ngClass]=\"order.currentActivePage === order.activePageEnum.OnlineFactor ? '' : 'd-none'\">\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n\r\n","import { Injectable, OnDestroy, OnInit } from \"@angular/core\";\r\nimport * as moment from \"moment\";\r\nimport { BaseService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-service.component\";\r\nimport { User } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { Subject, Subscription } from \"rxjs\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { DepositChangedFieldEnum, DepositChanges, DepositModel } from \"../../catalog/model/deposit.model\";\r\nimport { LocalSettingService } from \"../../local-setting/local-setting.service\";\r\nimport { CreditControlType, Customer } from \"../../parties/model/customer.model\";\r\nimport { PrintPolicyPrintTimeEnum } from \"../../prints/model/print-policy.model\";\r\nimport { DeliveryCustomerPrintTime, SaleMethodNature } from \"../../sales/model/sale-method-branch.model\";\r\nimport { ActivePageEnum } from \"../model/activepage.enum\";\r\nimport { FastAccessEnum } from \"../model/fastaccessenum\";\r\nimport {\r\n Invoice,\r\n InvoiceChanges,\r\n InvoiceChangesLookup,\r\n InvoiceCommand,\r\n InvoiceMode,\r\n InvoicePayableChange,\r\n InvoicePrintLocal,\r\n InvoiceStatus,\r\n} from \"../model/invoice.model\";\r\nimport { PaymentMethodEnum } from \"../model/paymentmethod.enum\";\r\nimport { ReceiptPaymentModel, ReceiptPaymentTypeEnum } from \"../model/receiptpayment.model\";\r\nimport { OrderService } from \"../order.service\";\r\nimport { PaymentComponent } from \"../orderpage/invoice/payment/payment.component\";\r\nimport { PreparationDeliveryTimeFormComponent } from \"../orderpage/invoice/preparation-delivery-time-form/preparation-delivery-time-form.component\";\r\nimport { InvoicePrintService } from \"./invoiceprint.service\";\r\nimport { TabletPosService } from \"./tabletpos.service\";\r\nimport { PaymentMethodType } from \"../../financial/model/payment-method.enum\";\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class InvoiceActionService extends BaseService implements OnInit, OnDestroy {\r\n public order: OrderService;\r\n public openFromPaymentForm: boolean;\r\n public invoicePrint: InvoicePrintService;\r\n private invoice: Invoice;\r\n public posPaymentInvoice: Invoice;\r\n public saveEnd: Subject = new Subject();\r\n public ActionFinish: Subject = new Subject();\r\n public saveEndSubscription: Subscription | null = null;\r\n invoiceCommand: typeof InvoiceCommand = InvoiceCommand;\r\n public isStartAction: number = 0;\r\n paymentModalIsOpened: boolean;\r\n constructor(\r\n private localSettingService: LocalSettingService,\r\n public tabletPos: TabletPosService,\r\n public invoicePrintService: InvoicePrintService,\r\n private common: CommonService\r\n ) {\r\n super();\r\n if (this.order) this.localSettingService.tabsservice = this.order.tabsservice;\r\n this.ngOnInit();\r\n }\r\n ngOnDestroy() {\r\n this.saveEnd.unsubscribe();\r\n this.ActionFinish.unsubscribe();\r\n }\r\n ngOnInit() {\r\n this.accountService.authService.hasLocalSetting().pipe(take(1)).subscribe();\r\n }\r\n\r\n SaveInvoice(Action: InvoiceCommand, invoice: Invoice, NonValidation?: boolean, order?: OrderService, PrintPolicyId?: number) {\r\n if (order) {\r\n this.order = null;\r\n this.order = order;\r\n }\r\n if (Action === InvoiceCommand.CustomerTabletPrint && invoice.CustomerPrintCount == 0) {\r\n invoice.CustomerPrintCount++;\r\n }\r\n if (Action == InvoiceCommand.PreparationPrint && this.order.saleMethodBranch.PreprationTimeRequired && !invoice.PreprationDeliveryTime) {\r\n this.dialogService\r\n .open(PreparationDeliveryTimeFormComponent, { label: this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.DeliveryTime\") })\r\n .pipe(take(1))\r\n .subscribe((preparationDeliveryTime) => {\r\n if (preparationDeliveryTime) {\r\n invoice.PreprationDeliveryTime = preparationDeliveryTime;\r\n this.SetInvoice(Action, invoice, NonValidation, this.order, PrintPolicyId);\r\n } else {\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Error\"),\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.SelectDeliveryTime\")}`\r\n );\r\n }\r\n });\r\n } else this.SetInvoice(Action, invoice, NonValidation, this.order, PrintPolicyId);\r\n }\r\n SetInvoice(Action: InvoiceCommand, invoice: Invoice, NonValidation?: boolean, order?: OrderService, PrintPolicyId?: number) {\r\n invoice.ComputerName = this.storage.getData(ClearableCache.ComputerName);\r\n this.isStartAction++;\r\n if (!invoice.FiscalYearId) {\r\n if (this.accountService.authService.currentFiscalYear) invoice.FiscalYearId = this.accountService.authService.currentFiscalYear.Id;\r\n else\r\n this.accountService.authService.currentFiscalYearobsr.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x) invoice.FiscalYearId = x.Id;\r\n });\r\n }\r\n if (PrintPolicyId) {\r\n invoice.PrintPolicyId = PrintPolicyId;\r\n }\r\n if (!invoice.Credit) invoice.Credit = 0;\r\n this.invoice = JSON.parse(JSON.stringify(invoice));\r\n if (!NonValidation && !this.isValid(this.invoice, Action)) {\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n return;\r\n }\r\n if (this.order.invoice.isDebit && this.order.invoice.Debit === this.order.invoice.PayableTotal) {\r\n this.invoice.HasPaymentLink = false;\r\n this.invoice.HasFactorLink = false;\r\n }\r\n\r\n if (this.order.invoice.DescCustomer || this.order.invoice.DescKitchen) {\r\n const description = `${this.order.invoice.DescKitchen}///${this.order.invoice.DescCustomer}///`;\r\n this.invoice.Description = description;\r\n }\r\n const hasDeposit = this.accountService.authService?.currentInformation()?.OrderServices && this.order.saleMethodBranch.HasDeposit;\r\n // Deposit Validation\r\n if (\r\n hasDeposit &&\r\n Action !== InvoiceCommand.ReprintForPreparation &&\r\n Action !== InvoiceCommand.ReprintForCustomer &&\r\n Action !== InvoiceCommand.Cancel &&\r\n !NonValidation\r\n ) {\r\n let deposit = this.order.depositFormGroup.value;\r\n if (this.order.invoice.OldSaleMethodBranchId != null && !deposit.Id) {\r\n deposit.InvoiceId = this.invoice.Id;\r\n deposit.State = RowState.New;\r\n } else if (deposit.Id && this.order.depositFormGroup.dirty) {\r\n deposit.State = RowState.Modify;\r\n }\r\n this.setDepositChanges(deposit);\r\n this.invoice.Deposit = deposit;\r\n const originalDate = this.invoice.Deposit.ServingFoodDate;\r\n const newTime = this.invoice.Deposit.ServingFoodTime;\r\n if (newTime && originalDate) {\r\n const [newHours, newMinutes] = newTime.split(\":\");\r\n originalDate.setHours(parseInt(newHours, 10));\r\n originalDate.setMinutes(parseInt(newMinutes, 10));\r\n }\r\n const depositValidation = this.order.depositValidation();\r\n if (depositValidation.errMessage) {\r\n this.sts.showDialog(\r\n depositValidation.errMessage,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\"),\r\n null,\r\n () => {\r\n if (depositValidation.focusOnServicesAmount) this.focus(\"ServicesAmount\");\r\n }\r\n );\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n return;\r\n } else if (!this.paymentModalIsOpened) {\r\n if (Action === InvoiceCommand.PreparationPrint && !this.order.isLight && !this.order.stockDialogIsOpened) {\r\n const notStockList = this.getNotStockList(invoice);\r\n if (notStockList.length) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.FollowingProductsUnavailable\")}:
\r\n ${notStockList.join(\"
\")}\r\n `,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.OutOfStock\"),\r\n DialogType.confirm,\r\n () => {\r\n this.order.stockDialogIsOpened = false;\r\n this.paymentModalIsOpened = true;\r\n this.dialogService\r\n .open(\r\n PaymentComponent,\r\n { order: this.order, invoiceAction: this, group: null, isDeposit: true, action: Action },\r\n { closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n if (!res) {\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n }\r\n this.paymentModalIsOpened = false;\r\n });\r\n },\r\n () => {\r\n this.order.stockDialogIsOpened = false;\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n }\r\n );\r\n this.order.stockDialogIsOpened = true;\r\n } else {\r\n this.paymentModalIsOpened = true;\r\n this.dialogService\r\n .open(\r\n PaymentComponent,\r\n { order: this.order, invoiceAction: this, group: null, isDeposit: true, action: Action },\r\n { closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n if (!res) {\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n }\r\n this.paymentModalIsOpened = false;\r\n });\r\n }\r\n } else {\r\n this.paymentModalIsOpened = true;\r\n this.dialogService\r\n .open(\r\n PaymentComponent,\r\n { order: this.order, invoiceAction: this, group: null, isDeposit: true, action: Action },\r\n { closeOnClickOutside: false }\r\n )\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n if (!res) {\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n }\r\n this.paymentModalIsOpened = false;\r\n });\r\n }\r\n return;\r\n }\r\n } else if ((!hasDeposit || Action === InvoiceCommand.PreparationPrint) && !this.order.isLight && !this.order.stockDialogIsOpened) {\r\n const notStockList = this.getNotStockList(invoice);\r\n if (notStockList.length) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.FollowingProductsUnavailable\")}:
\r\n ${notStockList.join(\"
\")}\r\n `,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.OutOfStock\"),\r\n DialogType.confirm,\r\n () => {\r\n this.order.stockDialogIsOpened = false;\r\n this.beforeUpdate(Action, invoice);\r\n this.saveOrCheckRemain(invoice);\r\n },\r\n () => {\r\n this.order.stockDialogIsOpened = false;\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n }\r\n );\r\n this.order.stockDialogIsOpened = true;\r\n return false;\r\n }\r\n }\r\n this.beforeUpdate(Action, invoice);\r\n this.saveOrCheckRemain(invoice);\r\n }\r\n\r\n saveOrCheckRemain(invoice: Invoice): void {\r\n if (\r\n (this.invoice.Customer.CreditLimit <= 0 &&\r\n (!this.invoice?.Customer?.HasCredit || this.invoice?.Customer?.CreditLimit <= 0 || !this.invoice?.Customer?.CreditLimit) &&\r\n this.invoice.Debit <= 0) ||\r\n this.invoice.CommandCode === InvoiceCommand.ReprintForCustomer ||\r\n this.invoice.CommandCode === InvoiceCommand.ReprintForPreparation ||\r\n this.invoice.CommandCode === InvoiceCommand.Delete ||\r\n this.invoice.CommandCode === InvoiceCommand.CustomerA5Print ||\r\n this.invoice.CommandCode === InvoiceCommand.CustomerFinancialA5Print ||\r\n this.invoice.CommandCode === InvoiceCommand.CustomerFinancialPrint ||\r\n this.invoice.CommandCode === InvoiceCommand.Assign ||\r\n this.invoice.CommandCode === InvoiceCommand.CustomerTabletPrint ||\r\n this.order.saleMethodBranch.HasDeposit\r\n ) {\r\n invoice.Id ? this.UpdateInvoice() : this.InsertInvoice();\r\n } else {\r\n this.checkRemainCredit();\r\n }\r\n }\r\n\r\n beforeUpdate(Action: InvoiceCommand, invoice: Invoice): void {\r\n switch (Action) {\r\n case InvoiceCommand.Save:\r\n this.BeforUpdateInvoice(invoice.StatusCode, InvoiceCommand.Save);\r\n break;\r\n case InvoiceCommand.TemporaryRegister:\r\n this.BeforUpdateInvoice(InvoiceStatus.Pending, InvoiceCommand.TemporaryRegister);\r\n break;\r\n case InvoiceCommand.PreparationPrint:\r\n this.BeforUpdateInvoice(InvoiceStatus.Ordering, InvoiceCommand.PreparationPrint);\r\n break;\r\n case InvoiceCommand.CustomerPrint:\r\n this.BeforUpdateInvoice(InvoiceStatus.Clearing, InvoiceCommand.CustomerPrint);\r\n break;\r\n case InvoiceCommand.CustomerTabletPrint:\r\n this.BeforUpdateInvoice(InvoiceStatus.Clearing, InvoiceCommand.CustomerTabletPrint);\r\n break;\r\n case InvoiceCommand.Print:\r\n this.BeforUpdateInvoice(InvoiceStatus.Clearing, InvoiceCommand.Print);\r\n break;\r\n case InvoiceCommand.ClearWithoutPrint:\r\n this.BeforUpdateInvoice(InvoiceStatus.Cleared, InvoiceCommand.ClearWithoutPrint);\r\n break;\r\n case InvoiceCommand.Clear:\r\n this.BeforUpdateInvoice(InvoiceStatus.Cleared, InvoiceCommand.Clear);\r\n break;\r\n case InvoiceCommand.Cancel:\r\n this.BeforUpdateInvoice(InvoiceStatus.Cancelled, InvoiceCommand.Cancel);\r\n break;\r\n case InvoiceCommand.PosPayment:\r\n this.BeforUpdateInvoice(InvoiceStatus.Ordering, InvoiceCommand.PosPayment);\r\n break;\r\n case InvoiceCommand.TabletPos:\r\n this.BeforUpdateInvoice(InvoiceStatus.Ordering, InvoiceCommand.TabletPos);\r\n break;\r\n case InvoiceCommand.CustomerFinancialPrint:\r\n this.BeforUpdateInvoice(InvoiceStatus.Clearing, InvoiceCommand.CustomerFinancialPrint);\r\n break;\r\n case InvoiceCommand.CustomerA5Print:\r\n this.BeforUpdateInvoice(InvoiceStatus.Clearing, InvoiceCommand.CustomerA5Print);\r\n break;\r\n case InvoiceCommand.CustomerFinancialA5Print:\r\n this.BeforUpdateInvoice(InvoiceStatus.Clearing, InvoiceCommand.CustomerFinancialA5Print);\r\n break;\r\n default:\r\n this.BeforUpdateInvoice(invoice.StatusCode, invoice.CommandCode);\r\n break;\r\n }\r\n }\r\n\r\n //اعتبار سنجی فاکتور\r\n isValid(invoice: Invoice, Action?: InvoiceCommand): boolean {\r\n if (this.order.isMultiBranch && this.order.Branches.length > 1) {\r\n if (this.order.currentSaleMethodNature !== this.order.SaleMethodNature.Delivery) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.NotPossiblePlaceOrderBranch\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\")\r\n );\r\n return false;\r\n } else if (invoice.BranchId === this.order.logInBranch.Id) {\r\n return false;\r\n }\r\n }\r\n const isActiveCategory = this.order.customerInActiveCategory(invoice?.AddressId, invoice?.Customer, invoice?.BranchId);\r\n if (isActiveCategory) {\r\n this.order.sts?.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.OrderSelectedCustomerGroupBranch\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\")\r\n );\r\n return;\r\n }\r\n if (!invoice.CustomerId || invoice.CustomerId === 0) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.EnteringCustomerMandatory\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\")\r\n );\r\n return false;\r\n } else if (!invoice.Items) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.SelectingLeastOneItemMandatory\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\")\r\n );\r\n return false;\r\n } else if (!invoice.BranchId) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.BranchSelectionMandatory\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\")\r\n );\r\n return false;\r\n } else if (!invoice.SaleMethodBranchId) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.MethodSaleInvalid\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\")\r\n );\r\n return false;\r\n }\r\n const BranchId = invoice.CustomerAddress?.DefaultBranchId || invoice.CustomerAddress?.Zone?.Branches?.find((x) => x.IsDefault)?.BranchId;\r\n if (Action && this.order.isMultiBranch && BranchId && BranchId !== invoice.BranchId) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.SelectedCustomerDefaultBranch\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\"),\r\n DialogType.confirm,\r\n () => {\r\n this.beforeUpdate(Action, invoice);\r\n this.saveOrCheckRemain(invoice);\r\n }\r\n );\r\n return false;\r\n }\r\n invoice.NumberOfGuests = this.order.formGroup.controls[\"NumberOfGuests\"].value;\r\n if (this.order.saleMethodBranch.NumberOfGuestsIsRequired && (!invoice.NumberOfGuests || invoice.NumberOfGuests <= 0)) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.EnteringNumberOfPeopleMandatory\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\"),\r\n DialogType.alert,\r\n () => {\r\n this.order.showHeader = true;\r\n this.focus(\"NumberOfGuests\");\r\n }\r\n );\r\n return false;\r\n }\r\n if (this.order.saleMethodBranch.TableIsRequired && (!invoice.TableId || invoice.TableId === 0)) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.EnteringTableMandatory\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\"),\r\n DialogType.alert,\r\n () => this.openFastAccess(FastAccessEnum.Salon)\r\n );\r\n this.order.hideFastAccess = true;\r\n return false;\r\n }\r\n if (this.order.saleMethodBranch.WaiterIsRequired && (!invoice.WaiterId || invoice.WaiterId === 0)) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.EnteringHostMandatory\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\"),\r\n DialogType.alert,\r\n () => this.openFastAccess(FastAccessEnum.Waiter)\r\n );\r\n this.order.hideFastAccess = true;\r\n return false;\r\n }\r\n if (\r\n (invoice.HasFactorLink || invoice.HasPaymentLink) &&\r\n invoice.Customer?.Number !== 0 &&\r\n !this.common.smartConnection &&\r\n invoice.SaleMethodBranch?.PrintForOnlineOrderForNewCustomer\r\n ) {\r\n const inputDate = new Date(invoice.Customer.CreatedDate);\r\n const todaysDate = new Date();\r\n if (inputDate.setHours(0, 0, 0, 0) == todaysDate.setHours(0, 0, 0, 0)) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ConnectionPaymentLinkServiceDisconnected\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\"),\r\n DialogType.alert\r\n );\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n getNotStockList(invoice: Invoice): string[] {\r\n const currentBranch = this.order.Branches.find((x) => x.Id === invoice.BranchId) || this.order.logInBranch;\r\n const notStockList: { goodsTitle: string; itemTitle: string; neededAmount: number }[] = [];\r\n invoice.Items.forEach((i) => {\r\n const goodsStockInfo = this.order.warehouseStockItems.find(\r\n (x) =>\r\n (x.PrevRemainAmount || x.EntryAmount) &&\r\n x.BranchId === currentBranch.Id &&\r\n (x.ItemsInRelation.some((x) => x.Id === i.ItemId) || x.GoodsId === i.GoodsId)\r\n );\r\n\r\n const goodsFormulaQty =\r\n (goodsStockInfo?.ItemsInRelation?.some((x) => x.Id === i.ItemId)\r\n ? goodsStockInfo?.ItemsInRelation.find((x) => x.Id === i.ItemId).DecreaseAmount\r\n : goodsStockInfo?.DecreaseAmount) ?? 0;\r\n\r\n if (goodsStockInfo?.Amount < i.Quantity * goodsFormulaQty)\r\n notStockList.push({\r\n goodsTitle: goodsStockInfo.GoodsTitle,\r\n itemTitle: i.ItemTitle,\r\n neededAmount: goodsStockInfo?.Amount - i.Quantity * goodsFormulaQty,\r\n });\r\n });\r\n if (notStockList.length) {\r\n return notStockList.map(\r\n (x) =>\r\n \"(\" +\r\n x.goodsTitle +\r\n \" - \" +\r\n x.itemTitle +\r\n \" - \" +\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Number\") +\r\n x.neededAmount +\r\n \")\"\r\n );\r\n } else return [];\r\n }\r\n //تنظیمات قبل از ویرایش فاکتور\r\n BeforUpdateInvoice(statusCode: number, commandCode: number) {\r\n this.SetInvoiceDefaults();\r\n if (this.invoice.Id) {\r\n this.SetInvoiceChanges();\r\n if (\r\n statusCode === InvoiceStatus.Cancelled ||\r\n (this.invoice.OriginalValue?.StatusCode !== InvoiceStatus.Cleared &&\r\n statusCode === InvoiceStatus.Cleared &&\r\n this.invoice.CommandCode != InvoiceCommand.ReprintForCustomer &&\r\n this.invoice.CommandCode != InvoiceCommand.ReprintForPreparation)\r\n ) {\r\n this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n } else this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n\r\n this.SetInvoiceStatuses(statusCode, commandCode, this.invoice.Id ? InvoiceMode.Update : InvoiceMode.Insert);\r\n if (\r\n (this.invoice.StatusCode === InvoiceStatus.Cleared ||\r\n this.invoice.CommandCode === InvoiceCommand.PosPayment ||\r\n this.invoice.CommandCode === InvoiceCommand.TabletPos) &&\r\n this.invoice.ReceiptPayments?.length <= 0\r\n ) {\r\n this.invoice.ReceiptPayments = [];\r\n this.addCashReceiptPayment();\r\n }\r\n const DefaultPaymentId = this.order.saleMethodBranch?.PaymentMethods?.find((s) => s.IsDefault)?.PaymentMethodId;\r\n\r\n if (DefaultPaymentId && !this.openFromPaymentForm) {\r\n this.invoice?.ReceiptPayments?.forEach((x) => {\r\n x.ReceiptPaymentTypeCode = this.order.receiptPaymentTypeLookup.find((f) => f.Id === x.ReceiptPaymentTypeId).Code;\r\n });\r\n const find_Receipt = this.invoice.ReceiptPayments.filter((f) => f.ReceiptPaymentTypeCode === ReceiptPaymentTypeEnum.Receipt);\r\n const result_Receipt = find_Receipt.reduce((accumulator, obj) => {\r\n return accumulator + obj.Amount;\r\n }, 0);\r\n if (this.invoice.CommandCode === InvoiceCommand.PosPayment && this.invoice.Id && this.invoice.PayableTotal > result_Receipt) {\r\n const receipt = this.addCashReceiptPayment(this.invoice.PayableTotal - result_Receipt);\r\n this.invoice.posPaymentIndex = receipt.Index;\r\n this.order.invoice.posPaymentIndex = receipt.Index;\r\n }\r\n }\r\n\r\n if (this.invoice.StatusCode === InvoiceStatus.Cleared && this.invoice.ReceiptPayments?.length > 0) {\r\n if (this.invoice.Debit > 0 && this.invoice.Debit === this.invoice.PayableTotal)\r\n this.invoice.ReceiptPayments = this.invoice.ReceiptPayments.filter((f) => f.Amount > 0);\r\n this.invoice.ReceiptPayments.forEach((item) => {\r\n if (!item.ReceiptPaymentTypeCode)\r\n item.ReceiptPaymentTypeCode = this.order.receiptPaymentTypeLookup.find((f) => f.Id === item.ReceiptPaymentTypeId).Code;\r\n });\r\n const find_Receipt = this.invoice.ReceiptPayments.filter((f) => f.ReceiptPaymentTypeCode === ReceiptPaymentTypeEnum.Receipt);\r\n const find_Payment = this.invoice.ReceiptPayments.filter((f) => f.ReceiptPaymentTypeCode === ReceiptPaymentTypeEnum.Payment);\r\n const result_Receipt = find_Receipt.reduce((accumulator, obj) => {\r\n return accumulator + obj.Amount;\r\n }, 0);\r\n const result_Payment = find_Payment.reduce((accumulator, obj) => {\r\n return accumulator + obj.Amount;\r\n }, 0);\r\n // if (\r\n // this.invoice.State === RowState.Modify &&\r\n // this.invoice.PayableTotal !==\r\n // (result_Receipt > result_Payment ? result_Receipt - result_Payment : result_Payment - result_Receipt) -\r\n // this.invoice.Credit +\r\n // this.invoice.Debit -\r\n // this.invoice.Tip\r\n // ) {\r\n // this.addCashReceiptPayment(this.invoice.PayableTotal - (result_Receipt - result_Payment));\r\n // }\r\n }\r\n }\r\n private addCashReceiptPayment(diff?: number) {\r\n const receipt = new ReceiptPaymentModel();\r\n receipt.Amount = diff\r\n ? diff < 0\r\n ? diff * -1 - this.invoice.Debit + this.invoice.Credit + this.invoice.Tip\r\n : diff - this.invoice.Debit + this.invoice.Credit + this.invoice.Tip\r\n : this.invoice.PayableTotal - this.invoice.Debit + this.invoice.Credit + this.invoice.Tip;\r\n const hasDefaultPayment = this.invoice.SaleMethodBranch.PaymentMethods.find((f) => f.IsDefault);\r\n if (hasDefaultPayment) {\r\n if (receipt.Amount === 0) return;\r\n this.order.defaultPaymentToSaving = true;\r\n receipt.PaymentMethodId = hasDefaultPayment.PaymentMethodId;\r\n receipt.PaymentMethodCode = this.order.paymentMethodTypeLookup.find((f) => f.Id === receipt.PaymentMethodId)?.PaymentMethodCode;\r\n if (receipt.PaymentMethodCode === PaymentMethodType.TabletPos) this.invoice.CommandCode = InvoiceCommand.TabletPos;\r\n } else {\r\n const findLookup = this.order.paymentMethodTypeLookup.find((f) => f.PaymentMethodCode === PaymentMethodEnum.Cash).PaymentMethodTypeId;\r\n receipt.PaymentMethodId = this.order.paymentMethodTypeLookup.find((f) => f.PaymentMethodTypeId === findLookup).Id;\r\n }\r\n if (!diff) {\r\n receipt.ReceiptPaymentTypeId = this.order.receiptPaymentTypeLookup.find((f) => f.Code === ReceiptPaymentTypeEnum.Receipt).Id;\r\n receipt.ReceiptPaymentTypeCode = this.order.receiptPaymentTypeLookup.find((f) => f.Code === ReceiptPaymentTypeEnum.Receipt).Code;\r\n } else {\r\n if (diff < 0) {\r\n receipt.ReceiptPaymentTypeId = this.order.receiptPaymentTypeLookup.find((f) => f.Code === ReceiptPaymentTypeEnum.Payment).Id;\r\n receipt.ReceiptPaymentTypeCode = this.order.receiptPaymentTypeLookup.find((f) => f.Code === ReceiptPaymentTypeEnum.Payment).Code;\r\n } else {\r\n receipt.ReceiptPaymentTypeId = this.order.receiptPaymentTypeLookup.find((f) => f.Code === ReceiptPaymentTypeEnum.Receipt).Id;\r\n receipt.ReceiptPaymentTypeCode = this.order.receiptPaymentTypeLookup.find((f) => f.Code === ReceiptPaymentTypeEnum.Receipt).Code;\r\n }\r\n }\r\n receipt.BranchId = this.invoice.BranchId;\r\n receipt.InvoiceId = this.invoice.Id;\r\n receipt.State = RowState.New;\r\n receipt.Index = this.invoice.ReceiptPayments.length + 1;\r\n this.invoice.ReceiptPayments.push(receipt);\r\n this.order.invoice.ReceiptPayments = this.invoice.ReceiptPayments;\r\n return receipt;\r\n }\r\n //تنظیم پیش فرض های فاکتور\r\n SetInvoiceDefaults() {\r\n this.invoice.SaleMethodId = this.order.saleMethodBranch?.SaleMethodId;\r\n this.invoice.CustomerAddress = null;\r\n this.invoice.isPackingDisable = false;\r\n this.invoice.User = null;\r\n if (this.invoice.Changes && !(this.invoice.Changes.length > 0)) {\r\n this.invoice.Changes = null;\r\n }\r\n this.invoice?.Items?.forEach((x) => {\r\n if (x.Additives && !(x.Additives.length > 0)) {\r\n x.Additives = null;\r\n }\r\n if (x.Descriptions && !(x.Descriptions.length > 0)) {\r\n x.Descriptions = null;\r\n }\r\n });\r\n if (this.invoice.Changes && !(this.invoice.Changes.length > 0)) {\r\n this.invoice.Changes = null;\r\n }\r\n }\r\n //تنظیم تغییرات فاکتور\r\n SetInvoiceChanges() {\r\n let originalValue = undefined;\r\n if (this.invoice.OriginalValue) originalValue = JSON.parse(JSON.stringify(this.invoice.OriginalValue));\r\n else {\r\n this.invoice.Items.forEach((x) => {\r\n x.NewQuantity = x.Quantity;\r\n });\r\n }\r\n if (!this.invoice.Debit) this.invoice.Debit = 0;\r\n if (!this.invoice.Credit) this.invoice.Credit = 0;\r\n if (originalValue) {\r\n let invoice = this.invoice;\r\n let lookups = this.order.invoiceChangesLookups;\r\n\r\n if (lookups && lookups.length > 0) {\r\n if (!this.invoice.Changes) {\r\n this.invoice.Changes = [];\r\n }\r\n if (originalValue.SalePriceTypeId != invoice.SalePriceTypeId) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.State = RowState.New;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.SalePriceType)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n this.invoice.Items.forEach((ele) => {\r\n if (ele.State !== RowState.New) ele.State = RowState.Modify;\r\n });\r\n }\r\n if (originalValue.PackingPrice != invoice.PackingPrice) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.State = RowState.New;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.PackingPrice)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n this.invoice.Items.forEach((ele) => {\r\n if (ele.State !== RowState.New) ele.State = RowState.Modify;\r\n });\r\n if (!this.order.currentUser.PreventChangeClear) this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n invoice.ClubCode = invoice.ClubCode ? invoice.ClubCode : undefined;\r\n originalValue.ClubCode = originalValue.ClubCode ? originalValue.ClubCode : undefined;\r\n if (originalValue.ClubCode != invoice.ClubCode) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.State = RowState.New;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.Club)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n this.invoice.Items.forEach((ele) => {\r\n if (ele.State !== RowState.New) ele.State = RowState.Modify;\r\n });\r\n }\r\n if (originalValue.BranchId != invoice.BranchId) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.State = RowState.New;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.BranchId)?.Id;\r\n invoiceChange.LookupCode = lookups.find((lookup) => lookup.Code === InvoiceChanges.BranchId)?.Code;\r\n this.invoice.Changes.push(invoiceChange);\r\n }\r\n if (originalValue.TableId != invoice.TableId) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.State = RowState.New;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.Table)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n }\r\n //TODO نیازمند به شرط بهتر\r\n if (\r\n invoice.SaleMethodBranch?.SaleMethodTitle &&\r\n originalValue.SaleMethodBranch?.SaleMethodTitle &&\r\n invoice.SaleMethodBranch.SaleMethodTitle !== originalValue.SaleMethodBranch.SaleMethodTitle\r\n ) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.State = RowState.New;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.SaleMethodBranchId)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n }\r\n let hasDeletedComment = invoice.ReceiptPayments.find((c) => c.State === RowState.Delete && c.Comment === \"1000\");\r\n let hasNewEmptyComment = invoice.ReceiptPayments.find((c) => c.State === RowState.New && c.Comment === \"\");\r\n if (hasDeletedComment && !hasNewEmptyComment) {\r\n if (\r\n invoice.ReceiptPayments &&\r\n originalValue.ReceiptPayments &&\r\n originalValue.ReceiptPayments.length > 0 &&\r\n invoice.ReceiptPayments.length > 0 &&\r\n invoice.ReceiptPayments.some(\r\n (x) =>\r\n (x.State === RowState.New && x.Comment !== \"10001\") ||\r\n (x.State === RowState.Delete && x.Comment !== \"1000\") ||\r\n x.State === RowState.Modify\r\n )\r\n ) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.State = RowState.New;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.ReceiptPayment)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n if (!this.order.currentUser.PreventChangeClear) this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n }\r\n if ((!originalValue.HasClub && invoice.HasClub) || (originalValue.HasClub && !invoice.HasClub)) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.State = RowState.New;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.Club)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n }\r\n if (originalValue.WaiterId != invoice.WaiterId) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.State = RowState.New;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.Waiter)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n }\r\n if (\r\n (originalValue.ShippingCost || (invoice.ShippingCost !== 0 && invoice.ShippingCost)) &&\r\n originalValue.ShippingCost != invoice.ShippingCost\r\n ) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.State = RowState.New;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.ShippingCost)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n if (!this.order.currentUser.PreventChangeClear) this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n if (\r\n originalValue.TotalService != invoice.TotalService &&\r\n (!originalValue.TotalService || originalValue.TotalService === 0 || !invoice.TotalService || invoice.TotalService === 0)\r\n ) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoiceChange.State = RowState.New;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.Service)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n this.invoice.Items.forEach((ele) => {\r\n if (ele.State !== RowState.New) ele.State = RowState.Modify;\r\n });\r\n if (!this.order.currentUser.PreventChangeClear) this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n if (originalValue.Debit != invoice.Debit) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoiceChange.State = RowState.New;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.Debit)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n if (!this.order.currentUser.PreventChangeClear) this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n if (originalValue.Credit != invoice.Credit) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.State = RowState.New;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.Credit)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n if (!this.order.currentUser.PreventChangeClear) this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n if (originalValue.Tip != invoice.Tip) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.State = RowState.New;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.Tip)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n if (!this.order.currentUser.PreventChangeClear) this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n if (originalValue.CustomerId != invoice.CustomerId) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.State = RowState.New;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.Customer)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n }\r\n\r\n if (originalValue.AddressId != invoice.AddressId) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.State = RowState.New;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.ShippingAddress)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n }\r\n\r\n originalValue.Items.forEach((originItem) => {\r\n if (!invoice.Items.some((s) => s.Id === originItem.Id)) {\r\n const element = JSON.parse(JSON.stringify(originItem));\r\n element.State = RowState.Delete;\r\n element.NewQuantity = originItem.Quantity * -1;\r\n element.Quantity = 0;\r\n invoice.Items.push(element);\r\n }\r\n let item = invoice.Items.find((i) => i.Id == originItem.Id && i.State !== RowState.Delete);\r\n if (\r\n !item &&\r\n !this.invoice.Changes.some((s) => s.LookupId === lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemQuantityNegative)?.Id)\r\n ) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoiceChange.State = RowState.New;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemQuantityNegative)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n if (!this.order.currentUser.PreventChangeClear) this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n if (item) {\r\n if (item.Quantity - originItem.Quantity != 0) item.NewQuantity = item.Quantity - (originItem.Quantity ?? 0);\r\n if (\r\n originalValue.TotalDiscount != invoice.TotalDiscount &&\r\n !this.invoice.Changes.some((s) => s.LookupId === lookups.find((lookup) => lookup.Code === InvoiceChanges.Discount)?.Id)\r\n ) {\r\n if (\r\n originalValue.Discount != invoice.Discount ||\r\n originItem.RowDiscount != item.RowDiscount ||\r\n originalValue.IsDiscountPercent != invoice.IsDiscountPercent\r\n ) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoiceChange.State = RowState.New;\r\n invoice.State = RowState.Modify;\r\n\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.Discount)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n if (!this.order.currentUser.PreventChangeClear) this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n }\r\n if (item.RowDiscount !== originItem.RowDiscount) {\r\n item.State = RowState.Modify;\r\n }\r\n item?.Additives?.forEach((add) => {\r\n if (!originItem?.Additives?.some((s) => s.Id === add.Id)) {\r\n add.State = RowState.New;\r\n if (\r\n !this.invoice.Changes.some((s) => s.LookupId === lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemAdditivePositive)?.Id)\r\n ) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoiceChange.State = RowState.New;\r\n if (item.Id && item.Id !== 0) this.invoice.Items.find((f) => f.Id === item.Id && f.Index === item.Index).State = RowState.Modify;\r\n item.State = RowState.Modify;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemAdditivePositive)?.Id;\r\n invoice.State = RowState.Modify;\r\n this.invoice.Changes.push(invoiceChange);\r\n if (!this.order.currentUser.PreventChangeClear) this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n }\r\n });\r\n item?.Descriptions?.forEach((add) => {\r\n if (!originItem?.Descriptions?.some((s) => s.Id === add.Id)) {\r\n add.State = RowState.New;\r\n if (item.Id && item.Id !== 0) this.invoice.Items.find((f) => f.Id === item.Id && f.Index === item.Index).State = RowState.Modify;\r\n if (!this.invoice.Changes.some((s) => s.LookupId === lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemDescription)?.Id)) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoiceChange.State = RowState.New;\r\n if (item.Id && item.Id !== 0) this.invoice.Items.find((f) => f.Id === item.Id && f.Index === item.Index).State = RowState.Modify;\r\n item.State = RowState.Modify;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemDescription)?.Id;\r\n invoice.State = RowState.Modify;\r\n this.invoice.Changes.push(invoiceChange);\r\n }\r\n }\r\n });\r\n /// add Delete Item To Items\r\n originItem?.Additives?.forEach((add) => {\r\n if (!item?.Additives?.some((s) => s.Id === add.Id)) {\r\n add.State = RowState.Delete;\r\n if (!item.Additives) item.Additives = [];\r\n item.Additives.push(add);\r\n if (item.Id && item.Id !== 0) this.invoice.Items.find((f) => f.Id === item.Id && f.Index === item.Index).State = RowState.Modify;\r\n this.invoice.Items.find((f) => f.Id === item.Id && f.Index === item.Index).Additives = item.Additives;\r\n if (\r\n !this.invoice.Changes.some((s) => s.LookupId === lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemAdditiveNegative)?.Id)\r\n ) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoiceChange.State = RowState.New;\r\n if (item.Id && item.Id !== 0) this.invoice.Items.find((f) => f.Id === item.Id && f.Index === item.Index).State = RowState.Modify;\r\n item.State = RowState.Modify;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemAdditiveNegative)?.Id;\r\n invoice.State = RowState.Modify;\r\n this.invoice.Changes.push(invoiceChange);\r\n if (!this.order.currentUser.PreventChangeClear) this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n }\r\n });\r\n originItem?.Descriptions?.forEach((add) => {\r\n if (!item.Descriptions?.some((s) => s.Id === add.Id)) {\r\n add.State = RowState.Delete;\r\n if (!item.Descriptions) item.Descriptions = [];\r\n item.Descriptions.push(add);\r\n if (item.Id && item.Id !== 0) this.invoice.Items.find((f) => f.Id === item.Id && f.Index === item.Index).State = RowState.Modify;\r\n this.invoice.Items.find((f) => f.Id === item.Id && f.Index === item.Index).Descriptions = item.Descriptions;\r\n if (!this.invoice.Changes.some((s) => s.LookupId === lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemDescription)?.Id)) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoiceChange.State = RowState.New;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemDescription)?.Id;\r\n invoice.State = RowState.Modify;\r\n this.invoice.Changes.push(invoiceChange);\r\n }\r\n }\r\n });\r\n if (originItem.Quantity !== item.Quantity) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoiceChange.State = RowState.New;\r\n invoice.State = RowState.Modify;\r\n if (\r\n item.Quantity > originItem.Quantity &&\r\n !this.invoice.Changes.some((s) => s.LookupId === lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemQuantityPositive)?.Id)\r\n ) {\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemQuantityPositive)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n if (!this.order.currentUser.PreventChangeClear) this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n if (\r\n item.Quantity < originItem.Quantity &&\r\n !this.invoice.Changes.some((s) => s.LookupId === lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemQuantityNegative)?.Id)\r\n ) {\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemQuantityNegative)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n if (!this.order.currentUser.PreventChangeClear) this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n }\r\n }\r\n });\r\n if (!this.invoice.Changes.some((s) => s.LookupId === lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemQuantityPositive)?.Id)) {\r\n invoice.Items.forEach((item) => {\r\n let origin = originalValue.Items.find((i) => i.Id == item.Id);\r\n if (!origin) {\r\n item.NewQuantity = item.Quantity;\r\n item.State = RowState.New;\r\n }\r\n if (\r\n !origin &&\r\n !this.invoice.Changes.some((s) => s.LookupId === lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemQuantityPositive)?.Id)\r\n ) {\r\n let invoiceChange: InvoiceChangesLookup = new InvoiceChangesLookup();\r\n invoiceChange.InvoiceId = invoice.Id;\r\n invoiceChange.State = RowState.New;\r\n if (item.Id && item.Id !== 0) this.invoice.Items.find((f) => f.Id === item.Id && f.Index === item.Index).State = RowState.Modify;\r\n invoice.State = RowState.Modify;\r\n invoiceChange.LookupId = lookups.find((lookup) => lookup.Code === InvoiceChanges.ItemQuantityPositive)?.Id;\r\n this.invoice.Changes.push(invoiceChange);\r\n if (!this.order.currentUser.PreventChangeClear) this.invoice.ClearedUserId = this.accountService.authService.currentUser.Id;\r\n }\r\n });\r\n }\r\n invoice.Items.forEach((item) => {\r\n if (!originalValue.Items.some((s) => s.Id === item.Id)) {\r\n item.NewQuantity = item.Quantity;\r\n item.State = RowState.New;\r\n }\r\n if (item.State != RowState.Delete && originalValue.Items.some((s) => s.Id === item.Id)) {\r\n item.State = RowState.Modify;\r\n }\r\n if (item.State == RowState.Delete) {\r\n item.Additives.forEach((f) => {\r\n f.State = RowState.Delete;\r\n });\r\n item.Descriptions.forEach((f) => {\r\n f.State = RowState.Delete;\r\n });\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n setDepositChanges(deposit: DepositModel) {\r\n let originalValue: DepositModel = undefined;\r\n if (this.order.originalDeposit) originalValue = JSON.parse(JSON.stringify(this.order.originalDeposit));\r\n if (originalValue) {\r\n if (!deposit.Changes) deposit.Changes = [];\r\n for (const key in DepositChangedFieldEnum) {\r\n if (typeof DepositChangedFieldEnum[key] === \"number\") this.addDepositChange(deposit, originalValue, key);\r\n }\r\n const addedItems = deposit.DepositPersonnelList.filter((item2) => !originalValue.DepositPersonnelList.some((item1) => item1.Id === item2.Id));\r\n const deletedItems = originalValue.DepositPersonnelList.filter((item1) => !deposit.DepositPersonnelList.some((item2) => item2.Id === item1.Id));\r\n const editedItems = deposit.DepositPersonnelList.filter((item2) => {\r\n const correspondingItem1 = originalValue.DepositPersonnelList.find((item1) => item1.Id === item2.Id);\r\n const personnelChanged = correspondingItem1.PersonnelId !== item2.PersonnelId;\r\n const amountChanged = correspondingItem1.Amount !== item2.Amount;\r\n return correspondingItem1 && (personnelChanged || amountChanged);\r\n });\r\n if (addedItems.length) this.addDepositPersonnelChange(deposit, RowState.New);\r\n if (editedItems.length) this.addDepositPersonnelChange(deposit, RowState.Modify);\r\n if (deletedItems.length) this.addDepositPersonnelChange(deposit, RowState.Delete);\r\n }\r\n }\r\n\r\n addDepositChange(deposit: DepositModel, originalValue: DepositModel, field: string): void {\r\n let depositChange: DepositChanges = new DepositChanges();\r\n if (field === \"ServingFoodDate\") {\r\n if (typeof deposit[field] === \"string\") {\r\n deposit[field] = new Date(originalValue[field]);\r\n }\r\n if (deposit[field].toDateString() !== new Date(originalValue[field]).toDateString()) addToChanges();\r\n } else if (originalValue[field] !== deposit[field]) addToChanges();\r\n\r\n function addToChanges() {\r\n depositChange.ChangedFieldCode = DepositChangedFieldEnum[field];\r\n depositChange.State = null;\r\n deposit.Changes.push(depositChange);\r\n }\r\n }\r\n\r\n addDepositPersonnelChange(deposit: DepositModel, state: RowState): void {\r\n let depositChange: DepositChanges = new DepositChanges();\r\n depositChange.State = state;\r\n deposit.Changes.push(depositChange);\r\n }\r\n\r\n SetInvoiceStatuses(statusCode: number, commandCode: number, invoiceMode: InvoiceMode) {\r\n this.invoice.OldStatusCode = this.invoice.StatusCode;\r\n this.invoice.Status = this.order.invoiceStatusLookups.find((lookup) => lookup.Code === statusCode);\r\n this.invoice.Command = this.order.invoiceCommandLookups.find((lookup) => lookup.Code === commandCode);\r\n this.invoice.CommandCode = this.invoice.Command?.Code;\r\n this.invoice.StatusCode = this.invoice.Status?.Code;\r\n this.invoice.State = RowState.NoChange;\r\n statusCode > 0 ? (this.invoice.StatusId = this.invoice.Status?.Id) : true;\r\n commandCode > 0 ? (this.invoice.CommandId = this.invoice.Command?.Id) : true;\r\n if (invoiceMode === InvoiceMode.Update) {\r\n let invoicePositivePayable = this.order.invoicePayableChangeLookups.find((lookup) => lookup.Code === InvoicePayableChange.Positive)?.Id;\r\n let invoiceNegativePayable = this.order.invoicePayableChangeLookups.find((lookup) => lookup.Code === InvoicePayableChange.Negative)?.Id;\r\n if (this.invoice.OriginalValue) {\r\n this.invoice.PayableTotal > this.invoice.OriginalValue.PayableTotal\r\n ? (this.invoice.PayableChangeId = invoicePositivePayable)\r\n : this.invoice.PayableTotal < this.invoice.OriginalValue.PayableTotal\r\n ? (this.invoice.PayableChangeId = invoiceNegativePayable)\r\n : true;\r\n }\r\n }\r\n this.invoice.HasChange =\r\n this.order.invoice.Items.some((c) => c.NewQuantity != 0) || this.order.itemQuantityChanged || this.order.invoice.hasChangedTable;\r\n this.invoice.SaleMethodBranch = this.order.saleMethodBranch;\r\n this.invoice.SaleMethodNatureCode = this.order.saleMethodBranch.SaleMethodNatureCode;\r\n this.invoice.SaleMethodBranchTitle = this.order.saleMethodBranch.SaleMethodTitle;\r\n this.invoice.CreatedUserName = this.accountService.authService.currentUser.DisplayName;\r\n }\r\n isCustomerPrint(model: Invoice) {\r\n return (\r\n (model.SaleMethodNatureCode === SaleMethodNature.Restaurant &&\r\n (model.CommandCode == InvoiceCommand.CustomerPrint ||\r\n ((!model.CustomerPrintCount ||\r\n model.CustomerPrintCount <= 0 ||\r\n model.OldSaleMethodBranchId ||\r\n (model.HasChange && model.OldStatusCode !== InvoiceStatus.Cleared)) &&\r\n model.CommandCode === InvoiceCommand.Clear))) ||\r\n (model.SaleMethodNatureCode === SaleMethodNature.Delivery && model.CommandCode === InvoiceCommand.CustomerPrint) ||\r\n model.CommandCode === InvoiceCommand.ReprintForCustomer ||\r\n model.CommandCode === InvoiceCommand.ReceiptPrint ||\r\n (model.SaleMethodNatureCode === SaleMethodNature.Delivery &&\r\n model.CommandCode === InvoiceCommand.Assign &&\r\n model.SaleMethodBranch?.DeliveryCustomerPrintTimeCode === DeliveryCustomerPrintTime.Assign) ||\r\n (model.SaleMethodNatureCode === SaleMethodNature.Delivery &&\r\n model.CommandCode === InvoiceCommand.PreparationPrint &&\r\n model.SaleMethodBranch?.DeliveryCustomerPrintTimeCode === DeliveryCustomerPrintTime.PreparationPrint) ||\r\n (model.SaleMethodNatureCode === SaleMethodNature.FastFood && model.CommandCode === InvoiceCommand.Clear)\r\n );\r\n }\r\n PrintData() {\r\n this.localSettingService.tabsservice = this.order.tabsservice;\r\n const printList: Invoice[] = [];\r\n this.invoice.PrintPolicyPrintTime = PrintPolicyPrintTimeEnum.CustomerPrint;\r\n printList.push(this.invoice);\r\n printList.forEach((p) => {\r\n this.invoicePrint.PrintLocalInvoice(p).then((inv) => {\r\n this.localSettingService.printData(inv[0]);\r\n });\r\n });\r\n }\r\n checkPosPayment() {\r\n if (this.invoice.CommandCode === InvoiceCommand.PosPayment || this.invoice.CommandCode === InvoiceCommand.TabletPos) {\r\n this.posPaymentInvoice = Object.assign({}, this.invoice);\r\n }\r\n }\r\n //ذخیره تغییرات فاکتور جاری در دیتابیس\r\n async UpdateInvoice() {\r\n if (!this.order.currentUser) {\r\n await this.httpCommonService\r\n .get(\"Authorization/CurrentUser/\" + this.accountService.authService.currentUser.Id)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: User) => {\r\n this.invoice.createdUserPhoneNUmber = data.PhoneNumber;\r\n });\r\n } else this.invoice.createdUserPhoneNUmber = this.order.currentUser.PhoneNumber;\r\n this.checkPosPayment();\r\n const DefultPayment = this.order.saleMethodBranch?.PaymentMethods?.find((s) => s.IsDefault);\r\n const localSetting = this.storage.getData(ClearableCache.LocalSetting);\r\n const isSamanPos = localSetting.some((x) => x.PaymentMethodId === DefultPayment?.PaymentMethodId);\r\n if (isSamanPos) {\r\n this.order.splashFormService\r\n .openDialogwithCancelButton(\"\", this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.WaitForCardDraw\"))\r\n .subscribe((flag: any) => {\r\n if (!flag) {\r\n const ComputerName = this.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .get(`ReceiptPayment/CancelSamanaPosRequest/${ComputerName}`)\r\n .pipe(take(1))\r\n .subscribe((data: any) => {\r\n this.sts.showToast(\r\n \"danger\",\r\n \"\",\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.PaymentSuccessfullyCanceled\")}`\r\n );\r\n });\r\n }\r\n });\r\n } else if (!this.order.invoice?.ReceiptPayments?.some((s) => s.ShowPospayment && s.State != RowState.Modify)) {\r\n this.order.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Storing\"));\r\n }\r\n\r\n if (this.invoice.CommandCode === InvoiceCommand.TabletPos) {\r\n this.order.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.WaitForCardDraw\"));\r\n const hasDefultPayment = this.invoice.SaleMethodBranch.PaymentMethods.find((f) => f.IsDefault);\r\n let ReceiptPayment;\r\n if (hasDefultPayment) {\r\n ReceiptPayment = this.posPaymentInvoice.ReceiptPayments[0];\r\n } else {\r\n ReceiptPayment = this.posPaymentInvoice.ReceiptPayments.find((f) => f.Index === this.posPaymentInvoice.posPaymentIndex);\r\n }\r\n const isSuccess = await this.tabletPos.tabletPosClearing(ReceiptPayment.Amount).then(\r\n (resolve) => {\r\n this.order.splashFormService.closeLoading();\r\n this.order.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Storing\"));\r\n return true;\r\n },\r\n (reject) => {\r\n if (reject?.ER && reject.ER !== \"null\")\r\n this.sts.showDialog(reject.ER, this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Error\"));\r\n return false;\r\n }\r\n );\r\n if (!isSuccess) {\r\n if (hasDefultPayment) {\r\n this.invoice.ReceiptPayments = this.invoice.ReceiptPayments.filter((x) => x.Index !== ReceiptPayment.Index);\r\n this.order.invoice.ReceiptPayments = this.invoice.ReceiptPayments;\r\n }\r\n this.order.splashFormService.closeLoading();\r\n this.order.invoice.ReceiptPayments = this.order.invoice.ReceiptPayments.filter((f) => f.Index !== this.posPaymentInvoice.posPaymentIndex);\r\n this.saveEnd.isStopped = false;\r\n this.saveEnd.hasError = false;\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n this.saveEnd.next(false);\r\n this.order.detectChanges();\r\n return;\r\n }\r\n }\r\n if (this.invoice.CommandCode === InvoiceCommand.CustomerTabletPrint) {\r\n const isSuccess = await this.tabletPos.tabletPosPrint(this.invoice, this.accountService.authService.currentInformation().BrandName).then(\r\n (resolve) => {\r\n this.order.splashFormService.closeLoading();\r\n this.order.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Storing\"));\r\n return true;\r\n },\r\n (reject) => {\r\n if (reject?.ER && reject.ER !== \"null\")\r\n this.sts.showDialog(reject.ER, this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Error\"));\r\n return false;\r\n }\r\n );\r\n if (!isSuccess) {\r\n this.order.splashFormService.closeLoading();\r\n this.saveEnd.isStopped = false;\r\n this.saveEnd.hasError = false;\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n this.saveEnd.next(false);\r\n this.order.detectChanges();\r\n return;\r\n }\r\n }\r\n if (this.invoice.PreprationDeliveryTime) {\r\n if (this.invoice.PrintDescription)\r\n this.invoice.PrintDescription += `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.DeliveryTime\")}:${\r\n this.invoice.PreprationDeliveryTime\r\n }`;\r\n else\r\n this.invoice.PrintDescription = `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.DeliveryTime\")}:${\r\n this.invoice.PreprationDeliveryTime\r\n }`;\r\n }\r\n this.invoicePrintService.PreData();\r\n this.invoice.HasLocalPrtinter = this.invoicePrint.HasLocalPrint && this.isCustomerPrint(this.invoice);\r\n this.reviewEntity();\r\n\r\n this.httpCommonService\r\n .update(\"Invoice\", this.invoice)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: any) => {\r\n this.order.splashFormService.closeLoading();\r\n this.order.invoice.Id = data;\r\n this.httpCommonService\r\n .get(`Customer/GetCustomerDetails/${this.invoice.CustomerId}`)\r\n .pipe(take(1))\r\n .subscribe((customer: Customer) => {\r\n this.invoice.Customer = customer;\r\n if (this.invoice.CommandCode === InvoiceCommand.CustomerTabletPrint) {\r\n this.order.splashFormService.closeLoading();\r\n this.isStartAction = 0;\r\n this.saveEnd.isStopped = false;\r\n this.saveEnd.hasError = false;\r\n this.ActionFinish.next(true);\r\n this.order.detectChanges();\r\n } else if (this.posPaymentInvoice && this.invoice.CommandCode === InvoiceCommand.TabletPos) {\r\n this.order.splashFormService.closeLoading();\r\n this.posPaymentInvoice.Id = data ? data : this.invoice.Id;\r\n this.isStartAction = 0;\r\n this.saveEnd.isStopped = false;\r\n this.saveEnd.hasError = false;\r\n this.ActionFinish.next(true);\r\n this.saveEnd.next(this.posPaymentInvoice);\r\n this.order.detectChanges();\r\n } else {\r\n if (this.invoice.HasLocalPrtinter || this.order.currentBranch?.HasLocalService || this.order.logInBranch.FoodTruck) {\r\n if (this.invoice.OldTableId && this.invoice.TableId && this.invoice.OldTableId != this.invoice.TableId) {\r\n if (this.invoice.PrintDescription)\r\n this.invoice.PrintDescription += `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.InvoiceDeskFrom\")} ${\r\n this.invoice.OldTableTitle\r\n } ${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.To\")} ${this.invoice.TableTitle} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.Providers.InvoiceAction.WasChanged\"\r\n )}`;\r\n else\r\n this.invoice.PrintDescription = `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.InvoiceDeskFrom\")} ${\r\n this.invoice.OldTableTitle\r\n } ${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.To\")} ${this.invoice.TableTitle} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.Providers.InvoiceAction.WasChanged\"\r\n )}`;\r\n }\r\n if (\r\n this.invoice.OldSaleMethodBranchId ||\r\n this.invoice.CommandCode == InvoiceCommand.Cancel ||\r\n this.invoice.CommandCode == InvoiceCommand.Delete\r\n ) {\r\n this.httpCommonService\r\n .get(`Invoice/GetInvoiceCodeById/${data}`)\r\n .pipe(take(1))\r\n .subscribe((invoicePrintLocal: InvoicePrintLocal) => {\r\n this.invoice.NewNumberingInDate = invoicePrintLocal.NumberingInDate;\r\n this.invoice.ShamsiCreatedDate = moment(invoicePrintLocal.CreateDateTime).locale(\"fa\").format(\"YYYY/MM/DD\").toString();\r\n this.invoice.CreateDateTime = moment(invoicePrintLocal.CreateDateTime).locale(\"fa\").format(\"HH:mm\").toString();\r\n this.invoicePrint.currentBranch = this.order.currentBranch;\r\n if (this.invoice.OldSaleMethodBranchId != null) {\r\n const saleMethodTitle: string = this.order.saleMethodList.find(\r\n (f) => f.Id == this.invoice.OldSaleMethodBranchId\r\n ).SaleMethodTitle;\r\n if (this.invoice.PrintDescription)\r\n this.invoice.PrintDescription += `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Invoice\")} ${\r\n this.invoice.NumberingInDate\r\n } ${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Sale\")} ${saleMethodTitle} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ToInvoice\"\r\n )} ${this.invoice.NewNumberingInDate} ${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Sale\")} ${\r\n this.invoice.SaleMethodBranchTitle\r\n } ${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Became\")} `;\r\n else\r\n this.invoice.PrintDescription = `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Invoice\")} ${\r\n this.invoice.NumberingInDate\r\n } ${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Sale\")} ${saleMethodTitle} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ToInvoice\"\r\n )} ${this.invoice.NewNumberingInDate} ${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Sale\")} ${\r\n this.invoice.SaleMethodBranchTitle\r\n } ${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Became\")} `;\r\n }\r\n this.invoice.NumberingInDate = this.invoice.NewNumberingInDate;\r\n this.invoicePrint.PrintLocalInvoice(this.invoice, true);\r\n if (\r\n this.invoice.OldSaleMethodBranchId != null ||\r\n this.invoice.CommandCode == InvoiceCommand.Cancel ||\r\n this.invoice.CommandCode == InvoiceCommand.Delete\r\n ) {\r\n if (!(this.invoice.SaleMethodNatureCode === SaleMethodNature.Delivery && this.invoice.OldSaleMethodBranchId != null)) {\r\n this.invoicePrint.printDescription(this.invoice);\r\n }\r\n }\r\n });\r\n } else {\r\n this.httpCommonService\r\n .get(`Invoice/GetInvoiceCodeById/${data}`)\r\n .pipe(take(1))\r\n .subscribe((invoicePrintLocal: InvoicePrintLocal) => {\r\n this.invoicePrint.currentBranch = this.order.currentBranch;\r\n this.invoice.ShamsiCreatedDate = moment(invoicePrintLocal.CreateDateTime).locale(\"fa\").format(\"YYYY/MM/DD\").toString();\r\n this.invoice.CreateDateTime = moment(invoicePrintLocal.CreateDateTime).locale(\"fa\").format(\"HH:mm\").toString();\r\n this.invoicePrint.PrintLocalInvoice(this.invoice, true);\r\n });\r\n }\r\n }\r\n if (this.posPaymentInvoice && this.invoice.CommandCode === InvoiceCommand.PosPayment)\r\n this.posPaymentInvoice.Id = data ? data : this.invoice.Id;\r\n let posRes = this.invoice.CommandCode !== InvoiceCommand.PosPayment ? true : this.posPaymentInvoice;\r\n this.isStartAction = 0;\r\n this.saveEnd.isStopped = false;\r\n this.saveEnd.hasError = false;\r\n this.ActionFinish.next(true);\r\n this.saveEnd.next(posRes);\r\n this.order.detectChanges();\r\n }\r\n if (\r\n (this.order.currentActivePage === ActivePageEnum.Order ||\r\n this.order.currentActivePage === ActivePageEnum.OrderItem ||\r\n this.order.currentActivePage === ActivePageEnum.Invoice) &&\r\n this.invoice.CommandCode !== InvoiceCommand.PosPayment &&\r\n this.invoice.CommandCode !== InvoiceCommand.TabletPos\r\n ) {\r\n this.order.splashFormService.closeLoading();\r\n this.order.newInvoice();\r\n }\r\n });\r\n },\r\n (error) => {\r\n if (this.order.defaultPaymentToSaving) this.order.invoice.ReceiptPayments = this.order.invoice.ReceiptPayments.filter((x) => x.Id);\r\n this.saveEnd.next(false);\r\n let message = Utilities.getHttpResponseMessage(error);\r\n if (\r\n message.includes(this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.EnoughStockFor\")) &&\r\n this.order.logInBranch.InvDailyBalanceInhibitorId\r\n ) {\r\n this.sts.showDialog(\r\n `${message}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\"),\r\n DialogType.confirm,\r\n () => this.userUpdateConfirm(this.invoice)\r\n );\r\n } else {\r\n this.sts.showDialog(\r\n `${message}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\"),\r\n DialogType.alert,\r\n () => {\r\n this.order.splashFormService.closeLoading();\r\n }\r\n );\r\n }\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n }\r\n );\r\n }\r\n userInsertConfirm(model: Invoice) {\r\n this.httpCommonService\r\n .create(\"Invoice\", model)\r\n .pipe(take(1))\r\n .subscribe(\r\n async (data: any) => {\r\n this.order.splashFormService.closeLoading();\r\n if (this.invoice.HasLocalPrtinter) this.PrintData();\r\n if (\r\n this.order.currentActivePage === ActivePageEnum.Order ||\r\n this.order.currentActivePage === ActivePageEnum.OrderItem ||\r\n this.order.currentActivePage === ActivePageEnum.Invoice\r\n ) {\r\n setTimeout(() => {\r\n this.order.newInvoice();\r\n }, 50);\r\n }\r\n\r\n // this.sts.showToast('success', 'موفقیت آمیز', `اطلاعات با موفقیت ذخیره شد`);\r\n this.saveEnd.next(true);\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n this.order.detectChanges();\r\n },\r\n (error) => {\r\n let message = Utilities.getHttpResponseMessage(error);\r\n this.sts.showDialog(\r\n `${message}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\"),\r\n DialogType.alert,\r\n () => {\r\n this.order.splashFormService.closeLoading();\r\n }\r\n );\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n }\r\n );\r\n }\r\n userUpdateConfirm(model: Invoice) {\r\n this.httpCommonService\r\n .update(\"Invoice\", model)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: any) => {\r\n this.order.splashFormService.closeLoading();\r\n if (this.invoice.HasLocalPrtinter) this.PrintData();\r\n if (\r\n this.order.currentActivePage === ActivePageEnum.Order ||\r\n this.order.currentActivePage === ActivePageEnum.OrderItem ||\r\n this.order.currentActivePage === ActivePageEnum.Invoice\r\n )\r\n this.order.newInvoice();\r\n this.saveEnd.next(true);\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n },\r\n (error) => {\r\n this.order.splashFormService.closeLoading();\r\n let message = Utilities.getHttpResponseMessage(error);\r\n this.sts.showDialog(`${message}`, this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\"));\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n }\r\n );\r\n }\r\n /// خالی کردن property های اضافی\r\n reviewEntity() {\r\n this.invoice.CurrentUserId = this.order.currentUser.Id;\r\n this.invoice.CurrentBranchId = this.order.currentBranch?.Id;\r\n this.invoice.Command = null;\r\n this.invoice.Status = null;\r\n this.invoice.DeliveryCustomerPrintTimeCode = this.invoice.SaleMethodBranch?.DeliveryCustomerPrintTimeCode;\r\n this.invoice.SaleMethodBranch = null;\r\n this.invoice.CustomerTitle = this.invoice?.Customer?.Title;\r\n if (!this.invoice.Discount) this.invoice.Discount = 0;\r\n if (!this.invoice.Debit) this.invoice.Debit = 0;\r\n if (!this.invoice.Credit) this.invoice.Credit = 0;\r\n if (this.invoice?.ReceiptPayments && this.invoice?.ReceiptPayments?.length > 0) {\r\n for (var item of this.invoice?.ReceiptPayments) {\r\n if (!item.ReceiptPaymentTypeCode) {\r\n item.ReceiptPaymentTypeCode = this.order.receiptPaymentTypeLookup.find((f) => f.Id === item.ReceiptPaymentTypeId).Code;\r\n }\r\n item.ReceiptPaymentType = null;\r\n item.PaymentMethod = null;\r\n if (!item.Id) item.Id = 0;\r\n }\r\n }\r\n if (this.invoice.PayableTotal === 0) {\r\n this.invoice.Debit = 0;\r\n this.invoice.Credit = 0;\r\n this.invoice?.ReceiptPayments?.forEach((re) => {\r\n re.Amount = 0;\r\n });\r\n }\r\n this.invoice.Customer = null;\r\n this.invoice.OriginalValue = null;\r\n if (this.invoice.TotalDiscount <= 0) {\r\n this.invoice.DiscountPrice = 0;\r\n this.invoice.Discount = 0;\r\n }\r\n if (this.invoice.StatusCode === InvoiceStatus.Cleared && !this.invoice.ClearedUserId) {\r\n this.invoice.ClearedUserId = this.order.currentUser.Id;\r\n }\r\n }\r\n //ایجاد فاکتور جدید در دیتابیس\r\n async InsertInvoice() {\r\n this.checkPosPayment();\r\n const DefultPayment = this.order.saleMethodBranch?.PaymentMethods?.find((s) => s.IsDefault);\r\n const localSetting = this.storage.getData(ClearableCache.LocalSetting);\r\n const isSamanPos = localSetting.some((x) => x.PaymentMethodId === DefultPayment?.PaymentMethodId);\r\n if (isSamanPos && this.order.currentSaleMethodNature !== this.order.SaleMethodNature.Restaurant) {\r\n this.order.splashFormService\r\n .openDialogwithCancelButton(\"\", this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.WaitForCardDraw\"))\r\n .subscribe((flag: any) => {\r\n if (!flag) {\r\n const ComputerName = this.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .get(`ReceiptPayment/CancelSamanaPosRequest/${ComputerName}`)\r\n .pipe(take(1))\r\n .subscribe((data: any) => {\r\n this.sts.showToast(\r\n \"danger\",\r\n \"\",\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.PaymentSuccessfullyCanceled\")}`\r\n );\r\n });\r\n }\r\n });\r\n } else if (!this.order.invoice?.ReceiptPayments?.some((s) => s.ShowPospayment && s.State != RowState.Modify)) {\r\n this.order.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Storing\"));\r\n }\r\n if (this.invoice.CommandCode === InvoiceCommand.TabletPos) {\r\n this.order.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.WaitForCardDraw\"));\r\n const hasDefultPayment = this.invoice.SaleMethodBranch.PaymentMethods.find((f) => f.IsDefault);\r\n let ReceiptPayment: ReceiptPaymentModel;\r\n if (hasDefultPayment) {\r\n ReceiptPayment = this.posPaymentInvoice.ReceiptPayments[0];\r\n } else {\r\n ReceiptPayment = this.posPaymentInvoice.ReceiptPayments.find((f) => f.Index === this.posPaymentInvoice.posPaymentIndex);\r\n }\r\n const isSuccess = await this.tabletPos.tabletPosClearing(ReceiptPayment.Amount).then(\r\n (resolve) => {\r\n this.order.splashFormService.closeLoading();\r\n this.order.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Storing\"));\r\n return true;\r\n },\r\n (reject) => {\r\n if (reject?.ER && reject.ER !== \"null\")\r\n this.sts.showDialog(reject.ER, this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Error\"));\r\n return false;\r\n }\r\n );\r\n if (!isSuccess) {\r\n // اگر ریسیپت پیمنتی اضافه شده و ارور داریم باید اون رو پاک کنیم\r\n if (hasDefultPayment) {\r\n this.invoice.ReceiptPayments = this.invoice.ReceiptPayments.filter((x) => x.Index !== ReceiptPayment.Index);\r\n this.order.invoice.ReceiptPayments = this.invoice.ReceiptPayments;\r\n }\r\n this.order.splashFormService.closeLoading();\r\n this.order.invoice.ReceiptPayments = this.order.invoice.ReceiptPayments.filter((f) => f.Index !== this.posPaymentInvoice.posPaymentIndex);\r\n this.saveEnd.isStopped = false;\r\n this.saveEnd.hasError = false;\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n this.saveEnd.next(false);\r\n this.order.detectChanges();\r\n return;\r\n }\r\n }\r\n if (this.invoice.PreprationDeliveryTime) {\r\n if (this.invoice.PrintDescription)\r\n this.invoice.PrintDescription += `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.DeliveryTime\")}:${\r\n this.invoice.PreprationDeliveryTime\r\n }`;\r\n else\r\n this.invoice.PrintDescription = `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.DeliveryTime\")}:${\r\n this.invoice.PreprationDeliveryTime\r\n }`;\r\n }\r\n this.localSettingService.tabsservice = this.order.tabsservice;\r\n this.invoicePrintService.PreData();\r\n this.invoice.HasLocalPrtinter = this.invoicePrint?.HasLocalPrint && this.isCustomerPrint(this.invoice);\r\n this.reviewEntity();\r\n if (this.accountService.authService?.currentInformation()?.OrderServices && this.order.saleMethodBranch.HasDeposit) {\r\n this.order.depositFormGroup.controls[\"Invoice\"].setValue(this.order.invoice);\r\n this.order.depositFormGroup.controls[\"InvoiceId\"].setValue(0);\r\n this.order.depositFormGroup.controls[\"DepositPersonnelList\"].setValue(this.order.depositPersonnelList);\r\n const deposit = this.order.depositFormGroup.value;\r\n this.invoice.Deposit = deposit;\r\n }\r\n this.httpCommonService\r\n .create(\"Invoice\", this.invoice)\r\n .pipe(take(1))\r\n .subscribe(\r\n async (invoiceId: any) => {\r\n this.order.splashFormService.closeLoading();\r\n this.order.invoice.Id = invoiceId;\r\n const currentBranch = this.order.Branches.find((x) => x.Id === this.invoice.BranchId) || this.order.logInBranch;\r\n if (this.invoice.HasLocalPrtinter || currentBranch?.HasLocalService || currentBranch?.FoodTruck) {\r\n if (!this.order.currentUser) {\r\n await this.httpCommonService\r\n .get(\"Authorization/CurrentUser/\" + this.accountService.authService.currentUser.Id)\r\n .pipe(take(1))\r\n .toPromise()\r\n .then((data: User) => {\r\n this.invoice.createdUserPhoneNUmber = data.PhoneNumber;\r\n });\r\n } else this.invoice.createdUserPhoneNUmber = this.order.currentUser.PhoneNumber;\r\n this.httpCommonService\r\n .get(`Invoice/GetInvoiceCodeById/${invoiceId}`)\r\n .pipe(take(1))\r\n .subscribe((invoicePrintLocal: InvoicePrintLocal) => {\r\n this.invoice.NumberingInDate = invoicePrintLocal.NumberingInDate;\r\n this.invoice.ShamsiCreatedDate = moment(invoicePrintLocal.CreateDateTime).locale(\"fa\").format(\"YYYY/MM/DD\").toString();\r\n this.invoice.CreateDateTime = moment(invoicePrintLocal.CreateDateTime).locale(\"fa\").format(\"HH:mm\").toString();\r\n this.invoicePrint.currentBranch = currentBranch;\r\n this.invoice.Items.forEach((it) => {\r\n it.NewQuantity = it.Quantity;\r\n });\r\n this.httpCommonService\r\n .get(`Customer/GetCustomerDetails/${this.invoice.CustomerId}`)\r\n .pipe(take(1))\r\n .subscribe((customer: Customer) => {\r\n this.invoice.Customer = customer;\r\n this.invoicePrint.PrintLocalInvoice(this.invoice, true);\r\n });\r\n });\r\n }\r\n\r\n if (\r\n (this.posPaymentInvoice && this.invoice.CommandCode === InvoiceCommand.PosPayment) ||\r\n this.invoice.CommandCode === InvoiceCommand.TabletPos\r\n )\r\n this.posPaymentInvoice.Id = invoiceId;\r\n let posRes =\r\n this.invoice.CommandCode !== InvoiceCommand.PosPayment && this.invoice.CommandCode !== InvoiceCommand.TabletPos\r\n ? true\r\n : this.posPaymentInvoice;\r\n this.saveEnd.isStopped = false;\r\n this.saveEnd.hasError = false;\r\n this.saveEnd.next(posRes);\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n this.order.detectChanges();\r\n if (\r\n (this.order.currentActivePage === ActivePageEnum.Order ||\r\n this.order.currentActivePage === ActivePageEnum.OrderItem ||\r\n this.order.currentActivePage === ActivePageEnum.Invoice) &&\r\n this.invoice.CommandCode !== InvoiceCommand.PosPayment &&\r\n this.invoice.CommandCode !== InvoiceCommand.TabletPos\r\n ) {\r\n this.order.newInvoice();\r\n }\r\n },\r\n (error) => {\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n this.saveEnd.next(false);\r\n let message = Utilities.getHttpResponseMessage(error);\r\n this.order.invoice.ReceiptPayments = [];\r\n if (\r\n message.includes(this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.EnoughStockFor\")) &&\r\n this.order.logInBranch.InvDailyBalanceInhibitorId\r\n ) {\r\n this.sts.showDialog(\r\n `${message}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\"),\r\n DialogType.confirm,\r\n () => this.userInsertConfirm(this.invoice)\r\n );\r\n } else {\r\n this.sts.showDialog(\r\n `${message}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\"),\r\n DialogType.alert,\r\n () => {\r\n this.order.splashFormService.closeLoading();\r\n }\r\n );\r\n }\r\n }\r\n );\r\n }\r\n /// چک کزدن میزان اعتبار باقیمانده\r\n checkRemainCredit() {\r\n const invoice = Object.assign({}, this.invoice);\r\n invoice.SaleMethodBranch = null;\r\n invoice.Changes = null;\r\n invoice.Command = null;\r\n invoice.OriginalValue = null;\r\n invoice.Status = null;\r\n invoice.Customer = null;\r\n invoice.Items = null;\r\n if (!invoice.Discount) invoice.Discount = 0;\r\n if (!this.invoice.Debit) invoice.Debit = 0;\r\n if (!this.invoice.Credit) invoice.Credit = 0;\r\n this.httpCommonService\r\n .create(`Invoice/GetCredit`, invoice)\r\n .pipe(take(1))\r\n .subscribe(\r\n (value: number) => {\r\n if (this.invoice.Customer.CreditLimit > 0 && this.invoice.Debit > 0 && this.invoice.Customer.CreditLimit < value) {\r\n if (this.invoice.Customer.CreditControlTypeCode === CreditControlType.Warning) {\r\n this.isStartAction = 0;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.EnteredDebtExceedsCustomerCreditLimit\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Warning\"),\r\n DialogType.confirm,\r\n () => {\r\n if (this.invoice?.Customer?.HasCredit && this.invoice?.Customer?.CreditLimit > 0) {\r\n if (this.invoice.StatusId > 0 && this.invoice.CommandId > 0) {\r\n if (this.isValid(this.invoice)) this.invoice.Id ? this.UpdateInvoice() : this.InsertInvoice();\r\n this.isStartAction = 0;\r\n } else {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.InvoiceStatusIinvalid\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.ErrorMessage\")\r\n );\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n return false;\r\n }\r\n }\r\n }\r\n );\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n } else {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.EnteredDebtThanCustomerCreditLimit\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoiceAction.Error\")\r\n );\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(-100);\r\n return false;\r\n }\r\n } else {\r\n this.invoice.CustomerTotalDebit = value;\r\n this.invoice.Id ? this.UpdateInvoice() : this.InsertInvoice();\r\n }\r\n },\r\n (err) => {\r\n this.isStartAction = 0;\r\n this.ActionFinish.next(true);\r\n }\r\n );\r\n }\r\n //جهت نمایش صفحه گارسون ها در دسترسی سریع\r\n openFastAccess(value: FastAccessEnum) {\r\n setTimeout(() => {\r\n this.order._opened = true;\r\n this.order.selectedFastAccess = value;\r\n this.order.detectChanges();\r\n }, 50);\r\n }\r\n focus(id: string) {\r\n const input: HTMLInputElement = document.getElementById(id) as HTMLInputElement;\r\n input.focus();\r\n if (input.value) input.select();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport * as moment from \"jalali-moment\";\r\nimport * as Moment from \"moment\";\r\nimport { BaseService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-service.component\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { GroupByPipe } from \"projects/sepidz-web-framework/src/lib/pipes/group-by.pipe\";\r\nimport { MapObjectPipe } from \"projects/sepidz-web-framework/src/lib/pipes/mapobject.pipe\";\r\nimport { PersianService } from \"projects/sepidz-web-framework/src/lib/services/persian.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { Branch } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { ClearEnum, DeliveryEnum, MealEnum } from \"../../catalog/model/deposit.enum\";\r\nimport { Personnel, PersonnelRolesCodeEnum } from \"../../parties/model/personnel.model\";\r\nimport { PrintPolicy, PrintPolicyPrintTimeEnum } from \"../../prints/model/print-policy.model\";\r\nimport { PrintTemplate } from \"../../prints/model/print-template.model\";\r\nimport { DeliveryCustomerPrintTime, SaleMethodNature } from \"../../sales/model/sale-method-branch.model\";\r\nimport { ChangeCachEnum } from \"../model/changecach.enum\";\r\nimport { Invoice, InvoiceCommand, InvoiceStatus } from \"../model/invoice.model\";\r\nimport { InvoiceItemPrintModel, InvoicePrintModel, PrintDocumentInvoiceModel } from \"../model/InvoicePrintModel\";\r\nimport { OrderService } from \"../order.service\";\r\nimport { TabletPosService } from \"./tabletpos.service\";\r\nimport { OrderItemCategory } from \"../model/orderItemcategory.model\";\r\nimport { HttpHeaders } from \"@angular/common/http\";\r\nimport { isNullOrEmptyString } from \"@progress/kendo-angular-grid/dist/es2015/utils\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class InvoicePrintService extends BaseService {\r\n PrintPolicy: PrintPolicy[];\r\n currentBranch: Branch;\r\n PrintTemplate: PrintTemplate[];\r\n changeCachEnum: any[] = [];\r\n currentInvoiceList: InvoicePrintModel[] = [];\r\n HasLocalPrint: boolean = false;\r\n ComputerName: string;\r\n PrintPolicyForTotalPrice: any;\r\n currentUserPhoneNumber: string;\r\n DataDaysWeek = [\r\n { Id: 0, Title: this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.Saturday\") },\r\n { Id: 1, Title: this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.Sunday\") },\r\n { Id: 2, Title: this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.Monday\") },\r\n { Id: 3, Title: this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.Tuesday\") },\r\n { Id: 4, Title: this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.Wednesday\") },\r\n { Id: 5, Title: this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.Thursday\") },\r\n { Id: 6, Title: this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.Friday\") },\r\n ];\r\n itemCategoryListAll: OrderItemCategory = null;\r\n constructor(private tabletPos: TabletPosService, private order: OrderService, private persianService: PersianService) {\r\n super();\r\n }\r\n checkForHasLocalPrint(): boolean {\r\n if (!this.ComputerName) {\r\n const computerName: string = this.storage.getData(ClearableCache.ComputerName);\r\n this.ComputerName = computerName;\r\n }\r\n this.HasLocalPrint = this.PrintPolicy?.some(\r\n (s) =>\r\n !isNullOrEmptyString(s.ComputerName) &&\r\n !isNullOrEmptyString(this.ComputerName) &&\r\n s.ComputerName?.replace(\".local\", \"\") === this.ComputerName?.replace(\".local\", \"\") &&\r\n s.HasLocalSetting\r\n );\r\n return this.HasLocalPrint;\r\n }\r\n async PreData() {\r\n const printPolicyData = this.order.storage.getData(ClearableCache.PrintPolicy);\r\n const printTemplateData = this.order.storage.getData(ClearableCache.PrintTemplate);\r\n if (this.changeCachEnum.some((f) => f === ChangeCachEnum.ItemcategoryList) && printPolicyData?.length) this.PrintPolicy = printPolicyData;\r\n else {\r\n const computerName = this.order.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .get(\"PrintPolicy/GetAllPrintPolicy\" + (computerName ? \"?ComputerName=\" + computerName : \"\"))\r\n .pipe(take(1))\r\n .subscribe(\r\n (res: PrintPolicy[]) => {\r\n if (this.currentBranch.AccessToAllBranches) {\r\n this.PrintPolicy = res;\r\n this.order.storage.savePermanentData(this.PrintPolicy, ClearableCache.PrintPolicy);\r\n } else {\r\n this.PrintPolicy = res?.filter((f) => f.BranchId === this.currentBranch.Id);\r\n this.order.storage.savePermanentData(this.PrintPolicy, ClearableCache.PrintPolicy);\r\n }\r\n },\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n this.checkForHasLocalPrint();\r\n /// PrintTemplate\r\n if (this.changeCachEnum.some((f) => f === ChangeCachEnum.PrintTemplate) && printTemplateData?.length) this.PrintTemplate = printTemplateData;\r\n else {\r\n this.httpCommonService\r\n .get(\"PrintTemplate\")\r\n .pipe(take(1))\r\n .subscribe((res: PrintTemplate[]) => {\r\n this.PrintTemplate = res;\r\n this.order.storage.savePermanentData(this.PrintTemplate, ClearableCache.PrintTemplate);\r\n });\r\n }\r\n }\r\n async PrintLocalInvoice(invoice: Invoice, hasSelfPrint: boolean = false, withPrint: boolean = false): Promise {\r\n let printDocuments: PrintDocumentInvoiceModel[] = [];\r\n this.currentUserPhoneNumber = invoice.createdUserPhoneNUmber;\r\n const model = Object.assign({}, invoice);\r\n const allowPrint = invoice.CommandCode === InvoiceCommand.PosPayment || invoice.CommandCode === InvoiceCommand.TabletPos ? false : true;\r\n const InvoiceList: Invoice[] = [];\r\n let invoiceModel = null;\r\n /// fastfood\r\n if (\r\n model.SaleMethodNatureCode == SaleMethodNature.FastFood &&\r\n model.CommandCode != InvoiceCommand.Save &&\r\n model.CommandCode != InvoiceCommand.TemporaryRegister &&\r\n model.CommandCode != InvoiceCommand.ClearWithoutPrint\r\n ) {\r\n if (!allowPrint) return;\r\n if (model.CommandCode == InvoiceCommand.Clear && model.StatusCode == InvoiceStatus.Cleared) {\r\n if (!model.OldSaleMethodBranchId) {\r\n invoiceModel = Object.assign({}, model);\r\n invoiceModel.PrintPolicyPrintTime = PrintPolicyPrintTimeEnum.CustomerPrint;\r\n await this.PrintLocal(invoiceModel).then((res) => {\r\n if (res != null && res.length > 0) printDocuments.push(...res);\r\n invoice.CustomerPrintCount++;\r\n });\r\n invoiceModel = Object.assign({}, model);\r\n invoiceModel.PrintPolicyPrintTime = PrintPolicyPrintTimeEnum.PreparationPrint;\r\n await this.PrintLocal(invoiceModel).then((res) => {\r\n if (res != null && res.length > 0) printDocuments.push(...res);\r\n invoice.PreparationPrintCount++;\r\n });\r\n } else {\r\n invoiceModel = Object.assign({}, model);\r\n invoiceModel.PrintPolicyPrintTime = PrintPolicyPrintTimeEnum.CustomerPrint;\r\n await this.PrintLocal(invoiceModel).then((res) => {\r\n if (res != null && res.length > 0) printDocuments.push(...res);\r\n invoice.CustomerPrintCount++;\r\n });\r\n }\r\n }\r\n if (model.CommandCode == InvoiceCommand.CustomerPrint || model.CommandCode == InvoiceCommand.ReprintForCustomer) {\r\n invoiceModel = Object.assign({}, model);\r\n invoiceModel.PrintPolicyPrintTime = PrintPolicyPrintTimeEnum.CustomerPrint;\r\n await this.PrintLocal(invoiceModel).then((res) => {\r\n if (res != null && res.length > 0) printDocuments.push(...res);\r\n invoice.CustomerPrintCount++;\r\n });\r\n }\r\n if (\r\n ((model.CommandCode === InvoiceCommand.PreparationPrint || model.CommandCode === InvoiceCommand.ReprintForPreparation) &&\r\n (!model.OldSaleMethodBranchId || model.HasChange || model.CommandCode === InvoiceCommand.ReprintForPreparation)) ||\r\n (model.OldSaleMethodBranchId && model.OldStatusCode === InvoiceStatus.New)\r\n ) {\r\n invoiceModel = Object.assign({}, model);\r\n invoiceModel.PrintPolicyPrintTime = PrintPolicyPrintTimeEnum.PreparationPrint;\r\n await this.PrintLocal(invoiceModel).then((res) => {\r\n if (res != null && res.length > 0) printDocuments.push(...res);\r\n invoice.PreparationPrintCount++;\r\n });\r\n }\r\n }\r\n /// salon\r\n if (\r\n model.SaleMethodNatureCode == SaleMethodNature.Restaurant &&\r\n model.CommandCode != InvoiceCommand.Save &&\r\n model.CommandCode != InvoiceCommand.TemporaryRegister\r\n ) {\r\n if (!allowPrint && model.CommandCode != InvoiceCommand.CustomerPrint) return;\r\n if (\r\n (model.OldStatusCode == InvoiceStatus.Ordering && model.HasChange && !model.OldSaleMethodBranchId) ||\r\n model.CommandCode == InvoiceCommand.PreparationPrint ||\r\n model.CommandCode == InvoiceCommand.ReprintForPreparation\r\n ) {\r\n if (\r\n ((model.StatusCode != InvoiceStatus.Cleared && model.CustomerPrintCount <= 1) ||\r\n model.CommandCode == InvoiceCommand.ReprintForPreparation) &&\r\n (model.OldSaleMethodBranchId == null ||\r\n model.OldStatusCode === InvoiceStatus.New ||\r\n model.CommandCode == InvoiceCommand.ReprintForPreparation)\r\n ) {\r\n invoiceModel = Object.assign({}, model);\r\n invoiceModel.PrintPolicyPrintTime = PrintPolicyPrintTimeEnum.PreparationPrint;\r\n await this.PrintLocal(invoiceModel).then((res) => {\r\n if (res != null && res.length > 0) printDocuments.push(...res);\r\n invoice.PreparationPrintCount++;\r\n });\r\n }\r\n }\r\n if (\r\n model.CommandCode == InvoiceCommand.CustomerPrint ||\r\n model.CommandCode == InvoiceCommand.Clear ||\r\n model.CommandCode == InvoiceCommand.ReprintForCustomer\r\n ) {\r\n if (\r\n model.CommandCode === InvoiceCommand.ReprintForCustomer ||\r\n model.OldSaleMethodBranchId ||\r\n ((model.OldStatusCode === InvoiceStatus.Clearing || model.OldStatusCode === InvoiceStatus.Ordering) &&\r\n (model.HasChange ||\r\n (model.CustomerPrintCount <= 1 && model.CommandCode !== InvoiceCommand.Clear) ||\r\n (model.CustomerPrintCount < 1 && model.CommandCode === InvoiceCommand.Clear)))\r\n ) {\r\n invoiceModel = Object.assign({}, model);\r\n invoiceModel.PrintPolicyPrintTime = PrintPolicyPrintTimeEnum.CustomerPrint;\r\n await this.PrintLocal(invoiceModel).then((res) => {\r\n if (res != null && res.length > 0) printDocuments.push(...res);\r\n invoice.CustomerPrintCount++;\r\n });\r\n }\r\n }\r\n }\r\n /// Moshtarekin\r\n if (\r\n model.SaleMethodNatureCode == SaleMethodNature.Delivery &&\r\n model.CommandCode != InvoiceCommand.Save &&\r\n model.CommandCode != InvoiceCommand.TemporaryRegister\r\n ) {\r\n if (\r\n model.CommandCode == InvoiceCommand.ReceiptPrint ||\r\n model.CommandCode == InvoiceCommand.CustomerPrint ||\r\n model.CommandCode == InvoiceCommand.ReprintForCustomer ||\r\n (model.CommandCode == InvoiceCommand.Assign && model.DeliveryCustomerPrintTimeCode == DeliveryCustomerPrintTime.Assign) ||\r\n (model.CommandCode == InvoiceCommand.PreparationPrint && model.DeliveryCustomerPrintTimeCode == DeliveryCustomerPrintTime.PreparationPrint)\r\n ) {\r\n invoiceModel = Object.assign({}, model);\r\n invoiceModel.PrintPolicyPrintTime = PrintPolicyPrintTimeEnum.CustomerPrint;\r\n await this.PrintLocal(invoiceModel).then((res) => {\r\n if (res != null && res.length > 0) printDocuments.push(...res);\r\n invoice.CustomerPrintCount++;\r\n });\r\n }\r\n if (\r\n model.CommandCode == InvoiceCommand.PreparationPrint ||\r\n (model.IsMultiPrint && model.CommandCode == InvoiceCommand.TemporaryRegister) ||\r\n model.CommandCode == InvoiceCommand.ReprintForPreparation\r\n ) {\r\n invoiceModel = Object.assign({}, model);\r\n invoiceModel.PrintPolicyPrintTime = PrintPolicyPrintTimeEnum.PreparationPrint;\r\n await this.PrintLocal(invoiceModel).then((res) => {\r\n if (res != null && res.length > 0) printDocuments.push(...res);\r\n invoice.PreparationPrintCount++;\r\n });\r\n }\r\n }\r\n if (hasSelfPrint) {\r\n if (printDocuments?.length > 0) {\r\n if (this.HasLocalPrint) {\r\n const group = new GroupByPipe();\r\n const newList = group.transform(\r\n printDocuments.filter((c) => c.InvoicePrintModel.some((x) => x.LocalServiceIp != null)),\r\n [\"LocalServiceIp\"]\r\n );\r\n newList?.forEach((element) => {\r\n if (element?.key && element?.key !== \"undefined\" && element?.value) {\r\n const url = \"http://\" + element.key + \"/PrintDocument\";\r\n this.httpCommonService\r\n .postCustom(url, element?.value)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: any) => {},\r\n (err) => {}\r\n );\r\n }\r\n });\r\n }\r\n let FilterList = printDocuments.filter((c) => c.InvoicePrintModel.some((x) => x.LocalServiceIp === null));\r\n if (this.currentBranch?.HasLocalService && FilterList?.length > 0 && FilterList.map((c) => c.InvoicePrintModel).length > 0) {\r\n const url = \"http://\" + this.currentBranch.LocalServiceIp + \"/PrintDocument\";\r\n this.httpCommonService\r\n .postCustom(url, FilterList)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: any) => {},\r\n (err) => {}\r\n );\r\n }\r\n }\r\n }\r\n return printDocuments;\r\n }\r\n async PrintLocal(invoice: Invoice, hasReturn?: boolean): Promise {\r\n let printDocuments: PrintDocumentInvoiceModel[] = [];\r\n let oldStatusCode: number;\r\n let printTimeCode: number;\r\n let personals: Personnel[] = [];\r\n let ids: number[] = [];\r\n let customerTotalDebit: number = 0;\r\n if (this.currentBranch?.HasTotalDebit && invoice.Debit === 0 && invoice.CommandCode != InvoiceCommand.Assign) {\r\n customerTotalDebit = await this.httpCommonService.create(\"Invoice/GetCredit\", invoice).take(1).toPromise();\r\n }\r\n if (invoice.Deposit) {\r\n const array = invoice?.Deposit.DepositPersonnelList?.map((x) => x.PersonnelId);\r\n ids = array[\"flat\"]();\r\n let uniqueIds: number[] = ids.reduce((acc, val) => {\r\n if (!acc.includes(val)) acc.push(val);\r\n return acc;\r\n }, []);\r\n if (uniqueIds && uniqueIds.length > 0)\r\n personals = await this.httpCommonService.create(\"Personnel/GetPersonnelByIds\", uniqueIds).pipe(take(1)).toPromise();\r\n }\r\n const info = this.accountService.authService.currentInformation();\r\n this.order.indexedDbService.get(\"FrontOffice\", \"Categories\").then((res) => {\r\n this.itemCategoryListAll = res[0];\r\n });\r\n oldStatusCode = invoice.OldStatusCode;\r\n let mapper = new MapObjectPipe();\r\n let Invoiceoutput = new InvoicePrintModel();\r\n let model: InvoicePrintModel;\r\n printTimeCode = invoice.PrintPolicyPrintTime;\r\n model = null;\r\n model = Object.assign({}, mapper.transform(invoice, Invoiceoutput));\r\n model.Items = [];\r\n if (this.order.saleMethodBranch?.ShowDescInvCustomer || this.order.saleMethodBranch?.ShowDescInvKitchen) {\r\n let descResult = model.Description.split(\"///\");\r\n if (descResult != null && descResult.length > 0)\r\n switch (descResult.length) {\r\n case 1:\r\n model.DescKitchen = descResult[0];\r\n model.DescCustomer = \"\";\r\n model.Description = \"\";\r\n break;\r\n case 2:\r\n model.DescKitchen = descResult[0];\r\n model.DescCustomer = descResult[1];\r\n model.Description = \"\";\r\n case 3:\r\n model.DescKitchen = descResult[0] + \" \" + descResult[2];\r\n model.DescCustomer = descResult[1] + \" \" + descResult[2];\r\n model.Description = \"\";\r\n default:\r\n break;\r\n }\r\n }\r\n if (this.currentBranch.FoodTruck) {\r\n this.tabletPos.tabletPosPrint(invoice, info.BrandName).then(() => {\r\n const printPolicies = this.PrintPolicy.filter(\r\n (x) =>\r\n x.BranchId == this.currentBranch.Id &&\r\n (x.SaleMethodBranches?.length <= 0 || x.SaleMethodBranches?.some((smb) => smb.SaleMethodBranchId == invoice.SaleMethodBranchId))\r\n );\r\n if (\r\n invoice.SaleMethodNatureCode !== SaleMethodNature.Delivery &&\r\n invoice.SaleMethodNatureCode !== SaleMethodNature.Restaurant &&\r\n printPolicies.length > 1\r\n ) {\r\n this.tabletPos.tabletPosPrint(invoice, info.BrandName).then();\r\n }\r\n });\r\n return;\r\n }\r\n //بابت چاپ محلی و لوکال سرویس اضاٝه شد\r\n if (invoice.OtherPrintTemplateId && invoice.PrintPolicyPrintTime === PrintPolicyPrintTimeEnum.CustomerPrint) {\r\n const printPolicies = this.PrintPolicy.filter(\r\n (x) =>\r\n x.NonDefaultPrinting &&\r\n x.PrintTemplateId == invoice.OtherPrintTemplateId &&\r\n !x.HasLocalSetting &&\r\n x.PrintTimeCode == invoice.PrintPolicyPrintTime &&\r\n x.BranchId == this.currentBranch.Id &&\r\n (x.SaleMethodBranches?.length <= 0 || x.SaleMethodBranches?.some((smb) => smb.SaleMethodBranchId == invoice.SaleMethodBranchId)) &&\r\n (x.Salons?.length <= 0 || x.Salons.some((s) => s.SalonId == invoice.SalonId))\r\n );\r\n const printPoliciesLocal = this.PrintPolicy.filter(\r\n (x) =>\r\n x.NonDefaultPrinting &&\r\n x.PrintTemplateId == invoice.OtherPrintTemplateId &&\r\n ((x.HasLocalSetting && x.ComputerName == this.ComputerName) || this.currentBranch?.HasLocalService) &&\r\n x.PrintTimeCode == invoice.PrintPolicyPrintTime &&\r\n x.BranchId == this.currentBranch.Id &&\r\n (x.SaleMethodBranches?.length <= 0 || x.SaleMethodBranches?.some((smb) => smb.SaleMethodBranchId == invoice.SaleMethodBranchId)) &&\r\n (x.Salons?.length <= 0 || x.Salons.some((s) => s.SalonId == invoice.SalonId))\r\n );\r\n if (printPolicies.length > 0 && printPoliciesLocal.length <= 0) {\r\n return;\r\n }\r\n }\r\n if (model.Logo?.length <= 0) model.Logo = null;\r\n if (!model.NumberOfGuests) model.NumberOfGuests = null;\r\n if (!model.CustomerNumber) model.CustomerNumber = null;\r\n invoice.Items.forEach((it) => {\r\n let InvoiceItemoutput = new InvoiceItemPrintModel();\r\n model.Items.push(JSON.parse(JSON.stringify(mapper.transform(it, InvoiceItemoutput))));\r\n });\r\n let Items: any[] = [];\r\n let Catogorys: any[] = [];\r\n if (model.Items.some((a) => a.PrintDisplayOrder > 0)) {\r\n model.Items = JSON.parse(\r\n JSON.stringify(\r\n model.Items.sort(function (a, b) {\r\n return a.PrintDisplayOrder - b.PrintDisplayOrder;\r\n })\r\n )\r\n );\r\n } else {\r\n model.Items = JSON.parse(\r\n JSON.stringify(\r\n model.Items.sort(function (a, b) {\r\n return a.Index - b.Index;\r\n })\r\n )\r\n );\r\n }\r\n let row: number = 0;\r\n model.Items.forEach((item) => {\r\n row++;\r\n item.Price = item.UnitPrice * item.Quantity;\r\n Items.push(item.ItemId);\r\n if (item.CategoryId && !Catogorys.some((c) => c == item.CategoryId)) {\r\n Catogorys.push(item.CategoryId);\r\n if (item?.ParentCategoryId != null) Catogorys.push(item.ParentCategoryId);\r\n }\r\n if (model.CurrencyCode == 2) {\r\n item.UnitPrice = item.UnitPrice / 10;\r\n item.Price = item.Price / 10;\r\n item.TotalPrice = item.TotalPrice / 10;\r\n item.UnitAdditive = item.UnitAdditive / 10;\r\n item.UnitDiscount = item.UnitDiscount / 10;\r\n item.UnitToll = item.UnitToll / 10;\r\n item.UnitService = item.UnitService / 10;\r\n item.UnitTax = item.UnitTax / 10;\r\n }\r\n item.RowNumber = row;\r\n });\r\n model.ShippingAddress = invoice.SaleMethodNatureCode == SaleMethodNature.Delivery ? invoice.CustomerAddres : null;\r\n model.IsBarCodeInvoice = this.order.saleMethodBranch.IsBarCodeInvoice;\r\n model.ItemCountDisplay = this.order.saleMethodBranch.ItemCountDisplay;\r\n model.CustomerPhoneNumber = invoice.PhoneNumber;\r\n model.PrintTime = new Date().toLocaleTimeString(\"en-GB\", { hour: \"2-digit\", minute: \"2-digit\" });\r\n if (!model.CreateDate) model.CreateDate = new Date();\r\n if (PrintPolicyPrintTimeEnum.CustomerPrint == invoice.PrintPolicyPrintTime && invoice.CommandCode != InvoiceCommand.Assign)\r\n model.RePrint = invoice.CustomerPrintCount >= 1;\r\n if (PrintPolicyPrintTimeEnum.PreparationPrint == invoice.PrintPolicyPrintTime) model.RePrint = invoice.PreparationPrintCount >= 1;\r\n\r\n model.DisplayLogoInPrintTemplates = this.currentBranch.DisplayLogoInPrintTemplates;\r\n model.ItemCount = model.Items.length.toString();\r\n model.DisplayAddressInInvoice = this.currentBranch.DisplayAddressInInvoice;\r\n model.IgnoreBlackBackground = this.currentBranch.IgnoreBlackBackground;\r\n model.CurrencyCode = this.currentBranch.CurrencyCode;\r\n model.CurrencyTitle = this.currentBranch.CurrencyTitle;\r\n model.RestaurantEconomicalNumber = this.currentBranch.EconomicalNumber;\r\n model.CustomerEconomicCode = invoice.Customer?.EconomicCode;\r\n model.RestaurantPhoneNumber = this.currentBranch.PhoneNumber;\r\n model.IsPickUp = invoice.IsPickUp;\r\n const itemIds: number[] = invoice.Items.map((x) => x.ItemId);\r\n model.TotalCalories = this.itemCategoryListAll?.Items.filter((x) => itemIds.includes(x.Id))\r\n .map((x) => x.Calories)\r\n .reduce((x, y) => x + y, 0);\r\n model.RestaurantPostalCode = this.currentBranch.PostalCode;\r\n model.MultiPhoneNumber = invoice.MultiPhoneNumber;\r\n model.CreatedDateTime = invoice.CreateDateTime;\r\n model.PayableAmountToPersian = this.persianService.wordify(model.PayableTotal);\r\n model.CustomerPostalCode = invoice.Customer?.PostalCode?.toString();\r\n model.ShippingCost = model.CurrencyCode == 2 ? model.ShippingCost / 10 : model.ShippingCost;\r\n model.HasTotalDebit = this.currentBranch?.HasTotalDebit;\r\n if (this.currentBranch?.HasTotalDebit) {\r\n model.CustomerTotalDebit = model.Debit === 0 && invoice.CommandCode != InvoiceCommand.Assign ? customerTotalDebit : model.CustomerTotalDebit;\r\n } else model.CustomerTotalDebit = null;\r\n if (invoice.Deposit) {\r\n let cookDisplayNames: string[] = [];\r\n let courierDisplayNames: string[] = [];\r\n let cooksServicesAmountVariable: string = \"\";\r\n let courierServicesAmountVariable: string = \"\";\r\n const cooksPersonnel = personals.filter((c) => ids.includes(c.Id) && c.Roles.some((r) => r.PersonnelRole.Code == PersonnelRolesCodeEnum.Cooks));\r\n const driverPersonnel = personals.filter(\r\n (c) => ids.includes(c.Id) && c.Roles.some((r) => r.PersonnelRole.Code == PersonnelRolesCodeEnum.Driver)\r\n );\r\n if (cooksPersonnel != null) {\r\n cooksPersonnel.forEach((cook) => {\r\n if (model.CooksServicesAmount) cooksServicesAmountVariable += cook.Party?.DisplayName;\r\n else cooksServicesAmountVariable = cook.Party?.DisplayName;\r\n cookDisplayNames.push(cooksServicesAmountVariable);\r\n });\r\n model.CooksServicesAmount = cookDisplayNames.join(\"-\");\r\n }\r\n if (driverPersonnel != null) {\r\n driverPersonnel.forEach((courier) => {\r\n if (model.CourierServicesAmount) courierServicesAmountVariable += courier.Party?.DisplayName;\r\n else courierServicesAmountVariable = courier.Party?.DisplayName;\r\n courierDisplayNames.push(courierServicesAmountVariable);\r\n });\r\n model.CourierServicesAmount = courierDisplayNames.join(\"-\");\r\n }\r\n model.DeliveryType = DeliveryEnum[invoice.Deposit.DeliveryType];\r\n\r\n model.ServingFoodDate = moment(invoice.Deposit.ServingFoodDate).locale(\"fa\").format(\"YYYY/MM/DD\").toString();\r\n model.ClearType = ClearEnum[invoice.Deposit.ClearType];\r\n var servingFoodDateWeekDay = Moment(invoice.Deposit.ServingFoodDate).locale(\"fa\").weekday();\r\n model.ServingFoodTime = invoice.Deposit.ServingFoodTime;\r\n model.NumberOfPeople = invoice.Deposit.NumberOfPeople;\r\n model.MealTimeTitle = MealEnum[invoice.Deposit.MealTime];\r\n model.DaysOfWeek = this.DataDaysWeek.find((c) => c.Id == servingFoodDateWeekDay).Title;\r\n model.RemainingAmount =\r\n model.CurrencyCode == 2 ? (model.PayableTotal - invoice.Deposit.DepositAmount) / 10 : model.PayableTotal - invoice.Deposit.DepositAmount;\r\n model.RemainingAmountToPersian = this.persianService.wordify(model.RemainingAmount);\r\n model.ServicesAmount = model.CurrencyCode == 2 ? invoice.Deposit.ServicesAmount / 10 : invoice.Deposit.ServicesAmount;\r\n model.DepositAmount = model.CurrencyCode == 2 ? invoice.Deposit.DepositAmount / 10 : invoice.Deposit.DepositAmount;\r\n model.DaysOfWeek = this.DataDaysWeek.find((c) => c.Id == servingFoodDateWeekDay).Title;\r\n }\r\n model.CustomerNationalCode = invoice.Customer?.Party?.NationalCode;\r\n model.BranchNationalCode = this.currentBranch?.NationalCode;\r\n model.CreatedUserPhoneNumber = this.currentUserPhoneNumber;\r\n model.CustomerNationalId = invoice.Customer?.Party?.NationalId;\r\n model.CustomerRegistrationNumber = invoice.Customer?.RegistrationNumber;\r\n\r\n model.RestaurantTitle = info.CustomerName;\r\n model.RestaurantAddress = info.RestaurantAddress;\r\n model.Message = this.currentBranch.Message;\r\n model.OtherPrintTemplateId = invoice.OtherPrintTemplateId;\r\n model.CustomerNumber = `${model.CustomerNumber}`;\r\n if (model.CustomerNumber === null || model.CustomerNumber === \"null\") model.CustomerNumber = \"0\";\r\n if (model.CurrencyCode == 2) {\r\n model.TotalNet = model.TotalNet / 10;\r\n model.PayableTotal = model.PayableTotal / 10;\r\n model.TotalService = model.TotalService / 10;\r\n model.TotalTax = model.TotalTax / 10;\r\n model.TotalToll = model.TotalToll / 10;\r\n model.TotalDiscount = model.TotalDiscount / 10;\r\n model.Total = model.Total / 10;\r\n model.PackingPrice = model.PackingPrice / 10;\r\n }\r\n // let ItemsprintPolicies: PrintPolicy[];\r\n // let GroupprintPolicies: PrintPolicy[];\r\n let printPolicies: PrintPolicy[] = [];\r\n if (!model.OtherPrintTemplateId) {\r\n if (invoice.PrintPolicyPrintTime == PrintPolicyPrintTimeEnum.CustomerPrint) {\r\n if (!model.IsReceiptPrint)\r\n printPolicies = this.PrintPolicy.filter(\r\n (x) =>\r\n !x.NonDefaultPrinting &&\r\n ((x.HasLocalSetting && x.ComputerName === this.ComputerName) || this.currentBranch.HasLocalService) &&\r\n x.BranchId == this.currentBranch.Id &&\r\n !x.IsReceiptPrint &&\r\n x.PrintTimeCode == invoice.PrintPolicyPrintTime &&\r\n (x.SaleMethodBranches?.length <= 0 || x.SaleMethodBranches?.some((smb) => smb.SaleMethodBranchId == invoice.SaleMethodBranchId)) &&\r\n (x.Salons?.length <= 0 || x.Salons.some((s) => s.SalonId == invoice.SalonId))\r\n );\r\n else\r\n printPolicies = this.PrintPolicy.filter(\r\n (x) =>\r\n !x.NonDefaultPrinting &&\r\n ((x.HasLocalSetting && x.ComputerName === this.ComputerName) || this.currentBranch.HasLocalService) &&\r\n x.BranchId == this.currentBranch.Id &&\r\n x.IsReceiptPrint &&\r\n x.PrintTimeCode == invoice.PrintPolicyPrintTime &&\r\n (x.SaleMethodBranches?.length <= 0 || x.SaleMethodBranches?.some((smb) => smb.SaleMethodBranchId == invoice.SaleMethodBranchId)) &&\r\n (x.Salons?.length <= 0 || x.Salons.some((s) => s.SalonId == invoice.SalonId))\r\n );\r\n if (printPolicies?.some((x) => x.HasLocalSetting && x.ComputerName === this.ComputerName))\r\n printPolicies = printPolicies?.filter((x) => x.HasLocalSetting && x.ComputerName === this.ComputerName);\r\n } else {\r\n if (!model.IsMultiPrint)\r\n printPolicies = this.PrintPolicy.filter(\r\n (x) =>\r\n x.PrintTimeCode == invoice.PrintPolicyPrintTime &&\r\n !x.NonDefaultPrinting &&\r\n !x.IsOrderPrint &&\r\n x.BranchId == this.currentBranch.Id &&\r\n (x.SaleMethodBranches?.length <= 0 || x.SaleMethodBranches?.some((smb) => smb.SaleMethodBranchId == invoice.SaleMethodBranchId)) &&\r\n (x.Salons?.length <= 0 || x.Salons.some((s) => s.SalonId == invoice.SalonId))\r\n );\r\n else\r\n printPolicies = this.PrintPolicy.filter(\r\n (x) =>\r\n x.PrintTimeCode == invoice.PrintPolicyPrintTime &&\r\n !x.NonDefaultPrinting &&\r\n x.IsOrderPrint &&\r\n x.BranchId == this.currentBranch.Id &&\r\n (x.SaleMethodBranches?.length <= 0 || x.SaleMethodBranches?.some((smb) => smb.SaleMethodBranchId == invoice.SaleMethodBranchId)) &&\r\n (x.Salons?.length <= 0 || x.Salons.some((s) => s.SalonId == invoice.SalonId))\r\n );\r\n }\r\n } else {\r\n if (invoice.PrintPolicyPrintTime == PrintPolicyPrintTimeEnum.CustomerPrint) {\r\n if (!model.IsReceiptPrint) {\r\n printPolicies = this.PrintPolicy.filter(\r\n (x) =>\r\n x.NonDefaultPrinting &&\r\n !x.IsReceiptPrint &&\r\n x.PrintTemplateId == model.OtherPrintTemplateId &&\r\n x.PrintTimeCode == invoice.PrintPolicyPrintTime &&\r\n x.BranchId == this.currentBranch.Id &&\r\n ((x.HasLocalSetting && x.ComputerName === this.ComputerName) || this.currentBranch.HasLocalService) &&\r\n (x.SaleMethodBranches?.length <= 0 || x.SaleMethodBranches?.some((smb) => smb.SaleMethodBranchId == invoice.SaleMethodBranchId)) &&\r\n (x.Salons?.length <= 0 || x.Salons.some((s) => s.SalonId == invoice.SalonId))\r\n );\r\n if (printPolicies?.some((x) => x.HasLocalSetting && x.ComputerName === this.ComputerName))\r\n printPolicies = printPolicies?.filter((x) => x.HasLocalSetting && x.ComputerName === this.ComputerName);\r\n else printPolicies = printPolicies?.filter((x) => !x.HasLocalSetting);\r\n if (printPolicies.length === 0) {\r\n printPolicies = this.PrintPolicy.filter(\r\n (x) =>\r\n x.PrintTimeCode == invoice.PrintPolicyPrintTime &&\r\n !x.NonDefaultPrinting &&\r\n !x.IsReceiptPrint &&\r\n ((x.HasLocalSetting && x.ComputerName === this.ComputerName) || this.currentBranch.HasLocalService) &&\r\n x.BranchId == this.currentBranch.Id &&\r\n (x.SaleMethodBranches?.length <= 0 || x.SaleMethodBranches?.some((smb) => smb.SaleMethodBranchId == invoice.SaleMethodBranchId)) &&\r\n (x.Salons?.length <= 0 || x.Salons.some((s) => s.SalonId == invoice.SalonId))\r\n );\r\n if (printPolicies?.some((x) => x.HasLocalSetting && x.ComputerName === this.ComputerName))\r\n printPolicies = printPolicies?.filter((x) => x.HasLocalSetting && x.ComputerName === this.ComputerName);\r\n }\r\n } else {\r\n printPolicies = this.PrintPolicy.filter(\r\n (x) =>\r\n x.NonDefaultPrinting &&\r\n x.IsReceiptPrint &&\r\n x.PrintTemplateId == model.OtherPrintTemplateId &&\r\n x.PrintTimeCode == invoice.PrintPolicyPrintTime &&\r\n x.BranchId == this.currentBranch.Id &&\r\n ((x.HasLocalSetting && x.ComputerName === this.ComputerName) || this.currentBranch.HasLocalService) &&\r\n (x.SaleMethodBranches?.length <= 0 || x.SaleMethodBranches?.some((smb) => smb.SaleMethodBranchId == invoice.SaleMethodBranchId)) &&\r\n (x.Salons?.length <= 0 || x.Salons.some((s) => s.SalonId == invoice.SalonId))\r\n );\r\n if (printPolicies?.some((x) => x.HasLocalSetting && x.ComputerName === this.ComputerName))\r\n printPolicies = printPolicies?.filter((x) => x.HasLocalSetting && x.ComputerName === this.ComputerName);\r\n else printPolicies = printPolicies?.filter((x) => !x.HasLocalSetting);\r\n if (printPolicies.length === 0) {\r\n printPolicies = this.PrintPolicy.filter(\r\n (x) =>\r\n x.PrintTimeCode == invoice.PrintPolicyPrintTime &&\r\n !x.NonDefaultPrinting &&\r\n x.IsReceiptPrint &&\r\n ((x.HasLocalSetting && x.ComputerName === this.ComputerName) || this.currentBranch.HasLocalService) &&\r\n x.BranchId == this.currentBranch.Id &&\r\n (x.SaleMethodBranches?.length <= 0 || x.SaleMethodBranches?.some((smb) => smb.SaleMethodBranchId == invoice.SaleMethodBranchId)) &&\r\n (x.Salons?.length <= 0 || x.Salons.some((s) => s.SalonId == invoice.SalonId))\r\n );\r\n if (printPolicies?.some((x) => x.HasLocalSetting && x.ComputerName === this.ComputerName))\r\n printPolicies = printPolicies?.filter((x) => x.HasLocalSetting && x.ComputerName === this.ComputerName);\r\n }\r\n }\r\n } else if (invoice.PrintPolicyPrintTime == PrintPolicyPrintTimeEnum.PreparationPrint) {\r\n if (!model.IsMultiPrint)\r\n printPolicies = this.PrintPolicy.filter(\r\n (x) =>\r\n x.PrintTimeCode == invoice.PrintPolicyPrintTime &&\r\n !x.IsOrderPrint &&\r\n x.BranchId == this.currentBranch.Id &&\r\n (x.SaleMethodBranches?.length <= 0 || x.SaleMethodBranches?.some((smb) => smb.SaleMethodBranchId == invoice.SaleMethodBranchId)) &&\r\n (x.Salons?.length <= 0 || x.Salons.some((s) => s.SalonId == invoice.SalonId))\r\n );\r\n else\r\n printPolicies = this.PrintPolicy.filter(\r\n (x) =>\r\n x.PrintTimeCode == invoice.PrintPolicyPrintTime &&\r\n x.IsOrderPrint &&\r\n x.BranchId == this.currentBranch.Id &&\r\n (x.SaleMethodBranches?.length <= 0 || x.SaleMethodBranches?.some((smb) => smb.SaleMethodBranchId == invoice.SaleMethodBranchId)) &&\r\n (x.Salons?.length <= 0 || x.Salons.some((s) => s.SalonId == invoice.SalonId))\r\n );\r\n }\r\n }\r\n // if (invoice.CommandCode == InvoiceCommand.ReprintForPreparation) {\r\n // printPolicies.forEach((item) => {\r\n // if (item?.PrintTemplate?.PrintTemplateTypeCode == PrintTemplateType.Preparation) {\r\n // if (item.PrintTemplate.Name.includes(\"_EN\")) {\r\n // item.PrintTemplate = this.PrintTemplate.find((w) => w.Name.includes(\"Sepidz_DELIVERY_MANAGER_EN_ALL\"));\r\n // } else {\r\n // item.PrintTemplate = this.PrintTemplate.find((w) => w.Name.includes(\"Sepidz_DELIVERY_MANAGER_ALL\"));\r\n // }\r\n // }\r\n // });\r\n // }\r\n if (printPolicies != null && printPolicies?.length > 0) {\r\n let Items = Object.assign([], model.Items);\r\n printPolicies.forEach((item) => {\r\n if (PrintPolicyPrintTimeEnum.CustomerPrint != invoice.PrintPolicyPrintTime) {\r\n if (item.Items && item.Items.length > 0 && (!item.Categories || item.Categories.length == 0)) {\r\n model.Items = Items.filter((x) => item.Items.some((i) => i.ItemId == x.ItemId) && !item.IgnoredItems.some((i) => i.ItemId == x.ItemId));\r\n } else if ((!item.Items || item.Items.length == 0) && item.Categories && item.Categories.length > 0) {\r\n model.Items = Items.filter(\r\n (x) => item.Categories.some((i) => i.ItemCategoryId == x.CategoryId) && !item.IgnoredItems.some((i) => i.ItemId == x.ItemId)\r\n );\r\n } else if (item.Items && item.Items.length > 0 && item.Categories && item.Categories.length > 0) {\r\n model.Items = Items.filter(\r\n (x) =>\r\n (item.Categories.some((i) => i.ItemCategoryId == x.CategoryId) && !item.IgnoredItems.some((i) => i.ItemId == x.ItemId)) ||\r\n (item.Items.some((i) => i.ItemId == x.ItemId) && !item.IgnoredItems.some((i) => i.ItemId == x.ItemId))\r\n );\r\n }\r\n }\r\n if (item?.Dependents?.length > 0) {\r\n item?.Dependents?.forEach((dp) => {\r\n if (!model.DependentPrintPolicyTitles) model.DependentPrintPolicyTitles = dp.DependentPrintPolicy.Title;\r\n });\r\n } else {\r\n model.DependentPrintPolicyTitles = \"\";\r\n }\r\n model.Title = item.Title + \"-\" + invoice.SaleMethodBranchTitle;\r\n var allowPrint = true;\r\n item?.Printers?.forEach((printer) => {\r\n var printed = false;\r\n let lists: InvoicePrintModel[] = [];\r\n if (!printed && invoice.CommandCode === InvoiceCommand.ReprintForPreparation) {\r\n const final = Object.assign({}, model);\r\n final.LocalServiceIp = item.LocalServiceIp;\r\n final.PrintTimeCode = item.PrintTimeCode;\r\n if (final.Items.length > 0) {\r\n lists.push(final);\r\n printDocuments.push(new PrintDocumentInvoiceModel(lists, printer.Name, \"Sepidz_DELIVERY_MANAGER_ALL\", item.LocalServiceIp));\r\n printed = true;\r\n }\r\n }\r\n if (\r\n !printed &&\r\n item.PrintTemplate.Name == \"Sepidz_DELIVERY_MANAGER_MODIFIED\" &&\r\n !model.Items.some((i) => i.NewQuantity > 0) &&\r\n (oldStatusCode == InvoiceStatus.Pending || model.OldSaleMethodBranchId != null)\r\n ) {\r\n const final = Object.assign({}, model);\r\n final.LocalServiceIp = item.LocalServiceIp;\r\n final.PrintTimeCode = item.PrintTimeCode;\r\n if (final.Items.length > 0) {\r\n lists.push(final);\r\n printDocuments.push(new PrintDocumentInvoiceModel(lists, printer.Name, \"Sepidz_DELIVERY_MANAGER_ALL\", item.LocalServiceIp));\r\n printed = true;\r\n }\r\n }\r\n if (\r\n (item.PrintTemplate.Name == \"Sepidz_DELIVERY_MANAGER_MODIFIED\" ||\r\n item.PrintTemplate.Name == \"Sepidz_DELIVERY_MANAGER_MODIFIED_WITH_DIFF\") &&\r\n !model.Items.some((i) => i.NewQuantity > 0) &&\r\n invoice.CommandCode === InvoiceCommand.Cancel &&\r\n !printed\r\n ) {\r\n const final = Object.assign({}, model);\r\n final.LocalServiceIp = item.LocalServiceIp;\r\n final.PrintTimeCode = item.PrintTimeCode;\r\n if (final.Items.length > 0) {\r\n lists.push(final);\r\n printDocuments.push(new PrintDocumentInvoiceModel(lists, printer.Name, \"Sepidz_DELIVERY_MANAGER_ALL\", item.LocalServiceIp));\r\n printed = true;\r\n }\r\n }\r\n if (\r\n !printed &&\r\n item.PrintTemplate.Name == \"Sepidz_DELIVERY_MANAGER_MODIFIED\" &&\r\n model.Items.some((i) => i.NewQuantity < 0) &&\r\n !model.Items.some((i) => i.NewQuantity > 0) &&\r\n model.OldSaleMethodBranchId == null\r\n )\r\n allowPrint = false;\r\n if (\r\n !printed &&\r\n (item.PrintTemplate.Name != \"Sepidz_DELIVERY_MANAGER_MODIFIED\" ||\r\n (invoice.hasChangedTable && model.OldSaleMethodBranchId == null) ||\r\n invoice.PreparationPrintCount == 1 ||\r\n (item.PrintTemplate.Name == \"Sepidz_DELIVERY_MANAGER_MODIFIED\" && model.Items.some((i) => i.NewQuantity > 0)))\r\n ) {\r\n if (item.PrintTemplate.Name === \"Sepidz_DELIVERY_MANAGER_ALL\") {\r\n model.Items = Object.assign(\r\n [],\r\n model.Items.filter((i) => i.Quantity > 0)\r\n );\r\n }\r\n if (\r\n item.PrintTemplate.Name != \"Sepidz_DELIVERY_MANAGER_ALL_WITH_DIFF\" &&\r\n item.PrintTemplate.Name != \"Sepidz_DELIVERY_MANAGER_MODIFIED_WITH_DIFF\" &&\r\n allowPrint\r\n ) {\r\n model.Items = Object.assign(\r\n [],\r\n model.Items.filter((x) => x.State != RowState.Delete && x.State != RowState.SoftDelete)\r\n );\r\n if (\r\n invoice.hasChangedTable &&\r\n model.OldSaleMethodBranchId == null &&\r\n !model.Items.some((i) => i.NewQuantity > 0) &&\r\n printTimeCode == PrintPolicyPrintTimeEnum.PreparationPrint\r\n ) {\r\n const final = Object.assign({}, model);\r\n final.LocalServiceIp = item.LocalServiceIp;\r\n final.PrintTimeCode = item.PrintTimeCode;\r\n if (final.Items.length > 0) {\r\n lists.push(final);\r\n printDocuments.push(new PrintDocumentInvoiceModel(lists, printer.Name, \"Sepidz_DELIVERY_MANAGER_ALL\", item.LocalServiceIp));\r\n printed = true;\r\n }\r\n } else {\r\n if (item.PrintTemplate.Name === \"Sepidz_DELIVERY_MANAGER_MODIFIED\" && !invoice.hasChangedTable) {\r\n model.Items = model.Items.filter((c) => c.NewQuantity > 0);\r\n }\r\n const final = Object.assign({}, model);\r\n final.LocalServiceIp = item.LocalServiceIp;\r\n final.PrintTimeCode = item.PrintTimeCode;\r\n if (final.Items.length > 0) {\r\n lists.push(final);\r\n printDocuments.push(new PrintDocumentInvoiceModel(lists, printer.Name, item.PrintTemplate.Name, item.LocalServiceIp));\r\n printed = true;\r\n }\r\n }\r\n } else if (model.OldSaleMethodBranchId && item.PrintTemplate.Name == \"Sepidz_DELIVERY_MANAGER_MODIFIED_WITH_DIFF\") {\r\n const final = Object.assign({}, model);\r\n final.LocalServiceIp = item.LocalServiceIp;\r\n final.PrintTimeCode = item.PrintTimeCode;\r\n if (final.Items.length > 0) {\r\n lists.push(final);\r\n printDocuments.push(new PrintDocumentInvoiceModel(lists, printer.Name, \"Sepidz_DELIVERY_MANAGER_ALL\", item.LocalServiceIp));\r\n printed = true;\r\n }\r\n } else if (\r\n invoice.hasChangedTable &&\r\n item.PrintTemplate.Name == \"Sepidz_DELIVERY_MANAGER_MODIFIED_WITH_DIFF\" &&\r\n !model.Items.some((i) => i.NewQuantity > 0) &&\r\n printTimeCode == PrintPolicyPrintTimeEnum.PreparationPrint\r\n ) {\r\n const final = Object.assign({}, model);\r\n final.LocalServiceIp = item.LocalServiceIp;\r\n final.PrintTimeCode = item.PrintTimeCode;\r\n if (final.Items.length > 0) {\r\n lists.push(final);\r\n printDocuments.push(new PrintDocumentInvoiceModel(lists, printer.Name, \"Sepidz_DELIVERY_MANAGER_ALL\", item.LocalServiceIp));\r\n printed = true;\r\n }\r\n } else {\r\n if (!printed && allowPrint) {\r\n if (\r\n item.PrintTemplate.Name == \"Sepidz_DELIVERY_MANAGER_MODIFIED_WITH_DIFF\" ||\r\n item.PrintTemplate.Name == \"Sepidz_DELIVERY_MANAGER_MODIFIED\"\r\n ) {\r\n model.Items = model.Items.filter((c) => c.NewQuantity != 0);\r\n }\r\n if (model.Items.length > 0) {\r\n const final = Object.assign({}, model);\r\n final.LocalServiceIp = item.LocalServiceIp;\r\n final.PrintTimeCode = item.PrintTimeCode;\r\n lists.push(final);\r\n printDocuments.push(new PrintDocumentInvoiceModel(lists, printer.Name, item.PrintTemplate.Name, item.LocalServiceIp));\r\n }\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n return printDocuments;\r\n }\r\n async printDescription(model: Invoice): Promise {\r\n let printDocuments: PrintDocumentInvoiceModel[] = [];\r\n if (model.CommandCode === InvoiceCommand.TemporaryRegister || model.CommandCode === InvoiceCommand.Save) return;\r\n var HasPrintDescription = false;\r\n if (model.OldSaleMethodBranchId != null) {\r\n HasPrintDescription = true;\r\n }\r\n if (model.StatusCode == InvoiceStatus.Cancelled) {\r\n if (model.PrintDescription) {\r\n model.PrintDescription += `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.InvoiceNumber\")} ${\r\n model.NumberingInDate\r\n } ${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.SaleMethod\")} ${model.SaleMethodBranchTitle} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.Providers.InvoicePrint.Canceled\"\r\n )}`;\r\n } else {\r\n model.PrintDescription = `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.InvoiceNumber\")} ${\r\n model.NumberingInDate\r\n } ${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.SaleMethod\")} ${model.SaleMethodBranchTitle} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.Providers.InvoicePrint.Canceled\"\r\n )}`;\r\n }\r\n HasPrintDescription = true;\r\n }\r\n if (model.StatusCode == InvoiceStatus.Deleted) {\r\n if (model.PrintDescription) {\r\n model.PrintDescription += `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.InvoiceNumber\")} ${\r\n model.NumberingInDate\r\n } ${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.SaleMethod\")} ${model.SaleMethodBranchTitle} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.Providers.InvoicePrint.Deleted\"\r\n )}`;\r\n } else {\r\n model.PrintDescription = `${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.InvoiceNumber\")} ${\r\n model.NumberingInDate\r\n } ${this.translate(\"ClientApp.FrontOffice.Order.Providers.InvoicePrint.SaleMethod\")} ${model.SaleMethodBranchTitle} ${this.translate(\r\n \"ClientApp.FrontOffice.Order.Providers.InvoicePrint.Deleted\"\r\n )}`;\r\n }\r\n HasPrintDescription = true;\r\n }\r\n if (model.PrintDescription && HasPrintDescription) {\r\n let InvoiceList: Invoice[] = [];\r\n const invoiceModel = Object.assign({}, model);\r\n invoiceModel.PrintPolicyPrintTime = PrintPolicyPrintTimeEnum.PreparationPrint;\r\n await this.PrintLocal(invoiceModel).then((res) => {\r\n printDocuments = res;\r\n });\r\n }\r\n if (printDocuments?.length > 0) {\r\n if (this.HasLocalPrint) {\r\n const group = new GroupByPipe();\r\n const newList = group.transform(\r\n printDocuments.filter((c) => c.InvoicePrintModel.some((x) => x.LocalServiceIp != null)),\r\n [\"LocalServiceIp\"]\r\n );\r\n newList?.forEach((element) => {\r\n if (element?.key && element?.key !== \"undefined\" && element?.value) {\r\n const url = \"http://\" + element.key + \"/PrintDocument\";\r\n this.httpCommonService\r\n .postCustom(url, element?.value)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: any) => {},\r\n (err) => {}\r\n );\r\n }\r\n });\r\n }\r\n let FilterList = printDocuments.filter((c) => c.InvoicePrintModel.some((x) => x.LocalServiceIp === null));\r\n if (this.currentBranch?.HasLocalService && FilterList?.length > 0 && FilterList.map((c) => c.InvoicePrintModel).length > 0) {\r\n const url = \"http://\" + this.currentBranch.LocalServiceIp + \"/PrintDocument\";\r\n this.httpCommonService\r\n .postCustom(url, FilterList)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: any) => {},\r\n (err) => {}\r\n );\r\n }\r\n }\r\n return printDocuments;\r\n }\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { HttpCommonService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { take, timeout } from \"rxjs/operators\";\r\n\r\n@Injectable()\r\nexport class PosScaleService {\r\n public Url: string;\r\n public isConnected: boolean = false;\r\n constructor(private httpCommonService: HttpCommonService, private sts: ShowToastrService) {}\r\n\r\n connect() {\r\n return this.httpCommonService.getCustom(`${this.Url}/Connect`).pipe(take(1), timeout(3000));\r\n }\r\n\r\n connection() {\r\n return this.httpCommonService.getCustom(`${this.Url}/CheckConnection`).pipe(take(1), timeout(3000));\r\n }\r\n\r\n checkConnection() {\r\n this.connection().subscribe({\r\n next: (res: any) => {\r\n this.isConnected = res.isConnected;\r\n if (res.isConnected) this.sts.showToast(\"success\", \"\", \"اتصال با ترازو برقرار شد.\", 5000);\r\n else this.sts.showToast(\"danger\", \"\", res.Message, 5000);\r\n },\r\n error: (err) => {\r\n this.sts.showDialog(\"مشکل در برقراری اتصال با ترازو، لطفا تنظیمات محلی ترازو را بررسی کنید.\", \"خطا\");\r\n },\r\n });\r\n }\r\n\r\n async tare() {\r\n try {\r\n this.httpCommonService\r\n .getCustom(`${this.Url}/Tare`)\r\n .pipe(timeout(3000))\r\n .toPromise()\r\n .then(\r\n (resolve: any) => {\r\n this.sts.showToast(\"success\", \"\", resolve.Message);\r\n },\r\n (reject) => {\r\n this.sts.showDialog(\"اشکال در اندازه گیری پارسنگ.\", \"خطا\");\r\n }\r\n );\r\n } catch {}\r\n }\r\n\r\n async getWeight() {\r\n try {\r\n return this.httpCommonService\r\n .getCustom(`${this.Url}/GetWeight`)\r\n .pipe(timeout(3000))\r\n .toPromise()\r\n .then(\r\n (resolve: any): number => {\r\n return parseFloat(resolve.weight);\r\n },\r\n (reject) => {\r\n this.sts.showDialog(\"خطا در اندازه گیری وزن\", \"خطا\");\r\n }\r\n );\r\n } catch {}\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs/Rx\";\r\nimport { WebSocketSubject } from \"rxjs/internal-compatibility\";\r\nimport { first } from \"rxjs/operators\";\r\nimport { Invoice } from \"../model/invoice.model\";\r\nimport { ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\nconst CONNECTION_URL = \"ws://127.0.0.1:1372/\";\r\n\r\nexport class TabletPosPaymentModel {\r\n CompanyName: string;\r\n RequestType: string;\r\n AM: string;\r\n paymentType: string;\r\n GovID: string;\r\n SC: string;\r\n ID: string;\r\n constructor() {\r\n this.CompanyName = \"SEPIDZ\";\r\n this.RequestType = \"Sale\";\r\n this.AM = \"0\";\r\n this.paymentType = \"CARD\";\r\n this.ID = \"\";\r\n this.GovID = \"\";\r\n this.SC = \"4020\";\r\n }\r\n}\r\nexport class TabletPosInfoModel {\r\n CompanyName: string;\r\n RequestType: string;\r\n constructor() {\r\n this.CompanyName = \"SEPIDZ\";\r\n this.RequestType = \"getMerchantInfo\";\r\n }\r\n}\r\nexport class TabletPosPaperModel {\r\n CompanyName: string;\r\n RequestType: string;\r\n constructor() {\r\n this.CompanyName = \"SEPIDZ\";\r\n this.RequestType = \"checkPaper\";\r\n }\r\n}\r\nexport class TabletPosReceiptBitMapModel {\r\n CompanyName: string;\r\n RequestType: string;\r\n invoice: TabletPosInvoiceModel;\r\n constructor() {\r\n this.CompanyName = \"SEPIDZ\";\r\n this.RequestType = \"receiptBitMap\";\r\n this.invoice = null;\r\n }\r\n}\r\nexport class TabletPosResponseModel {\r\n compName: string;\r\n trxType: string;\r\n RS: any;\r\n CN: any;\r\n RN: any;\r\n SN: any;\r\n TN: any;\r\n DT: any;\r\n AM: any;\r\n PS: any;\r\n CP: any;\r\n GI: any;\r\n TO: any;\r\n BR: any;\r\n MI: any;\r\n TS: any;\r\n TF: any;\r\n ER: any;\r\n RC: any;\r\n}\r\n\r\nexport class TabletPosInvoiceModel {\r\n num: number;\r\n price: number;\r\n discountAmount: number;\r\n serviceAmount: number;\r\n taxAmount: number;\r\n roundedAmount: number;\r\n phoneNumber: string;\r\n description: string;\r\n tableName: string;\r\n customerName: string;\r\n waiterName: string;\r\n guestQty: number;\r\n time: string;\r\n creationTime: string;\r\n usedCredit: number;\r\n creditPrice: number;\r\n sumQty: number;\r\n sumPrice: number;\r\n restaurantName: string;\r\n farsiDate: string;\r\n invoiceDetail?: TabletPosInvoiceDetailsModel[];\r\n constructor() {\r\n this.num = 0;\r\n this.sumQty = 0;\r\n this.sumPrice = 0;\r\n this.price = 0;\r\n this.discountAmount = 0;\r\n this.serviceAmount = 0;\r\n this.taxAmount = 0;\r\n this.roundedAmount = 0;\r\n this.phoneNumber = \"\";\r\n this.description = \"\";\r\n this.tableName = \"\";\r\n this.customerName = \"\";\r\n this.waiterName = \"\";\r\n this.guestQty = 0;\r\n this.creationTime = \"\";\r\n this.invoiceDetail = [];\r\n this.creditPrice = 0;\r\n this.farsiDate = \"\";\r\n this.usedCredit = 0;\r\n }\r\n}\r\n\r\nexport class TabletPosInvoiceDetailsModel {\r\n sumUnitPrice: number;\r\n name: string;\r\n unitPrice: number;\r\n qty?: number;\r\n toz: string;\r\n constructor() {\r\n this.sumUnitPrice = 0;\r\n this.name = \"\";\r\n this.qty = 0;\r\n this.unitPrice = 0;\r\n this.toz = \"\";\r\n }\r\n}\r\n@Injectable()\r\nexport class TabletPosService {\r\n private socket$: WebSocketSubject;\r\n private responseSubject: Subject = new Subject();\r\n\r\n constructor(private sts: ShowToastrService, private translateService: TranslateService) {}\r\n\r\n private connect(): void {\r\n this.socket$ = new WebSocketSubject(CONNECTION_URL);\r\n this.socket$.subscribe(\r\n (res) => this.responseSubject.next(res),\r\n (err) => this.responseSubject.error(err)\r\n );\r\n }\r\n\r\n public close(): void {\r\n if (this.socket$) {\r\n this.socket$.complete();\r\n this.socket$.unsubscribe();\r\n }\r\n }\r\n\r\n public async sendMessageAndWaitForResponse(data: any): Promise {\r\n this.socket$.next(data);\r\n\r\n return this.responseSubject.pipe(first()).toPromise();\r\n }\r\n\r\n async tabletPosTest(): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n this.connect();\r\n this.sendMessageAndWaitForResponse(new TabletPosPaperModel())\r\n .then((response) => {\r\n if (response?.CP === \"-1\") {\r\n this.close();\r\n this.sts.showDialog(\r\n `${this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.CardReaderNoPaper\")}`,\r\n `${this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Attention\")}`\r\n );\r\n reject(response);\r\n } else {\r\n this.sendMessageAndWaitForResponse(new TabletPosInfoModel())\r\n .then((response) => {\r\n this.sts.showDialog(\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.CommunicationPoseTabletDeviceEstablished\"),\r\n \"\"\r\n );\r\n resolve(response);\r\n })\r\n .catch((error) => {\r\n this.sts.showDialog(\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.NoConnectPoseTabletDevice\"),\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Error\")\r\n );\r\n this.close();\r\n reject(error);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n this.sts.showDialog(\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.NoConnectPoseTabletDevice\"),\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Error\")\r\n );\r\n this.close();\r\n reject(error);\r\n });\r\n } catch (error) {\r\n this.sts.showDialog(\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.NoConnectPoseTabletDevice\"),\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Error\")\r\n );\r\n this.close();\r\n reject(error);\r\n }\r\n });\r\n }\r\n\r\n async tabletPosClearing(Amount): Promise {\r\n return await new Promise((resolve, reject) => {\r\n try {\r\n this.connect();\r\n this.sendMessageAndWaitForResponse(new TabletPosPaperModel())\r\n .then((response) => {\r\n if (response?.CP === \"-1\") {\r\n this.close();\r\n this.sts.showDialog(\r\n `${this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.CardReaderNoPaper\")}`,\r\n `${this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Attention\")}`\r\n );\r\n reject(response);\r\n } else {\r\n const payment = new TabletPosPaymentModel();\r\n payment.AM = Amount.toString();\r\n this.sendMessageAndWaitForResponse(payment)\r\n .then((response) => {\r\n if (response?.ER && response.ER !== \"null\") {\r\n this.sts.showDialog(response.ER, this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Error\"));\r\n this.close();\r\n reject(response);\r\n } else {\r\n switch (response?.RS) {\r\n case \"00\":\r\n this.close();\r\n resolve(response);\r\n break;\r\n case \"05\":\r\n this.sts.showDialog(\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.PaymentCanceledByUser\"),\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Error\")\r\n );\r\n this.close();\r\n reject();\r\n break;\r\n case \"51\":\r\n this.sts.showDialog(\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.UserNotAvailable\"),\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Error\")\r\n );\r\n this.close();\r\n reject();\r\n break;\r\n case \"55\":\r\n this.sts.showDialog(\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.WrongPasswordEntered\"),\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Error\")\r\n );\r\n this.close();\r\n reject();\r\n break;\r\n default:\r\n this.sts.showDialog(response.GI, this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Error\"));\r\n this.close();\r\n reject();\r\n break;\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n this.sts.showDialog(\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.NoConnectPoseTabletDevice\"),\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Error\")\r\n );\r\n this.close();\r\n reject(error);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n this.sts.showDialog(\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.NoConnectPoseTabletDevice\"),\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Error\")\r\n );\r\n this.close();\r\n reject(error);\r\n });\r\n } catch (error) {\r\n this.sts.showDialog(\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.NoConnectPoseTabletDevice\"),\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Error\")\r\n );\r\n this.close();\r\n reject(error);\r\n }\r\n });\r\n }\r\n\r\n async tabletPosPrint(invoice: Invoice, brandName): Promise {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n this.connect();\r\n this.sendMessageAndWaitForResponse(new TabletPosPaperModel())\r\n .then((response) => {\r\n if (response?.CP === \"-1\") {\r\n this.close();\r\n this.sts.showDialog(\r\n `${this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.CardReaderNoPaper\")}`,\r\n `${this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Attention\")}`\r\n );\r\n reject(response);\r\n } else {\r\n const factor = this.mapInvoice(invoice, brandName);\r\n this.sendMessageAndWaitForResponse(factor)\r\n .then((response) => {\r\n this.close();\r\n resolve(response);\r\n })\r\n .catch((error) => {\r\n this.sts.showDialog(\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.NoConnectPoseTabletDevice\"),\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Error\")\r\n );\r\n this.close();\r\n reject(error);\r\n });\r\n }\r\n })\r\n .catch((error) => {\r\n this.sts.showDialog(\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.NoConnectPoseTabletDevice\"),\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Error\")\r\n );\r\n this.close();\r\n reject(error);\r\n });\r\n } catch (error) {\r\n this.sts.showDialog(\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.NoConnectPoseTabletDevice\"),\r\n this.translateService.instant(\"ClientApp.FrontOffice.Order.Providers.TabletPos.Error\")\r\n );\r\n this.close();\r\n reject(error);\r\n }\r\n });\r\n }\r\n\r\n private mapInvoice(invoice: Invoice, brandName: any) {\r\n let factor = new TabletPosReceiptBitMapModel();\r\n factor.invoice = {\r\n num: invoice.NumberingInDate,\r\n customerName: invoice.CustomerTitle + \" \" + invoice.CustomerDisplayName,\r\n phoneNumber: invoice.PhoneNumber !== null ? invoice.PhoneNumber.toString() : \"\",\r\n description: invoice.Description,\r\n roundedAmount: invoice.RoundingAmount,\r\n farsiDate: invoice.ShamsiCreatedDate.slice(2) ?? \"\",\r\n creationTime: invoice.CreateDateTime.toString().slice(invoice.CreateDateTime.indexOf(\"T\") + 1, invoice.CreateDateTime.lastIndexOf(\".\")) ?? \"\",\r\n discountAmount: invoice.DiscountPrice,\r\n price: invoice.PayableTotal,\r\n tableName: invoice.TableTitle ?? \"\",\r\n restaurantName: brandName,\r\n usedCredit: invoice.Credit,\r\n serviceAmount: invoice.TotalService,\r\n sumPrice: invoice.PayableTotal,\r\n waiterName: invoice.WaiterName ?? \"\",\r\n sumQty: invoice.Items.map((m) => m.Quantity).reduce((acc, cur) => acc + cur, 0),\r\n guestQty: invoice.NumberOfGuests ?? 0,\r\n taxAmount: invoice.TotalTax,\r\n creditPrice: 0,\r\n invoiceDetail: invoice.Items.map(\r\n (f) =>\r\n ({\r\n sumUnitPrice: f.UnitPrice,\r\n name: f.ItemTitle,\r\n qty: f.Quantity,\r\n toz: f.Description,\r\n } as TabletPosInvoiceDetailsModel)\r\n ),\r\n } as TabletPosInvoiceModel;\r\n return factor;\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component } from \"@angular/core\";\r\nimport { MenuPackage } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu-injector\";\r\nimport { ContextMenuService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/context-menu.service\";\r\nimport { MenuComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/rightclick/menu.component\";\r\nimport { AccountService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { ReserveOnlineSettingComponent } from \"./reserve-online-setting.component\";\r\n@Component({\r\n selector: \"simple-menu\",\r\n // add your menu html\r\n template: `\r\n \r\n {{ \"ClientApp.FrontOffice.Order.ReserveOnline.Settings\" | translate }}\r\n \r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ReserveOnlineSettingMenuComponent extends MenuComponent {\r\n // this module does not have animations, set lazy false\r\n lazy = false;\r\n\r\n constructor(\r\n public menuPackage: MenuPackage,\r\n public contextMenuService: ContextMenuService,\r\n public dialogService: SimpleModalService,\r\n public common: CommonService,\r\n public accountService: AccountService,\r\n protected sts: ShowToastrService\r\n ) {\r\n super(menuPackage, contextMenuService);\r\n // grab any required menu context passed via menuContext input\r\n }\r\n\r\n async handleClick(value: any) {\r\n this.contextMenuService.closeAll();\r\n this.dialogService\r\n .open(ReserveOnlineSettingComponent, { currentrow: value }, { autoFocus: true, closeOnClickOutside: false, closeOnEscape: false })\r\n .pipe(take(1))\r\n .subscribe((model: any) => {\r\n this.menuPackage.context.settingChanges$?.next(true);\r\n });\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { ReserveOnlineModel } from \"../../model/reserve-online.model\";\r\n\r\n@Component({\r\n selector: \"app-reserve-online-setting\",\r\n templateUrl: \"./reserve-online-setting.component.html\",\r\n styleUrls: [\"./reserve-online-setting.component.scss\"],\r\n})\r\nexport class ReserveOnlineSettingComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Order.ReserveOnline.Settings\");\r\n this.customColumnInfoApi = \"/GetFormColumnInfo\";\r\n super.ngOnInit();\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\n\r\n@Component({\r\n selector: \"order-reserve-online\",\r\n templateUrl: \"./reserve-online.component.html\",\r\n styleUrls: [\"./reserve-online.component.scss\"],\r\n})\r\nexport class ReserveOnlineComponent extends BaseListComponent {\r\n columns: form_control[] = [];\r\n constructor() {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setColumns();\r\n super.ngOnInit();\r\n }\r\n\r\n setColumns() {\r\n var col: form_control[] = [];\r\n col = [\r\n {\r\n name: \"ReserveId\",\r\n modelName: \"ReserveId\",\r\n controlType: FormControlTypes.dropdown,\r\n listVisible: true,\r\n label: `${this.translate(\"ClientApp.FrontOffice.Order.ReserveOnline.InvoiceNumber\")} ReservID`,\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n disabled: false,\r\n areaName: \"default\",\r\n apiName: \"\",\r\n displayMember: \"DisplayName\",\r\n valueMember: \"Id\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 200,\r\n },\r\n {\r\n name: \"InputNumber\",\r\n modelName: \"InputNumber\",\r\n controlType: FormControlTypes.dropdown,\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.ReserveOnline.SubscriptionCode\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n disabled: false,\r\n areaName: \"default\",\r\n apiName: \"\",\r\n displayMember: \"DisplayName\",\r\n valueMember: \"Id\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 150,\r\n },\r\n {\r\n name: \"WaiterName\",\r\n modelName: \"WaiterName\",\r\n controlType: FormControlTypes.dropdown,\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.ReserveOnline.GuestName\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n disabled: false,\r\n areaName: \"default\",\r\n apiName: \"\",\r\n displayMember: \"DisplayName\",\r\n valueMember: \"Id\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 200,\r\n },\r\n {\r\n name: \"NumberOfPeople\",\r\n modelName: \"NumberOfPeople\",\r\n controlType: FormControlTypes.dropdown,\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.ReserveOnline.NumberOfPeople\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n disabled: false,\r\n areaName: \"default\",\r\n apiName: \"\",\r\n displayMember: \"DisplayName\",\r\n valueMember: \"Id\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 150,\r\n },\r\n {\r\n name: \"UseCredit\",\r\n modelName: \"UseCredit\",\r\n controlType: FormControlTypes.dropdown,\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.ReserveOnline.ClubCredit\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n disabled: false,\r\n areaName: \"default\",\r\n apiName: \"\",\r\n displayMember: \"DisplayName\",\r\n valueMember: \"Id\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 200,\r\n },\r\n {\r\n name: \"Prepayment\",\r\n modelName: \"Prepayment\",\r\n controlType: FormControlTypes.dropdown,\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.ReserveOnline.AdvancePayment\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n disabled: false,\r\n areaName: \"default\",\r\n apiName: \"\",\r\n displayMember: \"DisplayName\",\r\n valueMember: \"Id\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 200,\r\n },\r\n {\r\n name: \"Mobile\",\r\n modelName: \"Mobile\",\r\n controlType: FormControlTypes.dropdown,\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.ReserveOnline.Mobile\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n disabled: false,\r\n areaName: \"default\",\r\n apiName: \"\",\r\n displayMember: \"DisplayName\",\r\n valueMember: \"Id\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 200,\r\n },\r\n {\r\n name: \"TableTitle\",\r\n modelName: \"TableTitle\",\r\n controlType: FormControlTypes.dropdown,\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.ReserveOnline.TableTitle\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n disabled: false,\r\n areaName: \"default\",\r\n apiName: \"\",\r\n displayMember: \"DisplayName\",\r\n valueMember: \"Id\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 200,\r\n },\r\n {\r\n name: \"ReservationDay\",\r\n modelName: \"ReservationDay\",\r\n controlType: FormControlTypes.dropdown,\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.ReserveOnline.BookingDay\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n disabled: false,\r\n areaName: \"default\",\r\n apiName: \"\",\r\n displayMember: \"DisplayName\",\r\n valueMember: \"Id\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 150,\r\n },\r\n {\r\n name: \"ReservationTime\",\r\n modelName: \"ReservationTime\",\r\n controlType: FormControlTypes.dropdown,\r\n listVisible: true,\r\n label: this.translate(\"ClientApp.FrontOffice.Order.ReserveOnline.BookingTime\"),\r\n order: 0,\r\n textType: \"number\",\r\n formVisible: true,\r\n disabled: false,\r\n areaName: \"default\",\r\n apiName: \"\",\r\n displayMember: \"DisplayName\",\r\n valueMember: \"Id\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n columnWidth: 150,\r\n },\r\n ];\r\n this.columns = col;\r\n this.orignalColumns = col;\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { SaleMethodBranchModel, SaleMethodNature } from \"src/app/frontoffice/sales/model/sale-method-branch.model\";\r\nimport { SalonOrderService } from \"../salonorder.service\";\r\nimport { NotificationService } from \"projects/sepidz-web-framework/src/lib/services/notification.service\";\r\nimport { delay, takeUntil } from \"rxjs/operators\";\r\nimport { Subject } from \"rxjs\";\r\nimport { ActivePageEnum } from \"../../model/activepage.enum\";\r\n\r\n@Component({\r\n selector: \"order-salon\",\r\n templateUrl: \"./salonorder.component.html\",\r\n styleUrls: [\"./salonorder.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SalonOrderComponent implements OnInit, OnDestroy {\r\n @Input() SaleMethodBranchId: number;\r\n @Input() currentSaleMethodBranch: SaleMethodBranchModel;\r\n private ngUnsubscribe = new Subject();\r\n constructor(private cd: ChangeDetectorRef, public salonOrder: SalonOrderService, private notification: NotificationService) {}\r\n\r\n ngOnInit(): void {\r\n this.fillData();\r\n this.init();\r\n this.salonOrder._changeTable = this.salonOrder.order.common.LocalSetting.OrderSetting.salonTableSize;\r\n }\r\n\r\n private init(): void {\r\n this.notification.init();\r\n this.notification.notification$.pipe(takeUntil(this.ngUnsubscribe), delay(1000)).subscribe((value) => {\r\n if (\r\n value.Key === \"InvoiceChanges\" &&\r\n value.Message === SaleMethodNature.Restaurant &&\r\n this.salonOrder.order.currentActivePage == ActivePageEnum.Salon\r\n ) {\r\n this.salonOrder.getTablesRead(this.salonOrder.selectedSalons);\r\n this.cd.markForCheck();\r\n this.cd.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n fillData() {\r\n this.salonOrder.order.cd_Salons = this.cd;\r\n this.salonOrder.getSalon();\r\n }\r\n\r\n updateActivityPageStatus() {\r\n this.salonOrder.order.shouldActivateSalonPage = true;\r\n this.salonOrder.order.shouldActivateInvoicesPage = false;\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n }\r\n\r\n protected refreshTables() {\r\n this.salonOrder.order.splashFormService.openDialog(\"\", \" \");\r\n this.salonOrder.getTablesRead(this.salonOrder.selectedSalons);\r\n }\r\n\r\n changeTableSize() {\r\n this.salonOrder._changeTable = !this.salonOrder._changeTable;\r\n this.salonOrder.order.common.LocalSetting.OrderSetting.salonTableSize = this.salonOrder._changeTable;\r\n this.salonOrder.order.common.updateSettings();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n {{ salon.Title }}\r\n
\r\n \r\n
\r\n
\r\n
\r\n
    \r\n \r\n
    \r\n
    {{ item.title }} {{ item.count }}
    \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {{ table.Title }}\r\n {{ table.NumberOfGuests }} {{ \"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.Guest\" | translate }} \r\n
\r\n \r\n {{ table.RelativeInvoiceTimeString }}\r\n
\r\n \r\n -- : --\r\n
\r\n
\r\n
\r\n {{ table.CustomerName }}\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BaseService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-service.component\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { RowState } from \"../../../../../projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { MapObjectPipe } from \"../../../../../projects/sepidz-web-framework/src/lib/pipes/mapobject.pipe\";\r\nimport { SaleMethodBranchModel } from \"../../sales/model/sale-method-branch.model\";\r\nimport { Salon, Table, TableRead, TableStatus } from \"../../salons/model/salon.model\";\r\nimport { Invoice, InvoiceStatus, InvoiceCommand, InvoiceEntry, PaymentLinkState } from \"../model/invoice.model\";\r\nimport { OrderService } from \"../order.service\";\r\nimport { InvoiceActionService } from \"../providers/invoiceaction.service\";\r\nimport { ActivePageEnum } from \"../model/activepage.enum\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class SalonOrderService extends BaseService {\r\n public _salons: Salon[] = [];\r\n tableFilter: any[] = [\r\n { key: 1, title: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.Empty\"), count: 0, selected: false },\r\n { key: 2, title: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.Order\"), count: 0, selected: false },\r\n { key: 3, title: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.Settlement\"), count: 0, selected: false },\r\n { key: 4, title: this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.StopTooMuch\"), count: 0, selected: false },\r\n ];\r\n currentSaleMethodBranch: SaleMethodBranchModel;\r\n selectedSalons: Salon;\r\n clearAccess: boolean = false;\r\n printAccess: boolean = false;\r\n selectedTableId: number;\r\n _tables: Table[];\r\n _tableReads: TableRead[];\r\n _changeTable: boolean = true;\r\n _tempTableReads: TableRead[];\r\n _tableStatus: typeof TableStatus = TableStatus;\r\n\r\n constructor(public order: OrderService, public invoiceAction: InvoiceActionService, public common: CommonService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.invoiceAction.ngOnInit();\r\n this._tables = [];\r\n this._tableReads = [];\r\n this._tempTableReads = [];\r\n }\r\n\r\n //دریافت سالن ها بر اساس نحوه فروش\r\n async getSalon() {\r\n if (\r\n this.order?.saleMethodBranch &&\r\n this.order.currentSaleMethodNature &&\r\n this.order.currentSaleMethodNature !== this.order.SaleMethodNature.Delivery\r\n ) {\r\n let UserId = this.accountService.authService.currentUser.Id;\r\n this.httpCommonService\r\n .getItem(`Salon/GetSalons/${UserId}`, this.order.saleMethodBranch.Id)\r\n .pipe(take(1))\r\n .subscribe((data: Salon[]) => {\r\n if (data && data.length > 0) {\r\n this._salons = this.order.salons = data.filter((f) => !f.Illegal);\r\n if (this.selectedSalons) this.getTablesRead(this.selectedSalons);\r\n else {\r\n const selected = this._salons.find((f) => f.Selected);\r\n if (selected) {\r\n this.selectedSalons = Object.assign({}, selected);\r\n this.getTablesRead(selected);\r\n } else this.getTablesRead(this.order.salons[0]);\r\n }\r\n } else {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.Attention\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.CurrentSalesMethodDoesNotIncludeAnySalons\"),\r\n 1500\r\n );\r\n }\r\n this.order.detectChanges();\r\n });\r\n }\r\n }\r\n\r\n //دریافت میزها بر اساس سالن\r\n getTablesRead(salon: Salon) {\r\n if (\r\n (this.order.invoice.OldSaleMethodBranchId && this.order.invoice.OldTableId) ||\r\n (this.order.currentSaleMethodNature && this.order.currentSaleMethodNature !== this.order.SaleMethodNature.Delivery)\r\n ) {\r\n const tableRead = new TableRead();\r\n tableRead.SaleMethodBranchId = this.order.saleMethodBranch?.Id;\r\n tableRead.SalonId = salon?.Id;\r\n tableRead.RelativeInvoiceTime = undefined;\r\n tableRead.MaximumTimeForStay = this.order.saleMethodBranch.MaximumTimeForStay;\r\n this.httpCommonService\r\n .create(\"Salon/GetTables\", tableRead)\r\n .pipe(take(1))\r\n .subscribe((data: any) => {\r\n this.selectedSalons = salon;\r\n this._tempTableReads = this._tableReads = data.sort((a, b) => a.Code - b.Code);\r\n this.tableFilter[0].count = this._tableReads.filter((f) => f.Status === TableStatus.Free).length;\r\n this.tableFilter[1].count = this._tableReads.filter((f) => f.Status === TableStatus.Ordering).length;\r\n this.tableFilter[2].count = this._tableReads.filter((f) => f.Status === TableStatus.Clearing).length;\r\n this.tableFilter[3].count = this._tableReads.filter((f) => f.Status === TableStatus.TimeOver).length;\r\n this.tableFilterByStatus();\r\n this.order.detectChanges();\r\n this.order.splashFormService.closeLoading();\r\n });\r\n }\r\n }\r\n\r\n //فیلتر کردن میزها بر اساس وضعیت\r\n tableFilterByStatus() {\r\n const selectedList = this.tableFilter.filter((f) => f.selected);\r\n this._tempTableReads = JSON.parse(JSON.stringify(this._tableReads));\r\n if (selectedList && selectedList.length > 0) {\r\n this._tempTableReads = [];\r\n selectedList.forEach((element) => {\r\n const filterItem = this._tableReads.filter((f) => f.Status === element.key);\r\n filterItem.forEach((ele) => {\r\n this._tempTableReads.push(ele);\r\n });\r\n });\r\n }\r\n }\r\n\r\n //نمایش اطلاعات فاکتور براساس کلیک بر روی میز\r\n public SelectTable(tableRead: TableRead): void {\r\n this.order.itemChanged = false;\r\n if (tableRead.Locked) return;\r\n this.order.shouldActivateInvoicesPage = false;\r\n this.order.shouldActivateSalonPage = true;\r\n if (this.order.invoice.TableId === tableRead?.Id) {\r\n this.paymentLinkValidation();\r\n this.order.invoice.SalonId = tableRead.SalonId;\r\n this.order.currentActivePage = this.common.isMobileMode\r\n ? this.order.invoice.Items?.length > 0\r\n ? this.order.activePageEnum.Invoice\r\n : this.order.activePageEnum.OrderItem\r\n : this.order.activePageEnum.Order;\r\n this.order.detectChanges();\r\n } else if (\r\n !(this.order.invoice.StatusCode === InvoiceStatus.New) &&\r\n tableRead.Status === TableStatus.Free &&\r\n !this.order.saleMethodBranchChanged\r\n ) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.LikeChangeTable\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.ChangingTable\"),\r\n DialogType.confirm,\r\n () => {\r\n this.ChangeInvoiceTable(tableRead);\r\n this.order.invoiceChanged = true;\r\n this.order.checkInvoiceState(this.order.invoice.CommandCode);\r\n this.order.detectChanges();\r\n }\r\n );\r\n } else if (this.order.invoice.StatusCode === InvoiceStatus.New && tableRead.Status === TableStatus.Free) {\r\n this.ChangeInvoiceTable(tableRead);\r\n } else if (this.order.invoice.StatusCode !== InvoiceStatus.New && tableRead.Status === TableStatus.Free && this.order.saleMethodBranchChanged) {\r\n this.ChangeInvoiceTable(tableRead);\r\n this.order.invoiceChanged = true;\r\n this.order.checkInvoiceState(this.order.invoice.CommandCode);\r\n this.order.detectChanges();\r\n } else if (\r\n (this.order.invoice.StatusCode === InvoiceStatus.New && !(tableRead.Status === TableStatus.Free)) ||\r\n (!(this.order.invoice.StatusCode === InvoiceStatus.New) && !(tableRead.Status === TableStatus.Free))\r\n ) {\r\n if (!this.order.invoiceChanged) {\r\n this.LoadInvoice(tableRead);\r\n this.order.detectChanges();\r\n } else {\r\n this.LoadInvoice(tableRead);\r\n this.order.invoiceChanged = false;\r\n }\r\n }\r\n }\r\n\r\n //تغییر میز فاکتور\r\n ChangeInvoiceTable(tableRead: TableRead) {\r\n this.order.invoice.OldTableTitle = this.order.invoice.TableTitle;\r\n this.order.invoice.OldTableId = this.order.invoice.TableId;\r\n this.order.invoice.TableId = tableRead?.Id;\r\n if (this.order.invoice.OldTableId)\r\n this.order.invoice.hasChangedTable = this.order.invoice.TableId != this.order.invoice.OldTableId ? true : false;\r\n else this.order.invoice.SalonId = tableRead?.Id;\r\n this.order.invoice.TableTitle = tableRead.Title;\r\n this.order.invoice.SalonId = tableRead.SalonId;\r\n this.order.currentActivePage = this.common.isMobileMode\r\n ? this.order.invoice.Items?.length > 0\r\n ? this.order.activePageEnum.Invoice\r\n : this.order.activePageEnum.OrderItem\r\n : this.order.activePageEnum.Order;\r\n this.order.detectChanges();\r\n }\r\n\r\n //دریافت اطلاعات فاکتور بر اساس آی دی فاکتور\r\n LoadInvoice(tableRead: TableRead) {\r\n this.order.itemQuantityChanged = false;\r\n this.order.splashScreenService.startLoading();\r\n this.order.splashFormService.openDialog(\"\", \" \");\r\n this.getInvoiceById(tableRead.InvoiceId).subscribe((data: Invoice) => {\r\n if (data) {\r\n this.order.shouldActivateSalonPage = true;\r\n this.order.invoice = data;\r\n this.paymentLinkValidation();\r\n let output = new InvoiceEntry();\r\n let mapper = new MapObjectPipe();\r\n this.order.invoice.OriginalValue = JSON.parse(JSON.stringify(mapper.transform(data, output)));\r\n this.order.invoice.OriginalValue.SaleMethodBranch = this.order.saleMethodList.find((z) => z.Id === data.SaleMethodBranchId);\r\n this.order.invoice.Items = JSON.parse(\r\n JSON.stringify(\r\n data.Items.sort(function (a, b) {\r\n return a.Index - b.Index;\r\n })\r\n )\r\n );\r\n this.order.invoice.Items = this.order.invoice.Items.filter((f) => f.State !== RowState.Delete);\r\n this.order.setValueformGroupControl();\r\n this.order.invoice.LastInvoiceCode = data.Code;\r\n this.order.invoice.LastInvoiceAmount = data.PayableTotal;\r\n this.order.invoice.State = RowState.Modify;\r\n this.order.splashFormService.closeLoading();\r\n this.ChangeInvoiceTable(tableRead);\r\n this.order.setInvoiceHasFactorAndHasPaymentLink();\r\n this.order.calculate();\r\n this.order.closeSidebar();\r\n this.order.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n getInvoiceById(id: number) {\r\n return this.httpCommonService.getItem(\"Invoice/GetInvoiceById\", id).pipe(take(1));\r\n }\r\n\r\n //تسویه\r\n ClearingInvoice(tableRead: TableRead) {\r\n if (\r\n (tableRead.InvoiceStatusCode === InvoiceStatus.Ordering &&\r\n !this.accountService.userHasPermission(`RestaurantSale:Invoice_${this.order.saleMethodBranch.SaleMethodId}`, \"ClearOrderingStatus\")) ||\r\n (tableRead.InvoiceStatusCode === InvoiceStatus.Clearing &&\r\n !this.accountService.userHasPermission(`RestaurantSale:Invoice_${this.order.saleMethodBranch.SaleMethodId}`, \"ClearClearingStatus\"))\r\n ) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.AccessToThisArea\")\r\n );\r\n return;\r\n }\r\n if (tableRead.InvoiceStatusCode === InvoiceStatus.Ordering || tableRead.InvoiceStatusCode === InvoiceStatus.Clearing) {\r\n this.httpCommonService\r\n .getItem(\"Invoice/GetInvoiceById\", tableRead.InvoiceId)\r\n .pipe(take(1))\r\n .subscribe((data: Invoice) => {\r\n this.order.itemQuantityChanged = false;\r\n this.invoiceAction.SaveInvoice(InvoiceCommand.Clear, data, true, this.order);\r\n this.invoiceAction.saveEnd.pipe(take(1)).subscribe((isFinish: boolean) => {\r\n if (isFinish) {\r\n this.getSalon();\r\n this.order.newInvoice();\r\n }\r\n });\r\n });\r\n } else {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.PossibleSettleInvoiceTemporaryState\")\r\n );\r\n }\r\n }\r\n\r\n //چاپ مشتری\r\n CustomerPrintInvoice(tableRead: TableRead) {\r\n if (!this.accountService.userHasPermission(`RestaurantSale:Invoice_${this.order.saleMethodBranch.SaleMethodId}`, \"CustomerPrintOrderingStatus\")) {\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.ErrorMessage\"),\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.AccessToThisArea\")\r\n );\r\n return;\r\n }\r\n this.order.splashFormService.openDialog();\r\n this.httpCommonService\r\n .getItem(\"Invoice/GetInvoiceById\", tableRead.InvoiceId)\r\n .pipe(take(1))\r\n .subscribe((data: Invoice) => {\r\n if (data) {\r\n this.order.splashFormService.closeLoading();\r\n this.order.itemQuantityChanged = false;\r\n this.invoiceAction.SaveInvoice(InvoiceCommand.CustomerPrint, data, true, this.order);\r\n this.invoiceAction.saveEnd.pipe(take(1)).subscribe((isFinish: boolean) => {\r\n if (isFinish) this.getSalon();\r\n });\r\n this.order.detectChanges();\r\n }\r\n });\r\n }\r\n trackByFn(index, item) {\r\n return item.Id;\r\n }\r\n\r\n retryLink(tableRead: TableRead) {\r\n if (!tableRead || !tableRead.InvoiceId) return;\r\n this.order.splashFormService.openDialog(\"\", \" \");\r\n this.getInvoiceById(tableRead.InvoiceId).subscribe((data: Invoice) => {\r\n if (!data?.PhoneNumber?.startsWith(\"09\")) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.InvoiceNoHaveMobileNumber\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.ErrorMessage\")\r\n );\r\n this.order.splashFormService.closeLoading();\r\n return;\r\n }\r\n if (data?.Debit === data?.PayableTotal) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.TotalAmountInvoicePlacedDebit\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.ErrorMessage\")\r\n );\r\n this.order.splashFormService.closeLoading();\r\n return;\r\n }\r\n if (data?.Customer?.AutomaticDebtor) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.PossibleSendLinkCustomerAutomaticallyDebt\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.ErrorMessage\")\r\n );\r\n this.order.splashFormService.closeLoading();\r\n return;\r\n }\r\n this.httpCommonService\r\n .get(`Invoice/RetryLink/${data?.Id}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n () => {\r\n this.order.splashFormService.closeLoading();\r\n },\r\n () => {\r\n this.order.splashFormService.closeLoading();\r\n }\r\n );\r\n });\r\n }\r\n\r\n private paymentLinkValidation() {\r\n if (typeof this.order.invoice.PaymentLinkState === \"number\") {\r\n const status = this.order.getStatusOfLinkPayment(this.order.invoice.PaymentLinkState);\r\n switch (status) {\r\n case PaymentLinkState.Paid:\r\n if (this.order.invoice.StatusCode == InvoiceStatus.Cleared) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.InvoicePaidThroughLink\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.Warning\")\r\n );\r\n }\r\n break;\r\n\r\n default:\r\n if (this.order.saleMethodBranch.IsPaymentLink && status > PaymentLinkState.Nothing) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.LinkDesiredInvoiceSentCustomerInvoiceChanged\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Order.OrderPage.SalonOrder.Warning\"),\r\n DialogType.confirm,\r\n () => {\r\n //بعد از تایید کاربر جهت تغییر فاکتور می بایست در سیستم لاگ ثبت گردد که کاربر بعد از ارسال لینک اقدام به تغییر فاکتور نموده است\r\n },\r\n () => {\r\n this.order.newInvoice();\r\n this.order.setActivePage(ActivePageEnum.Invoices);\r\n }\r\n );\r\n }\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { CustomerCategory } from \"../model/customer-categories.model\";\r\n\r\n@Component({\r\n selector: \"ngx-customer-categories\",\r\n templateUrl: \"./customer-category-form.component.html\",\r\n styleUrls: [\"./customer-category-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CustomerCategoryFormComponent extends BaseFormComponent {\r\n erroremessage: string;\r\n deactivateSave: boolean = false;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"CustomerCategory\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Parties.CustomerCategory.CustomerCategory\");\r\n super.ngOnInit();\r\n this.FillData();\r\n }\r\n\r\n setdefault() {}\r\n\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(take(1))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) this.model[\"Code\"] = data as number;\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n\r\n async FillData() {\r\n const info = this.accountService.authService.currentInformation();\r\n if (info.BranchingLightEnabled || info.BranchingAdvancedEnabled) {\r\n const hasBranchCommunication = JSON.parse(localStorage.getItem(\"HasBranchCommunication\"));\r\n if (hasBranchCommunication == null) {\r\n this.httpCommonService\r\n .getList(`Branch/HasBranchCommunication/${this.accountService.authService.currentBranchId}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n async (hbc: boolean) => {\r\n if (hbc === true) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Parties.CustomerCategory.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.CustomerCategory.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n } else if (hasBranchCommunication) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Parties.CustomerCategory.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.CustomerCategory.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n }\r\n }\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { CustomerCategoryFormComponent } from \"./customer-category-form.component\";\r\n@Component({\r\n selector: \"ngx-customer-categories-list\",\r\n template: `
\r\n \r\n \r\n
`,\r\n})\r\nexport class CustomerCategoryListComponent extends BaseListComponent {\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n constructor() {\r\n super();\r\n this.inputEditorform = CustomerCategoryFormComponent;\r\n this.FillData();\r\n }\r\n\r\n ngOnInit() {\r\n this.apiName = \"CustomerCategory\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Parties.CustomerCategory.CustomerCategory\");\r\n }\r\n\r\n async FillData() {\r\n const info = this.accountService.authService.currentInformation();\r\n if (info.RestaurantCallCenter) {\r\n if (!this.accountService.authService.currentBranch.AccessToAllBranches) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n }\r\n if (info.BranchingLightEnabled || info.BranchingAdvancedEnabled) {\r\n const hasBranchCommunication = JSON.parse(localStorage.getItem(\"HasBranchCommunication\"));\r\n if (hasBranchCommunication == null) {\r\n this.httpCommonService\r\n .getList(`Branch/HasBranchCommunication/${this.accountService.authService.currentBranchId}`)\r\n .pipe(take(1))\r\n .subscribe(async (hbc: boolean) => {\r\n if (hbc === true) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Parties.CustomerCategory.HasBranchCommunication\");\r\n }\r\n });\r\n } else if (hasBranchCommunication) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Parties.CustomerCategory.HasBranchCommunication\");\r\n }\r\n }\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewChild } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { LocalStoreManager, LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport {\r\n Customer,\r\n CustomerContactNumber,\r\n CustomerAddress,\r\n PersonalityKindEnum,\r\n GenderEnum,\r\n CreditControlType,\r\n MaxCodeViewModel,\r\n ZoneLookup,\r\n} from \"../model/customer.model\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { NumberType, RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormGroup, Validators } from \"@angular/forms\";\r\nimport { Zone } from \"../model/zone.model\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { CustomerCategory } from \"../model/customer-categories.model\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { Branch, form_control, Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { SplashScreenService } from \"../../../../../projects/sepidz-web-framework-shell/src/lib/shared/splash-form/SplashScreenService\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { ChangeCachEnum } from \"../../order/model/changecach.enum\";\r\nimport { EditableGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component\";\r\nimport { SaleMethodBranchModel } from \"../../sales/model/sale-method-branch.model\";\r\nimport { MapComponent, MapConfirmValue } from \"../map/map.component\";\r\nimport { Subject } from \"rxjs\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { PersianService } from \"projects/sepidz-web-framework/src/lib/services/persian.service\";\r\nimport { Party } from \"../model/party.model\";\r\n\r\n@Component({\r\n selector: \"ngx-customer-form\",\r\n templateUrl: \"./customer-form.component.html\",\r\n styleUrls: [\"./customer-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CustomerFormComponent extends BaseFormComponent implements AfterViewInit {\r\n @ViewChild(\"telephoneListGridEl\") telephoneListGridEl: EditableGridComponent;\r\n haserror: boolean = false;\r\n erroremessage: string;\r\n activeTabTitle: String;\r\n zones: Zone[] = [];\r\n hasCredit: boolean = false;\r\n hasLegalCustomer: boolean = false;\r\n DefaultValues: Dictionary = [];\r\n Customer: Customer;\r\n Addresses: form_control[];\r\n Numbers: form_control[];\r\n Occasions: form_control[];\r\n NumberTypeLookup: Lookup[];\r\n zonesLookup: ZoneLookup[] = [];\r\n PersonalityKindLookup: Lookup[];\r\n GenderLookup: Lookup[] = [];\r\n TitleLookup: Lookup[];\r\n BranchLookUp: Branch[];\r\n CallerIdNumber: string;\r\n isFindCustomer: boolean;\r\n isDisFinish: Number = 0;\r\n SoftWareLicenseKind = SoftWareLicenseKind;\r\n public isDefaultCustomer: boolean;\r\n public FirstNameChange: boolean;\r\n selectedZoneId: number;\r\n selectedZone: Zone;\r\n public Zones: Zone[];\r\n isMobileType: boolean = false;\r\n isPhoneType: boolean = false;\r\n disableNumber: boolean = false;\r\n showDefaultBranch: boolean = false;\r\n defaultBranchIsInit: boolean;\r\n showAddressGrid: boolean = false;\r\n gridShippingCostHasChanged: boolean;\r\n oldGridShippingCost: any;\r\n saleMethodBranch: SaleMethodBranchModel;\r\n currentAddressGridRow: CustomerAddress;\r\n LookupIsLoading: Dictionary = [];\r\n public DeactiveHasCreate: boolean = false;\r\n public NationalLabel: string = \"\";\r\n public isNationalCodeRequired: boolean = false;\r\n public isNationalIdRequired: boolean = false;\r\n public hasEconomicCode: boolean = false;\r\n public hasRegistrationNumber: boolean = false;\r\n public hasRegistrationDate: boolean = false;\r\n public hasPostalCode: boolean = false;\r\n public nameIsNotNecessary = true;\r\n public hasClubCustomer = false;\r\n public LastName: string;\r\n public nationalCodePattern: string = \"^[0-9]\\\\d{9}\";\r\n public nationalIdPattern: string = \"^[0-9]{10,15}$\";\r\n disabledTitle: boolean = false;\r\n personalityKindEnum = PersonalityKindEnum;\r\n showZone: boolean = false;\r\n creditCustmer: boolean;\r\n currentInformation = this.accountService.authService.currentInformation();\r\n currentBranch = this.accountService.authService.currentBranch;\r\n customerCategories: CustomerCategory[];\r\n controlsIsAdded: boolean;\r\n constructor(\r\n private lookupService: LookupService,\r\n protected selectorService: SelectorService,\r\n public cd: ChangeDetectorRef,\r\n public splash: SplashScreenService,\r\n private storage: LocalStoreManager,\r\n private persianService: PersianService\r\n ) {\r\n super(selectorService, cd);\r\n this.addCustomerFormGroup();\r\n }\r\n\r\n async fillData() {\r\n this.hasCreditCustomar();\r\n this.setValue(\"ZoneId\", null);\r\n this.setValue(\"GenderId\", null);\r\n const computerName: string = this.storage.getData(ClearableCache.ComputerName);\r\n\r\n const cacheState = await this.httpCommonService\r\n .get(`LocalSetting/GetCachState` + (computerName ? \"?ComputerName=\" + computerName : \"\"))\r\n .pipe(take(1))\r\n .toPromise();\r\n\r\n if (cacheState) {\r\n if (cacheState.some((f) => f === ChangeCachEnum.Zone) && this.storage.getData(\"zonesLookup\")) {\r\n this.zonesLookup = this.storage.getData(\"zonesLookup\");\r\n this.selectorService.setDataList(\"Zone/GetZonesList\", this.zonesLookup);\r\n if (this.currentInformation.RestaurantCallCenter && this.currentBranch.AccessToAllBranches) {\r\n this.showDefaultBranch = true;\r\n this.showZone = true;\r\n }\r\n } else await this.GetZone();\r\n } else await this.GetZone();\r\n\r\n const branchLookUp = await this.httpCommonService.getList(\"Branch\").pipe(take(1)).toPromise();\r\n this.BranchLookUp = branchLookUp.filter((x) => !x.AccessToAllBranches && x.IsActive);\r\n this.selectorService.setDataList(\"Branch\", this.BranchLookUp);\r\n if (this.model?.Addresses?.length > 0 && this.BranchLookUp?.length > 0 && this.currentInformation.RestaurantCallCenter) this.setDefaultBranchId();\r\n\r\n this.PersonalityKindLookup = await this.lookupService.getLookupbyCategory(\"GNR\", \"PersonalityKind\").pipe(take(1)).toPromise();\r\n this.GenderLookup = await this.lookupService.getLookupbyCategory(\"GNR\", \"Gender\").pipe(take(1)).toPromise();\r\n this.NumberTypeLookup = await this.lookupService.getLookupbyCategory(\"SALE\", \"NumberType\").pipe(take(1)).toPromise();\r\n this.customerCategories = await this.httpCommonService.getList(\"CustomerCategory\").pipe(take(1)).toPromise();\r\n }\r\n\r\n async ngOnInit() {\r\n await this.fillData();\r\n super.ngOnInit();\r\n this.apiName = \"Customer\";\r\n this.DefaultValues[\"BranchId\"] = 0;\r\n this.DefaultValues[\"CustomerId\"] = 0;\r\n this.DefaultValues[\"Order\"] = 0;\r\n this.setValue(\"PercentDiscount\", \"\");\r\n this.label = this.translate(\"ClientApp.FrontOffice.Parties.Customer.Customer\");\r\n }\r\n\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.zones = undefined;\r\n this.DefaultValues = undefined;\r\n this.Customer = undefined;\r\n this.Addresses = undefined;\r\n this.Numbers = undefined;\r\n this.Occasions = undefined;\r\n }\r\n setColumnAttribute(): void {\r\n if (!this.columns) return;\r\n super.setColumnAttribute();\r\n this.Addresses = this.getDetailControlModels(\"Addresses\");\r\n if (!this.currentInformation.RestaurantCallCenter) {\r\n const defaultBranch = this.Addresses.find((x) => x.name === \"DefaultBranchId\");\r\n defaultBranch.formVisible = false;\r\n defaultBranch.listVisible = false;\r\n }\r\n const zone = this.Addresses.find((x) => x.name === \"ZoneId\");\r\n zone.isSelector = true;\r\n this.defaultBranchIsInit = true;\r\n this.Numbers = this.getDetailControlModels(\"Numbers\");\r\n this.Occasions = this.getDetailControlModels(\"Occasions\");\r\n const accountingKind = this.currentInformation.AccountingKind;\r\n const isAcc = accountingKind === SoftWareLicenseKind.AccountingAdvancedWeb || accountingKind === SoftWareLicenseKind.AccountingToAdvancedWeb;\r\n const inventoryKind = this.currentInformation.InventoryKind;\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"SubLedgerId\" || x.name === \"DetailLedgerId\") x.formVisible = isAcc;\r\n if (x.name === \"GoodsId\")\r\n x.formVisible =\r\n inventoryKind === SoftWareLicenseKind.InventoryWeb ||\r\n inventoryKind === SoftWareLicenseKind.InventoryAdvancedWeb ||\r\n inventoryKind === SoftWareLicenseKind.InventoryToAdvancedWeb;\r\n });\r\n }\r\n\r\n async GetZone() {\r\n const data = await this.httpCommonService.getList(\"Zone/GetZones\").pipe(take(1)).toPromise();\r\n this.zonesLookup = data;\r\n this.storage.savePermanentData(data, \"zonesLookup\");\r\n this.selectorService.setDataList(\"Zone/GetZonesList\", this.zonesLookup);\r\n if (this.currentInformation.RestaurantCallCenter && this.currentBranch.AccessToAllBranches) {\r\n this.showDefaultBranch = true;\r\n this.showZone = true;\r\n }\r\n }\r\n\r\n async saveForm() {\r\n if (this.hasClubCustomer) {\r\n let phoneNumber = this.formGroup.controls[\"PhoneNumber\"].value;\r\n if (!phoneNumber.startsWith(\"09\")) {\r\n this.submitted = false;\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.isClosing = false;\r\n this.isSaving = false;\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Parties.Customer.PhoneNumberPatternNotCorrect\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Parties.Customer.ErrorMessage\")\r\n );\r\n this.selectorService.submitted$.next(false);\r\n return;\r\n }\r\n if (!this.formGroup.controls[\"GenderId\"].value) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Parties.Customer.CustomerGenderNotSelected\")}`,\r\n this.translate(\"ClientApp.FrontOffice.Parties.Customer.ErrorMessage\")\r\n );\r\n this.submitted = false;\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.isClosing = false;\r\n this.isSaving = false;\r\n return;\r\n }\r\n if (this.id) {\r\n this.model.Numbers[0].State = RowState.Modify;\r\n this.model.Numbers[0].IsDefault = false;\r\n const numberRow: CustomerContactNumber = JSON.parse(JSON.stringify(this.model.Numbers[0]));\r\n numberRow.IsDefault = true;\r\n numberRow.Id = 0;\r\n numberRow.State = RowState.New;\r\n numberRow.Number = phoneNumber;\r\n this.model.Numbers.push(numberRow);\r\n }\r\n if (phoneNumber) {\r\n this.httpCommonService\r\n .getList(`Customer/ReadCustomerByMobile/${phoneNumber}`)\r\n .pipe(take(1))\r\n .subscribe((customer: Customer) => {\r\n if (customer) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Parties.Customer.DesiredSubscriberPhoneNumberAlreadyEntered\")}\r\n ${customer.DisplayName} - ${this.translate(\"ClientApp.FrontOffice.Parties.Customer.SubscriptionCode\")}:${customer.Number}`,\r\n this.translate(\"ClientApp.FrontOffice.Parties.Customer.CustomerReplacement\"),\r\n DialogType.confirm,\r\n () => this.reloadCustomer(customer),\r\n () => {\r\n this.selectorService.submitted$.next(false);\r\n }\r\n );\r\n } else {\r\n this.save();\r\n }\r\n });\r\n }\r\n } else {\r\n this.save();\r\n }\r\n }\r\n reloadCustomer(customer: Customer) {\r\n this.model = customer;\r\n this.currentrow = this.model;\r\n this.isNewRow = false;\r\n this.id = customer.Id;\r\n this.setValue(\"PartyId\", this.model.PartyId);\r\n this.formGroup.controls[\"Id\"].setValue(this.id);\r\n this.addCustomerFormGroup();\r\n this.save();\r\n }\r\n setdefault() {\r\n if (this.model.Number === 0) this.DeactiveHasCreate = true;\r\n if (this.model.Addresses && this.model.Addresses.length > 0 && this.zonesLookup?.length > 0) this.setAddressesInfo();\r\n\r\n if (this.zonesLookup.length === 1 || this.hasClubCustomer || this.currentrow?.hasAddFastCustomer) {\r\n const defaultZone = this.zonesLookup.find((x) => x.Code === 0);\r\n if (defaultZone && this.model && !this.model.Id) {\r\n this.model.ZoneId = defaultZone.Id;\r\n this.setValue(\"ZoneId\", defaultZone.Id);\r\n this.model.Address = defaultZone.Title;\r\n this.setValue(\"Address\", defaultZone.Title);\r\n }\r\n }\r\n\r\n // from order online\r\n this.setValuesForOrderOnline();\r\n\r\n const a = this.columns?.find((element) => element.name === \"Addresses\");\r\n if (a && a.DetailControlModels) a.DetailControlModels.Addresses.find((a) => a.name === \"CourierShippingCost\").disabled = true;\r\n\r\n if (!this.model.Addresses) this.model.Addresses = [];\r\n if (!this.model.Numbers) this.model.Numbers = [];\r\n if (!this.model.Occasions) this.model.Occasions = [];\r\n\r\n if (this.model && !this.model.Id) {\r\n //اگر در مد ایجاد بودیم\r\n if (!this.currentInformation.RestaurantCallCenter) this.model.IsActive = true;\r\n\r\n if (this.customerCategories && this.customerCategories.length === 1) {\r\n this.model.CategoryId = this.customerCategories[0].Id;\r\n this.setValue(\"CategoryId\", this.model.CategoryId);\r\n }\r\n\r\n if (!this.model.Party) {\r\n this.model.Party = new Party(); // Ensure Party is initialized\r\n }\r\n\r\n if (!this.model.Party?.PersonalityKindId) {\r\n this.lookupService\r\n .getLookupbyCode(\"GNR\", \"PersonalityKind\", PersonalityKindEnum.Realperson)\r\n .pipe(take(1))\r\n .subscribe((x) => {\r\n if (this.model && this.model.Party) {\r\n this.model.Party.PersonalityKindId = x.Id;\r\n this.model.Party.PersonalityKindTitle = x.Title;\r\n this.model.Party.PersonalityKindCode = x.Code;\r\n this.setValue(\"PersonalityKindId\", x.Id);\r\n this.setValue(\"PersonalityKindTitle\", x.Title);\r\n this.setValue(\"PersonalityKindCode\", x.Code);\r\n }\r\n });\r\n }\r\n if (this.model && !this.model.GenderId) {\r\n this.lookupService\r\n .getLookupbyCode(\"GNR\", \"Gender\", GenderEnum.Male)\r\n .pipe(take(1))\r\n .subscribe((x) => {\r\n this.model.GenderId = x.Id;\r\n this.model.GenderTitle = x.Title;\r\n this.setValue(\"GenderId\", x.Id);\r\n this.setValue(\"GenderTitle\", x.Title);\r\n });\r\n } else this.setValue(\"GenderId\", this.model.GenderId);\r\n\r\n if (this.model && !this.model.CreditControlTypeId) {\r\n this.lookupService\r\n .getLookupbyCode(\"SALE\", \"CreditControlType\", CreditControlType.Warning)\r\n .pipe(take(1))\r\n .subscribe((x) => {\r\n this.model.CreditControlTypeId = x.Id;\r\n this.model.CreditControlTypeTitle = x.Title;\r\n this.setValue(\"CreditControlTypeId\", x.Id);\r\n this.setValue(\"CreditControlTypeTitle\", x.Title);\r\n });\r\n }\r\n if (this.model && !this.model.CreditControlTypeId) {\r\n this.lookupService\r\n .getLookupbyCode(\"SALE\", \"CreditControlType\", CreditControlType.Warning)\r\n .pipe(take(1))\r\n .subscribe((x) => {\r\n this.model.CreditControlTypeId = x.Id;\r\n this.model.CreditControlTypeTitle = x.Title;\r\n this.setValue(\"CreditControlTypeId\", x.Id);\r\n this.setValue(\"CreditControlTypeTitle\", x.Title);\r\n });\r\n }\r\n }\r\n\r\n if (this.model && this.model.PartyId) {\r\n //اگر در مد ویرایش بودیم\r\n if (this.formGroup && this.formGroup.controls[\"PartyId\"]) this.formGroup.controls[\"PartyId\"]?.disable();\r\n if (this.formGroup && this.formGroup.controls[\"Number\"]) this.formGroup.controls[\"Number\"]?.disable();\r\n if (this.formGroup && this.model.Party?.PersonalityKindCode == this.personalityKindEnum.Legalperson) {\r\n this.hasLegalCustomer = true;\r\n }\r\n if (this.model.PartyId) {\r\n if (this.formGroup && this.formGroup.controls[\"FirstName\"]) this.formGroup.controls[\"FirstName\"]?.disable();\r\n if (this.formGroup && this.formGroup.controls[\"LastName\"]) this.formGroup.controls[\"LastName\"]?.disable();\r\n }\r\n }\r\n setTimeout(() => {\r\n if (this.currentrow?.Id && this.model?.Addresses?.length > 0 && this.BranchLookUp?.length > 0 && this.currentInformation.RestaurantCallCenter) {\r\n this.setDefaultBranchId();\r\n }\r\n }, 2000);\r\n\r\n setTimeout(() => {\r\n if (this.currentrow?.Id && this.model?.Addresses?.length > 0 && this.BranchLookUp?.length > 0 && this.currentInformation.RestaurantCallCenter) {\r\n this.setDefaultBranchId();\r\n }\r\n if (this.model?.Addresses?.length > 0) {\r\n this.model?.Addresses?.forEach((f) => {\r\n if (!f.DefaultBranchId && f.Zone?.Branches?.some((s) => s.IsDefault)) {\r\n f.DefaultBranchId = f.Zone.Branches.find((s) => s.IsDefault).BranchId;\r\n f.DefaultBranchTitle = this.BranchLookUp?.find((s) => s.Id === f.DefaultBranchId)?.Title;\r\n } else {\r\n if (f.DefaultBranchId) {\r\n f.DefaultBranchTitle = this.BranchLookUp?.find((s) => s.Id === f.DefaultBranchId)?.Title;\r\n }\r\n }\r\n });\r\n }\r\n this.showAddressGrid = true;\r\n }, 150);\r\n }\r\n\r\n setAddressesInfo() {\r\n for (var i = 0; i < this.model.Addresses.length; i++) {\r\n const address = this.model.Addresses[i];\r\n const branchId = address?.DefaultBranchId || address?.Zone?.Branches?.find((f) => f.IsDefault)?.BranchId || this.currentBranch.Id;\r\n if (!address.ShippingCost) {\r\n address.ShippingCost = address.Zone.Branches.find((x) => x.BranchId === branchId)?.ShippingCost;\r\n }\r\n if (!address.CourierShippingCost) {\r\n address.CourierShippingCost = address.Zone.Branches.find((x) => x.BranchId === branchId)?.CourierShippingCost;\r\n }\r\n if (address.IsDefault) {\r\n this.setValue(\"CourierShippingCost\", address.CourierShippingCost);\r\n this.setValue(\"ShippingCost\", address.ShippingCost);\r\n this.model.ShippingCost = address.ShippingCost;\r\n this.model.CourierShippingCost = address.CourierShippingCost;\r\n this.oldGridShippingCost = address.ShippingCost;\r\n }\r\n }\r\n }\r\n\r\n PartyAccountChange(event) {\r\n const controls = this.formGroup.controls;\r\n if (!event) {\r\n controls[\"FirstName\"].enable();\r\n controls[\"LastName\"].enable();\r\n controls[\"Number\"].enable();\r\n }\r\n if (event && event.Number && event.LastName) {\r\n this.model.Number = event.Number;\r\n controls[\"Number\"].setValue(event.Number);\r\n this.model.FirstName = event.FirstName;\r\n controls[\"FirstName\"].setValue(event.FirstName);\r\n this.model.LastName = event.LastName;\r\n controls[\"LastName\"].setValue(event.LastName);\r\n this.model.Description = event.Description;\r\n controls[\"Description\"].setValue(event.Description);\r\n this.model.PhoneNumber = event.MobileNumber;\r\n controls[\"PhoneNumber\"].setValue(event.MobileNumber);\r\n this.model.Address = event.Address;\r\n controls[\"Address\"].setValue(event.Address);\r\n if (this.model.Party) {\r\n this.model.Party.DetailLedgerId = event.DetailLedgerId;\r\n }\r\n this.setValue(\"DetailLedgerId\", event.DetailLedgerId);\r\n\r\n controls[\"Number\"].disable();\r\n controls[\"LastName\"].disable();\r\n if (controls[\"FirstName\"].value) controls[\"FirstName\"].disable();\r\n }\r\n setTimeout(() => {\r\n const input: HTMLInputElement = document.getElementById(\"Description\") as HTMLInputElement;\r\n if (input) input.focus();\r\n }, 100);\r\n }\r\n setHeaderInfo() {\r\n const controls = this.formGroup.controls;\r\n let phoneNumber = controls[\"PhoneNumber\"].value;\r\n let numberTypeId = controls[\"NumberTypeId\"].value;\r\n let haveNumbersItem = false;\r\n let haveIsDefaultNumber = false;\r\n if (this.model.Numbers) {\r\n haveNumbersItem = this.model.Numbers.some((x) => x.State !== RowState.Delete && x.State !== RowState.Detached);\r\n haveIsDefaultNumber = this.model.Numbers?.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).some((a) => a.IsDefault);\r\n }\r\n if (\r\n phoneNumber &&\r\n numberTypeId &&\r\n (this.model.PhoneNumber != phoneNumber || this.model.NumberTypeId != numberTypeId || !haveNumbersItem || !haveIsDefaultNumber)\r\n ) {\r\n let findIndex = this.model.Numbers?.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).findIndex(\r\n (x) => x.NumberTypeId === numberTypeId && x.Number === phoneNumber && !x.IsDefault\r\n );\r\n if (findIndex === -1) {\r\n let number: CustomerContactNumber = {};\r\n number.State = RowState.New;\r\n number.IsDefault = true;\r\n number.NumberTypeId = numberTypeId;\r\n number.Number = phoneNumber;\r\n if (!this.model.Numbers) {\r\n this.model.Numbers = [];\r\n this.model.Numbers.push(number);\r\n } else {\r\n let isFound: boolean = false;\r\n this.model.Numbers?.filter((x) => x.State != RowState.Detached).forEach((x) => {\r\n if (x.IsDefault === true && (!this.hasClubCustomer || !this.id)) {\r\n isFound = true;\r\n x.NumberTypeId = numberTypeId;\r\n x.Number = phoneNumber;\r\n if (x.State != RowState.New) {\r\n x.State = RowState.Modify;\r\n this.model.State = RowState.Modify;\r\n }\r\n }\r\n });\r\n if (!isFound) {\r\n if (!this.model.Numbers?.find((x) => x.IsDefault)) {\r\n this.model.Numbers.push(number);\r\n }\r\n }\r\n }\r\n } else {\r\n this.model.Numbers.forEach((x) => (x.IsDefault = false));\r\n this.model.Numbers[findIndex].IsDefault = true;\r\n }\r\n }\r\n\r\n let zoneId = controls[\"ZoneId\"].value;\r\n let address = controls[\"Address\"].value;\r\n let branchId = controls[\"DefaultBranches\"]?.value;\r\n let haveAddressesItem = false;\r\n let haveIsDefaultAddress = false;\r\n if (this.model.Addresses) {\r\n haveAddressesItem = this.model.Addresses.some((x) => x.State !== RowState.Delete && x.State !== RowState.Detached);\r\n haveIsDefaultAddress = this.model.Addresses.filter((x) => x.State !== RowState.Delete && x.State !== RowState.Detached).some(\r\n (a) => a.IsDefault\r\n );\r\n }\r\n if (zoneId && address && (this.model.ZoneId != zoneId || this.model.Address != address || !haveAddressesItem || !haveIsDefaultAddress)) {\r\n let findIndex = this.model.Addresses.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).findIndex(\r\n (x) => x.ZoneId === zoneId && x.Address === address && !x.IsDefault\r\n );\r\n if (findIndex === -1) {\r\n let defaultAddress: CustomerAddress = {};\r\n defaultAddress.State = RowState.New;\r\n defaultAddress.IsDefault = true;\r\n defaultAddress.ZoneId = zoneId;\r\n defaultAddress.Address = address;\r\n defaultAddress.DefaultBranchId = branchId;\r\n if (this.model.Addresses === null || !(this.model.Addresses.length > 0)) {\r\n this.model.Addresses = [];\r\n this.model.Addresses.push(defaultAddress);\r\n } else {\r\n let isFound: boolean = false;\r\n this.model.Addresses?.filter((x) => x.State != RowState.Detached).forEach((x) => {\r\n if (x.IsDefault === true) {\r\n isFound = true;\r\n x.ZoneId = zoneId;\r\n x.Address = address;\r\n if (x.State !== RowState.New) {\r\n x.State = RowState.Modify;\r\n }\r\n }\r\n });\r\n if (!isFound) {\r\n this.model.Addresses.push(defaultAddress);\r\n }\r\n }\r\n } else {\r\n this.model.Addresses.forEach((x) => (x.IsDefault = false));\r\n this.model.Addresses[findIndex].IsDefault = true;\r\n }\r\n }\r\n this.model?.Addresses?.forEach((ele) => {\r\n if (ele?.Zone?.ShippingCost !== controls[\"ShippingCost\"]?.value && ele?.IsDefault) {\r\n ele.ShippingCost = controls[\"ShippingCost\"].value;\r\n ele.State = ele.Id == 0 ? RowState.New : RowState.Modify;\r\n }\r\n });\r\n }\r\n isValid(): boolean {\r\n this.setHeaderInfo();\r\n this.erroremessage = \"\";\r\n this.haserror = false;\r\n this.formGroup.updateValueAndValidity();\r\n if (this.formGroup.invalid) {\r\n this.haserror = true;\r\n for (const ctrlName in this.formGroup.controls) {\r\n const element = this.formGroup.controls[ctrlName];\r\n if (element.errors) {\r\n const title = this.orignalColumns.find((x) => x.name === ctrlName)?.label;\r\n if (element.errors.pattern) {\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Customer.for\") + ` ${title} ` + this.translate(\"Errors.Pattern\");\r\n } else\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Customer.Amount\") + ` ${title} ` + this.translate(\"Errors.Required\");\r\n break;\r\n }\r\n }\r\n }\r\n if (this.model.Addresses && this.model.Addresses.length > 0) {\r\n this.model.Addresses = this.model.Addresses.filter((x) => x.State != RowState.Detached);\r\n }\r\n if (this.formGroup?.valid && !this.formGroup.controls[\"IsActive\"].value && !this.formGroup.controls[\"DeactivationReason\"].value) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Customer.CompletingCauseDeactivationRequired\");\r\n }\r\n if (this.model.Numbers && this.model.Numbers.length > 0) {\r\n this.model.Numbers = this.model.Numbers.filter((x) => x.State != RowState.Detached);\r\n } else if (!this.model.Numbers || this.model.Numbers.filter((x) => x.State != RowState.Delete && x.State != RowState.Detached).length <= 0) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Customer.NecessaryTelephone\");\r\n } else if (this.hasCredit) {\r\n if (!this.formGroup.controls[\"CreditControlTypeId\"].value) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Customer.ChoosingCreditControlMethod\");\r\n }\r\n } else if (!this.formGroup.controls[\"CategoryId\"].value) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Customer.CustomerGroupSelectionRequired\");\r\n } else if (!this.formGroup.controls[\"LastName\"].value) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Customer.ChoosingLastNameMandatory\");\r\n } else if (!this.formGroup.controls[\"ZoneId\"].value) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Customer.ChoosingNeighborhoodMandatory\");\r\n } else if (!this.formGroup.controls[\"Address\"].value) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Customer.AtLeastOneAddressRequired\");\r\n } else if (!this.formGroup.controls[\"PersonalityKindId\"].value) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Customer.CustomerTypeValueNotEntered\");\r\n }\r\n if (this.formGroup.controls[\"PercentDiscount\"].value > 100) {\r\n this.setValue(\"PercentDiscount\", 100);\r\n }\r\n if (this.model?.Party?.PersonalityKindCode == PersonalityKindEnum.Legalperson) {\r\n if (!this.formGroup.controls[\"PostalCode\"].value) {\r\n this.sts.showToast(\r\n \"warning\",\r\n this.translate(\"ClientApp.FrontOffice.Parties.Customer.Attention\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.Customer.ZipCodeNotEntered\")\r\n );\r\n return false;\r\n }\r\n if (this.formGroup.controls[\"PostalCode\"].value && this.formGroup.controls[\"PostalCode\"].value > 9999999999) {\r\n this.sts.showToast(\r\n \"warning\",\r\n this.translate(\"ClientApp.FrontOffice.Parties.Customer.Attention\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.Customer.ZipCodeFieldLengthValueNotCorrect\")\r\n );\r\n return false;\r\n }\r\n }\r\n if (this.formGroup.controls[\"NationalCode\"].value && this.formGroup.controls[\"NationalCode\"].value.length > 10000000000) {\r\n this.sts.showToast(\r\n \"warning\",\r\n this.translate(\"ClientApp.FrontOffice.Parties.Customer.Attention\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.Customer.LengthValueNationalNumberFieldNotAppropriate\")\r\n );\r\n return false;\r\n }\r\n if (this.formGroup.controls[\"NationalId\"].value && this.formGroup.controls[\"NationalId\"].value.length > 1000000000000000) {\r\n this.sts.showToast(\r\n \"warning\",\r\n this.translate(\"ClientApp.FrontOffice.Parties.Customer.Attention\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.Customer.NationalIDFieldLengthValueAppropriate\")\r\n );\r\n return false;\r\n }\r\n if (!this.haserror) this.checkByPersonalityKindValidation();\r\n\r\n return !this.haserror;\r\n }\r\n\r\n protected saveFailedHelper(error: any) {\r\n this.submitted = false;\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.isClosing = false;\r\n this.isSaving = false;\r\n const message: any = Utilities.getHttpResponseMessage(error);\r\n const messageStr = message.toString(); // or String(message)\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Parties.Customer.SaveError\"),\r\n `${this.translate(\"ClientApp.FrontOffice.Parties.Customer.ErrorSavingChanges\")}: ${message}`\r\n );\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Parties.Customer.ErrorSavingChanges\")}: ${message}`,\r\n this.translate(\"ClientApp.FrontOffice.Parties.Customer.ErrorMessage\")\r\n );\r\n const regex = /کد جدید (\\d+) جایگذاری/;\r\n const found = messageStr.match(regex);\r\n if (found) {\r\n const value = found[1];\r\n this.model.Number = +value;\r\n this.setValue(\"Number\", +value);\r\n }\r\n if (this.changesFailedCallback) this.changesFailedCallback();\r\n this.saveHasError();\r\n }\r\n\r\n valueChange($event) {\r\n if (this.formGroup.controls[\"PercentDiscount\"].value > 100) {\r\n this.setValue(\"PercentDiscount\", 100);\r\n }\r\n }\r\n setMaxCode() {\r\n if (this.isFindCustomer) return;\r\n if (!this.currentrow?.Id) {\r\n this.httpCommonService\r\n .get(this.apiName + \"/GetCustomerMaxCode\")\r\n .pipe(take(1))\r\n .subscribe((data: MaxCodeViewModel) => {\r\n if (data.HaspreFix) {\r\n this.formGroup.controls[\"Number\"].disable();\r\n this.disableNumber = true;\r\n } else {\r\n this.formGroup.controls[\"Number\"].enable();\r\n this.disableNumber = false;\r\n }\r\n if (!this.model) this.model = {};\r\n if (data) this.model[\"Number\"] = data.MaxCode;\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n }\r\n\r\n addControl() {\r\n if (this.formGroup) {\r\n this.setValue(\"ShippingCost\", this.model.ShippingCost);\r\n this.setValue(\"PartyId\", this.model.PartyId);\r\n this.setValue(\"DisplayName\", this.model.DisplayName);\r\n this.setValue(\"ZoneId\", this.model.ZoneId);\r\n this.formGroup.controls[\"ZoneId\"].setValidators([Validators.required]);\r\n this.setValue(\"IsActive\", this.model.IsActive != null ? this.model.IsActive : true);\r\n this.setValue(\"DeactivationReason\", this.model.DeactivationReason);\r\n this.setValue(\"HasCredit\", this.model.HasCredit);\r\n this.setValue(\"CreditControlTypeId\", this.model.CreditControlTypeId);\r\n this.setValue(\"CreditLimit\", this.model.CreditLimit);\r\n this.setValue(\"AutomaticDebtor\", this.model.AutomaticDebtor);\r\n this.setValue(\"PersonalityKindId\", this.model.Party?.PersonalityKindId);\r\n this.formGroup.controls[\"PersonalityKindId\"].setValidators([Validators.required]);\r\n this.setValue(\"GenderId\", this.model.GenderId);\r\n this.formGroup.controls[\"GenderId\"].setValidators([Validators.required]);\r\n this.setValue(\"CourierShippingCost\", this.model.CourierShippingCost);\r\n this.setValue(\"CategoryId\", this.model.CategoryId, true);\r\n this.setValue(\"PercentDiscount\", this.model.PercentDiscount);\r\n this.setValue(\"DefaultBranches\", this.model.DefaultBranches);\r\n this.setValue(\"FailurePaymentLink\", this.model.FailurePaymentLink);\r\n this.setValue(\"DetailLedgerId\", this.model.Party?.DetailLedgerId);\r\n this.setValue(\"SubLedgerId\", this.model.Party?.SubLedgerId);\r\n this.setValue(\"NationalCode\", this.model.Party?.NationalCode, false, this.nationalCodePattern);\r\n this.setValue(\"NationalId\", this.model.Party?.NationalId, false, this.nationalIdPattern);\r\n this.setValue(\"EconomicCode\", this.model.EconomicCode);\r\n this.setValue(\"RegistrationNumber\", this.model.RegistrationNumber);\r\n this.setValue(\"RegistrationDate\", this.model.RegistrationDate);\r\n this.setValue(\"CreatedUserTitle\", this.model.CreatedUserTitle);\r\n this.setValue(\"ModifiedUserTitle\", this.model.ModifiedUserTitle);\r\n this.setValue(\"PostalCode\", this.model.PostalCode);\r\n\r\n this.hasCredit = this.model?.HasCredit;\r\n }\r\n const defaultAddress = this.model?.Addresses?.find((f) => f.IsDefault);\r\n if (defaultAddress) {\r\n let shippingCost = 0;\r\n if (!defaultAddress?.ShippingCost && (defaultAddress.ShippingCost === null || defaultAddress.ShippingCost === undefined)) {\r\n shippingCost = defaultAddress.Zone?.ShippingCost;\r\n } else if (typeof defaultAddress?.ShippingCost === \"number\") shippingCost = defaultAddress?.ShippingCost;\r\n\r\n this.model.ShippingCost = shippingCost;\r\n }\r\n if (this.CallerIdNumber) {\r\n this.model.PhoneNumber = this.CallerIdNumber ? (this.CallerIdNumber?.length >= 9 ? '0' + this.CallerIdNumber : this.CallerIdNumber ) : this.model.PhoneNumber;\r\n this.setValue(\"PhoneNumber\", this.model.PhoneNumber);\r\n }\r\n if (this.zonesLookup && this.zonesLookup.length === 1) {\r\n const defaultZone = this.zonesLookup.find((x) => x.Code === 0);\r\n if (defaultZone) {\r\n this.model.ZoneId = defaultZone.Id;\r\n this.setValue(\"ZoneId\", defaultZone.Id);\r\n }\r\n if (this.CallerIdNumber?.startsWith(\"09\")) {\r\n this.lookupService\r\n .getLookupbyCode(\"SALE\", \"NumberType\", NumberType.Mobile)\r\n .pipe(take(1))\r\n .subscribe((x) => {\r\n this.model.NumberTypeId = x.Id;\r\n this.setValue(\"NumberTypeId\", x.Id);\r\n });\r\n } else {\r\n this.lookupService\r\n .getLookupbyCode(\"SALE\", \"NumberType\", NumberType.Phone)\r\n .pipe(take(1))\r\n .subscribe((x) => {\r\n this.model.NumberTypeId = x.Id;\r\n this.setValue(\"NumberTypeId\", x.Id);\r\n });\r\n }\r\n } else {\r\n if (this.model && this.model.Numbers != null && this.model.Numbers.some((x) => x.IsDefault)) {\r\n let numberTypeCode = this.model.Numbers.find((x) => x.IsDefault).NumberTypeCode;\r\n if (numberTypeCode > 0) {\r\n this.setPatternKey(numberTypeCode);\r\n }\r\n }\r\n }\r\n if (defaultAddress?.Zone?.ShippingCost !== this.formGroup.controls[\"ShippingCost\"].value) {\r\n this.model.Addresses.forEach((e) => {\r\n if (e.IsDefault) {\r\n e.ShippingCost = defaultAddress?.ShippingCost;\r\n e.State = RowState.Modify;\r\n }\r\n });\r\n }\r\n if (this.currentrow?.hasAddFastCustomer) {\r\n if (!this.showDefaultBranch) this.formGroup.controls[\"ZoneId\"].setValue(this.zonesLookup?.find((x) => x.Code === 0)?.Id);\r\n if (!this.currentBranch.AccessToAllBranches) this.formGroup.controls[\"DefaultBranches\"].setValue(this.currentBranch.Id);\r\n else this.formGroup.controls[\"DefaultBranches\"].setValue(null);\r\n this.formGroup.controls[\"PersonalityKindId\"].setValue(this.PersonalityKindLookup?.find((x) => x.Code === PersonalityKindEnum.Realperson)?.Id);\r\n this.formGroup.controls[\"CategoryId\"].setValue(this.customerCategories?.find((x) => x.Code === 0)?.Id);\r\n this.formGroup.controls[\"GenderId\"].setValue(this.GenderLookup?.find((x) => x.Code === GenderEnum.Male)?.Id);\r\n } else if (this.hasClubCustomer) {\r\n const defaultZone = this.zonesLookup?.find((x) => x.Code === 0);\r\n if (this.nameIsNotNecessary) {\r\n this.formGroup.controls[\"ZoneId\"].setValue(defaultZone?.Id);\r\n this.formGroup.controls[\"Address\"].setValue(defaultZone.Title);\r\n this.formGroup.controls[\"LastName\"].setValue(this.LastName);\r\n }\r\n if (!this.currentBranch.AccessToAllBranches) this.formGroup.controls[\"DefaultBranches\"].setValue(this.currentBranch.Id);\r\n else this.formGroup.controls[\"DefaultBranches\"].setValue(null);\r\n this.formGroup.controls[\"PersonalityKindId\"].setValue(this.PersonalityKindLookup?.find((x) => x.Code === PersonalityKindEnum.Realperson)?.Id);\r\n this.formGroup.controls[\"CategoryId\"].setValue(this.customerCategories?.find((x) => x.Code === 0)?.Id);\r\n this.formGroup.controls[\"GenderId\"].setValue(this.GenderLookup?.find((x) => x.Code === GenderEnum.Male)?.Id);\r\n } else this.cd.markForCheck();\r\n if (this.model.Party?.PersonalityKindId) this.checkByPersonalityKindValidation();\r\n this.controlsIsAdded = true;\r\n this.cd.markForCheck();\r\n }\r\n\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n beforupdate() {\r\n this.isValid();\r\n if (this.model.Party) {\r\n this.model.Party.PersonalityKindId = this.formGroup.controls[\"PersonalityKindId\"].value;\r\n this.model.Party.NationalId = this.formGroup.controls[\"NationalId\"].value;\r\n this.model.Party.NationalCode = this.formGroup.controls[\"NationalCode\"].value;\r\n this.model.Party.SubLedgerId = this.formGroup.controls[\"SubLedgerId\"].value;\r\n this.model.Party.DetailLedgerId = this.formGroup.controls[\"DetailLedgerId\"].value;\r\n }\r\n if (this.formGroup.controls[\"PartyId\"].value === null) {\r\n this.formGroup.controls[\"PartyId\"].setValue(0);\r\n }\r\n if (this.formGroup.controls[\"PhoneNumber\"].value === null) {\r\n this.formGroup.controls[\"PhoneNumber\"].setValue(undefined);\r\n }\r\n\r\n if (this.formGroup.controls[\"HasCredit\"].value === false) {\r\n this.formGroup.controls[\"CreditControlTypeId\"].setValue(null);\r\n this.formGroup.controls[\"CreditLimit\"].setValue(null);\r\n this.formGroup.controls[\"AutomaticDebtor\"].setValue(false);\r\n }\r\n if (this.formGroup.controls[\"IsActive\"].value === true) {\r\n this.formGroup.controls[\"DeactivationReason\"].setValue(\"\");\r\n }\r\n\r\n this.model.PercentDiscount = this.formGroup.controls[\"PercentDiscount\"].value;\r\n this.completeAddressGridValue();\r\n this.completePhoneNumberGridValue();\r\n }\r\n\r\n afterSaveAddressRow(entity: CustomerAddress) {\r\n if (!!entity.IsDefault) {\r\n const { ShippingCost, ZoneId, DefaultBranchId, Address } = entity;\r\n if (this.gridShippingCostHasChanged) {\r\n this.model.ShippingCost = ShippingCost;\r\n this.setValue(\"ShippingCost\", this.model.ShippingCost);\r\n }\r\n this.model.ZoneId = ZoneId;\r\n this.model.DefaultBranches = DefaultBranchId;\r\n this.model.Address = Address;\r\n this.setValue(\"ZoneId\", this.model.ZoneId);\r\n this.setValue(\"DefaultBranches\", this.model.DefaultBranches);\r\n this.setValue(\"Address\", this.model.Address);\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n onShippingCostChanges() {\r\n const defaultAddress = this.model?.Addresses?.find((f) => f.IsDefault);\r\n if (defaultAddress) {\r\n defaultAddress.ShippingCost = this.formGroup.controls[\"ShippingCost\"]?.value;\r\n }\r\n }\r\n\r\n onBranchChanges(branchId: number, IsDefaultRow?: boolean, gridFormGroup?: FormGroup) {\r\n if (!branchId) {\r\n gridFormGroup?.controls[\"ShippingCost\"].setValue(null);\r\n gridFormGroup?.controls[\"CourierShippingCost\"].setValue(null);\r\n const currentAddress = this.model.Addresses.find((x) => x.Order === gridFormGroup?.controls[\"Order\"]?.value);\r\n if (currentAddress) currentAddress.CourierShippingCost = null;\r\n if (IsDefaultRow) {\r\n this.model.ShippingCost = null;\r\n this.model.CourierShippingCost = null;\r\n this.setValue(\"ShippingCost\", null);\r\n this.setValue(\"CourierShippingCost\", null);\r\n this.setValue(\"DefaultBranches\", null);\r\n }\r\n return;\r\n }\r\n const zoneId = gridFormGroup ? gridFormGroup.controls[\"ZoneId\"].value : this.formGroup.controls[\"ZoneId\"].value;\r\n const selectedZone = this.zonesLookup.find((x) => x.Id === zoneId);\r\n const branchInfo = selectedZone?.Branches.find((x) => x.BranchId === branchId);\r\n if (branchInfo) {\r\n if (IsDefaultRow) {\r\n this.model.ShippingCost = branchInfo.ShippingCost;\r\n this.model.CourierShippingCost = branchInfo.CourierShippingCost;\r\n this.setValue(\"ShippingCost\", this.model.ShippingCost);\r\n this.setValue(\"CourierShippingCost\", this.model.CourierShippingCost);\r\n this.setValue(\"DefaultBranches\", branchId);\r\n if (gridFormGroup) {\r\n gridFormGroup.controls[\"ShippingCost\"].setValue(branchInfo.ShippingCost);\r\n gridFormGroup.controls[\"CourierShippingCost\"].setValue(branchInfo.CourierShippingCost);\r\n } else {\r\n const defaultAddress = this.model.Addresses.find((x) => x.IsDefault);\r\n if (defaultAddress) {\r\n defaultAddress.CourierShippingCost = branchInfo.CourierShippingCost;\r\n defaultAddress.ShippingCost = branchInfo.ShippingCost;\r\n defaultAddress.DefaultBranchId = branchId;\r\n const branchTitle = this.BranchLookUp?.find((x) => x.Id === branchId)?.Title;\r\n defaultAddress.DefaultBranchTitle = branchTitle;\r\n if (this.model?.Id) {\r\n defaultAddress.State = RowState.Modify;\r\n }\r\n }\r\n }\r\n } else {\r\n gridFormGroup?.controls[\"ShippingCost\"].setValue(branchInfo.ShippingCost);\r\n gridFormGroup?.controls[\"CourierShippingCost\"].setValue(branchInfo.CourierShippingCost);\r\n }\r\n }\r\n }\r\n\r\n valueChangeByApiName($event) {\r\n if ($event.data && $event.data.Category === \"NumberType\") {\r\n this.setPatternKey($event.data.Code);\r\n }\r\n }\r\n //مقدار دهی کرایه وکرایه سهم پیک با تغییر محله\r\n ZoneIdChange(headerEvent: any, gridEvent: FormGroup) {\r\n if (!gridEvent) {\r\n this.selectedZoneId = headerEvent?.Id;\r\n if (!this.formGroup.controls[\"Address\"].value) this.setValue(\"Address\", headerEvent?.Title);\r\n if (this.formGroup.dirty) {\r\n this.cd.markForCheck();\r\n setTimeout(() => {\r\n const input: HTMLInputElement = document.getElementById(\"Address\") as HTMLInputElement;\r\n if (input) input.focus();\r\n }, 10);\r\n }\r\n if (headerEvent) {\r\n this.selectedZone = headerEvent;\r\n this.setValue(\"ShippingCost\", headerEvent.ShippingCost);\r\n this.setValue(\"CourierShippingCost\", headerEvent.CourierShippingCost);\r\n if (!this.formGroup.controls[\"Address\"].value) this.setValue(\"Address\", headerEvent.Title);\r\n if (this.BranchLookUp?.find((x) => x.Id === headerEvent?.DefaultId)?.IsActive) {\r\n this.model.DefaultBranches = headerEvent?.DefaultId;\r\n this.setValue(\"DefaultBranches\", this.model.DefaultBranches);\r\n this.model?.Addresses?.map((address) => {\r\n if (address.IsDefault) address.DefaultBranchId = this.model.DefaultBranches;\r\n });\r\n } else {\r\n this.model.DefaultBranches = null;\r\n this.setValue(\"DefaultBranches\", null);\r\n }\r\n this.cd.markForCheck();\r\n }\r\n } else {\r\n const zoneId = gridEvent.controls[\"ZoneId\"].value;\r\n const selectedZone = this.zonesLookup?.find((x) => x.Id === zoneId);\r\n const branchId = selectedZone?.Branches?.find((f) => f.BranchId === selectedZone?.DefaultId)?.BranchId;\r\n gridEvent.controls[\"DefaultBranchId\"].setValue(branchId ?? null, { emitEvent: false });\r\n const IsDefault = gridEvent.controls[\"IsDefault\"]?.value;\r\n this.onBranchChanges(branchId, IsDefault, gridEvent);\r\n gridEvent.controls[\"Address\"].setValue(selectedZone?.Title);\r\n gridEvent.controls[\"ShippingCost\"].setValue(selectedZone?.ShippingCost);\r\n gridEvent.controls[\"CourierShippingCost\"].setValue(selectedZone?.CourierShippingCost);\r\n }\r\n this.cd.detectChanges();\r\n }\r\n setPatternKey(Code: number) {\r\n let patternKey = \"^[1-9]\\\\d{3,7}\";\r\n if (Code === NumberType.Mobile) {\r\n patternKey = \"^[0-0][9-9]\\\\d{9}\";\r\n }\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"PhoneNumber\") x.patternKey = patternKey;\r\n });\r\n if (this.formGroup.controls[\"PhoneNumber\"]) {\r\n this.formGroup.controls[\"PhoneNumber\"].clearValidators();\r\n this.formGroup.controls[\"PhoneNumber\"].setErrors(null);\r\n this.formGroup.controls[\"PhoneNumber\"].setValidators([Validators.required, Validators.pattern(patternKey)]);\r\n this.formGroup.controls[\"PhoneNumber\"].setValue(this.formGroup.controls[\"PhoneNumber\"].value);\r\n this.formGroup.markAsDirty();\r\n this.formGroup.markAsTouched();\r\n this.cd.markForCheck();\r\n }\r\n }\r\n\r\n onPhoneNumberChanges(number: string) {\r\n if (number.length == 2) {\r\n if (number.startsWith(\"09\")) {\r\n this.lookupService\r\n .getLookupbyCode(\"SALE\", \"NumberType\", NumberType.Mobile)\r\n .pipe(take(1))\r\n .subscribe((x) => {\r\n this.model.NumberTypeId = x.Id;\r\n this.setValue(\"NumberTypeId\", x.Id);\r\n this.setPatternKey(x.Code);\r\n });\r\n } else {\r\n this.lookupService\r\n .getLookupbyCode(\"SALE\", \"NumberType\", NumberType.Phone)\r\n .pipe(take(1))\r\n .subscribe((x) => {\r\n this.model.NumberTypeId = x.Id;\r\n this.setValue(\"NumberTypeId\", x.Id);\r\n this.setPatternKey(x.Code);\r\n });\r\n }\r\n } else if (number.length > 13) {\r\n if (number.startsWith(\"09\")) {\r\n number = number.substring(0, 13);\r\n this.formGroup.controls[\"PhoneNumber\"].setValue(number);\r\n }\r\n }\r\n }\r\n\r\n getByPhoneNumber() {\r\n let phoneNumber = this.formGroup.controls[\"PhoneNumber\"].value;\r\n\r\n this.httpCommonService\r\n .get(\"Customer/ReadCustomerByMobile/\" + phoneNumber)\r\n .pipe(take(1))\r\n .subscribe((customer: Customer) => {\r\n if (customer.Number !== 0) {\r\n return;\r\n } else {\r\n this.Customer = customer;\r\n this.setValue(\"LastName\", this.Customer?.LastName);\r\n this.setValue(\"Address\", this.Customer.Address);\r\n this.setValue(\"ZoneId\", this.Customer.ZoneId);\r\n this.setValue(\"GenderId\", this.Customer.GenderId);\r\n }\r\n });\r\n }\r\n\r\n CreditCourierChange(event) {\r\n this.hasCredit = event;\r\n setTimeout(() => this.cd.markForCheck(), 50);\r\n }\r\n PersonalityKindChange($event) {\r\n this.model.Party.PersonalityKindCode = $event.Code;\r\n this.formGroup.controls[\"NationalId\"].setValue(\"\");\r\n this.formGroup.controls[\"NationalCode\"].setValue(\"\");\r\n this.checkByPersonalityKindValidation();\r\n }\r\n afterupdate() {}\r\n valueChanges(formGroup: FormGroup) {\r\n if (\r\n formGroup &&\r\n formGroup.controls &&\r\n formGroup.controls[\"IsDefault\"]?.value &&\r\n this.oldGridShippingCost !== formGroup.controls[\"ShippingCost\"]?.value\r\n ) {\r\n this.oldGridShippingCost = formGroup.controls[\"ShippingCost\"]?.value;\r\n this.gridShippingCostHasChanged = true;\r\n }\r\n }\r\n\r\n onAddressFormGroupValueChanges(changedData: { newValue: any; oldValue: any; field: string; formGroup: FormGroup }) {\r\n if (changedData.field === \"DefaultBranchId\") {\r\n const IsDefault = changedData.formGroup.controls[\"IsDefault\"]?.value;\r\n this.onBranchChanges(changedData.newValue, IsDefault, changedData.formGroup);\r\n }\r\n if (changedData.field === \"ZoneId\") {\r\n this.ZoneIdChange(null, changedData.formGroup);\r\n }\r\n }\r\n\r\n onPhoneListFormGroupValueChanges(changedData: { newValue: any; oldValue: any; field: string; formGroup: FormGroup }) {\r\n const IsDefault = changedData?.formGroup?.controls[\"IsDefault\"]?.value;\r\n if (changedData.field === \"NumberTypeId\" && IsDefault) {\r\n this.model.NumberTypeId = changedData.newValue;\r\n this.setValue(\"NumberTypeId\", changedData.newValue);\r\n }\r\n if (changedData.field === \"Number\") {\r\n this.telephoneListGridEl.setPhoneValidators(changedData.formGroup?.controls[\"IsDefault\"]?.value?.NumberTypeCode);\r\n if (IsDefault) {\r\n this.model.PhoneNumber = changedData.newValue;\r\n this.setValue(\"PhoneNumber\", changedData.newValue);\r\n this.setPatternKey(changedData.formGroup.controls[\"NumberTypeCode\"].value);\r\n }\r\n }\r\n if (changedData.field === \"IsDefault\") {\r\n this.telephoneListGridEl.setPhoneValidators(changedData.formGroup?.controls[\"IsDefault\"]?.value?.NumberTypeCode);\r\n this.model.PhoneNumber = changedData.newValue;\r\n this.setValue(\"PhoneNumber\", changedData.formGroup.controls[\"Number\"].value);\r\n this.setValue(\"NumberTypeId\", changedData.formGroup.controls[\"NumberTypeId\"].value);\r\n this.setPatternKey(changedData.formGroup.controls[\"NumberTypeCode\"].value);\r\n }\r\n }\r\n\r\n showMapDialog() {\r\n const confirmValue = new Subject();\r\n const defaultAddress = this.model?.Addresses?.find((f) => f.IsDefault);\r\n confirmValue.pipe(take(1)).subscribe((value: MapConfirmValue) => {\r\n if (!defaultAddress) {\r\n let dA: CustomerAddress = {};\r\n dA.State = RowState.New;\r\n dA.IsDefault = true;\r\n dA.ZoneId = this.model.ZoneId;\r\n dA.Address = value.formattedAddress;\r\n dA.DefaultBranchId = this.model.BranchId;\r\n dA.Longitude = value.lng;\r\n dA.Latitude = value.lat;\r\n this.model.Addresses.push(dA);\r\n this.setValue(\"Address\", value.formattedAddress);\r\n } else {\r\n defaultAddress.Longitude = value.lng;\r\n defaultAddress.Latitude = value.lat;\r\n defaultAddress.State = RowState.Modify;\r\n }\r\n });\r\n this.dialogService.open(\r\n MapComponent,\r\n { confirmValue, lat: defaultAddress?.Latitude, lng: defaultAddress?.Longitude, formattedAddress: this.formGroup.controls[\"Address\"].value },\r\n { autoFocus: true, closeOnClickOutside: true }\r\n );\r\n }\r\n\r\n onAddressGridRowSelected(row: CustomerAddress) {\r\n if (row.Id == 0) row.Id = Math.floor(Math.random() * 10000000);\r\n this.currentAddressGridRow = row;\r\n }\r\n\r\n editLocation() {\r\n const confirmValue = new Subject();\r\n const relatedAddress = this.model?.Addresses?.find((f) => f.Id === this.currentAddressGridRow.Id);\r\n if (relatedAddress) {\r\n confirmValue.pipe(take(1)).subscribe((value: MapConfirmValue) => {\r\n relatedAddress.Longitude = value.lng;\r\n relatedAddress.Latitude = value.lat;\r\n relatedAddress.State = RowState.Modify;\r\n });\r\n this.dialogService.open(\r\n MapComponent,\r\n { confirmValue, lat: relatedAddress.Latitude, lng: relatedAddress.Longitude, formattedAddress: relatedAddress.Address },\r\n { autoFocus: true, closeOnClickOutside: true }\r\n );\r\n }\r\n }\r\n\r\n addCustomerFormGroup() {\r\n this.setValue(\"Number\", this.model.Number);\r\n this.setValue(\"FirstName\", this.model.FirstName);\r\n this.setValue(\"LastName\", this.model.LastName);\r\n this.setValue(\"NumberTypeId\", this.model.NumberTypeId);\r\n this.setValue(\"PhoneNumber\", this.model.PhoneNumber);\r\n this.setValue(\"Address\", this.model.Address);\r\n this.setValue(\"Description\", this.model.Description);\r\n this.setValue(\"Title\", this.model.Title);\r\n this.setValue(\"CategoryId\", this.model.CategoryId);\r\n this.setValue(\"DetailLedgerId\", this.model.Party?.DetailLedgerId);\r\n this.setValue(\"SubLedgerId\", this.model.Party?.SubLedgerId);\r\n this.setValue(\"NationalCode\", this.model.Party?.NationalCode);\r\n this.setValue(\"NationalId\", this.model.Party?.NationalId);\r\n this.setValue(\"EconomicCode\", this.model.EconomicCode);\r\n this.setValue(\"RegistrationNumber\", this.model.RegistrationNumber);\r\n this.setValue(\"RegistrationDate\", this.model.RegistrationDate);\r\n this.setValue(\"PostalCode\", this.model.PostalCode);\r\n }\r\n\r\n onWrapperEnter($event: any) {\r\n if ($event.target.id !== \"Address\") {\r\n $event.preventDefault();\r\n }\r\n }\r\n\r\n private completeAddressGridValue(): void {\r\n this.model.Addresses.forEach((address) => {\r\n const selectedZone = this.zonesLookup?.find((x) => x.Id === address.ZoneId);\r\n const branchId = address.DefaultBranchId || selectedZone?.Branches?.find((f) => f.BranchId === selectedZone?.DefaultId)?.BranchId;\r\n const zoneBranchInfo = selectedZone?.Branches?.find((x) => x.BranchId === branchId);\r\n if (\r\n !(!this.isMultiBranch && address?.ShippingCost !== selectedZone?.ShippingCost) &&\r\n !(zoneBranchInfo && address.ShippingCost && address.ShippingCost !== zoneBranchInfo.ShippingCost)\r\n ) {\r\n address.ShippingCost = null;\r\n }\r\n if (address.IsDefault && this.formGroup.controls[\"DefaultBranches\"].value !== selectedZone?.DefaultId) {\r\n address.DefaultBranchId = this.formGroup.controls[\"DefaultBranches\"].value;\r\n const branchTitle = this.BranchLookUp?.find((x) => x.Id === address.DefaultBranchId)?.Title;\r\n address.DefaultBranchTitle = branchTitle;\r\n } else if (selectedZone && address.DefaultBranchId && address.DefaultBranchId !== selectedZone?.DefaultId) {\r\n const branchTitle = this.BranchLookUp?.find((x) => x.Id === address.DefaultBranchId)?.Title;\r\n address.DefaultBranchTitle = branchTitle;\r\n } else {\r\n address.DefaultBranchId = null;\r\n address.DefaultBranchTitle = null;\r\n }\r\n address.CourierShippingCost = null;\r\n });\r\n }\r\n\r\n private completePhoneNumberGridValue(): void {\r\n const { NumberTypeId } = this.formGroup.getRawValue();\r\n const defaultNumber = this.model.Numbers.find((a) => a.IsDefault);\r\n if (defaultNumber && NumberTypeId) defaultNumber.NumberTypeId = NumberTypeId;\r\n }\r\n\r\n private checkByPersonalityKindValidation() {\r\n if (this.model?.Party?.PersonalityKindCode == PersonalityKindEnum.Legalperson) {\r\n this.isNationalIdRequired = true;\r\n this.isNationalCodeRequired = false;\r\n this.hasLegalCustomer = true;\r\n this.hasPostalCode = true;\r\n this.hasEconomicCode = true;\r\n this.hasRegistrationNumber = true;\r\n this.hasRegistrationDate = true;\r\n this.NationalLabel = this.translate(\"ClientApp.FrontOffice.Parties.Customer.NationalID\");\r\n this.formGroup.controls[\"NationalId\"].addValidators(Validators.required);\r\n this.formGroup.controls[\"FirstName\"].disable();\r\n this.disabledTitle = true;\r\n } else {\r\n this.isNationalIdRequired = false;\r\n this.isNationalCodeRequired = false;\r\n this.hasLegalCustomer = false;\r\n this.hasPostalCode = false;\r\n this.hasEconomicCode = false;\r\n this.hasRegistrationNumber = false;\r\n this.hasRegistrationDate = false;\r\n this.NationalLabel = this.translate(\"ClientApp.FrontOffice.Parties.Customer.NationalCode\");\r\n this.formGroup.controls[\"NationalCode\"].clearValidators();\r\n this.formGroup.controls[\"NationalId\"].clearValidators();\r\n this.formGroup.controls[\"PostalCode\"].clearValidators();\r\n this.formGroup.controls[\"FirstName\"].enable();\r\n this.disabledTitle = false;\r\n this.haserror = false;\r\n }\r\n this.formGroup.controls[\"NationalId\"].updateValueAndValidity();\r\n this.formGroup.controls[\"NationalCode\"].updateValueAndValidity();\r\n }\r\n\r\n private setDefaultBranchId() {\r\n const defaultBranch = this.model?.Addresses?.find((f) => f.IsDefault);\r\n let defaultBranchId = defaultBranch?.DefaultBranchId\r\n ? defaultBranch?.DefaultBranchId\r\n : defaultBranch?.Zone?.Branches?.find((f) => f.IsDefault)?.BranchId;\r\n this.setValue(\"DefaultBranches\", defaultBranchId);\r\n }\r\n\r\n private setValuesForOrderOnline() {\r\n if (this.Customer) {\r\n if (this.Customer.Address) this.model.Address = this.Customer.Address;\r\n if (this.Customer.Addresses) this.model.Addresses = this.Customer.Addresses;\r\n this.model.PhoneNumber = this.Customer.PhoneNumber;\r\n this.model.LastName = this.Customer.LastName;\r\n this.setValue(\"Address\", this.Customer.Address);\r\n this.setValue(\"PhoneNumber\", this.Customer.PhoneNumber);\r\n this.setValue(\"LastName\", this.Customer.LastName);\r\n this.lookupService\r\n .getLookupbyCode(\"SALE\", \"NumberType\", NumberType.Mobile)\r\n .pipe(take(1))\r\n .subscribe((x) => {\r\n this.model.NumberTypeId = x.Id;\r\n this.setValue(\"NumberTypeId\", x.Id);\r\n });\r\n\r\n this.model.CategoryId = this.customerCategories[0]?.Id;\r\n this.setValue(\"CategoryId\", this.customerCategories[0]?.Id);\r\n }\r\n }\r\n hasCreditCustomar() {\r\n const hasAccess = this.accountService.userHasPermission(\"RestaurantSale:Customer\", \"HasCreditCustomer\");\r\n if (hasAccess) this.creditCustmer = true;\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n {{ erroremessage }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n 0 && showAddressGrid\"\r\n [columns]=\"Addresses\"\r\n [DefaultValues]=\"DefaultValues\"\r\n [noReduplicative]=\"true\"\r\n (valueChanges)=\"valueChanges($event)\"\r\n (formGroupValueChanges)=\"onAddressFormGroupValueChanges($event)\"\r\n [dataList]=\"model.Addresses\"\r\n (afterSaved)=\"afterSaveAddressRow($event)\"\r\n [showMap]=\"true\"\r\n (onRowSelected)=\"onAddressGridRowSelected($event)\">\r\n \r\n \r\n \r\n \r\n 0\"\r\n [columns]=\"Numbers\"\r\n [noReduplicative]=\"true\"\r\n [DefaultValues]=\"DefaultValues\"\r\n (formGroupValueChanges)=\"onPhoneListFormGroupValueChanges($event)\"\r\n [dataList]=\"model.Numbers\">\r\n \r\n \r\n \r\n 0\"\r\n [columns]=\"Occasions\"\r\n [noReduplicative]=\"true\"\r\n [DefaultValues]=\"DefaultValues\"\r\n [dataList]=\"model.Occasions\">\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n","import { Component, ViewChild } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { CustomerFormComponent } from \"./customer-form.component\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { ColumnBase } from \"@progress/kendo-angular-grid\";\r\nimport { GridColumnInfoDetail } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n@Component({\r\n selector: \"ngx-customer-categories-list\",\r\n template: `
\r\n \r\n \r\n
`,\r\n})\r\nexport class CustomerListComponent extends BaseListComponent {\r\n @ViewChild(\"grid\") grid: KGridComponent;\r\n unSortableFilterable: string[] = [];\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n constructor() {\r\n super();\r\n this.inputEditorform = CustomerFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Customer/GetCustomers\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Parties.Customer.Customer\");\r\n this.unSortableFilterable.push(\"NumberTypeTitle\");\r\n this.unSortableFilterable.push(\"ZoneTitle\");\r\n this.unSortableFilterable.push(\"Address\");\r\n this.unSortableFilterable.push(\"ShippingCost\");\r\n this.unSortableFilterable.push(\"CourierShippingCost\");\r\n this.unSortableFilterable.push(\"BuyCount\");\r\n this.unSortableFilterable.push(\"MinutesToDelivery\");\r\n this.unSortableFilterable.push(\"LastBuy\");\r\n this.unSortableFilterable.push(\"MaxBuy\");\r\n this.unSortableFilterable.push(\"MintBuy\");\r\n this.unSortableFilterable.push(\"MintBuy\");\r\n this.unSortableFilterable.push(\"CreatedUser\");\r\n this.unSortableFilterable.push(\"EditedUser\");\r\n }\r\n async FillData() {\r\n const info = this.accountService.authService.currentInformation();\r\n if (info.RestaurantCallCenter) {\r\n if (!this.accountService.authService.currentBranch.AccessToAllBranches) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n }\r\n }\r\n\r\n getParamsForExportExcelWithPostMethod(): Promise {\r\n return new Promise((resolve, reject) => {\r\n resolve(this.getGridInfo(this.grid.grid.columns.toArray()));\r\n });\r\n }\r\n\r\n getGridInfo(columns: ColumnBase[]): GridColumnInfoDetail[] {\r\n return columns\r\n .filter((x) => !x.hidden)\r\n .map((x) => {\r\n const info = new GridColumnInfoDetail();\r\n info.name = x[\"field\"];\r\n info.hidden = x.hidden;\r\n info.orderindex = x.orderIndex;\r\n info.title = x.title;\r\n return info;\r\n });\r\n }\r\n}\r\n","import { FilterDriversByCode } from \"./../model/personnel.model\";\r\nimport { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Personnel } from \"../model/personnel.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models/report-file-save.model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\n\r\n@Component({\r\n selector: \"ngx-filter-drivers-by-code\",\r\n templateUrl: \"./filter-drivers-by-code.component.html\",\r\n styleUrls: [\"./filter-drivers-by-code.component.scss\"],\r\n})\r\nexport class FilterDriversByCodeComponent extends BaseFormComponent {\r\n lastReportId: number = 0;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private tbService: TabularService) {\r\n super(selectorService, cd);\r\n this.setFormGroup();\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Parties.FilterDriversByCode.DriverBarcode\");\r\n super.ngOnInit();\r\n }\r\n\r\n addControl() {\r\n this.setValue(\"StartCode\", this.model.StartCode);\r\n this.setValue(\"EndCode\", this.model.EndCode);\r\n this.setValue(\"FirstName\", this.model.FirstName);\r\n this.setValue(\"LastName\", this.model.LastName);\r\n this.cd.markForCheck();\r\n }\r\n\r\n setdefault() {\r\n this.model.StartCode = null;\r\n this.model.EndCode = null;\r\n this.setValue(\"StartCode\", this.model.StartCode);\r\n this.setValue(\"EndCode\", this.model.EndCode);\r\n this.setValue(\"FirstName\", this.model.FirstName);\r\n this.setValue(\"LastName\", this.model.LastName);\r\n this.cd.markForCheck();\r\n }\r\n\r\n applyFilter() {\r\n const startCode = this.formGroup.controls[\"StartCode\"].value;\r\n const endCode = this.formGroup.controls[\"EndCode\"].value;\r\n\r\n this.httpCommonService\r\n .get(`Personnel/GetDriverPersonnel`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: Personnel[]) => {\r\n const sortedData = data.sort((a, b) => a.Number - b.Number);\r\n const filteredEmployees: Personnel[] = sortedData.filter((employee) => {\r\n const employeeNumber = Number(employee.Number);\r\n return employeeNumber >= startCode && employeeNumber <= endCode;\r\n });\r\n\r\n // const dataSourceString: string = JSON.stringify(filteredEmployees);\r\n this.apiName = \"Personnel\";\r\n const saveReportFile: SaveReportFile = {\r\n Id: ++this.lastReportId,\r\n SystemKindName: \"SALE\", //e.g:\"SALE\"\r\n FileName: \"driverBarCode.xml\", //e.g:\"SaleMethodSalesSummaryList.xml\" //فایل نیم ریپورت از خانوم خدابنده\r\n FileInfo: \"Personnel\", //e.g:null\r\n CategoryName: \"FilterDriversByCode_PersonnelList\", //e.g:\"SaleReview_SaleMethodSalesSummaryList\" \\\\\r\n ReportTitle: this.translate(\"ClientApp.FrontOffice.Parties.FilterDriversByCode.DriverBarcode\"), //e.g:\"خلاصه فروش به تفکیک نحوه فروش\"\r\n DataSourceName: \"Personnel\",\r\n };\r\n super.tabsservice = this.tbService;\r\n this.setReport(\"print\", saveReportFile, filteredEmployees);\r\n this.apiName = \"\";\r\n });\r\n }\r\n\r\n async save(): Promise {\r\n try {\r\n this.applyFilter();\r\n this.close();\r\n } catch {\r\n return;\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n","import { AfterViewInit, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { Map, Marker } from \"leaflet\";\r\nimport { Subject } from \"rxjs\";\r\n\r\ndeclare var L: {\r\n Map: new (arg0: string, arg1: any) => Map;\r\n marker: (\r\n arg0: number[],\r\n arg1: { draggable: boolean; autoPan: boolean }\r\n ) => { (): any; new (): any; addTo: { (arg0: Map): Marker; new (): any } };\r\n control: { attribution: (arg0: { position: string }) => any };\r\n DomUtil: { create: (arg0: string, arg1: string) => any };\r\n popup: (arg0: { className: string }) => { (): any; new (): any; setContent: { (arg0: string): any; new (): any } };\r\n};\r\n\r\nexport interface MapConfirmValue {\r\n lng: number;\r\n lat: number;\r\n formattedAddress: string;\r\n}\r\n\r\n@Component({\r\n selector: \"ngx-map\",\r\n templateUrl: \"./map.component.html\",\r\n styleUrls: [\"./map.component.scss\"],\r\n})\r\nexport class MapComponent extends BaseFormComponent implements AfterViewInit {\r\n marker: L.Marker;\r\n myMap: L.Map;\r\n lng: number;\r\n lat: number;\r\n formattedAddress: string;\r\n confirmValue: Subject;\r\n\r\n currentBranch = this.accountService.authService.currentBranch;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, public http: HttpClient) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n // Get the modal and close button elements\r\n this.apiName = \"\";\r\n this.areaName = \"\";\r\n this.label = \"\";\r\n this.server();\r\n this.modal();\r\n }\r\n\r\n server() {\r\n const MapApiKey = \"web.f29442ca11e04fdbb1f8d4c7d003c195\";\r\n\r\n const defaultLat = this.lat ?? this.currentBranch?.Latitude ?? 35.699512108037005;\r\n const defaultLng = this.lng ?? this.currentBranch?.Longitude ?? 51.33773794397673;\r\n\r\n this.myMap = new L.Map(\"map\", {\r\n key: MapApiKey,\r\n maptype: \"neshan\",\r\n poi: true,\r\n traffic: false,\r\n center: [defaultLat, defaultLng],\r\n zoom: 16,\r\n } as any);\r\n\r\n this.myMap.on(\"popupopen\", () => {\r\n const confirmButton = document.getElementById(\"confirmButton\");\r\n confirmButton.addEventListener(\"click\", () => {\r\n this.confirmValue?.next({\r\n formattedAddress: this.formattedAddress,\r\n lat: this.lat,\r\n lng: this.lng,\r\n });\r\n this.closeModal();\r\n });\r\n });\r\n\r\n this.marker = L.marker([defaultLat, defaultLng], {\r\n draggable: true,\r\n autoPan: true,\r\n }).addTo(this.myMap);\r\n\r\n const legend = L.control.attribution({ position: \"bottomleft\" });\r\n legend.onAdd = function () {\r\n const div = L.DomUtil.create(\"div\", \"info legend\");\r\n\r\n let labels = [\r\n \"
\",\r\n \"Logo\",\r\n \"
\",\r\n ];\r\n div.innerHTML = labels.join(\"\");\r\n return div;\r\n };\r\n legend.addTo(this.myMap);\r\n this.marker.on(\"dragend\", this.onMarkerDragEnd.bind(this));\r\n\r\n this.myMap.on(\"click\", (e: any) => {\r\n const latLng = e.latlng;\r\n this.marker.setLatLng(latLng);\r\n this.onMarkerDragEnd();\r\n });\r\n\r\n if (this.formattedAddress) {\r\n const address = document.getElementById(\"address\") as any;\r\n address.value = this.formattedAddress;\r\n }\r\n }\r\n\r\n onMarkerDragEnd() {\r\n const markerLatLng = this.marker.getLatLng();\r\n this.reverseGeocoding(markerLatLng.lat, markerLatLng.lng);\r\n }\r\n\r\n reverseGeocoding(lat: number, lng: number) {\r\n const url = `https://api.neshan.org/v5/reverse?lat=${lat}&lng=${lng}`;\r\n const ApiKey = \"service.1d2a513bc1c148618f821b3ae2df7de1\";\r\n let headers = new HttpHeaders({ \"Content-Type\": \"application/json\", \"Api-Key\": ApiKey });\r\n this.http\r\n .get(url, { headers })\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: any) => {\r\n const address = document.getElementById(\"address\") as any;\r\n address.value = data.formatted_address;\r\n this.formattedAddress = address.value;\r\n\r\n this.lng = lng;\r\n this.lat = lat;\r\n\r\n const popupContent =\r\n \"
\" +\r\n address.value +\r\n \"

Lat: \" +\r\n lat +\r\n \"
Lng: \" +\r\n lng +\r\n \"

\" +\r\n \"\";\r\n const popup = L.popup({ className: \"custom-popup\" }).setContent(popupContent);\r\n this.marker.bindPopup(popup).openPopup();\r\n },\r\n (err) => {\r\n console.log(\"error = \" + err);\r\n }\r\n );\r\n }\r\n\r\n geocoding() {\r\n const address = (document.getElementById(\"address\") as any)?.value;\r\n const url = `https://api.neshan.org/v4/geocoding?address=${address}`;\r\n const ApiKey = \"service.1d2a513bc1c148618f821b3ae2df7de1\";\r\n let headers = { \"Api-Key\": ApiKey };\r\n\r\n this.http\r\n .get(url, { headers })\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: any) => {\r\n let status = data.status;\r\n if (status == \"NO_RESULT\") this.sts.showToast(\"warning\", \"\", this.translate(\"ClientApp.FrontOffice.Parties.Map.DesiredAddressNotFound\"));\r\n\r\n if (status == \"OK\") {\r\n const lat = data.location.y;\r\n const lng = data.location.x;\r\n this.lng = lng;\r\n this.lat = lat;\r\n this.formattedAddress = address;\r\n const popupContent =\r\n \"
\" +\r\n address +\r\n \"

Lat: \" +\r\n lat +\r\n \"
Lng: \" +\r\n lng +\r\n \"

\" +\r\n \"\";\r\n const popup = L.popup({ className: \"custom-popup\" }).setContent(popupContent);\r\n this.marker.setLatLng([lat, lng]);\r\n this.marker.bindPopup(popup).openPopup();\r\n this.myMap.flyTo([lat, lng], 15);\r\n }\r\n },\r\n (err) => {\r\n console.log(\"error = \" + err);\r\n this.marker.remove();\r\n }\r\n );\r\n }\r\n\r\n onAddressKeyPress($event: any) {\r\n if ($event.keyCode == 13 || $event.which == 13) this.geocoding();\r\n }\r\n\r\n private modal() {\r\n const modal = document.getElementById(\"myModal\");\r\n const closeButton = document.querySelector(\".close\");\r\n const openModalButton = document.getElementById(\"openModalBtn\");\r\n function openModal() {\r\n modal.style.display = \"flex\";\r\n }\r\n function closeModal() {\r\n modal.style.display = \"none\";\r\n }\r\n openModalButton.addEventListener(\"click\", openModal.bind(this));\r\n closeButton.addEventListener(\"click\", closeModal.bind(this));\r\n closeButton.addEventListener(\"click\", closeModal.bind(this));\r\n window.addEventListener(\"click\", function (event) {\r\n if (event.target === modal) closeModal();\r\n });\r\n modal.addEventListener(\"click\", function (event) {\r\n if (event.target === modal) closeModal();\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n\r\n \r\n {{ \"ClientApp.FrontOffice.Parties.Map.Guide\" | translate }}\r\n
\r\n\r\n\r\n\r\n
\r\n
\r\n ×\r\n \r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Parties.Map.AccuratePointsCurrentVersion\" | translate }} geocoding\r\n {{ \"ClientApp.FrontOffice.Parties.Map.ObserveFollowingPointsPossible\" | translate }} :\r\n \r\n
\r\n
    \r\n
  • \r\n {{ \"ClientApp.FrontOffice.Parties.Map.PossibleOrderAddressComponentsFollows\" | translate }}:\r\n
    \r\n {{ \"ClientApp.FrontOffice.Parties.Map.Province\" | translate }} + {{ \"ClientApp.FrontOffice.Parties.Map.City\" | translate }} /\r\n {{ \"ClientApp.FrontOffice.Parties.Map.Village\" | translate }} + {{ \"ClientApp.FrontOffice.Parties.Map.Ground\" | translate }} +\r\n {{ \"ClientApp.FrontOffice.Parties.Map.Street\" | translate }} + {{ \"ClientApp.FrontOffice.Parties.Map.Alley\" | translate }} +\r\n {{ \"ClientApp.FrontOffice.Parties.Map.Plaque\" | translate }}\r\n
    \r\n {{ \"ClientApp.FrontOffice.Parties.Map.Tip\" | translate }}:\r\n {{ \"ClientApp.FrontOffice.Parties.Map.LicensePlateNumberCities\" | translate }}\r\n
  • \r\n
  • \r\n {{ \"ClientApp.FrontOffice.Parties.Map.BeDelimitAddress\" | translate }} space\r\n {{ \"ClientApp.FrontOffice.Parties.Map.BeSeparated\" | translate }}\r\n
    \r\n {{ \"ClientApp.FrontOffice.Parties.Map.Example\" | translate }}:\r\n {{ \"ClientApp.FrontOffice.Parties.Map.Zandvakili\" | translate }}\r\n {{ \"ClientApp.FrontOffice.Parties.Map.BetterWithSeparatorForm\" | translate }}\r\n {{ \"ClientApp.FrontOffice.Parties.Map.ZandVakili\" | translate }}\r\n {{ \"ClientApp.FrontOffice.Parties.Map.BeSent\" | translate }}\r\n
  • \r\n
  • \r\n {{ \"ClientApp.FrontOffice.Parties.Map.SpecificationsRelated\" | translate }} poi\r\n {{ \"ClientApp.FrontOffice.Parties.Map.NamesOfRemovedAddressPossible\" | translate }}\r\n
    \r\n {{ \"ClientApp.FrontOffice.Parties.Map.Example\" | translate }}: {{ \"ClientApp.FrontOffice.Parties.Map.AddressType\" | translate }}\r\n {{ \"ClientApp.FrontOffice.Parties.Map.KameliaBuilding\" | translate }}\r\n
    \r\n {{ \"ClientApp.FrontOffice.Parties.Map.ChangeAddressType\" | translate }}\r\n
  • \r\n
  • {{ \"ClientApp.FrontOffice.Parties.Map.DestinationVillageAddress\" | translate }}
  • \r\n
  • {{ \"ClientApp.FrontOffice.Parties.Map.DetermineExactCoordinatesAddress\" | translate }}
  • \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { Lookup } from \"../../../../../projects/sepidz-web-framework/src/lib/models\";\r\nimport { Party } from \"./party.model\";\r\nimport { Zone, ZoneBranch } from \"./zone.model\";\r\nimport { CustomerCategory } from \"./customer-categories.model\";\r\n\r\nexport class Customer extends EntityBase {\r\n public PartyId: number;\r\n public FirstName: string;\r\n public LastName: string;\r\n public DisplayName: string;\r\n public NationalId: string;\r\n public NationalCode: string;\r\n public Description: string;\r\n public Number?: number;\r\n public Title: string;\r\n public IsActive: boolean;\r\n public ShamsiVoucherDate: string;\r\n public DeactivationReason: string;\r\n public GenderId: number;\r\n public Party: Party;\r\n public GenderTitle: string;\r\n public HasCredit: boolean;\r\n public CreditLimit?: number;\r\n public CreditControlTypeId?: number;\r\n public CreditControlTypeCode?: number;\r\n public CreditControlTypeTitle: string;\r\n public AutomaticDebtor: boolean;\r\n public CategoryId: number;\r\n public PercentDiscount?: number;\r\n public CategoryTitle: string;\r\n public DebitRate: number;\r\n public CountBuy: number;\r\n public MaximumBuy: number;\r\n public MinimumBuy: number;\r\n public TotalBuy: number;\r\n public LastBuy: number;\r\n public LastBuyDate?: string;\r\n public NumberTypeId?: number;\r\n public NumberTypeTitle: string;\r\n public PhoneNumber: string;\r\n public ZoneId?: number;\r\n public ZoneTitle: string;\r\n public Address: string;\r\n public ShippingCost?: number;\r\n public CourierShippingCost?: number;\r\n public BuyCount?: number;\r\n public MinutesToDelivery: number;\r\n public MaxBuy: number;\r\n public MintBuy: number;\r\n public DefaultBranches: number;\r\n public FailurePaymentLink: boolean;\r\n public EconomicCode?: number;\r\n public PostalCode?: number;\r\n public RegistrationNumber: string;\r\n public RegistrationDate: Date;\r\n public Addresses: CustomerAddress[];\r\n public Numbers: CustomerContactNumber[];\r\n public Occasions: CustomerOccasion[];\r\n public SelectedAddressId: number;\r\n public SelectedPhoneId: number;\r\n public DetailLedgerId?: number;\r\n public DetailLedgerCode?: number;\r\n public CreatedUserTitle: string;\r\n public ModifiedUserTitle: string;\r\n public RemainedOrganizationDiscount: number;\r\n public Category: CustomerCategory;\r\n constructor() {\r\n super();\r\n this.EconomicCode = 0;\r\n this.PostalCode = 0;\r\n this.RegistrationDate = new Date();\r\n this.Party = new Party();\r\n this.RemainedOrganizationDiscount = null;\r\n }\r\n}\r\n\r\nexport class CustomerGridViewModel {\r\n public Id: number;\r\n public Description: string;\r\n public Number?: number;\r\n public PhoneNumber: string;\r\n public Address: string;\r\n public ShippingCost?: number;\r\n public SelectedAddressId: number;\r\n public SelectedPhoneId: number;\r\n public FirstName: string;\r\n public LastName: string;\r\n public Party: Party;\r\n\r\n constructor() {\r\n this.Id = null;\r\n this.Address = null;\r\n this.Description = null;\r\n this.Number = null;\r\n this.PhoneNumber = null;\r\n this.ShippingCost = null;\r\n this.FirstName = null;\r\n this.LastName = null;\r\n }\r\n}\r\nexport class CustomerDetailInfoViewModel {\r\n public Id: number;\r\n public DisplayName: string;\r\n public Number?: number;\r\n public HasCredit: boolean;\r\n public CreditLimit?: number;\r\n public AutomaticDebtor: boolean;\r\n public PersonalityKindCode?: number;\r\n public GenderTitle: string;\r\n public CreditControlTypeCode?: number;\r\n public DebitRate: number;\r\n public LastBuy: number;\r\n public CountBuy: number;\r\n public MaximumBuy: number;\r\n public MinimumBuy: number;\r\n public TotalBuy: number;\r\n public Addresses: CustomerAddress[];\r\n public Numbers: CustomerContactNumber[];\r\n public Occasions: CustomerOccasion[];\r\n public NumberTypeId?: number;\r\n public PhoneNumber: string;\r\n public Address: string;\r\n public ShippingCost?: number;\r\n public CourierShippingCost?: number;\r\n public Credit?: number;\r\n public LastBuyDate?: string;\r\n public SelectedAddressId?: number;\r\n public SelectedPhoneId: number;\r\n public MinutesToDelivery?: number;\r\n public IsActive: boolean;\r\n public CategoryId: number;\r\n public DeactivationReason: string;\r\n public RemainedOrganizationDiscount?: number;\r\n public OrganizationalDiscountValue?: number;\r\n public FailurePaymentLink: boolean;\r\n public Category: CustomerCategory;\r\n constructor() {\r\n this.Addresses = [];\r\n }\r\n}\r\n\r\nexport class CustomerAddress extends EntityBase {\r\n public CustomerId: number;\r\n public ZoneId: number;\r\n public ShippingCost?: number;\r\n public CourierShippingCost?: number;\r\n public IsDefault: boolean;\r\n public Address: string;\r\n public Zone: Zone;\r\n public Order: number;\r\n public DefaultBranchId: number;\r\n public DefaultBranchTitle: string;\r\n public Latitude: number;\r\n public Longitude: number;\r\n}\r\nexport class CustomerOccasion extends EntityBase {\r\n public BranchId: number;\r\n public CustomerId: number;\r\n public Day: number;\r\n public Month: number;\r\n public TemplateId: number;\r\n}\r\nexport class MaxCodeViewModel {\r\n public HaspreFix: Boolean;\r\n public MaxCode: number;\r\n}\r\nexport class CustomerContactNumber extends EntityBase {\r\n public Number: string;\r\n public NumberTypeId: number;\r\n public NumberTypeTitle: string;\r\n public NumberTypeCode?: number;\r\n public IsDefault: boolean;\r\n public CustomerId: number;\r\n public Order: number;\r\n}\r\nexport class ZoneLookup extends Lookup {\r\n public CustomerId: number;\r\n public ZoneId: number;\r\n public ShippingCost?: number;\r\n public CourierShippingCost?: number;\r\n public IsDefault: boolean;\r\n public Address: string;\r\n public Zone: Zone;\r\n public Order: number;\r\n public DefaultId: number;\r\n public DefaultTitle: number;\r\n public Branches: ZoneBranch[];\r\n}\r\nexport enum PersonalityKindEnum {\r\n Realperson = 1,\r\n Legalperson = 2,\r\n}\r\nexport enum GenderEnum {\r\n Male = 1,\r\n Female = 2,\r\n}\r\n\r\nexport enum CreditControlType {\r\n Warning = 1,\r\n Inhibit = 2,\r\n}\r\n","export class DriverAssignDeliverd{\r\n InvoiceIds: number[];\r\n DriverId: number;\r\n}","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n\r\nexport class Party extends EntityBase {\r\n public Number: number;\r\n public FirstName: string;\r\n public LastName: string;\r\n public DisplayName: string;\r\n public Description: string;\r\n public PersonalityKindId?: number;\r\n public PersonalityKindTitle: string;\r\n public PersonalityKindCode?: number;\r\n public NationalId: string;\r\n public NationalCode: string;\r\n public DetailLedgerId?: number;\r\n public SubLedgerId?: number;\r\n}\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { DriverAssignment } from \"../../order/model/invoice.model\";\r\nimport { Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Party } from \"./party.model\";\r\n\r\nexport class Personnel extends EntityBase {\r\n public PartyId: number;\r\n public IsActive?: boolean;\r\n public FirstName: string;\r\n public LastName: string;\r\n public DisplayName: string;\r\n public Description: string;\r\n public Number?: number;\r\n public BailTypeId: number;\r\n public BailTypeTitle: string;\r\n public BailPrice?: number;\r\n public Introducer: string;\r\n public TerminalNumber: string;\r\n public HealthNumber: string;\r\n public HealthExpirationDate?: Date;\r\n public Address: string;\r\n public RowVersion: any;\r\n public PhoneNumber: string;\r\n public MobileNumber: string;\r\n public UserId?: number;\r\n public UserDisplayName: string;\r\n public LicenseNumber: string;\r\n public LicenseExpirationDate?: Date;\r\n public InsuranceNumber: string;\r\n public InsuranceExpirationDate?: Date;\r\n public HasCredit: boolean;\r\n public CreditLimit?: number;\r\n public CreditControlTypeId?: number;\r\n public CreditControlTypeTitle: string;\r\n public CreditControlTypeCode?: number;\r\n public Order: number;\r\n public DriverAssignmentInvoicesCount: number;\r\n public AssignmentInvoicesTotal: number;\r\n public SelectedInvoicesTotal: number;\r\n public DriverAssignmentIds: number[];\r\n public DriverAssignments: DriverAssignment[];\r\n public Branches: PersonnelBranch[];\r\n public CurrentBranch: PersonnelBranch;\r\n public Documents: PersonnelDocuments[];\r\n public Roles: PersonnelRoles[];\r\n public RolesTitle: string;\r\n public selected: boolean;\r\n public FilterDate: string;\r\n public DefaultSalonId?: number;\r\n public DetailLedgerId?: number;\r\n public SubLedgerId?: number;\r\n public DefaultSalonsTitle: string;\r\n public CanUseOtherTable: boolean;\r\n public VehiclePlateNumber: string;\r\n public VehicleVinCode: string;\r\n public NationalCode: string;\r\n public VehicleColor: string;\r\n public VehicleCapacity: string;\r\n public VehicleEngineVolume: string;\r\n public VehicleEngineCode: string;\r\n public VehicleChassisCode: string;\r\n public BailPriceTypeCode?: number;\r\n public Party: Party;\r\n public IsFleet?: boolean;\r\n public Image: string;\r\n public Freeze: boolean;\r\n}\r\n\r\nexport class PersonnelBranch extends EntityBase {\r\n public Selected: boolean;\r\n public BranchId: number;\r\n public IsActive: boolean;\r\n public BranchTitle: string;\r\n public PersonnelId: number;\r\n public VehicleId: number;\r\n public FleetStatus: string;\r\n public DriverAttendanceStatusId?: number;\r\n public DriverAttendanceStatusTitle: string;\r\n public DriverAttendanceStatusCode?: number;\r\n public DriverStatusId?: number;\r\n public DriverStatusTitle: string;\r\n public DriverStatusCode?: number;\r\n}\r\n\r\nexport class PersonnelDocuments extends EntityBase {\r\n public PersonnelId: number;\r\n public DocumentsId: number;\r\n public DocumentsTitle?: string;\r\n}\r\nexport class PersonnelRoles extends EntityBase {\r\n public PersonnelId: number;\r\n public RolesId: number;\r\n public RolesTitle?: string;\r\n public PersonnelRole: Lookup;\r\n}\r\n\r\nexport class FilterDriversByCode extends Personnel {\r\n public StartCode: number;\r\n public EndCode: number;\r\n}\r\n\r\nexport enum PersonnelRolesEnum {\r\n Waiter = \"مهماندار\",\r\n Cashier = \"صندوقدار\",\r\n Driver = \"پیک\",\r\n Cooks = \"آشپز\",\r\n CooksHelper = \"کمک آشپز\",\r\n Employee = \"سایر\",\r\n}\r\nexport enum PersonnelRolesCodeEnum {\r\n Waiter = 1,\r\n Cashier = 2,\r\n Driver = 3,\r\n Cooks = 4,\r\n CooksHelper = 5,\r\n Employee = 1000,\r\n}\r\nexport enum DriverAttendanceStatus {\r\n Present = 1,\r\n Absent = 2,\r\n}\r\n\r\nexport enum DriverStatus {\r\n In = 1,\r\n Out = 2,\r\n Present = 3,\r\n Absent = 4,\r\n Active = 5,\r\n Deactive = 6,\r\n}\r\n\r\nexport enum DriverStatusShow {\r\n DriverIn = 0,\r\n DriverOut = 1,\r\n DriverReadyToWork = 2,\r\n All = 3,\r\n}\r\n\r\nexport enum PersonnelState {\r\n In = 1,\r\n Out = 2,\r\n Present = 3,\r\n Absent = 4,\r\n Active = 5,\r\n Deactive = 6,\r\n}\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\nimport { Zone, ZoneBranch } from \"./zone.model\";\r\nimport { Branch } from \"projects/sepidz-web-framework/src/lib/models\";\r\n\r\nexport class ZonePriceAnnouncement extends EntityBase {\r\n public BranchIds?: number[];\r\n public IncreaseRateOfAmount?: number;\r\n public AmountTypeId?: number;\r\n public AmountTypeTitle?: string;\r\n public AmountTypeCode?: number;\r\n public RoundingAmount?: number;\r\n public RoundingTypeId?: number;\r\n public RoundingTypeTitle: string;\r\n public RoundingTypeCode?: number;\r\n public ShamsiDateField: string;\r\n public Zones: ZonePriceAnnouncementForm[];\r\n}\r\n\r\nexport class ZonePriceAnnouncementForm extends EntityBase {\r\n public ZonePriceAnnouncementId?: number;\r\n public ZoneTitle: string;\r\n public ZoneBranchId: number;\r\n public ZoneId: number;\r\n public BranchId?: number;\r\n public BranchTitle?: string;\r\n public ZoneBranch :ZoneBranch;\r\n public OldAmount?: number;\r\n public OldAmountDriver?: number;\r\n public NewAmount?: number;\r\n public NewAmountDriver?: number;\r\n public IncreaseRateOfAmount?: number;\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nimport { ZoneFormComponent } from './zone/zone-form.component';\r\nimport { ZoneListComponent } from './zone/zone-list.component';\r\nimport { CustomerCategoryFormComponent } from './customer-category/customer-category-form.component';\r\nimport { CustomerCategoryListComponent } from './customer-category/customer-category-list.component';\r\nimport { CustomerFormComponent } from './customer/customer-form.component';\r\nimport { CustomerListComponent } from './customer/customer-list.component';\r\nimport { PersonnelFormComponent } from './personnel/personnel-form.component';\r\nimport { PersonnelListComponent } from './personnel/personnel-list.component';\r\nimport { ZonePriceAnnouncementFormComponent } from './zone-price-announcement/zone-price-announcement-form/zone-price-announcement-form.component';\r\nimport { ZonePriceAnnouncementListComponent } from './zone-price-announcement/zone-price-announcement-list/zone-price-announcement-list.component';\r\nimport { FilterDriversByCodeComponent } from './filter-drivers-by-code/filter-drivers-by-code.component';\r\nimport { MapComponent } from './map/map.component';\r\n\r\n const components =\r\n [\r\n ZoneFormComponent,\r\n ZoneListComponent, \r\n CustomerCategoryFormComponent,\r\n CustomerCategoryListComponent,\r\n CustomerFormComponent,\r\n CustomerListComponent,\r\n PersonnelFormComponent,\r\n PersonnelListComponent,\r\n ZonePriceAnnouncementFormComponent,\r\n ZonePriceAnnouncementListComponent,\r\n FilterDriversByCodeComponent,\r\n MapComponent,\r\n ]\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class PartiesModule { }\r\n","import { Party } from \"./../model/party.model\";\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { Validators } from \"@angular/forms\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Branch, form_control, Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { LookupService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { Personnel, PersonnelBranch, PersonnelDocuments, PersonnelRoles, PersonnelRolesEnum } from \"../model/personnel.model\";\r\nimport { MaxCodeViewModel } from \"../model/customer.model\";\r\n\r\n@Component({\r\n selector: \"ngx-personnel\",\r\n templateUrl: \"./personnel-form.component.html\",\r\n styleUrls: [\"./personnel-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PersonnelFormComponent extends BaseFormComponent {\r\n haserror: boolean = false;\r\n isOk4Load: boolean = false;\r\n erroremessage: string;\r\n roles: number[] = [];\r\n documents: number[] = [];\r\n rolesIsLodes: boolean = false;\r\n documentsIsLodes: boolean = false;\r\n isSelectedDriverRoles: boolean = false;\r\n isSelectedWaiterRoles: boolean = false;\r\n selectedCashier: boolean = false;\r\n hasCredit: boolean = false;\r\n setPattern: boolean = false;\r\n DefaultValues: Dictionary = [];\r\n isAccessToAllBranches = true;\r\n UserList: any;\r\n Branches: form_control[];\r\n deactivateSave: boolean = false;\r\n showBranch: boolean = false;\r\n disabledBailPrice: boolean = false;\r\n public PersonnelRolesEnum: typeof PersonnelRolesEnum = PersonnelRolesEnum;\r\n\r\n constructor(private lookupservice: LookupService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.FillData();\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"Personnel\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Parties.Personnel.Staff\");\r\n super.ngOnInit();\r\n this.DefaultValues[\"PersonnelId\"] = 0;\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.FillData();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.roles = undefined;\r\n this.documents = undefined;\r\n this.DefaultValues = undefined;\r\n this.UserList = undefined;\r\n this.Branches = undefined;\r\n }\r\n\r\n async FillData() {\r\n this.httpCommonService\r\n .getList(\"Personnel/ReadUsers/null\")\r\n .pipe(take(1))\r\n .subscribe(\r\n async (data: any) => {\r\n if (data) this.UserList = data.filter((x) => x.Title !== this.translate(\"ClientApp.FrontOffice.Parties.Personnel.SepidzUser\"));\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n const currentInformation = this.accountService.authService.currentInformation();\r\n if (currentInformation.BranchingLightEnabled || currentInformation.BranchingAdvancedEnabled) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch/Personnel\")\r\n .pipe(take(1))\r\n .subscribe(\r\n (hbc: CheckBrachAccessModel) => {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Parties.Personnel.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.Personnel.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n } else if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Parties.Personnel.HasCallCenterCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.Personnel.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n\r\n setdefault() {\r\n if (!this.model.Branches) this.model.Branches = [];\r\n if (!this.model.Documents) this.model.Documents = [];\r\n if (!this.model.Roles) this.model.Roles = [];\r\n\r\n //اگر در مد ایجاد بودیم\r\n if (this.model && !(this.model.Id > 0)) this.model.IsActive = true;\r\n\r\n this.model.Roles.forEach((x) => {\r\n if (!this.roles.some((r) => r === x.RolesId)) this.roles.push(x.RolesId);\r\n });\r\n this.model.Documents.forEach((x) => {\r\n if (!this.documents.some((d) => d === x.DocumentsId)) this.documents.push(x.DocumentsId);\r\n });\r\n this.rolesIsLodes = true;\r\n this.documentsIsLodes = true;\r\n\r\n if (!this.accountService.authService.currentBranch) setTimeout(() => this.populateBranch(), 300);\r\n else this.populateBranch();\r\n\r\n //اگر در مد ویرایش بودیم\r\n if (!this.isNewRow && this.model.PartyId) {\r\n if (this.formGroup?.controls[\"PartyId\"]) this.formGroup.controls[\"PartyId\"].disable();\r\n if (this.formGroup?.controls[\"Number\"]) this.formGroup.controls[\"Number\"].disable();\r\n if (this.model.Roles.length > 0 && this.model.Roles.find((x) => x.RolesTitle?.includes(PersonnelRolesEnum.Driver))) {\r\n this.isSelectedDriverRoles = true;\r\n this.hasCredit = this.model.HasCredit;\r\n }\r\n if (\r\n this.model.Roles.length > 0 &&\r\n (this.model.Roles.find((x) => x.RolesTitle?.includes(PersonnelRolesEnum.Waiter)) ||\r\n this.model.Roles.find((x) => x.RolesTitle?.includes(this.translate(\"ClientApp.FrontOffice.Parties.Personnel.Garsoon\"))))\r\n ) {\r\n this.isSelectedWaiterRoles = true;\r\n }\r\n if (this.model.BailTypeId) this.formGroup.controls[\"BailPrice\"].enable();\r\n }\r\n if (this.model.UserId) {\r\n this.httpCommonService\r\n .getList(`Personnel/ReadUsers/${this.model.UserId}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: any) => {\r\n if (data) {\r\n const findItem = data.find((f) => f.Id === this.model.UserId);\r\n this.UserList.push(findItem);\r\n const CopyList = this.UserList.sort((a, b) => a.Id - b.Id);\r\n this.UserList = null;\r\n this.UserList = Object.assign([], CopyList);\r\n this.setValue(\"UserId\", this.model.UserId);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n if (this.model?.RolesTitle?.includes(this.translate(\"ClientApp.FrontOffice.Parties.Personnel.Cashier\"))) this.selectedCashier = true;\r\n setTimeout(() => {\r\n document.getElementById(\"FirstName\")?.focus();\r\n const input: HTMLInputElement = document.getElementById(\"FirstName\") as HTMLInputElement;\r\n if (input) input.focus();\r\n }, 2000);\r\n this.cd.markForCheck();\r\n }\r\n\r\n addControl() {\r\n this.isOk4Load = false;\r\n if (this.formGroup) {\r\n this.setValue(\"RolesId\", this.roles);\r\n this.formGroup.controls[\"RolesId\"].setValidators([Validators.required]);\r\n this.setValue(\"Documents\", this.documents);\r\n this.setValue(\"UserId\", this.model.UserId);\r\n this.setValue(\"UserIdEditMode\", this.model.UserId);\r\n this.setValue(\"PartyId\", this.model.PartyId);\r\n this.setValue(\"DisplayName\", this.model.DisplayName);\r\n this.setValue(\"PartyIdEditMode\", this.model.PartyId);\r\n this.setValue(\"CreditControlTypeId\", this.model.CreditControlTypeId);\r\n this.setValue(\"CreditLimit\", this.model.CreditLimit);\r\n this.setValue(\"DetailLedgerId\", this.model.DetailLedgerId);\r\n this.setValue(\"SubLedgerId\", this.model.SubLedgerId);\r\n this.isOk4Load = (this.model && this.model.PartyId && !this.isNewRow) || this.isNewRow;\r\n } else this.cd.markForCheck();\r\n if (this.model) this.checkByBailTypeId();\r\n this.cd.markForCheck();\r\n }\r\n\r\n ChangeRoles(event: Lookup[]) {\r\n let isFoundDriverRoles = false;\r\n let isFoundCashier = false;\r\n this.isSelectedWaiterRoles = false;\r\n if ((this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Personnel.SelectingLeastOneRoleRequired\")))\r\n this.erroremessage = undefined;\r\n event.forEach((x) => {\r\n if (x.Title === this.translate(\"ClientApp.FrontOffice.Parties.Personnel.Courier\")) {\r\n isFoundDriverRoles = true;\r\n this.isSelectedDriverRoles = true;\r\n // if (this.model) {\r\n // this.lookupservice\r\n // .getLookupbyCode(\"SALE\", \"DriverStatus\")\r\n // .pipe(takeUntil(this.ngUnsubscribe))\r\n // .subscribe((statusLookup) => {\r\n // this.model.CurrentBranch.DriverStatusId = statusLookup.Id;\r\n // this.formGroup.controls[\"DriverStatusId\"].setValue(statusLookup.Id);\r\n // });\r\n // this.lookupservice\r\n // .getLookupbyCode(\"SALE\", \"DriverAttendanceStatus\", DriverAttendanceStatus.Present)\r\n // .pipe(takeUntil(this.ngUnsubscribe))\r\n // .subscribe((statusLookup) => {\r\n // this.model.CurrentBranch.DriverAttendanceStatusId = statusLookup.Id;\r\n // this.formGroup.controls[\"DriverAttendanceStatusId\"].setValue(statusLookup.Id);\r\n // });\r\n // }\r\n } else if (x.Title === this.translate(\"ClientApp.FrontOffice.Parties.Personnel.Cashier\")) {\r\n isFoundCashier = true;\r\n this.selectedCashier = true;\r\n } else if (x.Title === PersonnelRolesEnum.Waiter || x.Title === this.translate(\"ClientApp.FrontOffice.Parties.Personnel.Garsoon\")) {\r\n this.isSelectedWaiterRoles = true;\r\n }\r\n });\r\n if (!isFoundDriverRoles) this.isSelectedDriverRoles = false;\r\n\r\n if (!isFoundCashier) this.selectedCashier = false;\r\n\r\n this.isValid();\r\n }\r\n\r\n setpatternKey() {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"MobileNumber\") x.patternKey = \"^[0-0][9-9]\\\\d{9}\";\r\n if (x.name === \"PhoneNumber\") x.patternKey = \"^[1-9]\\\\d{3,7}\";\r\n });\r\n }\r\n\r\n populateBranch() {\r\n this.httpCommonService\r\n .getList(\"Branch\")\r\n .pipe(take(1))\r\n .subscribe(async (data: Branch[]) => {\r\n let BranchList: Branch[] = data;\r\n if (!this.model) this.model = {};\r\n if (!this.model.Branches) this.model.Branches = [];\r\n BranchList?.forEach((br: Branch) => {\r\n const listBranch = this.model.Branches.find((x) => x.BranchId === br.Id);\r\n if (!listBranch) {\r\n let entity = {};\r\n entity.BranchId = br.Id;\r\n entity.BranchTitle = br.Title;\r\n entity.IsActive = true;\r\n entity.State = RowState.New;\r\n\r\n //اگر در مد ایجاد بودیم\r\n if (!this.model || !(this.model.Id > 0)) entity.Selected = true;\r\n else entity.Selected = false;\r\n\r\n this.model.Branches.push(entity);\r\n this.cd.markForCheck();\r\n } else listBranch.Selected = true;\r\n });\r\n\r\n this.showBranch = true;\r\n });\r\n }\r\n\r\n PartyAccountChange(event) {\r\n if (!event) {\r\n this.formGroup.controls[\"FirstName\"].enable();\r\n this.formGroup.controls[\"LastName\"].enable();\r\n this.formGroup.controls[\"Number\"].enable();\r\n this.formGroup.controls[\"PhoneNumber\"].enable();\r\n }\r\n if (event && event.Number && event.LastName) {\r\n if (!event.FirstName) this.formGroup.controls[\"FirstName\"].enable();\r\n this.model.Number = event.Number;\r\n this.formGroup.controls[\"Number\"].setValue(event.Number);\r\n this.model.FirstName = event.FirstName;\r\n this.formGroup.controls[\"FirstName\"].setValue(event.FirstName);\r\n this.model.LastName = event.LastName;\r\n this.formGroup.controls[\"LastName\"].setValue(event.LastName);\r\n this.model.Description = event.Description;\r\n this.formGroup.controls[\"Description\"].setValue(event.Description);\r\n this.model.MobileNumber = event.MobileNumber;\r\n this.formGroup.controls[\"MobileNumber\"].setValue(event.MobileNumber);\r\n this.model.PhoneNumber = event.PhoneNumber;\r\n this.formGroup.controls[\"PhoneNumber\"].setValue(event.PhoneNumber);\r\n this.model.Address = event.Address;\r\n this.formGroup.controls[\"Address\"].setValue(event.Address);\r\n this.model.DetailLedgerId = event.Party.DetailLedgerId;\r\n this.setValue(\"DetailLedgerId\", this.model.DetailLedgerId);\r\n if (this.formGroup.controls[\"FirstName\"].value) this.formGroup.controls[\"FirstName\"].disable();\r\n this.formGroup.controls[\"Number\"].disable();\r\n this.formGroup.controls[\"LastName\"].disable();\r\n }\r\n setTimeout(() => {\r\n const input: HTMLInputElement = document.getElementById(\"Description\") as HTMLInputElement;\r\n input.focus();\r\n }, 100);\r\n this.cd.markForCheck();\r\n }\r\n\r\n valueChange() {\r\n if (this.formGroup && this.formGroup.controls[\"MobileNumber\"] && this.formGroup.controls[\"PhoneNumber\"] && !this.setPattern) {\r\n this.formGroup.controls[\"MobileNumber\"].clearValidators();\r\n this.formGroup.controls[\"MobileNumber\"].setErrors(null);\r\n this.formGroup.controls[\"MobileNumber\"].setValidators([Validators.required, Validators.pattern(\"^[0-0][9-9]\\\\d{9}\")]);\r\n this.formGroup.controls[\"PhoneNumber\"].clearValidators();\r\n this.formGroup.controls[\"PhoneNumber\"].setErrors(null);\r\n this.formGroup.controls[\"PhoneNumber\"].setValidators([Validators.pattern(\"^[1-9]\\\\d{3,7}\")]);\r\n this.setPattern = true;\r\n }\r\n }\r\n\r\n openImageUpload(fileToUpload: any): boolean {\r\n if (fileToUpload.target.files && fileToUpload.target.files[0]) {\r\n const max_size = 300000;\r\n const max_height = 512;\r\n const max_width = 512;\r\n\r\n if (fileToUpload.target.files[0].size > max_size) {\r\n let error =\r\n this.translate(\"ClientApp.FrontOffice.Parties.Personnel.UploadedImageSizeLessThan\") +\r\n max_size / 1000 +\r\n this.translate(\"ClientApp.FrontOffice.Parties.Personnel.BeKb\");\r\n this.sts.showDialog(error, this.translate(\"ClientApp.FrontOffice.Parties.Personnel.Error\"));\r\n return false;\r\n }\r\n const formData = new FormData();\r\n formData.append(\"photo\", fileToUpload.target.files[0]);\r\n formData.append(\"PersonnelId\", this.model.Id.toString());\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n let image = new Image();\r\n image.src = e.target.result;\r\n image.onload = (rs: any): any => {\r\n const img_height = rs.currentTarget[\"height\"];\r\n const img_width = rs.currentTarget[\"width\"];\r\n if (img_height > max_height || img_width > max_width) {\r\n let error = this.translate(\"ClientApp.FrontOffice.Parties.Personnel.ImageSizeNotAllowed\");\r\n this.sts.showDialog(error, this.translate(\"ClientApp.FrontOffice.Parties.Personnel.Error\"));\r\n return false;\r\n } else {\r\n this.httpCommonService\r\n .upload(\"Personnel/UploadPhoto\", formData)\r\n .pipe(take(1))\r\n .subscribe({\r\n next: (response: any) => {\r\n this.model.Image = response.imagePath;\r\n this.formGroup.controls[\"Image\"].setValue(response.imagePath);\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Parties.Personnel.ImageUploadedSuccessfullySaveChanges\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.Personnel.Message\")\r\n );\r\n },\r\n error: (err) =>\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Parties.Personnel.ErrorLoadingImage\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.Personnel.Error\")\r\n ),\r\n });\r\n }\r\n };\r\n };\r\n reader.readAsDataURL(fileToUpload.target.files[0]);\r\n }\r\n }\r\n\r\n beforupdate() {\r\n this.model.Id = this.formGroup.controls[\"Id\"].value;\r\n this.roles = this.formGroup.controls[\"RolesId\"].value;\r\n this.documents = this.formGroup.controls[\"Documents\"].value;\r\n\r\n this.model.Branches = this.model.Branches.filter((x) => x.Selected);\r\n\r\n if (this.model.Branches && this.model.Branches.length <= 0) this.model.Branches = null;\r\n else {\r\n this.model.Branches.forEach((x) => {\r\n x.VehicleId = x.VehicleId || 0;\r\n if (x.BranchId === this.accountService.authService.currentBranchId && x.State != RowState.Modify && !this.isMultiBranch) {\r\n x.IsActive = this.formGroup.controls[\"IsActive\"].value;\r\n x.State = RowState.Modify;\r\n }\r\n });\r\n }\r\n\r\n this.model.Documents.forEach((x) => {\r\n if (!this.documents.some((d) => d === x.DocumentsId)) x.State = RowState.Delete;\r\n });\r\n\r\n this.documents.forEach((x) => {\r\n if (!this.model.Documents.some((d) => d.DocumentsId === x)) {\r\n var doc: PersonnelDocuments = {};\r\n doc.DocumentsId = x;\r\n doc.PersonnelId = this.model.Id;\r\n doc.State = RowState.New;\r\n this.model.Documents.push(doc);\r\n }\r\n });\r\n this.setValue(\"Documents\", this.model.Documents);\r\n\r\n this.model.Roles.forEach((x) => {\r\n if (!this.roles.some((r) => r === x.RolesId)) x.State = RowState.Delete;\r\n });\r\n this.roles.forEach((x) => {\r\n if (!this.model.Roles.some((r) => r.RolesId === x)) {\r\n var role: PersonnelRoles = {};\r\n role.RolesId = x;\r\n role.PersonnelId = this.model.Id;\r\n role.State = RowState.New;\r\n this.model.Roles.push(role);\r\n }\r\n });\r\n this.setValue(\"Roles\", this.model.Roles);\r\n\r\n if (this.formGroup.controls[\"PartyId\"].value === null) this.formGroup.controls[\"PartyId\"].setValue(0);\r\n\r\n if (this.formGroup.controls[\"PhoneNumber\"].value === null) this.formGroup.controls[\"PhoneNumber\"].setValue(undefined);\r\n }\r\n\r\n isValid() {\r\n this.erroremessage = undefined;\r\n this.haserror = false;\r\n if (!this.formGroup.controls[\"RolesId\"].value || this.formGroup.controls[\"RolesId\"].value <= 0) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Personnel.SelectingLeastOneRoleRequired\");\r\n } else if (this.selectedCashier && !this.formGroup.controls[\"UserId\"].value) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Personnel.ChooseCashierRoleMandatoryUserAccount\");\r\n } else if (this.hasCredit) {\r\n if (!this.formGroup.controls[\"CreditControlTypeId\"].value) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Personnel.ChoosingCreditControlMethodMandatoryCreditPeakMode\");\r\n } else if (!this.formGroup.controls[\"CreditLimit\"].value) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Personnel.EnteringCreditLimitRequiredCreditControlSelectionMode\");\r\n }\r\n }\r\n if (!this.haserror) this.checkByBailTypeId();\r\n let activeAllDriverForBranch = this.model.Branches.some((x) => x.IsActive === false);\r\n let isActiveCount = this.model.Branches.filter((x) => x.IsActive);\r\n if (isActiveCount.length > 1 && activeAllDriverForBranch && this.model.Roles.find((x) => x.RolesTitle?.includes(PersonnelRolesEnum.Driver))) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Parties.Personnel.OnlyCourierBranchActive\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.Personnel.ErrorSavingChanges\")\r\n );\r\n this.haserror = true;\r\n this.isSaved = false;\r\n return;\r\n }\r\n return !this.haserror;\r\n }\r\n\r\n protected saveFailedHelper(error: any) {\r\n this.submitted = false;\r\n this.selectorService.submitted$.next(this.submitted);\r\n this.isClosing = false;\r\n this.isSaving = false;\r\n const message: any = Utilities.getHttpResponseMessage(error);\r\n this.sts.showToast(\r\n \"danger\",\r\n this.translate(\"ClientApp.FrontOffice.Parties.Personnel.SaveError\"),\r\n `${this.translate(\"ClientApp.FrontOffice.Parties.Personnel.ErrorSavingChanges\")}: ${message}`\r\n );\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.Parties.Personnel.ErrorSavingChanges\")}: ${message}`,\r\n this.translate(\"ClientApp.FrontOffice.Parties.Personnel.ErrorMessage\")\r\n );\r\n const regex = /کد جدید (\\d+) جایگذاری/;\r\n const found = message.match(regex);\r\n if (found) {\r\n const value = found[1];\r\n this.model.Number = +value;\r\n this.setValue(\"Number\", +value);\r\n }\r\n if (this.changesFailedCallback) this.changesFailedCallback();\r\n this.saveHasError();\r\n }\r\n\r\n setMaxCode() {\r\n this.httpCommonService\r\n .get(this.apiName + \"/GetPersonnelMaxCode\")\r\n .pipe(take(1))\r\n .subscribe((data: MaxCodeViewModel) => {\r\n if (data.HaspreFix) {\r\n this.formGroup.controls[\"Number\"].disable();\r\n this.columns.find((f) => f.name === \"Number\").disabled = true;\r\n }\r\n if (!this.model) this.model = {};\r\n if (data) this.model[\"Number\"] = data.MaxCode;\r\n\r\n this.setdefault();\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n const license = this.accountService.authService.currentInformation();\r\n const isMultiBranch = license.BranchingAdvancedEnabled || license.BranchingLightEnabled || license.RestaurantCallCenter;\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"SubLedgerId\" || x.name === \"DetailLedgerId\")\r\n x.formVisible =\r\n license.AccountingKind === SoftWareLicenseKind.AccountingAdvancedWeb ||\r\n license.AccountingKind === SoftWareLicenseKind.AccountingToAdvancedWeb ||\r\n license.AccountingKind === SoftWareLicenseKind.AccountingWeb;\r\n if (x.name === \"GoodsId\")\r\n x.formVisible =\r\n license.InventoryKind === SoftWareLicenseKind.InventoryWeb ||\r\n license.InventoryKind === SoftWareLicenseKind.InventoryAdvancedWeb ||\r\n license.InventoryKind === SoftWareLicenseKind.InventoryToAdvancedWeb;\r\n if (isMultiBranch) {\r\n if (x.name === \"IsActive\") {\r\n x.formVisible = false;\r\n }\r\n }\r\n });\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"Number\") x.disabled = !this.isNewRow;\r\n });\r\n this.Branches = this.getDetailControlModels(\"Branches\");\r\n this.columns.find((f) => f.name == \"PhoneNumber\").isNumberOnly = true;\r\n this.columns.find((f) => f.name == \"MobileNumber\").isNumberOnly = true;\r\n this.columns.find((f) => f.name == \"FirstName\").max = 40;\r\n }\r\n CreditCourierChange(event) {\r\n this.hasCredit = event;\r\n this.isValid();\r\n }\r\n CreditControlTypeChange($event) {\r\n this.isValid();\r\n }\r\n ChangeBailPrice(event: any) {\r\n this.model.BailPriceTypeCode = event.Code;\r\n this.checkByBailTypeId();\r\n }\r\n\r\n private checkByBailTypeId() {\r\n if (this.model.BailPriceTypeCode) {\r\n this.formGroup.controls[\"BailPrice\"].enable();\r\n this.disabledBailPrice = false;\r\n } else {\r\n this.formGroup.controls[\"BailPrice\"].disable();\r\n this.disabledBailPrice = true;\r\n }\r\n }\r\n}\r\n"," 0 && isOk4Load\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [group]=\"formGroup\"\r\n [model]=\"model\"\r\n [areaName]=\"areaName\"\r\n [hasDefault]=\"false\"\r\n [columns]=\"columns\"\r\n (valueChange)=\"valueChange()\"\r\n [erroremessage]=\"erroremessage\"\r\n [noSubmit]=\"deactivateSave\"\r\n hasfocus=\"FirstName\"\r\n (cancelChange)=\"cancel()\"\r\n (submitChange)=\"save()\">\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n 0 && model?.Branches?.length > 0 && showBranch\"\r\n [DefaultValues]=\"DefaultValues\"\r\n [columns]=\"Branches\"\r\n [dataList]=\"model.Branches\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\">\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { FilterDriversByCodeComponent } from \"../filter-drivers-by-code/filter-drivers-by-code.component\";\r\nimport { PersonnelFormComponent } from \"./personnel-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-customer-categories-list\",\r\n template: `
\r\n \r\n \r\n
`,\r\n})\r\nexport class PersonnelListComponent extends BaseListComponent {\r\n unSortableFilterable: string[] = [];\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n actions: EntityListAction[];\r\n\r\n constructor() {\r\n super();\r\n this.inputEditorform = PersonnelFormComponent;\r\n this.FillData();\r\n }\r\n\r\n ngOnInit() {\r\n this.apiName = \"Personnel\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Parties.Personnel.Staff\");\r\n this.unSortableFilterable.push(\"RolesTitle\");\r\n this.unSortableFilterable.push(\"IsActive\");\r\n this.setactions();\r\n }\r\n\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"DriversBarcode\",\r\n disabled: false,\r\n displayName: this.translate(\"ClientApp.FrontOffice.Parties.Personnel.BarcodeCourier\"),\r\n iconName: \"icon-barcode2\",\r\n apiName: \"Personnel/BarCodeAccess\",\r\n areaName: \"RestaurantSale\",\r\n permission: Permission.samePermission,\r\n Form_Component: FilterDriversByCodeComponent,\r\n },\r\n ];\r\n }\r\n\r\n async FillData() {\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n if (currentBranch.BranchingLightEnabled || currentBranch.BranchingAdvancedEnabled || currentBranch.RestaurantCallCenter) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch/Personnel\")\r\n .pipe(take(1))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (!this.accountService.authService.currentBranch.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Parties.Personnel.HasBranchCommunication\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Parties.Personnel.HasCallCenterCommunication\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { Zone, ZoneBranch } from \"../../model/zone.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { RateIncrease, RoundingTypeAnnouncement } from \"../zone-price.enum\";\r\nimport { ZonePriceAnnouncement, ZonePriceAnnouncementForm } from \"../../model/zone-price-announcement.model\";\r\n\r\n@Component({\r\n selector: \"app-zone-price-announcement-form\",\r\n templateUrl: \"./zone-price-announcement-form.component.html\",\r\n styleUrls: [\"./zone-price-announcement-form.component.scss\"],\r\n})\r\nexport class ZonePriceAnnouncementFormComponent extends BaseFormComponent {\r\n DefaultValues: Dictionary = [];\r\n Zones: form_control[];\r\n ZonePriceAnnouncementForm: form_control[];\r\n isDelete: boolean = true;\r\n erroremessage: string;\r\n deactivateSave: boolean = false;\r\n\r\n zonePriceAnnouncementForm = new ZonePriceAnnouncementForm();\r\n zonePriceAnnouncementFormCopy = { ...this.zonePriceAnnouncementForm };\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"ZonePriceAnnouncement\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.ZonePriceAnnouncement\");\r\n super.ngOnInit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n }\r\n\r\n //اضافه کردن دکمه اعمال\r\n setColumnAttribute(): void {\r\n if (!this.orignalColumns.some((s) => s.name === \"addZonePriceBtn\")) {\r\n const addBtn = new form_control();\r\n addBtn.name = \"addZonePriceBtn\";\r\n addBtn.label = this.translate(\"ClientApp.FrontOffice.Parties.ZonePriceAnnouncement.Actions\");\r\n addBtn.formVisible = true;\r\n addBtn.userClass = \"action-btn\";\r\n addBtn.columnNumber = 1;\r\n addBtn.controlType = FormControlTypes.Button;\r\n this.orignalColumns.push(addBtn);\r\n this.columns = this.orignalColumns;\r\n }\r\n super.setColumnAttribute();\r\n this.Zones = this.getDetailControlModels(\"Zones\");\r\n }\r\n\r\n onDynamicFormChanges(controlName: string) {\r\n const IncreaseRateValue = this.formGroup.controls[\"IncreaseRateOfAmount\"].value;\r\n const AmountTypeIdValue = this.formGroup.controls[\"AmountTypeId\"].value;\r\n const AmountType = this.selectorService.getDataList(\"AmountTypeId\");\r\n if (IncreaseRateValue !== null && IncreaseRateValue !== undefined) {\r\n if (AmountType.find((f) => f.Code === RateIncrease.Percent).Id === AmountTypeIdValue) {\r\n if (Number(IncreaseRateValue) > 100) {\r\n this.formGroup.controls[\"IncreaseRateOfAmount\"].setValue(100);\r\n } else {\r\n this.zonePriceAnnouncementForm.IncreaseRateOfAmount = IncreaseRateValue;\r\n }\r\n } else if (AmountType.find((f) => f.Code === RateIncrease.Rial).Id === AmountTypeIdValue) {\r\n this.zonePriceAnnouncementForm.IncreaseRateOfAmount = IncreaseRateValue;\r\n }\r\n if (controlName === \"addZonePriceBtn\") {\r\n this.populateZone();\r\n }\r\n }\r\n }\r\n\r\n populateZone() {\r\n const branchIdValue = this.formGroup.controls[\"BranchIds\"]?.value || [];\r\n if (branchIdValue.length === 0) {\r\n console.error(\"BranchIds is empty or undefined.\");\r\n return;\r\n }\r\n\r\n this.httpCommonService\r\n .getList(\"Zone\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (data: Zone[]) => {\r\n const IncreaseRateValue = this.formGroup.controls[\"IncreaseRateOfAmount\"].value;\r\n const RoundingAmountValue = this.formGroup.controls[\"RoundingAmount\"].value;\r\n let ZoneList: Zone[] = data;\r\n ZoneList = this.filterZones(ZoneList, branchIdValue);\r\n this.model.Zones = [];\r\n ZoneList?.forEach((zone: Zone) => {\r\n this.addZonesToList(zone, IncreaseRateValue, RoundingAmountValue);\r\n });\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n filterZones(zoneList: Zone[], selectedBranchIds: number[]): Zone[] {\r\n return zoneList.filter((zone) => {\r\n return zone.Branches.some((branch) => selectedBranchIds.includes(branch.BranchId) && branch.IsActive);\r\n });\r\n }\r\n\r\n addZonesToList(zone: Zone, increaseRate: number, roundingAmount: RoundingTypeAnnouncement): void {\r\n const selectedBranchIds: number[] = this.formGroup.controls[\"BranchIds\"].value;\r\n zone.Branches.forEach((branch) => {\r\n selectedBranchIds.forEach((selectedBranchId) => {\r\n if (branch.BranchId === selectedBranchId) {\r\n this.zonePriceAnnouncementFormCopy = { ...this.zonePriceAnnouncementForm };\r\n this.zonePriceAnnouncementFormCopy.ZoneBranch = branch;\r\n this.zonePriceAnnouncementFormCopy.BranchId = branch.BranchId;\r\n this.zonePriceAnnouncementFormCopy.ZoneBranchId = branch.Id;\r\n this.zonePriceAnnouncementFormCopy.BranchTitle = branch.BranchTitle || null;\r\n this.zonePriceAnnouncementFormCopy.ZoneTitle = zone.Title;\r\n this.zonePriceAnnouncementFormCopy.ZoneId = zone.Id;\r\n if (branch.ShippingCost !== null && branch.CourierShippingCost !== null) {\r\n this.zonePriceAnnouncementFormCopy.OldAmount = branch.ShippingCost;\r\n this.zonePriceAnnouncementFormCopy.OldAmountDriver = branch.CourierShippingCost;\r\n const { newAmount, newAmountDriver } = this.calculateNewAmount(branch, increaseRate, roundingAmount);\r\n if (newAmount !== null && newAmountDriver !== null) {\r\n this.zonePriceAnnouncementFormCopy.NewAmount = newAmount;\r\n this.zonePriceAnnouncementFormCopy.NewAmountDriver = newAmountDriver;\r\n this.Zones.find((f) => f.name === \"BranchTitle\").disabled = true;\r\n this.Zones.find((f) => f.name === \"ZoneTitle\").disabled = true;\r\n this.Zones.find((f) => f.name === \"OldAmount\").disabled = true;\r\n this.Zones.find((f) => f.name === \"OldAmountDriver\").disabled = true;\r\n this.zonePriceAnnouncementFormCopy.State = RowState.New;\r\n this.model.Zones.push(this.zonePriceAnnouncementFormCopy);\r\n }\r\n }\r\n }\r\n });\r\n });\r\n }\r\n\r\n calculateNewAmount(branch: ZoneBranch, increaseRate: number, roundingAmount: number): { newAmount: number; newAmountDriver: number } {\r\n let newAmount = 0;\r\n let newAmountDriver = 0;\r\n const AmountType = this.selectorService.getDataList(\"AmountTypeId\");\r\n const RoundingType = this.selectorService.getDataList(\"RoundingTypeId\");\r\n if (AmountType.find((f) => f.Code === RateIncrease.Percent).Id === this.formGroup.controls[\"AmountTypeId\"].value) {\r\n newAmount = (1 + increaseRate / 100) * branch.ShippingCost;\r\n newAmountDriver = (1 + increaseRate / 100) * branch.CourierShippingCost;\r\n } else if (AmountType.find((f) => f.Code === RateIncrease.Rial).Id === this.formGroup.controls[\"AmountTypeId\"].value) {\r\n newAmount = branch.ShippingCost + increaseRate;\r\n newAmountDriver = branch.CourierShippingCost + increaseRate;\r\n }\r\n\r\n if (roundingAmount === 0 || roundingAmount === null || roundingAmount === undefined) {\r\n return { newAmount, newAmountDriver };\r\n } else {\r\n if (RoundingType.find((f) => f.Code === RoundingTypeAnnouncement.Standard).Id === this.formGroup.controls[\"RoundingTypeId\"].value) {\r\n newAmount = Math.round(newAmount / roundingAmount) * roundingAmount;\r\n newAmountDriver = Math.round(newAmountDriver / roundingAmount) * roundingAmount;\r\n } else if (RoundingType.find((f) => f.Code === RoundingTypeAnnouncement.RoundingUp).Id === this.formGroup.controls[\"RoundingTypeId\"].value) {\r\n newAmount = Math.ceil(newAmount / roundingAmount) * roundingAmount;\r\n newAmountDriver = Math.ceil(newAmountDriver / roundingAmount) * roundingAmount;\r\n } else if (RoundingType.find((f) => f.Code === RoundingTypeAnnouncement.RoundingDown).Id === this.formGroup.controls[\"RoundingTypeId\"].value) {\r\n newAmount = Math.floor(newAmount / roundingAmount) * roundingAmount;\r\n newAmountDriver = Math.floor(newAmountDriver / roundingAmount) * roundingAmount;\r\n }\r\n }\r\n return { newAmount, newAmountDriver };\r\n }\r\n\r\n CompleteData(value: { apiName: string; Category: string; data: any[] }) {\r\n if (value.apiName === \"Lookup\" && value.Category === \"RoundingType\") {\r\n if (!this.model?.RoundingTypeId) {\r\n this.model.RoundingTypeId = value.data.find((f) => f.Code === RoundingTypeAnnouncement.RoundingUp)?.Id;\r\n this.setValue(\"RoundingTypeId\", this.model.RoundingTypeId);\r\n }\r\n }\r\n if (value.apiName === \"Lookup\" && value.Category === \"AmountType\") {\r\n if (!this.model?.AmountTypeId) {\r\n this.model.AmountTypeId = value.data.find((f) => f.Code === RateIncrease.Percent)?.Id;\r\n this.setValue(\"AmountTypeId\", this.model.AmountTypeId);\r\n }\r\n }\r\n }\r\n\r\n async save() {\r\n try {\r\n if (Object.keys(this.zonePriceAnnouncementFormCopy).length) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Parties.ZonePriceAnnouncement.InformationCannotEditedAfterSaving\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.ZonePriceAnnouncement.Warning\"),\r\n DialogType.confirm,\r\n () => super.save(),\r\n () => this.selectorService.submitted$.next(this.submitted)\r\n );\r\n } else {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Parties.ZonePriceAnnouncement.MakeEntriesAndApplyChangesBeforeSaving\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.ZonePriceAnnouncement.Attention\"),\r\n DialogType.alert,\r\n () => this.selectorService.submitted$.next(this.submitted)\r\n );\r\n }\r\n } catch {\r\n return;\r\n }\r\n }\r\n}\r\n","\r\n \r\n 0\"\r\n [DefaultValues]=\"DefaultValues\"\r\n [columns]=\"Zones\"\r\n [dataList]=\"model.Zones\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\">\r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { ZonePriceAnnouncementFormComponent } from \"../zone-price-announcement-form/zone-price-announcement-form.component\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\n\r\n@Component({\r\n selector: \"app-zone-price-announcement-list\",\r\n templateUrl: \"./zone-price-announcement-list.component.html\",\r\n styleUrls: [\"./zone-price-announcement-list.component.scss\"],\r\n})\r\nexport class ZonePriceAnnouncementListComponent extends BaseListComponent {\r\n unSortableFilterable: string[] = [];\r\n isEdit: boolean = false;\r\n isDelete: boolean = false;\r\n filters: GridFilter[] = [\r\n {\r\n Filed: \"CreatedDate\",\r\n Value: 0,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"desc\",\r\n Type: \"S\",\r\n },\r\n ];\r\n constructor() {\r\n super();\r\n this.inputEditorform = ZonePriceAnnouncementFormComponent;\r\n }\r\n\r\n ngOnInit() {\r\n this.apiName = \"ZonePriceAnnouncement\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.ZonePriceAnnouncement\");\r\n this.unSortableFilterable.push(\"ZoneTitle\");\r\n this.unSortableFilterable.push(\"BranchIds\");\r\n this.unSortableFilterable.push(\"IncreaseRateOfAmount\");\r\n this.unSortableFilterable.push(\"RoundingAmount\");\r\n this.unSortableFilterable.push(\"ShamsiDateField\");\r\n this.unSortableFilterable.push(\"RoundingTypeTitle\");\r\n this.unSortableFilterable.push(\"AmountTypeTitle\");\r\n this.filters.push({\r\n Filed: \"CreatedDate\",\r\n Value: null,\r\n Skip: 0,\r\n Take: 0,\r\n Operator: \"desc\",\r\n Type: \"S\",\r\n });\r\n }\r\n}\r\n","
\r\n \r\n \r\n
","export enum RoundingTypeAnnouncement {\r\n Standard = 0,\r\n RoundingUp = 1,\r\n RoundingDown = 2\r\n }\r\n\r\n export enum RateIncrease {\r\n Percent = 0,\r\n Rial = 1\r\n }","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Branch, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { Zone, ZoneBranch } from \"../model/zone.model\";\r\n\r\n@Component({\r\n selector: \"ngx-zone\",\r\n templateUrl: \"./zone-form.component.html\",\r\n styleUrls: [\"./zone-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ZoneFormComponent extends BaseFormComponent {\r\n activeTabTitle: string;\r\n erroremessage: string;\r\n haserror: boolean = false;\r\n DefaultValues: Dictionary = [];\r\n isAccessToAllBranches = true;\r\n Branches: form_control[];\r\n terminate: boolean;\r\n onPermissionDelete: boolean = false;\r\n deactivateSave: boolean = false;\r\n showBranch: boolean = false;\r\n rowIsEditing: boolean = false;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.FillData();\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"Zone\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Parties.Zone.Zone\");\r\n super.ngOnInit();\r\n this.DefaultValues[\"ZoneId\"] = 0;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.Branches = undefined;\r\n this.DefaultValues = undefined;\r\n }\r\n\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.Branches = this.getDetailControlModels(\"Branches\");\r\n }\r\n\r\n setdefault() {\r\n if (!this.model.Branches) this.model.Branches = [];\r\n\r\n if (!this.model.Paths) this.model.Paths = [];\r\n\r\n //اگر در مد ایجاد بودیم\r\n if (this.model && !(this.model.Id > 0)) this.model.IsActive = true;\r\n\r\n if (!this.accountService.authService.currentBranch) setTimeout(() => this.populateBranch(), 300);\r\n else this.populateBranch();\r\n\r\n if (!this.model.IsFreeDelivery) this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].disabled;\r\n\r\n if (this.model.Id) this.setHeaderInfo();\r\n }\r\n\r\n setHeaderInfo(): void {\r\n this.model.Branches?.forEach((branch) => {\r\n if (branch.IsFreeDelivery && !branch.MinimumPurchaseForFreeShipping) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Zone.EnteringMinimumInvoiceTotalRequired\");\r\n return !this.haserror;\r\n }\r\n });\r\n if (this.model.Branches?.length) {\r\n const defaultBranch = this.model.Branches.find((branch) => branch.IsDefault);\r\n if (typeof defaultBranch?.ShippingCost === \"number\") {\r\n this.setValue(\"ShippingCost\", defaultBranch.ShippingCost);\r\n this.model.ShippingCost = defaultBranch.ShippingCost;\r\n }\r\n if (typeof defaultBranch?.CourierShippingCost === \"number\") {\r\n this.setValue(\"CourierShippingCost\", defaultBranch.CourierShippingCost);\r\n this.model.CourierShippingCost = defaultBranch.CourierShippingCost;\r\n }\r\n if (typeof defaultBranch?.MinutesToDelivery === \"number\") {\r\n this.setValue(\"MinutesToDelivery\", defaultBranch.MinutesToDelivery);\r\n this.model.MinutesToDelivery = defaultBranch.MinutesToDelivery;\r\n }\r\n if (typeof defaultBranch?.IsFreeDelivery === \"boolean\") {\r\n this.setValue(\"IsFreeDelivery\", defaultBranch.IsFreeDelivery);\r\n this.model.IsFreeDelivery = defaultBranch.IsFreeDelivery;\r\n if (!defaultBranch?.IsFreeDelivery) {\r\n defaultBranch.MinimumPurchaseForFreeShipping = 0;\r\n }\r\n }\r\n if (typeof defaultBranch?.MinimumPurchaseForFreeShipping === \"number\") {\r\n this.setValue(\"MinimumPurchaseForFreeShipping\", defaultBranch.MinimumPurchaseForFreeShipping);\r\n this.model.MinimumPurchaseForFreeShipping = defaultBranch.MinimumPurchaseForFreeShipping;\r\n }\r\n }\r\n }\r\n\r\n addControl() {\r\n if (this.formGroup && this.model.IsFreeDelivery) this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].enable();\r\n this.cd.markForCheck();\r\n }\r\n\r\n shippingCostController(): Promise {\r\n return new Promise((resolve, reject) => {\r\n if (this.terminate) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Parties.Zone.PerformingThisOperationSubscribers\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.Zone.SubscriberUpdate\"),\r\n DialogType.confirm,\r\n (okCallback) => {\r\n resolve(true);\r\n },\r\n (cancelCallback: void) => {\r\n reject(false);\r\n }\r\n );\r\n } else reject(false);\r\n });\r\n }\r\n\r\n async save() {\r\n if (!this.formGroup.controls[\"ShippingCost\"].value || this.formGroup.controls[\"ShippingCost\"].dirty) {\r\n this.terminate = true;\r\n let accept = false;\r\n if (this.model.Id && this.formGroup.controls[\"ShippingCost\"].value !== this.currentrow.ShippingCost) {\r\n await this.shippingCostController().then(\r\n (onfulfilled) => {\r\n accept = true;\r\n },\r\n (onrejected) => {\r\n accept = false;\r\n }\r\n );\r\n } else {\r\n accept = true;\r\n }\r\n if (!accept) {\r\n this.submitted = false;\r\n this.selectorService.submitted$.next(this.submitted);\r\n return;\r\n }\r\n }\r\n super.save();\r\n }\r\n populateBranch() {\r\n this.httpCommonService\r\n .getList(\"Branch\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (data: Branch[]) => {\r\n let BranchList: Branch[] = data;\r\n BranchList = BranchList.filter((x) => (this.isMultiBranch ? !x.AccessToAllBranches : true));\r\n if (!this.model) this.model = {};\r\n if (!this.model.Branches) this.model.Branches = [];\r\n BranchList?.forEach((br: Branch) => {\r\n const listBranch = this.model.Branches.find((x) => x.BranchId === br.Id);\r\n if (!listBranch) {\r\n let entity = {};\r\n entity.BranchId = br.Id;\r\n entity.BranchTitle = br.Title;\r\n entity.IsActive = true;\r\n entity.IsFreeDelivery = false;\r\n entity.ShippingCost = 0;\r\n entity.CourierShippingCost = 0;\r\n entity.MinutesToDelivery = 0;\r\n entity.State = RowState.New;\r\n if (!this.model || !(this.model.Id > 0)) {\r\n //اگر در مد ایجاد بودیم\r\n entity.Selected = true;\r\n } else {\r\n entity.Selected = false;\r\n }\r\n this.model.Branches.push(entity);\r\n } else {\r\n listBranch.Selected = true;\r\n }\r\n });\r\n\r\n this.showBranch = true;\r\n });\r\n }\r\n\r\n afterSaveRow(entity: ZoneBranch): void {\r\n this.setHeaderInfo();\r\n this.cd.markForCheck();\r\n }\r\n\r\n beforupdate() {\r\n this.model.Branches = this.model.Branches?.filter((x) => x.Selected);\r\n if (this.model.Paths && this.model.Paths.length <= 0) this.model.Paths = null;\r\n if (this.model?.Branches && this.model?.Branches.length <= 0) {\r\n this.model.Branches = null;\r\n }\r\n this.model.Branches?.forEach((x) => {\r\n if (x && x.BranchId === this.accountService.authService.currentBranchId) {\r\n if (this.formGroup.controls[\"IsActive\"].value != this.model.IsActive) x.IsActive = this.formGroup.controls[\"IsActive\"].value ? true : false;\r\n if (this.formGroup.controls[\"ShippingCost\"].value != this.model.ShippingCost) x.ShippingCost = this.formGroup.controls[\"ShippingCost\"].value;\r\n if (this.formGroup.controls[\"CourierShippingCost\"].value != this.model.CourierShippingCost)\r\n x.CourierShippingCost = this.formGroup.controls[\"CourierShippingCost\"].value;\r\n if (this.formGroup.controls[\"MinutesToDelivery\"].value != this.model.MinutesToDelivery)\r\n x.MinutesToDelivery = this.formGroup.controls[\"MinutesToDelivery\"].value;\r\n if (this.formGroup.controls[\"IsFreeDelivery\"].value != this.model.IsFreeDelivery)\r\n x.IsFreeDelivery = this.formGroup.controls[\"IsFreeDelivery\"].value;\r\n if (!x.IsFreeDelivery) {\r\n x.MinimumPurchaseForFreeShipping = null;\r\n } else if (this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].value != this.model.MinimumPurchaseForFreeShipping)\r\n x.MinimumPurchaseForFreeShipping = this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].value;\r\n if (x.State === RowState.NoChange) x.State = RowState.Modify;\r\n } else if (x && !x.IsFreeDelivery) x.MinimumPurchaseForFreeShipping = null;\r\n });\r\n\r\n const { ShippingCost, CourierShippingCost, MinutesToDelivery, IsFreeDelivery, MinimumPurchaseForFreeShipping } = this.formGroup.getRawValue();\r\n let defaultBranch = this.model.Branches.find((x) => x.IsDefault);\r\n if (!defaultBranch && this.model.Branches.length === 1) {\r\n this.model.Branches[0].IsDefault = true;\r\n defaultBranch = this.model.Branches[0];\r\n }\r\n if (defaultBranch) {\r\n if (ShippingCost) defaultBranch.ShippingCost = ShippingCost;\r\n if (CourierShippingCost) defaultBranch.CourierShippingCost = CourierShippingCost;\r\n if (MinutesToDelivery) defaultBranch.MinutesToDelivery = MinutesToDelivery;\r\n if (typeof IsFreeDelivery === \"boolean\") defaultBranch.IsFreeDelivery = IsFreeDelivery;\r\n if (MinimumPurchaseForFreeShipping) defaultBranch.MinimumPurchaseForFreeShipping = MinimumPurchaseForFreeShipping;\r\n defaultBranch.State = RowState.Modify;\r\n }\r\n }\r\n\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n valueChange(event) {\r\n if (event == true && this.formGroup.controls[\"IsFreeDelivery\"].value == true) {\r\n this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].enable();\r\n } else if (event == false && this.formGroup.controls[\"IsFreeDelivery\"].value == false) {\r\n this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].setValue(null);\r\n this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].disable();\r\n }\r\n if (this.formGroup) {\r\n if (this.formGroup.controls[\"IsFreeDelivery\"].value) {\r\n this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].disable();\r\n this.columns.find((x) => x.name == \"MinimumPurchaseForFreeShipping\").disabled = false;\r\n } else {\r\n this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].enable();\r\n this.columns.find((x) => x.name == \"MinimumPurchaseForFreeShipping\").disabled = true;\r\n }\r\n }\r\n this.cd.markForCheck();\r\n }\r\n isValid() {\r\n this.erroremessage = undefined;\r\n this.haserror = false;\r\n if (\r\n this.formGroup.controls[\"IsFreeDelivery\"].value == true &&\r\n (this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].value == undefined ||\r\n this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].value == null ||\r\n this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].value == \"\" ||\r\n this.formGroup.controls[\"MinimumPurchaseForFreeShipping\"].value < 0)\r\n ) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Zone.EnteringMinimumInvoiceTotalRequired\");\r\n } else {\r\n this.haserror = false;\r\n this.erroremessage = \"\";\r\n }\r\n\r\n if (this.accountService.authService.currentInformation().RestaurantCallCenter && !this.model.Branches.find((x) => x.IsDefault)) {\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Zone.SelectLeastOneBranchDefault\");\r\n this.haserror = true;\r\n }\r\n this.model.Branches?.some((x) => {\r\n if (!x.IsDefault && x.IsFreeDelivery && !x.MinimumPurchaseForFreeShipping) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Parties.Zone.EnteringMinimumInvoiceTotalRequired\");\r\n return !this.haserror;\r\n }\r\n });\r\n return !this.haserror;\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n onDelete($event) {\r\n if (this.onPermissionDelete) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Parties.Zone.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.Zone.Attention\")\r\n );\r\n }\r\n }\r\n async FillData() {\r\n if (\r\n this.accountService.authService.currentInformation().BranchingLightEnabled ||\r\n this.accountService.authService.currentInformation().BranchingAdvancedEnabled\r\n ) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Locations\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Parties.Zone.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.Zone.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Parties.Zone.HasCallCenterCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Parties.Zone.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n (error) => this.getFailedHelper(error);\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n {{ erroremessage }}\r\n
\r\n
\r\n
\r\n \r\n 0 && model?.Branches?.length > 0 && showBranch\">\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { DataCenterProcess } from \"src/app/gnr/data-center-process/data-center-process.model\";\r\nimport { ZoneFormComponent } from \"./zone-form.component\";\r\n@Component({\r\n selector: \"ngx-city-list\",\r\n template: `
\r\n \r\n \r\n
`,\r\n})\r\nexport class ZoneListComponent extends BaseListComponent {\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n unSortableFilterable: string[] = [];\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n\r\n constructor() {\r\n super();\r\n this.inputEditorform = ZoneFormComponent;\r\n this.FillData();\r\n }\r\n\r\n ngOnInit() {\r\n this.apiName = \"Zone\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Parties.Zone.Zone\");\r\n this.unSortableFilterable.push(\"IsActive\");\r\n this.unSortableFilterable.push(\"ShippingCost\");\r\n this.unSortableFilterable.push(\"CourierShippingCost\");\r\n this.unSortableFilterable.push(\"MinutesToDelivery\");\r\n this.unSortableFilterable.push(\"IsFreeDelivery\");\r\n this.unSortableFilterable.push(\"MinimumPurchaseForFreeShipping\");\r\n }\r\n\r\n async FillData() {\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n if (currentBranch.BranchingLightEnabled || currentBranch.BranchingAdvancedEnabled || currentBranch.RestaurantCallCenter) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch/Locations\")\r\n .pipe(take(1))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (!this.accountService.authService.currentBranch.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isEdit = true;\r\n this.isDelete = false;\r\n }\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Parties.Zone.HasBranchCommunication\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Parties.Zone.HasCallCenterCommunication\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport MenuSettingModel, { ResponseModel, RetaurantInfo } from \"../menuSetting.model\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Subject } from \"rxjs\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\n\r\n@Component({\r\n selector: \"ngx-connect-online-menu\",\r\n templateUrl: \"./connect-online-menu.component.html\",\r\n styleUrls: [\"./connect-online-menu.component.scss\"],\r\n})\r\nexport class ConnectOnlineMenuComponent extends BaseFormComponent {\r\n logoFormData: FormData = new FormData();\r\n ngUnsubscribe = new Subject();\r\n testConnection: ResponseModel;\r\n GetInfo: boolean;\r\n response: ResponseModel;\r\n showItem: ResponseModel;\r\n ResInfo: RetaurantInfo;\r\n isLoading: boolean;\r\n showBtn: boolean;\r\n isRegister: boolean;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private splashFormService: SplashFormService) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"Peripheral\";\r\n this.label = \"\";\r\n super.ngOnInit();\r\n }\r\n\r\n valueChangeBranch() {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n ConnectionTest() {\r\n this.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.PleaseWait\"));\r\n this.isLoading = true;\r\n this.httpCommonService\r\n .get(\"UserLocalSetting/MenuOnlineConnection\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: ResponseModel) => {\r\n this.splashFormService.closeLoading();\r\n this.isLoading = false;\r\n this.testConnection = data;\r\n this.showBtn = true;\r\n if (this.testConnection.Code == 0) {\r\n this.isRegister = true;\r\n }\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.ConnectionWithOnlineMenuEstablished\"),\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.Attention\")\r\n );\r\n },\r\n (err) => {\r\n this.splashFormService.closeLoading();\r\n this.isLoading = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.ConnectionWithOnlineMenuNotEstablished\"),\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.Attention\")\r\n );\r\n }\r\n );\r\n }\r\n\r\n ShowInfo() {\r\n this.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.PleaseWait\"));\r\n this.isLoading = true;\r\n this.httpCommonService\r\n .get(\"UserLocalSetting/GetRsetaurantInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: RetaurantInfo) => {\r\n this.splashFormService.closeLoading();\r\n this.isLoading = false;\r\n this.ResInfo = data;\r\n this.GetInfo = true;\r\n console.log(this.ResInfo.Urls);\r\n },\r\n (err) => {\r\n this.splashFormService.closeLoading();\r\n this.isLoading = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.CollectionNotRegisteredMenuOnline\"),\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.Attention\")\r\n );\r\n }\r\n );\r\n }\r\n\r\n Register() {\r\n this.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.PleaseWait\"));\r\n this.isLoading = true;\r\n this.httpCommonService\r\n .get(\"UserLocalSetting/Register\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n this.splashFormService.closeLoading();\r\n this.isLoading = false;\r\n this.response = data;\r\n this.isRegister = true;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.RegistrationSuccessful\"),\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.Attention\")\r\n );\r\n },\r\n (err) => {\r\n this.splashFormService.closeLoading();\r\n this.isLoading = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.RegistrationOnlineMenuEncounteredError\"),\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.Attention\")\r\n );\r\n }\r\n );\r\n }\r\n\r\n SendItemCategoryInfo() {\r\n this.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.PleaseWait\"));\r\n this.isLoading = true;\r\n this.httpCommonService\r\n .get(\"UserLocalSetting/GetAllItemCategory\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n this.splashFormService.closeLoading();\r\n this.isLoading = false;\r\n this.showItem = data;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.ProductRegistrationSuccessfullyCompleted\"),\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.Attention\")\r\n );\r\n },\r\n (err) => {\r\n this.splashFormService.closeLoading();\r\n this.isLoading = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.ProductRegistrationEncounteredError\"),\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.Attention\")\r\n );\r\n }\r\n );\r\n }\r\n\r\n SendItemInfo() {\r\n this.splashFormService.openDialog(\"\", this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.PleaseWait\"));\r\n this.isLoading = true;\r\n this.httpCommonService\r\n .get(\"UserLocalSetting/GetAllItems\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n this.splashFormService.closeLoading();\r\n this.isLoading = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.ProductRegistrationSuccessfullyCompleted\"),\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.Attention\")\r\n );\r\n },\r\n (err) => {\r\n this.isLoading = false;\r\n this.splashFormService.closeLoading();\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.ProductRegistrationEncounteredError\"),\r\n this.translate(\"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.Attention\")\r\n );\r\n }\r\n );\r\n }\r\n\r\n copyInputMessage(inputElement) {\r\n inputElement.select();\r\n document.execCommand(\"copy\");\r\n inputElement.setSelectionRange(0, 0);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.NameOfRestaurant\" | translate }} :\r\n {{ ResInfo?.Title }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.LockNumber\" | translate }} :\r\n {{ ResInfo?.LockNumber }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.ManagerMobileNumber\" | translate }} :\r\n {{ ResInfo?.ManagerMobile }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.AddressRestaurant\" | translate }} :\r\n {{ ResInfo?.Address }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Portal.ConnectOnlineMenu.Company\" | translate }} :\r\n {{ ResInfo?.BrandName }}\r\n
\r\n
\r\n
\r\n {{ ResInfo.BranchInfoes[index].Title }} :\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { ChangeDetectionStrategy, Component, ElementRef, OnInit } from \"@angular/core\";\r\nimport { PortalService } from \"../portal.service\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { ItemCategoriesSelectComponent } from \"./item-categories-select/item-categories-select.component\";\r\nimport { take } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-item-categories-image\",\r\n templateUrl: \"./item-categories-image.component.html\",\r\n styleUrls: [\"./item-categories-image.component.scss\"],\r\n})\r\nexport class ItemCategoriesImageComponent extends BaseListComponent {\r\n constructor(public ps: PortalService, private el: ElementRef) {\r\n super();\r\n }\r\n\r\n ngOnInit() {}\r\n\r\n public openSelector(itemCategory): void {\r\n this.dialogService\r\n .open(ItemCategoriesSelectComponent, { itemCategory })\r\n .pipe(take(1))\r\n .subscribe((x) => {});\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n
\r\n \r\n
\r\n

{{ itemCategory.Title }}

\r\n
\r\n
\r\n\r\n","import { ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { take } from \"rxjs/operators\";\r\n\r\nimport { ItemCategory } from \"src/app/frontoffice/catalog/model/item-category.model\";\r\nimport { PortalService } from \"../../portal.service\";\r\n\r\n@Component({\r\n selector: \"app-item-categories-select\",\r\n templateUrl: \"./item-categories-select.component.html\",\r\n styleUrls: [\"./item-categories-select.component.scss\"],\r\n})\r\nexport class ItemCategoriesSelectComponent extends BaseFormComponent {\r\n @Input() itemCategory: ItemCategory;\r\n @ViewChild(\"mainImageElement\") mainImageElement: ElementRef;\r\n images: string[] = [];\r\n selectedImage;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private ps: PortalService) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.getImages();\r\n }\r\n\r\n public select(i: any): void {\r\n this.selectedImage = i;\r\n }\r\n\r\n public onSubmit(): void {\r\n const data = { imageIndex: this.selectedImage, itemCategoryId: this.itemCategory.Id };\r\n this.httpCommonService\r\n .create(\"Peripheral/ItemCategoriesImage\", data)\r\n .pipe(take(1))\r\n .subscribe((response: any) => {\r\n if (response) {\r\n this.sts.showToast(\"success\", \"\", this.translate(\"ClientApp.FrontOffice.Portal.ItemCategoriesImage.ImagesChangedSuccessfully\"), 3000);\r\n this.ps.itemCategoryImages[this.itemCategory.Id] = response[0] + \"?\" + Math.random().toString();\r\n this.close();\r\n }\r\n });\r\n }\r\n\r\n private getImages(): void {\r\n this.httpCommonService\r\n .get(\"Peripheral/ItemCategoriesImage\")\r\n .pipe(take(1))\r\n .subscribe((data: any) => {\r\n this.images = data;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n

{{ \"ClientApp.FrontOffice.Portal.ItemCategoriesImage.UploadImage\" | translate }}

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, ViewChild } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Item } from \"src/app/frontoffice/catalog/model/item.model\";\r\nimport { PortalService } from \"../../portal.service\";\r\n\r\n@Component({\r\n selector: \"ngx-item-image-uploader\",\r\n templateUrl: \"./item-image-uploader.component.html\",\r\n styleUrls: [\"./item-image-uploader.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ItemImageUploaderComponent extends BaseFormComponent {\r\n private formData: FormData = new FormData();\r\n @Input() item: Item;\r\n @ViewChild(\"mainImageElement\") mainImageElement: ElementRef;\r\n slideImages: any[] = [];\r\n imagePaths: any;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private ps: PortalService) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.httpCommonService.get(\"Peripheral/ItemImage/\" + this.item?.Id).subscribe((response: any) => {\r\n this.imagePaths = response[0];\r\n response.slice(1).forEach((element) => this.slideImages.push({ src: element, name: element.split(\"/\").pop() }));\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n onSubmit(): void {\r\n this.formData.append(\"ItemId\", this.item?.Id.toString());\r\n this.httpCommonService.upload(\"Peripheral/ItemImage\", this.formData).subscribe((response) => {\r\n if (response) {\r\n this.sts.showToast(\"success\", \"\", this.translate(\"ClientApp.FrontOffice.Portal.ItemImage.ImagesUploadedSuccessfully\"), 3000);\r\n this.ps.itemImages[this.item.Id] = response[0] + \"?\" + Math.random().toString();\r\n this.close();\r\n }\r\n });\r\n }\r\n\r\n onMainImageChange(event) {\r\n const file = event.target.files[0];\r\n if (file) {\r\n const maxSize = 300000;\r\n const maxHeight = 512;\r\n const maxWidth = 512;\r\n if (file.size > maxSize) {\r\n let error =\r\n this.translate(\"ClientApp.FrontOffice.Portal.ItemImage.UploadedImageSizeMustLessThan\") +\r\n maxSize / 1000 +\r\n this.translate(\"ClientApp.FrontOffice.Portal.ItemImage.BeKb\");\r\n this.sts.showDialog(error, this.translate(\"ClientApp.FrontOffice.Portal.ItemImage.Error\"));\r\n return false;\r\n }\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n let image = new Image();\r\n image.src = e.target.result;\r\n image.onload = (rs: any): any => {\r\n const imgHeight = rs.currentTarget[\"height\"];\r\n const imgWidth = rs.currentTarget[\"width\"];\r\n if (imgHeight > maxHeight || imgWidth > maxWidth) {\r\n let error = this.translate(\"ClientApp.FrontOffice.Portal.ItemImage.ImageSizeNotAllowed\");\r\n this.sts.showDialog(error, this.translate(\"ClientApp.FrontOffice.Portal.ItemImage.Error\"));\r\n return false;\r\n } else {\r\n if (this.formData.get(\"MainImage\")) this.formData.delete(\"MainImage\");\r\n this.mainImageElement.nativeElement.src = image.src as string;\r\n this.formData.append(\"MainImage\", file);\r\n }\r\n };\r\n };\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n\r\n onSlideImageChange(event) {\r\n if (event.target.files && event.target.files.length) {\r\n const max_size = 300000;\r\n const max_height = 2212;\r\n const max_width = 2212;\r\n\r\n for (let i = 0; i < event.target.files.length; i++) {\r\n const file = event.target.files[i];\r\n\r\n if (file.size > max_size) {\r\n let error =\r\n this.translate(\"ClientApp.FrontOffice.Portal.ItemImage.UploadedImageSizeMustLessThan\") +\r\n max_size / 1000 +\r\n this.translate(\"ClientApp.FrontOffice.Portal.ItemImage.BeKb\");\r\n this.sts.showDialog(error, this.translate(\"ClientApp.FrontOffice.Portal.ItemImage.Error\"));\r\n return false;\r\n }\r\n\r\n this.checkImageSize(file, max_height, max_width, \"SlideImages\");\r\n }\r\n }\r\n }\r\n\r\n checkImageSize(file, max_height, max_width, filedName) {\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n let image = new Image();\r\n image.src = e.target.result;\r\n\r\n image.onload = (rs: any): any => {\r\n const img_height = rs.currentTarget[\"height\"];\r\n const img_width = rs.currentTarget[\"width\"];\r\n\r\n if (img_height > max_height || img_width > max_width) {\r\n let error = this.translate(\"ClientApp.FrontOffice.Portal.ItemImage.ImageSizeNotAllowed\");\r\n this.sts.showDialog(error, this.translate(\"ClientApp.FrontOffice.Portal.ItemImage.Error\"));\r\n return false;\r\n } else {\r\n this.addSlide(image.src, file.name);\r\n this.formData.append(filedName, file);\r\n }\r\n };\r\n };\r\n\r\n reader.readAsDataURL(file);\r\n }\r\n\r\n addSlide(src, name) {\r\n this.slideImages.push({ src: src as string, name: name });\r\n this.cd.markForCheck();\r\n }\r\n\r\n removeSlide(image) {\r\n const fieldName = \"SlideImages\";\r\n const indexInSlideImages = this.slideImages.findIndex((f) => f.name === image.name);\r\n const formDataImages = this.formData.getAll(fieldName);\r\n if (indexInSlideImages !== -1) {\r\n this.slideImages.splice(indexInSlideImages, 1);\r\n if (image.src.includes(\"http\")) {\r\n this.httpCommonService.deleteByParameter(\"Peripheral/ItemImage/\" + this.item.Id + \"?fileName=\" + image.name).subscribe((res) => {\r\n if (res) this.sts.showToast(\"danger\", \"\", this.translate(\"ClientApp.FrontOffice.Portal.ItemImage.ImageRemoved\"), 3000);\r\n });\r\n } else {\r\n const images = formDataImages.filter((f: any) => f.name !== image.name);\r\n this.formData.delete(fieldName);\r\n images.map((m) => this.formData.append(fieldName, m));\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n

{{ \"ClientApp.FrontOffice.Portal.ItemImage.UploadImage\" | translate }}

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{ \"ClientApp.FrontOffice.Portal.ItemImage.ProductName\" | translate }}: {{ item.Title }}

\r\n {{ \"ClientApp.FrontOffice.Portal.ItemImage.ProductCode\" | translate }}: {{ item.Code }}\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Portal.ItemImage.AddSlide\" | translate }}\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component } from \"@angular/core\";\r\nimport { PortalService } from \"../portal.service\";\r\nimport { ItemImageUploaderComponent } from \"./item-image-uploader/item-image-uploader.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { take } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-item-image\",\r\n templateUrl: \"./item-image.component.html\",\r\n styleUrls: [\"./item-image.component.scss\"],\r\n})\r\nexport class ItemImageComponent extends BaseListComponent {\r\n constructor(public ps: PortalService) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {}\r\n\r\n openUploader(item) {\r\n this.dialogService\r\n .open(ItemImageUploaderComponent, { item })\r\n .pipe(take(1))\r\n .subscribe((x) => {});\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n

{{ item.Title }}

\r\n {{ item.Code }}\r\n
\r\n
\r\n
\r\n
\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport MenuSettingModel from \"../menuSetting.model\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { take } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-menu-setting\",\r\n templateUrl: \"./menu-setting.component.html\",\r\n styleUrls: [\"./menu-setting.component.scss\"],\r\n})\r\nexport class MenuSettingComponent extends BaseFormComponent {\r\n logoFormData: FormData = new FormData();\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.getMenuSetting();\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"Peripheral\";\r\n this.label = \"\";\r\n super.ngOnInit();\r\n }\r\n\r\n addControl() {\r\n this.setValues();\r\n this.cd.markForCheck();\r\n }\r\n\r\n uploadLogo(event) {\r\n if (event.target.files && event.target.files.length) {\r\n const max_size = 100000;\r\n const max_height = 256;\r\n const max_width = 265;\r\n\r\n for (let i = 0; i < event.target.files.length; i++) {\r\n const file = event.target.files[i];\r\n\r\n if (file.size > max_size) {\r\n let error =\r\n this.translate(\"ClientApp.FrontOffice.Portal.MenuSetting.UploadedImageSizeMustLessThan\") +\r\n max_size / 1000 +\r\n this.translate(\"ClientApp.FrontOffice.Portal.MenuSetting.BeKb\");\r\n this.sts.showDialog(error, this.translate(\"ClientApp.FrontOffice.Portal.MenuSetting.Error\"));\r\n return false;\r\n }\r\n const reader = new FileReader();\r\n reader.onload = (e: any) => {\r\n let image = new Image();\r\n image.src = e.target.result;\r\n\r\n image.onload = (rs: any): any => {\r\n const img_height = rs.currentTarget[\"height\"];\r\n const img_width = rs.currentTarget[\"width\"];\r\n\r\n if (img_height > max_height || img_width > max_width) {\r\n let error = this.translate(\"ClientApp.FrontOffice.Portal.MenuSetting.ImageSizeNotAllowed\");\r\n this.sts.showDialog(error, this.translate(\"ClientApp.FrontOffice.Portal.MenuSetting.Error\"));\r\n return false;\r\n } else {\r\n this.logoFormData.append(\"logoImage\", file);\r\n this.httpCommonService\r\n .upload(\"Peripheral/RestaurantLogo\", this.logoFormData)\r\n .pipe(take(1))\r\n .subscribe(\r\n (res: any) => {\r\n if (res) {\r\n this.model = res;\r\n this.sts.showToast(\"success\", this.translate(\"ClientApp.FrontOffice.Portal.MenuSetting.LogoSuccessfullyLoaded\"));\r\n }\r\n },\r\n (err) => {\r\n this.sts.showToast(\"danger\", this.translate(\"ClientApp.FrontOffice.Portal.MenuSetting.ErrorLoading\"));\r\n }\r\n );\r\n }\r\n };\r\n };\r\n\r\n reader.readAsDataURL(file);\r\n }\r\n }\r\n }\r\n\r\n saveMenuSetting() {\r\n this.httpCommonService\r\n .create(\"Peripheral/MenuSetting\", this.formGroup.value)\r\n .pipe(take(1))\r\n .subscribe((res) => {\r\n if (res) this.sts.showToast(\"success\", this.translate(\"ClientApp.FrontOffice.Portal.MenuSetting.InformationSuccessfullySaved\"));\r\n });\r\n }\r\n\r\n getMenuSetting() {\r\n this.httpCommonService\r\n .get(\"Peripheral/MenuSetting\")\r\n .pipe(take(1))\r\n .subscribe((x: any) => {\r\n this.model = x;\r\n this.setValues();\r\n });\r\n }\r\n\r\n private setValues() {\r\n this.setValue(\"showAllCategories\", this.model.ShowAllCategories);\r\n this.setValue(\"instagram\", this.model.Instagram);\r\n this.setValue(\"telegram\", this.model.Telegram);\r\n this.setValue(\"twitter\", this.model.Twitter);\r\n this.setValue(\"facebook\", this.model.Facebook);\r\n this.setValue(\"whatsApp\", this.model.WhatsApp);\r\n this.setValue(\"website\", this.model.Website);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n

{{ \"ClientApp.FrontOffice.Portal.MenuSetting.MenuSettings\" | translate }}

\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \"\"\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { ItemImageComponent } from \"./item-image/item-image.component\";\r\nimport { ItemImageUploaderComponent } from \"./item-image/item-image-uploader/item-image-uploader.component\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { ItemCategoriesImageComponent } from \"./item-categories-image/item-categories-image.component\";\r\nimport { ItemCategoriesSelectComponent } from \"./item-categories-image/item-categories-select/item-categories-select.component\";\r\nimport { MenuSettingComponent } from \"./menu-setting/menu-setting.component\";\r\nimport { ConnectOnlineMenuComponent } from \"./connect-online-menu/connect-online-menu.component\";\r\nimport { RahkaranFormComponent } from \"./rahkaran/rahkaran-form/rahkaran-form.component\";\r\nimport { RahkaranListComponent } from \"./rahkaran/rahkaran-list/rahkaran-list.component\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { RahkaranSettingComponent } from \"./rahkaran/rahkaran-setting/rahkaran-setting.component\";\r\n\r\nconst components = [\r\n ItemImageComponent,\r\n ItemImageUploaderComponent,\r\n ItemCategoriesImageComponent,\r\n ItemCategoriesSelectComponent,\r\n MenuSettingComponent,\r\n ConnectOnlineMenuComponent,\r\n RahkaranFormComponent,\r\n RahkaranListComponent,\r\n RahkaranSettingComponent\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class PortalModule {}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BaseService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-service.component\";\r\nimport { ItemCategory } from \"../catalog/model/item-category.model\";\r\nimport { ConfigurationService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class PortalService extends BaseService {\r\n public itemCategoryList: ItemCategory[] = [];\r\n public baseURL;\r\n public itemImages;\r\n public itemCategoryImages;\r\n constructor(private conf: ConfigurationService) {\r\n super();\r\n this.baseURL = conf.baseUrl;\r\n this.getItemCategories();\r\n this.getItemImages();\r\n this.getItemCategoriesImages();\r\n }\r\n\r\n public getItemCategories(): void {\r\n const computerName: string = this.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .get(\"ItemCategory/GetOrderItemCategory\" + (computerName ? \"?ComputerName=\" + computerName : \"\"))\r\n .pipe(take(1))\r\n .subscribe((data: ItemCategory[]) => {\r\n this.itemCategoryList = data;\r\n });\r\n }\r\n\r\n getItemImages(): void {\r\n this.httpCommonService\r\n .get(\"Peripheral/ItemImage\")\r\n .pipe(take(1))\r\n .subscribe((data: any) => {\r\n this.itemImages = data;\r\n });\r\n }\r\n\r\n getItemCategoriesImages(): void {\r\n this.httpCommonService\r\n .get(\"Peripheral/SelectedItemCategoriesImage\")\r\n .pipe(take(1))\r\n .subscribe((data) => {\r\n this.itemCategoryImages = data;\r\n });\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport * as moment from \"moment\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Invoice } from \"src/app/frontoffice/order/model/invoice.model\";\r\nimport { Rahkaran } from \"../rahkaran.model\";\r\n\r\n@Component({\r\n selector: \"ngx-rahkaran-form\",\r\n templateUrl: \"./rahkaran-form.component.html\",\r\n styleUrls: [\"./rahkaran-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RahkaranFormComponent extends BaseFormComponent {\r\n deactivateSave: boolean = false;\r\n erroremessage: string;\r\n itemColumns: form_control[];\r\n DateNow: string;\r\n invoiceList: Invoice[];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"Rahkaran\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.Rahkaran\");\r\n super.ngOnInit();\r\n const m = moment();\r\n this.DateNow = m.locale(\"fa\").format(\"YYYY/MM/DD\");\r\n }\r\n\r\n SetInvoiceFactor() {\r\n this.model.StartDate = this.formGroup.controls[\"StartDate\"].value;\r\n this.model.EndDate = this.formGroup.controls[\"EndDate\"].value;\r\n this.httpCommonService\r\n .create(\"Rahkaran/GetRahkaranInvoices\", this.model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n this.invoiceList = data.Data;\r\n },\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n\r\n setdefault(): void {\r\n if (!this.model.StartDate) this.model.StartDate = this.DateNow as any;\r\n if (!this.model.EndDate) this.model.EndDate = this.DateNow as any;\r\n }\r\n\r\n addControl(): void {\r\n this.setValue(\"StartDate\", this.model.StartDate);\r\n this.setValue(\"EndDate\", this.model.EndDate);\r\n }\r\n async save() {\r\n this.SetInvoiceFactor();\r\n }\r\n}\r\n","\r\n\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { RahkaranFormComponent } from \"../rahkaran-form/rahkaran-form.component\";\r\nimport { OrderService } from \"src/app/frontoffice/order/order.service\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\n@Component({\r\n selector: \"ngx-rahkaran-list\",\r\n templateUrl: \"./rahkaran-list.component.html\",\r\n styleUrls: [\"./rahkaran-list.component.scss\"],\r\n})\r\nexport class RahkaranListComponent extends BaseListComponent {\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, public storage: LocalStoreManager) {\r\n super();\r\n this.inputEditorform = RahkaranFormComponent;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.apiName = \"Rahkaran\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.Rahkaran\");\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { RahkaranSetting } from \"../rahkaran.model\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-rahkaran-setting\",\r\n templateUrl: \"./rahkaran-setting.component.html\",\r\n styleUrls: [\"./rahkaran-setting.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RahkaranSettingComponent extends BaseFormComponent {\r\n dataList: RahkaranSetting[] = [];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, __id: FormContainerModel, _tabsservice: TabularService) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"RahkaranSetting\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.Pages.PageMenu.RahkaranSetting\");\r\n const list = (await this.httpCommonService.get(this.apiName).pipe(take(1)).toPromise()) as any[];\r\n if (list.length) this.currentrow = list[0];\r\n super.ngOnInit();\r\n }\r\n\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n this.columns.forEach((x) => ((x.isFloat = null), (x.userClass = null)));\r\n this.cd.markForCheck();\r\n }\r\n\r\n addControl() {\r\n if (this.formGroup) {\r\n this.setValue(\"BankAccountId\", this.model.BankId);\r\n this.setValue(\"Cash\", this.model.CashId);\r\n this.setValue(\"AccountingOperation\", this.model.AccountingOperationId);\r\n this.setValue(\"CashFlowFactort\", this.model.CashFlowFactorId);\r\n }\r\n }\r\n GetProductInfo() {\r\n this.httpCommonService\r\n .getList(\"Rahkaran/GetRahkaranInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n console.log(data);\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { EntityBase } from 'projects/sepidz-web-framework/src/lib/models/entity-base.model';\r\nimport { PrintTemplate } from './print-template.model';\r\n\r\nexport class PrintPolicy extends EntityBase {\r\n public Title: string;\r\n public PrintTimeId?: number;\r\n public PrintTimeTitle: string;\r\n public PrintTimeCode?: number;\r\n public PrintTemplateId: number;\r\n public PrintTemplateName: string;\r\n public Printers: PrintPolicyPrinter[];\r\n public Items: PrintPolicyItem[];\r\n public Categories: PrintPolicyItemCategory[];\r\n public IgnoredItems: PrintPolicyIgnoredItem[];\r\n public SaleMethodBranches: PrintPolicySaleMethodBranch[];\r\n public Salons: PrintPolicySalon[];\r\n public Dependents: PrintPolicyDependency[];\r\n public Description: string;\r\n public PrintTemplate : PrintTemplate ;\r\n public HasLocalSetting:boolean;\r\n public IsOrderPrint:boolean;\r\n public IsReceiptPrint:boolean;\r\n public NonDefaultPrinting:boolean;\r\n public LocalServiceIp : string;\r\n public ComputerName: string;\r\n public InvalidChangeTemplate: boolean;\r\n}\r\n\r\nexport class PrintPolicyPrinter extends EntityBase {\r\n public Name: string;\r\n public PrintPolicyId: number;\r\n public PrintPolicy : PrintPolicy;\r\n}\r\nexport enum PrintTemplateType\r\n{\r\n None = 1,\r\n Preparation = 2,\r\n Customer = 3,\r\n}\r\nexport class PrintPolicyItem extends EntityBase {\r\n public ItemId: number;\r\n public PrintPolicyId: number;\r\n}\r\n\r\nexport class PrintPolicyItemCategory extends EntityBase {\r\n public ItemCategoryId: number;\r\n public PrintPolicyId: number;\r\n}\r\n\r\nexport class PrintPolicyIgnoredItem extends EntityBase {\r\n public ItemId: number;\r\n public PrintPolicyId: number;\r\n}\r\n\r\nexport class PrintPolicySaleMethodBranch extends EntityBase {\r\n public SaleMethodBranchId: number;\r\n public PrintPolicyId: number;\r\n}\r\n\r\nexport class PrintPolicySalon extends EntityBase {\r\n public SalonId: number;\r\n public PrintPolicyId: number;\r\n}\r\n\r\nexport class PrintPolicyDependency extends EntityBase {\r\n public DependentPrintPolicyId: number;\r\n public PrintPolicyId: number;\r\n public PrincipalPrintPolicy : PrintPolicy;\r\n DependentPrintPolicy : any;\r\n}\r\n\r\nexport enum PrintPolicyPrintTimeEnum {\r\n PreparationPrint = 1,\r\n CustomerPrint = 2\r\n}\r\nexport class PrintTemplateModel extends EntityBase{\r\n public title: string;\r\n}\r\n\r\nexport class PrintPolicyValidationInfo {\r\n /// \r\n /// کالا\r\n /// \r\n public ItemsIds: number[];\r\n\r\n /// \r\n /// گروه کال\r\n /// \r\n public CategoriIds: number[];\r\n\r\n /// \r\n /// سالن\r\n /// \r\n public SalonsIds: number[];\r\n\r\n /// \r\n /// نحوه فروش\r\n /// \r\n public SaleMethodIds: number[];\r\n\r\n /// \r\n /// نوع سیاست چاپ\r\n /// \r\n public PrintTimeId: number;\r\n /// \r\n /// کد نوع سیاست چاپ\r\n /// \r\n public PrintTimeCode: number;\r\n /// \r\n /// چاپگر محلی بلی/خیر\r\n /// \r\n public PrinterIsDefault?: boolean;\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport {\r\n PrintPolicy,\r\n PrintPolicyPrinter,\r\n PrintPolicyItem,\r\n PrintPolicyItemCategory,\r\n PrintPolicyIgnoredItem,\r\n PrintPolicySaleMethodBranch,\r\n PrintPolicySalon,\r\n PrintPolicyDependency,\r\n PrintPolicyPrintTimeEnum,\r\n} from \"../model/print-policy.model\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { Item } from \"../../catalog/model/item.model\";\r\nimport { AccountService, LocalStoreManager, LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Lookup, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { SoftWareLicenseKind } from \"../../../../../projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { DialogType } from \"../../../../../projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { SplashScreenService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/SplashScreenService\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\n\r\n@Component({\r\n selector: \"ngx-print-policy-form\",\r\n templateUrl: \"./print-policy-form.component.html\",\r\n styleUrls: [\"./print-policy-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PrintPolicyFormComponent extends BaseFormComponent {\r\n haserror: boolean = false;\r\n erroremessage: string;\r\n Categories: number[] = [];\r\n Items: number[] = [];\r\n IgnoredItems: number[] = [];\r\n ItemWithCategory: Item[] = [];\r\n IgnoredItemsWithCategory: Item[] = [];\r\n Printers: any;\r\n SaleMethodBranches: number[] = [];\r\n Salons: number[] = [];\r\n Dependents: number[] = [];\r\n PrintPolicyDependencies: PrintPolicy[] = [];\r\n PrintPolicies: PrintPolicy[] = [];\r\n customerPrint: boolean = false;\r\n printTime: Lookup[] = [];\r\n isLodes: boolean = false;\r\n IsokForRefresh: boolean = true;\r\n PrinterList: any[] = [];\r\n islightVersion: boolean = false;\r\n islightVersionLimitation: boolean = false;\r\n PrinterPolicyList: PrintPolicy[];\r\n constructor(\r\n private lookupService: LookupService,\r\n private accountservice: AccountService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n public splashScreenService: SplashScreenService,\r\n public splashFormService: SplashFormService,\r\n private storage: LocalStoreManager\r\n ) {\r\n super(selectorService, cd);\r\n this.PreData();\r\n }\r\n\r\n PreData() {\r\n if (this.accountservice.authService.currentInformation().SepidzWebKind === SoftWareLicenseKind.RestaurantLightWeb) {\r\n this.islightVersion = true;\r\n this.httpCommonService\r\n .getList(\"PrintPolicy\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: PrintPolicy[]) => {\r\n if (data) {\r\n this.PrinterPolicyList = data;\r\n if (this.currentrow?.Id && data?.length == 1) {\r\n this.islightVersionLimitation = false;\r\n } else {\r\n if (data?.length >= 1) {\r\n this.islightVersionLimitation = true;\r\n if (this.currentrow?.Id) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.PrintPolicy.LiteVersionNotAllowAccessAboveOne\"),\r\n this.translate(\"ClientApp.FrontOffice.PrintPolicy.ErrorMessage\"),\r\n DialogType.alert,\r\n () => {\r\n this.close();\r\n }\r\n );\r\n return;\r\n }\r\n } else {\r\n this.islightVersionLimitation = false;\r\n }\r\n }\r\n }\r\n this.FillFirstData();\r\n },\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n } else {\r\n this.FillFirstData();\r\n }\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"PrintPolicy\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.PrintPolicy.PrintConfiguration\");\r\n super.ngOnInit();\r\n }\r\n\r\n FillFirstData() {\r\n if (this.model && !this.model.PrintTimeId) {\r\n this.lookupService\r\n .getLookupbyCategory(\"GNR\", \"PrintTime\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (x) => {\r\n this.printTime = x;\r\n const findItem = x.find((f) => f.Code == PrintPolicyPrintTimeEnum.PreparationPrint);\r\n this.model.PrintTimeId = findItem.Id;\r\n\r\n this.model.PrintTimeTitle = findItem.Title;\r\n this.model.PrintTimeCode = findItem.Code;\r\n this.setValue(\"PrintTimeId\", findItem.Id);\r\n this.setValue(\"PrintTimeTitle\", findItem.Title);\r\n this.setValue(\"PrintTimeCode\", findItem.Code);\r\n });\r\n }\r\n if (!this.accountService?.authService?.currentBranch?.HasLocalService) {\r\n this.httpCommonService\r\n .getList(\"PrintPolicy/ReadPrintersLookUp\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: PrintPolicy[]) => {\r\n if (data) {\r\n this.PrinterList = data;\r\n if (this.islightVersionLimitation && this.PrinterPolicyList?.length > 0) {\r\n this.PrinterList = this.PrinterList.filter((f) => f.Title == this.PrinterPolicyList[0].Printers[0].Name);\r\n }\r\n }\r\n },\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n } else {\r\n const url = \"http://\" + this.accountService.authService.currentBranch.LocalServiceIp + \"/GetPrinters\";\r\n this.httpCommonService\r\n .getCustom(url)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n if (data) {\r\n this.PrinterList = data;\r\n }\r\n },\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n }\r\n\r\n setdefault() {\r\n if (this.model?.Id && this.model?.LocalServiceIp) {\r\n const url = \"http://\" + this.model.LocalServiceIp + \"/GetPrinters\";\r\n this.httpCommonService\r\n .getCustom(url)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n if (data) {\r\n this.PrinterList = data;\r\n }\r\n },\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n if (this.model) this.ReadPrintPolicies(this.model.Id ? this.model.Id : null);\r\n if (!this.model.IgnoredItems) this.model.IgnoredItems = [];\r\n if (!this.model.Items) this.model.Items = [];\r\n if (!this.model.Categories) this.model.Categories = [];\r\n if (!this.model.Printers) this.model.Printers = [];\r\n if (!this.model.SaleMethodBranches) this.model.SaleMethodBranches = [];\r\n if (!this.model.Salons) this.model.Salons = [];\r\n if (!this.model.Dependents) this.model.Dependents = [];\r\n if (!this.Printers) {\r\n this.Printers = [];\r\n }\r\n\r\n this.model?.Categories?.forEach((x) => {\r\n if (!this.Categories.some((d) => d === x.ItemCategoryId)) this.Categories.push(x.ItemCategoryId);\r\n });\r\n this.model?.IgnoredItems?.forEach((x) => {\r\n if (!this.IgnoredItems.some((d) => d === x.ItemId)) this.IgnoredItems.push(x.ItemId);\r\n });\r\n this.model?.Items?.forEach((x) => {\r\n if (!this.Items.some((d) => d === x.ItemId)) this.Items.push(x.ItemId);\r\n });\r\n if (this.islightVersion) {\r\n this.Printers = this.model.Printers[0].Name;\r\n } else {\r\n this.model?.Printers?.forEach((x) => {\r\n this.Printers.push(x.Name);\r\n });\r\n }\r\n\r\n this.model?.SaleMethodBranches?.forEach((x) => {\r\n if (!this.SaleMethodBranches.some((d) => d === x.SaleMethodBranchId)) this.SaleMethodBranches.push(x.SaleMethodBranchId);\r\n });\r\n this.model?.Salons?.forEach((x) => {\r\n if (!this.Salons.some((d) => d === x.SalonId)) this.Salons.push(x.SalonId);\r\n });\r\n this.model?.Dependents?.forEach((x) => {\r\n if (!this.Dependents.some((d) => d === x.DependentPrintPolicyId)) this.Dependents.push(x.DependentPrintPolicyId);\r\n });\r\n\r\n this.valueChange();\r\n if (this.model.PrintTimeId) {\r\n this.onPrintTimeIdChanges(this.model.PrintTimeId);\r\n }\r\n this.setComputerName();\r\n }\r\n\r\n addControl() {\r\n if (this.formGroup) {\r\n this.setValue(\"IgnoredItems\", this.IgnoredItems);\r\n this.setValue(\"Items\", this.Items);\r\n this.setValue(\"Categories\", this.Categories);\r\n this.setValue(\"Printers\", this.Printers);\r\n this.setValue(\"PrintTemplateId\", this.model.PrintTemplateId);\r\n this.setValue(\"SaleMethodBranches\", this.SaleMethodBranches);\r\n this.setValue(\"Salons\", this.Salons);\r\n this.setValue(\"Dependents\", this.Dependents);\r\n this.setValue(\"HasLocalSetting\", this.model.HasLocalSetting);\r\n }\r\n if (this.model.PrintTimeCode === PrintPolicyPrintTimeEnum.CustomerPrint) {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"IsOrderPrint\") x.formVisible = false;\r\n if (x.name === \"IsReceiptPrint\") x.formVisible = true;\r\n });\r\n }\r\n if (this.currentrow) {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"PrintPolicyStencil\") x.formVisible = false;\r\n });\r\n }\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"PrintPolicyStencil\") {\r\n if (!x.formVisible) {\r\n this.orignalColumns.filter((c) => c.name === \"Description\")[0].userClass = \"select-sm\";\r\n }\r\n }\r\n });\r\n // if (x.name == \"PrintTimeId\") x.isFloat = 0;\r\n // });\r\n // }\r\n this.cd.markForCheck();\r\n this.formGroup\r\n ?.get(\"PrintTimeId\")\r\n ?.valueChanges?.pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.onPrintTimeIdChanges(x);\r\n });\r\n this.formGroup\r\n ?.get(\"HasLocalSetting\")\r\n ?.valueChanges?.pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.showLocalSetting();\r\n });\r\n }\r\n\r\n valueChange() {\r\n if (this.formGroup) {\r\n this.Categories = this.formGroup.controls[\"Categories\"]?.value;\r\n this.Items = this.formGroup.controls[\"Items\"]?.value;\r\n this.IgnoredItems = this.formGroup.controls[\"IgnoredItems\"]?.value;\r\n }\r\n\r\n this.httpCommonService\r\n .createlist(\"Item/GetItemWithCategory\", this.Categories)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x: Item[]) => {\r\n this.ItemWithCategory = x;\r\n this.selectorService.setDataList(\"Items\", this.ItemWithCategory);\r\n var list: number[] = [];\r\n this.Items?.forEach((x) => {\r\n if (this.ItemWithCategory.some((i) => i.Id === x)) {\r\n list.push(x);\r\n }\r\n });\r\n this.Items = list;\r\n this.formGroup.controls[\"Items\"].setValue(this.Items);\r\n });\r\n\r\n this.httpCommonService\r\n .createlist(\"Item/GetIgnoredItem\", this.Categories)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x: Item[]) => {\r\n this.IgnoredItemsWithCategory = x;\r\n this.selectorService.setDataList(\"IgnoredItems\", this.IgnoredItemsWithCategory);\r\n let list: number[] = [];\r\n this.IgnoredItems?.forEach((x) => {\r\n if (this.IgnoredItemsWithCategory.some((i) => i.Id === x)) {\r\n list.push(x);\r\n }\r\n });\r\n this.IgnoredItems = list;\r\n this.formGroup.controls[\"IgnoredItems\"].setValue(this.IgnoredItems);\r\n });\r\n }\r\n\r\n isValid(): boolean {\r\n this.erroremessage = undefined;\r\n this.haserror = false;\r\n if (this.formGroup?.controls[\"Printers\"]?.value?.length <= 0) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.PrintPolicy.SelectingLeastOnePrinterRequired\");\r\n } else if (!this.formGroup?.controls[\"PrintTemplateId\"]?.value) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.PrintPolicy.SelectingPrintTemplateRequired\");\r\n } else if (!this.formGroup?.controls[\"PrintTimeId\"]?.value) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.PrintPolicy.SelectingPrintPolicyTypeRequired\");\r\n }\r\n return !this.haserror;\r\n }\r\n\r\n beforupdate() {\r\n if (!this.formGroup.controls[\"LocalServiceIp\"].value && this.formGroup.controls[\"HasLocalSetting\"].value) {\r\n this.sts.showDialog(this.translate(\"ClientApp.FrontOffice.PrintPolicy.LocalServiceAddressMandatory\"), \"\");\r\n return;\r\n }\r\n this.formGroup.controls.PrintPolicyStencil.setValue(null);\r\n this.Categories = this.formGroup.value.Categories;\r\n this.model?.Categories?.forEach((x) => {\r\n if (!this.Categories.some((r) => r === x.ItemCategoryId)) x.State = RowState.Delete;\r\n });\r\n this.Categories?.forEach((x) => {\r\n if (!this.model.Categories.some((r) => r.ItemCategoryId === x)) {\r\n var category: PrintPolicyItemCategory = {};\r\n category.ItemCategoryId = x;\r\n category.PrintPolicyId = this.model.Id;\r\n category.State = RowState.New;\r\n this.model.Categories.push(category);\r\n }\r\n });\r\n this.setValue(\"Categories\", this.model?.Categories);\r\n\r\n this.IgnoredItems = this.formGroup.value.IgnoredItems;\r\n this.model?.IgnoredItems?.forEach((x) => {\r\n if (!this.IgnoredItems.some((r) => r === x.ItemId)) x.State = RowState.Delete;\r\n });\r\n this.IgnoredItems?.forEach((x) => {\r\n if (!this.model.IgnoredItems.some((r) => r.ItemId === x)) {\r\n var ignoredItem: PrintPolicyIgnoredItem = {};\r\n ignoredItem.ItemId = x;\r\n ignoredItem.PrintPolicyId = this.model.Id;\r\n ignoredItem.State = RowState.New;\r\n this.model.IgnoredItems.push(ignoredItem);\r\n }\r\n });\r\n this.setValue(\"IgnoredItems\", this.model?.IgnoredItems);\r\n\r\n this.Items = this.formGroup.value.Items;\r\n this.model?.Items?.forEach((x) => {\r\n if (!this.Items.some((r) => r === x.ItemId)) x.State = RowState.Delete;\r\n });\r\n this.Items?.forEach((x) => {\r\n if (!this.model.Items.some((r) => r.ItemId === x)) {\r\n var item: PrintPolicyItem = {};\r\n item.ItemId = x;\r\n item.PrintPolicyId = this.model.Id;\r\n item.State = RowState.New;\r\n this.model.Items.push(item);\r\n }\r\n });\r\n this.setValue(\"Items\", this.model.Items);\r\n\r\n this.Printers = this.formGroup.value?.Printers;\r\n this.model?.Printers?.forEach((x) => {\r\n //if (!this.Printers.some(r => r === x.Name))\r\n x.State = RowState.Delete;\r\n });\r\n if (!this.islightVersion) {\r\n this.Printers?.forEach((x) => {\r\n var printPolicyPrinter: PrintPolicyPrinter = {};\r\n printPolicyPrinter.Name = x;\r\n printPolicyPrinter.PrintPolicyId = this.model.Id;\r\n printPolicyPrinter.State = RowState.New;\r\n this.model.Printers.push(printPolicyPrinter);\r\n });\r\n this.setValue(\"Printers\", this.model.Printers);\r\n } else {\r\n var printPolicyPrinter: PrintPolicyPrinter = {};\r\n printPolicyPrinter.Name = this.Printers.toString();\r\n printPolicyPrinter.PrintPolicyId = this.model.Id;\r\n printPolicyPrinter.State = RowState.New;\r\n this.model.Printers.push(printPolicyPrinter);\r\n this.formGroup.controls[\"Printers\"].setValue(this.model.Printers);\r\n }\r\n\r\n this.SaleMethodBranches = this.formGroup.value.SaleMethodBranches;\r\n this.model.SaleMethodBranches?.forEach((x) => {\r\n if (!this.SaleMethodBranches.some((r) => r === x.SaleMethodBranchId)) x.State = RowState.Delete;\r\n });\r\n this.SaleMethodBranches?.forEach((x) => {\r\n if (!this.model.SaleMethodBranches.some((r) => r.SaleMethodBranchId === x)) {\r\n var printPolicySaleMehod: PrintPolicySaleMethodBranch = {};\r\n printPolicySaleMehod.SaleMethodBranchId = x;\r\n printPolicySaleMehod.PrintPolicyId = this.model.Id;\r\n printPolicySaleMehod.State = RowState.New;\r\n this.model.SaleMethodBranches.push(printPolicySaleMehod);\r\n }\r\n });\r\n this.setValue(\"SaleMethodBranches\", this.model.SaleMethodBranches);\r\n\r\n this.Salons = this.formGroup.value.Salons;\r\n this.model?.Salons?.forEach((x) => {\r\n if (!this.Salons.some((r) => r === x.SalonId)) x.State = RowState.Delete;\r\n });\r\n this.Salons?.forEach((x) => {\r\n if (!this.model.Salons.some((r) => r.SalonId === x)) {\r\n var printPolicySalon: PrintPolicySalon = {};\r\n printPolicySalon.SalonId = x;\r\n printPolicySalon.PrintPolicyId = this.model.Id;\r\n printPolicySalon.State = RowState.New;\r\n this.model.Salons.push(printPolicySalon);\r\n }\r\n });\r\n this.setValue(\"Salons\", this.model.Salons);\r\n\r\n this.Dependents = this.formGroup.value?.Dependents;\r\n this.model?.Dependents?.forEach((x) => {\r\n if (!this.Dependents.some((r) => r === x.DependentPrintPolicyId)) x.State = RowState.Delete;\r\n });\r\n this.Dependents?.forEach((x) => {\r\n if (!this.model.Dependents.some((r) => r.DependentPrintPolicyId === x) && x !== this.model.Id) {\r\n var printPolicyDependency: PrintPolicyDependency = {};\r\n printPolicyDependency.DependentPrintPolicyId = x;\r\n printPolicyDependency.PrintPolicyId = this.model.Id;\r\n printPolicyDependency.State = RowState.New;\r\n this.model.Dependents.push(printPolicyDependency);\r\n }\r\n });\r\n this.setValue(\"Dependents\", this.model.Dependents);\r\n }\r\n\r\n saveHasError() {\r\n this.model.Printers = [];\r\n this.formGroup.controls[\"Printers\"].setValue(this.Printers);\r\n }\r\n\r\n setMaxCode() {}\r\n\r\n ReadPrintPolicies(id?: number) {\r\n this.httpCommonService\r\n .getItem(\"PrintPolicy/GetPrintPolicies\", id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: PrintPolicy[]) => {\r\n if (data) {\r\n this.PrintPolicies = data;\r\n this.PrintPolicyDependencies = this.PrintPolicies.filter(\r\n (x) => this.printTime.find((p) => p.Id == x.PrintTimeId).Code === PrintPolicyPrintTimeEnum.PreparationPrint\r\n );\r\n }\r\n });\r\n }\r\n\r\n ngAfterViewInit(): void {}\r\n\r\n setComputerName() {\r\n if (this.isNewRow) {\r\n const computerName: string = this.storage.getData(ClearableCache.ComputerName);\r\n this.model.ComputerName = computerName;\r\n this.setValue(\"ComputerName\", this.model.ComputerName);\r\n } else this.setValue(\"ComputerName\", this.model.ComputerName);\r\n }\r\n\r\n showLocalSetting() {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"LocalServiceIp\" || x.name === \"ComputerName\" || x.name === \"Connectionbtn\")\r\n x.formVisible = this.formGroup.controls[\"HasLocalSetting\"].value;\r\n if (this.formGroup.controls[\"HasLocalSetting\"].value && x.name === \"LocalServiceIp\") x.required = true;\r\n });\r\n this.columns = this.orignalColumns.filter((f) => (!f.areaName || f.areaName === \"default\") && f.formVisible);\r\n }\r\n\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n this.orignalColumns.forEach((col) => {\r\n if (col.name === \"PrintTimeId\") col.required = true;\r\n });\r\n if (!this.orignalColumns.some((s) => s.name === \"Connectionbtn\")) {\r\n const Connectionbtn = new form_control();\r\n Connectionbtn.name = \"Connectionbtn\";\r\n Connectionbtn.formVisible = !!this.model?.Id;\r\n Connectionbtn.label = this.translate(\"ClientApp.FrontOffice.PrintPolicy.CommunicationTest\");\r\n Connectionbtn.userClass = \"connection-test\";\r\n Connectionbtn.columnNumber = 1;\r\n Connectionbtn.controlType = FormControlTypes.Button;\r\n this.orignalColumns.push(Connectionbtn);\r\n this.columns = this.orignalColumns;\r\n }\r\n }\r\n\r\n valueChangeByApiName(event: { KeyName: string; apiName: string; data: any }) {\r\n if (event?.KeyName === \"PrintPolicyStencil\" && event?.data) {\r\n this.setValue(\"Printers\", event.data.Printers);\r\n this.setValue(\"PrintTemplateId\", event.data.PrintTemplateId);\r\n this.setValue(\"Categories\", event.data.Categories);\r\n this.setValue(\"Items\", event.data.Items);\r\n this.setValue(\"IgnoredItems\", event.data.IgnoredItems);\r\n this.setValue(\"SaleMethodBranches\", event.data.SaleMethodBranches);\r\n this.setValue(\"Salons\", event.data.Salons);\r\n this.setValue(\"Dependents\", event.data.Dependents);\r\n this.setValue(\"PrintTimeId\", event.data.PrintTimeId);\r\n this.valueChange();\r\n }\r\n }\r\n onDynamicFormChanges(controlName) {\r\n if (controlName === \"Connectionbtn\") {\r\n this.ConnectionTest();\r\n }\r\n if (controlName?.Category == \"PrintTime\") {\r\n this.onPrintTimeIdChanges(controlName?.Id);\r\n }\r\n }\r\n private ConnectionTest(): void {\r\n try {\r\n if (!this.formGroup.controls[\"LocalServiceIp\"].value && this.formGroup.controls[\"HasLocalSetting\"].value) {\r\n this.sts.showDialog(this.translate(\"ClientApp.FrontOffice.PrintPolicy.LocalServiceAddressMandatory\"), \"\");\r\n return;\r\n }\r\n this.splashScreenService.startLoading();\r\n this.splashFormService.openDialog();\r\n if (!this.formGroup.controls[\"LocalServiceIp\"].value) {\r\n this.splashScreenService.stopLoading();\r\n this.splashFormService.closeLoading();\r\n return;\r\n }\r\n const url = \"http://\" + this.formGroup.controls[\"LocalServiceIp\"].value + \"/TestConnection\";\r\n this.httpCommonService\r\n .getCustom(url)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n if (data) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.PrintPolicy.ConnectionSuccessfullyEstablished\"),\r\n this.translate(\"ClientApp.FrontOffice.PrintPolicy.Attention\")\r\n );\r\n this.splashScreenService.stopLoading();\r\n this.splashFormService.closeLoading();\r\n const url = \"http://\" + this.formGroup.controls[\"LocalServiceIp\"].value + \"/GetPrinters\";\r\n this.httpCommonService\r\n .getCustom(url)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n if (data) {\r\n this.PrinterList = data;\r\n this.setValue(\"Printers\", []);\r\n }\r\n },\r\n (err) => {\r\n console.log(err);\r\n }\r\n );\r\n }\r\n },\r\n (err) => {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.PrintPolicy.CommunicationProblem\")} ` + err,\r\n this.translate(\"ClientApp.FrontOffice.PrintPolicy.Attention\")\r\n );\r\n this.splashScreenService.stopLoading();\r\n this.splashFormService.closeLoading();\r\n console.log(err);\r\n }\r\n );\r\n } catch (e) {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.PrintPolicy.CommunicationProblem\")} ` + e,\r\n this.translate(\"ClientApp.FrontOffice.PrintPolicy.Attention\")\r\n );\r\n console.log(e);\r\n this.splashScreenService.stopLoading();\r\n this.splashFormService.closeLoading();\r\n }\r\n }\r\n\r\n private onPrintTimeIdChanges(id: number): void {\r\n const findCode = this.printTime?.find((f) => f.Id == id)?.Code;\r\n this.customerPrint = findCode == PrintPolicyPrintTimeEnum.CustomerPrint;\r\n if (this.customerPrint) {\r\n this.clearDisableFields();\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"IsOrderPrint\") {\r\n x.formVisible = false;\r\n }\r\n if (x.name === \"IsReceiptPrint\") {\r\n x.formVisible = true;\r\n }\r\n });\r\n } else {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"IsOrderPrint\") {\r\n x.formVisible = true;\r\n }\r\n if (x.name === \"IsReceiptPrint\") {\r\n x.formVisible = false;\r\n }\r\n });\r\n }\r\n if (this.currentrow && !this.model?.HasLocalSetting) {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"HasLocalSetting\") {\r\n x.formVisible = false;\r\n x.required = false;\r\n }\r\n });\r\n } else {\r\n if (findCode == PrintPolicyPrintTimeEnum.CustomerPrint) {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"HasLocalSetting\") {\r\n x.formVisible = true;\r\n x.required = true;\r\n }\r\n if (findCode === PrintPolicyPrintTimeEnum.CustomerPrint) if (x.name === \"NonDefaultPrinting\") x.formVisible = true;\r\n if (x.name === \"LocalServiceIp\" || x.name === \"ComputerName\" || x.name === \"Connectionbtn\") {\r\n x.formVisible = this.model?.HasLocalSetting;\r\n x.required = false;\r\n }\r\n if (x.name === \"Title\") x.isFloat = 1;\r\n });\r\n } else {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name === \"HasLocalSetting\" || x.name === \"LocalServiceIp\" || x.name === \"ComputerName\" || x.name === \"Connectionbtn\")\r\n x.formVisible = false;\r\n if (x.name === \"Title\") x.isFloat = 1;\r\n if (findCode === PrintPolicyPrintTimeEnum.PreparationPrint) if (x.name === \"NonDefaultPrinting\") x.formVisible = false;\r\n });\r\n }\r\n }\r\n this.columns = this.orignalColumns.filter((f) => (!f.areaName || f.areaName === \"default\") && f.formVisible);\r\n }\r\n\r\n valueChangeWithName($event) {\r\n if ($event.name == \"HasLocalSetting\") {\r\n this.showLocalSetting();\r\n }\r\n }\r\n\r\n clearDisableFields(): void {\r\n this.model.Dependents = null;\r\n this.model.IgnoredItems = null;\r\n this.model.Items = null;\r\n this.model.Categories = null;\r\n this.setValue(\"Dependents\", null);\r\n this.setValue(\"IgnoredItems\", null);\r\n this.setValue(\"Items\", null);\r\n this.setValue(\"Categories\", null);\r\n }\r\n afterupdate() {\r\n super.afterupdate();\r\n const computerName = this.storage.getData(ClearableCache.ComputerName);\r\n this.httpCommonService\r\n .get(\"PrintPolicy/GetAllPrintPolicy\" + (computerName ? \"?ComputerName=\" + computerName : \"\"))\r\n .pipe(take(1))\r\n .subscribe((res: PrintPolicy[]) => {\r\n this.storage.savePermanentData(res, ClearableCache.PrintPolicy);\r\n });\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n {{ erroremessage }}\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { BaseListComponent } from 'projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component';\r\nimport { PrintPolicyFormComponent } from '../print-policy-form/print-policy-form.component';\r\n\r\n@Component({\r\n selector: 'ngx-print-policy-list',\r\n templateUrl: './print-policy-list.component.html',\r\n styleUrls: ['./print-policy-list.component.scss']\r\n})\r\nexport class PrintPolicyListComponent extends BaseListComponent {\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n constructor() {\r\n super()\r\n this.inputEditorform = PrintPolicyFormComponent;\r\n this.FillData();\r\n }\r\n ngOnInit() {\r\n this.apiName= \"PrintPolicy\";\r\n this.label = this.translate('ClientApp.FrontOffice.PrintPolicy.PrintPolicy');\r\n this.areaName = \"RestaurantSale\";\r\n }\r\n async FillData(){\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n if (currentBranch.RestaurantCallCenter) {\r\n if(this.accountService.authService.currentBranch.AccessToAllBranches){\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n \r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nimport { PrintPolicyFormComponent } from './print-policy-form/print-policy-form.component';\r\nimport { PrintPolicyListComponent } from './print-policy-list/print-policy-list.component';\r\n\r\nconst components =\r\n [\r\n PrintPolicyFormComponent,\r\n PrintPolicyListComponent\r\n ]\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class PrintPolicyModule { }\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { form_control, ngxMenuItem, Permission, SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { ReportInfo, StimulSoftReportComponent } from \"src/app/stimul-soft-report/stimul-soft-report.component\";\r\nimport { ReportKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { Invoice } from \"src/app/frontoffice/order/model/invoice.model\";\r\nimport { ITab, TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { PrintTemplate } from \"../model/print-template.model\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\n\r\n@Component({\r\n selector: \"ngx-sale-report-desiner\",\r\n templateUrl: \"./sale-report-desiner.component.html\",\r\n styleUrls: [\"./sale-report-desiner.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SaleReportDesinerComponent extends BaseFormComponent {\r\n constructor(\r\n private __id: FormContainerModel,\r\n _tabsservice: TabularService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef\r\n ) {\r\n super(selectorService, cd);\r\n this._id = __id;\r\n this.tabsservice = _tabsservice;\r\n }\r\n rowIsEditing: boolean = false;\r\n async ngOnInit() {\r\n this.apiName = \"SaleReportDesiner\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.SaleReportDesigner.SalesReportDesign\");\r\n super.ngOnInit();\r\n }\r\n changed($event) {\r\n if ($event && $event.Name) {\r\n this.model.PrintTemplateTypeName = $event.Name;\r\n this.model.PrintTemplateTypeTitle = $event.Title;\r\n }\r\n }\r\n async setColumns() {\r\n var col: form_control[] = [];\r\n col = [\r\n {\r\n name: \"PrintTemplateTypeId\",\r\n modelName: \"PrintTemplateTypeId\",\r\n controlType: FormControlTypes.dropdown,\r\n userClass: \"select-md\",\r\n listVisible: false,\r\n label: this.translate(\"ClientApp.FrontOffice.SaleReportDesigner.ReportTemplate\"),\r\n order: 0,\r\n textType: \"text\",\r\n withComma: false,\r\n formVisible: true,\r\n disabled: false,\r\n areaName: undefined,\r\n apiName: \"PrintTemplate/ReadPrintTemplateLookup\",\r\n displayMember: \"Title\",\r\n valueMember: \"Id\",\r\n systemName: undefined,\r\n category: undefined,\r\n DetailControlModels: undefined,\r\n },\r\n ];\r\n this.columns = col;\r\n this.orignalColumns = col;\r\n }\r\n createReport() {\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = \"Invoice\";\r\n saveReportFile.SystemKindName = \"SALE\";\r\n saveReportFile.CategoryName = \"Invoice\";\r\n\r\n if (!this.model.PrintTemplateTypeName) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SaleReportDesigner.PrintPatternNotSelected\"),\r\n this.translate(\"ClientApp.FrontOffice.SaleReportDesigner.Error\")\r\n );\r\n return;\r\n }\r\n this.httpCommonService\r\n .get(\"Invoice/GetSaleReportDesiner\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n let reportInfo: ReportInfo = {};\r\n reportInfo.reportKind = ReportKind.editReport;\r\n reportInfo.apiName = \"Invoice\";\r\n saveReportFile.FileName = this.model.PrintTemplateTypeName;\r\n saveReportFile.ReportTitle = this.model.PrintTemplateTypeTitle;\r\n reportInfo.dataList = [data];\r\n reportInfo.pathPreFix = \"FrontOffice\";\r\n reportInfo.saveReportFile = saveReportFile;\r\n const menu = {\r\n title: this.model.PrintTemplateTypeTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n // modulePath: MENU_ITEMS[0].target,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n async save() {\r\n this.createReport();\r\n }\r\n printReport() {\r\n if (!this.model.PrintTemplateTypeName) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SaleReportDesigner.PrintPatternNotSelected\"),\r\n this.translate(\"ClientApp.FrontOffice.SaleReportDesigner.Error\")\r\n );\r\n return;\r\n }\r\n\r\n this.httpCommonService\r\n .get(\"Invoice/GetSaleReportDesiner\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: Invoice) => {\r\n if (data) {\r\n if (!data.Items) data.Items = [];\r\n this.httpCommonService\r\n .create(\"Branch/Print\", { PrinterName: \"Microsoft Print to PDF\", TemplateName: this.model.PrintTemplateTypeName, List: [data] })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: Invoice) => {},\r\n (error) => this.getFailedHelper(error)\r\n );\r\n let reportInfo: ReportInfo = {};\r\n\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = \"Invoice\";\r\n saveReportFile.SystemKindName = \"SALE\";\r\n saveReportFile.CategoryName = \"Invoice\";\r\n\r\n reportInfo.reportKind = ReportKind.print;\r\n reportInfo.apiName = \"Invoice\";\r\n saveReportFile.FileName = this.model.PrintTemplateTypeName;\r\n saveReportFile.ReportTitle = this.model.PrintTemplateTypeTitle;\r\n reportInfo.reportName = this.model.PrintTemplateTypeName;\r\n reportInfo.reportTitle = this.model.PrintTemplateTypeTitle;\r\n reportInfo.dataList = [data];\r\n reportInfo.pathPreFix = \"FrontOffice\";\r\n reportInfo.saveReportFile = saveReportFile;\r\n const menu = {\r\n title: this.model.PrintTemplateTypeTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n // modulePath: MENU_ITEMS[0].target,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n previewReport() {\r\n if (!this.model.PrintTemplateTypeName) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SaleReportDesigner.PrintPatternNotSelected\"),\r\n this.translate(\"ClientApp.FrontOffice.SaleReportDesigner.Error\")\r\n );\r\n return;\r\n }\r\n let saveReportFile: SaveReportFile = {};\r\n saveReportFile.ReportTitle = this.label;\r\n saveReportFile.FileName = \"Invoice\";\r\n saveReportFile.SystemKindName = \"SALE\";\r\n saveReportFile.CategoryName = \"Invoice\";\r\n\r\n this.httpCommonService\r\n .get(\"Invoice/GetSaleReportDesiner\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: Invoice) => {\r\n if (data) {\r\n if (!data.Items) data.Items = [];\r\n let reportInfo: ReportInfo = {};\r\n reportInfo.reportKind = ReportKind.preview;\r\n reportInfo.apiName = \"Invoice\";\r\n saveReportFile.FileName = this.model.PrintTemplateTypeName;\r\n saveReportFile.ReportTitle = this.model.PrintTemplateTypeTitle;\r\n reportInfo.dataList = [data];\r\n reportInfo.pathPreFix = \"FrontOffice\";\r\n reportInfo.saveReportFile = saveReportFile;\r\n const menu = {\r\n title: this.model.PrintTemplateTypeTitle,\r\n isCloseable: true,\r\n active: true,\r\n responsive: true,\r\n componentType: StimulSoftReportComponent,\r\n // modulePath: MENU_ITEMS[0].target,\r\n data: [{ provide: ReportInfo, useValue: reportInfo }],\r\n };\r\n this.tabsservice.open(menu);\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SaleReportDesinerComponent } from './sale-report-desiner.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\n\r\nconst components =\r\n[\r\n SaleReportDesinerComponent,\r\n]\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class SaleReportDesinerModule { }\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup } from \"@angular/forms\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { AccountService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { HttpCommonService } from \"projects/sepidz-web-framework/src/lib/services/http-common.service\";\r\nimport { Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ReviewService } from \"src/app/review/review.service\";\r\n\r\n@Component({\r\n selector: \"ngx-costs-spent-review\",\r\n templateUrl: \"./costs-spent-review.component.html\",\r\n styleUrls: [\"./costs-spent-review.component.scss\"],\r\n})\r\nexport class CostsSpentReviewComponent implements OnInit, OnDestroy {\r\n ngUnsubscribe = new Subject();\r\n formGroup: UntypedFormGroup;\r\n activeTabTitle: string;\r\n BranchIds: number[] = [];\r\n CostsCategoryIds: number[] = [];\r\n CostsIds: number[] = [];\r\n hasPermission: boolean = false;\r\n IncludeDeletedFactors: boolean = false;\r\n GetCostsSpentListColumns: form_control[] = [];\r\n GetTotalCostsListByDateColumns: form_control[] = [];\r\n GetCostsCategoryListColumns: form_control[] = [];\r\n GetCostsListColumns: form_control[] = [];\r\n selected: string = \"\";\r\n public isMultiBranch =\r\n (this.accountService.authService.currentInformation().BranchingAdvancedEnabled ||\r\n this.accountService.authService.currentInformation().BranchingLightEnabled ||\r\n this.accountService.authService.currentInformation().RestaurantCallCenter) &&\r\n this.accountService.authService.currentBranch?.AccessToAllBranches;\r\n constructor(\r\n private service: ReviewService,\r\n private fb: UntypedFormBuilder,\r\n private accountService: AccountService,\r\n private translate: TranslateService,\r\n private httpCommonService: HttpCommonService,\r\n private sts: ShowToastrService,\r\n public tabsservice: TabularService\r\n ) {\r\n if (this.accountService.authService.currentInformation().BranchingLightEnabled) {\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.FrontOffice.Review.CostsSpentReview.AccessExpenseReportMenuNotAllowedLiteLicense\"),\r\n this.translate.instant(\"ClientApp.FrontOffice.Review.CostsSpentReview.Error\")\r\n );\r\n this.hasPermission = false;\r\n const costGroupTab = this.tabsservice.tabItemSubject?.value?.findIndex((x) => x.title == \"ClientApp.Pages.PageMenu.CostGroup\");\r\n this.tabsservice.close(costGroupTab);\r\n } else this.hasPermission = true;\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.BranchIds = undefined;\r\n this.CostsCategoryIds = undefined;\r\n this.CostsIds = undefined;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.service.startDate = new Date();\r\n this.service.endDate = new Date();\r\n this.service.ReportKey = \"CostsSpentReview\";\r\n this.service.startDate$.next(this.service.startDate);\r\n this.service.endDate$.next(this.service.endDate);\r\n this.formGroup = this.fb.group({\r\n BranchIds: this.BranchIds,\r\n CostsCategoryIds: this.CostsCategoryIds,\r\n CostsIds: this.CostsIds,\r\n });\r\n }\r\n selectTab($event) {\r\n this.setColumns($event.tabTitle);\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n setColumns(activeTabTitle: string) {\r\n switch (activeTabTitle) {\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.CostsSpentReview.CostsSpent\"):\r\n if (!this.GetCostsSpentListColumns || this.GetCostsSpentListColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"CostsSpentReview/GetCostsSpentColumns\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetCostsSpentListColumns = data as form_control[];\r\n this.GetCostsSpentListColumns = this.GetCostsSpentListColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.CostsSpentReview.TotalCostsByDate\"):\r\n if (!this.GetTotalCostsListByDateColumns || this.GetTotalCostsListByDateColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"CostsSpentReview/GetTotalCostsByDateColumns\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetTotalCostsListByDateColumns = data as form_control[];\r\n this.GetTotalCostsListByDateColumns = this.GetTotalCostsListByDateColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.CostsSpentReview.CostsCategory\"):\r\n if (!this.GetCostsCategoryListColumns || this.GetCostsCategoryListColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"CostsSpentReview/GetCostsCategoryColumns\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetCostsCategoryListColumns = data as form_control[];\r\n this.GetCostsCategoryListColumns = this.GetCostsCategoryListColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.CostsSpentReview.Costs\"):\r\n if (!this.GetCostsListColumns || this.GetCostsListColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"CostsSpentReview/GetCostsColumns\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetCostsListColumns = data as form_control[];\r\n this.GetCostsListColumns = this.GetCostsListColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n setSelectedFilter(filter: string) {\r\n if (this.selected === filter) this.selected = \"\";\r\n else this.selected = filter;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.CostsSpentReview.Branch\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.CostsSpentReview.CostsCategory\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.CostsSpentReview.Costs\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n 0 && isActveTab('ClientApp.FrontOffice.Review.CostsSpentReview.CostsSpent' | translate)\"\r\n name=\"CostsSpentList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.CostsSpentReview.CostsSpent' | translate\"\r\n apiName=\"CostsSpentReview/CostsSpentList\"\r\n areaName=\"RestaurantSale\"\r\n [groupable]=\"false\"\r\n [columns]=\"GetCostsSpentListColumns\"\r\n [filtering]=\"true\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"Code\"\r\n key=\"CostsSpentIds\"\r\n aggregatesColumnName=\"Amount\">\r\n \r\n \r\n \r\n \r\n \r\n 0 && isActveTab('ClientApp.FrontOffice.Review.CostsSpentReview.TotalCostsByDate' | translate)\r\n \"\r\n name=\"TotalCostsByDateList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.CostsSpentReview.TotalCostsByDate' | translate\"\r\n apiName=\"CostsSpentReview/TotalCostsByDateList\"\r\n areaName=\"RestaurantSale\"\r\n [groupable]=\"false\"\r\n [columns]=\"GetTotalCostsListByDateColumns\"\r\n [filtering]=\"true\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"ShamsiDate\"\r\n key=\"TotalCostsIds\"\r\n aggregatesColumnName=\"Amount, Count\">\r\n \r\n \r\n \r\n \r\n \r\n 0 && isActveTab('ClientApp.FrontOffice.Review.CostsSpentReview.CostsCategory' | translate)\"\r\n name=\"CostsCategoryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.CostsSpentReview.CostsCategory' | translate\"\r\n apiName=\"CostsSpentReview/CostsCategoryList\"\r\n areaName=\"RestaurantSale\"\r\n [groupable]=\"false\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"CostGroupTitle\"\r\n [columns]=\"GetCostsCategoryListColumns\"\r\n key=\"CostsCategoryIds\"\r\n aggregatesColumnName=\"PriceCount, AmountSpent\">\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n name=\"CostsList\"\r\n key=\"CostsIds\"\r\n [title]=\"'ClientApp.FrontOffice.Review.CostsSpentReview.FactorDetail' | translate\"\r\n apiName=\"CostsSpentReview/CostsList\"\r\n areaName=\"RestaurantSale\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"Code\"\r\n [columns]=\"GetCostsListColumns\"\r\n aggregatesColumnName=\"Amount, Count\">\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { ReportReviewModule } from \"src/app/review/review.module\";\r\nimport { CostsSpentReviewComponent } from \"./costs-spent-review.component\";\r\nconst components = [CostsSpentReviewComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, ReportReviewModule],\r\n})\r\nexport class CostsSpentReviewModule {}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { UntypedFormGroup, UntypedFormBuilder } from \"@angular/forms\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ReviewService } from \"src/app/review/review.service\";\r\nimport { AccountService, HttpCommonService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { Subject } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"ngx-customer-review\",\r\n templateUrl: \"./customer-review.component.html\",\r\n styleUrls: [\"./customer-review.component.scss\"],\r\n providers: [ReviewService],\r\n})\r\nexport class CustomerReviewComponent implements OnInit, OnDestroy {\r\n ngUnsubscribe = new Subject();\r\n formGroup: UntypedFormGroup;\r\n activeTabTitle: string;\r\n unSortableFilterable: string[] = [];\r\n SecurityReviewInfoColumns: form_control[] = [];\r\n BranchIds: number[] = [];\r\n SaleMethodIds: number[] = [];\r\n ZoneIds: number[] = [];\r\n InvoiceCommandIds: number[] = [];\r\n InvoiceStatusIds: number[] = [];\r\n InvoiceChangesIds: number[] = [];\r\n InvoicePayableChangeIds: number[] = [];\r\n CustomerCategoryIds: number[] = [];\r\n GetCustomerCategorySummaryListColumns: form_control[] = [];\r\n GetCustomerSummaryListColumns: form_control[];\r\n GetCustomercategoryColumns: form_control[];\r\n GetItemSummaryColumns: form_control[] = [];\r\n GetInvoiceSummaryListColumns: form_control[] = [];\r\n GetInvoiceItemSummaryListColumns: form_control[] = [];\r\n GetInvoiceReceiptPaymentSummaryListColumns: form_control[] = [];\r\n GetCustomerReceiptPaymentSummaryListColumns: form_control[] = [];\r\n selected: string = \"\";\r\n accountstatus = undefined;\r\n\r\n public isMultiBranch =\r\n (this.accountService.authService.currentInformation().BranchingAdvancedEnabled ||\r\n this.accountService.authService.currentInformation().BranchingLightEnabled ||\r\n this.accountService.authService.currentInformation().RestaurantCallCenter) &&\r\n this.accountService.authService.currentBranch?.AccessToAllBranches;\r\n\r\n constructor(\r\n private service: ReviewService,\r\n private fb: UntypedFormBuilder,\r\n private accountService: AccountService,\r\n private translate: TranslateService,\r\n private httpCommonService: HttpCommonService\r\n ) {}\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n\r\n this.formGroup = undefined;\r\n this.activeTabTitle = undefined;\r\n this.SecurityReviewInfoColumns = undefined;\r\n this.BranchIds = undefined;\r\n this.SaleMethodIds = undefined;\r\n this.ZoneIds = undefined;\r\n this.InvoiceCommandIds = undefined;\r\n this.InvoiceStatusIds = undefined;\r\n this.InvoiceChangesIds = undefined;\r\n this.InvoicePayableChangeIds = undefined;\r\n this.CustomerCategoryIds = undefined;\r\n this.GetCustomerCategorySummaryListColumns = undefined;\r\n this.GetCustomerSummaryListColumns = undefined;\r\n this.GetCustomercategoryColumns = undefined;\r\n this.GetInvoiceSummaryListColumns = undefined;\r\n this.GetInvoiceItemSummaryListColumns = undefined;\r\n this.GetItemSummaryColumns = undefined;\r\n this.GetInvoiceReceiptPaymentSummaryListColumns = undefined;\r\n this.GetCustomerReceiptPaymentSummaryListColumns = undefined;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.unSortableFilterable = [...this.unSortableFilterable,\"Mobile\", \"Title\"]\r\n this.service.startDate = new Date();\r\n this.service.endDate = new Date();\r\n this.service.ReportKey = \"CustomerReview\";\r\n this.service.startDate$.next(this.service.startDate);\r\n this.service.endDate$.next(this.service.endDate);\r\n this.formGroup = this.fb.group({\r\n SaleMethodIds: this.SaleMethodIds,\r\n BranchIds: this.BranchIds,\r\n ZoneIds: this.ZoneIds,\r\n InvoiceCommandIds: this.InvoiceCommandIds,\r\n InvoiceStatusIds: this.InvoiceStatusIds,\r\n InvoiceChangesIds: this.InvoiceChangesIds,\r\n InvoicePayableChangeIds: this.InvoicePayableChangeIds,\r\n IncludeCancelled: true,\r\n CustomerCategoryIds: this.CustomerCategoryIds,\r\n accountstatus: this.accountstatus,\r\n });\r\n }\r\n selectTab($event) {\r\n this.setColumns($event.tabTitle);\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n chartData: any[];\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n setColumns(activeTabTitle: string) {\r\n switch (activeTabTitle) {\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.CustomerReview.CustomerCategory\"):\r\n if (!this.GetCustomercategoryColumns || this.GetCustomercategoryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"CustomerReview/GetCustomercategoryColumns\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetCustomercategoryColumns = data as form_control[];\r\n this.GetCustomercategoryColumns = this.GetCustomercategoryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.CustomerReview.CustomerSummaryList\"):\r\n if (!this.GetCustomerSummaryListColumns || this.GetCustomerSummaryListColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"CustomerReview/GetCustomerSummaryListColumns\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetCustomerSummaryListColumns = data as form_control[];\r\n this.GetCustomerSummaryListColumns = this.GetCustomerSummaryListColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.CustomerReview.Factor\"):\r\n if (!this.GetInvoiceSummaryListColumns || this.GetInvoiceSummaryListColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"CustomerReview/GetInvoiceModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetInvoiceSummaryListColumns = data as form_control[];\r\n this.GetInvoiceSummaryListColumns = this.GetInvoiceSummaryListColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.CustomerReview.FactorDetail\"):\r\n if (!this.GetInvoiceItemSummaryListColumns || this.GetInvoiceItemSummaryListColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"CustomerReview/GetInvoiceItemModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetInvoiceItemSummaryListColumns = data as form_control[];\r\n this.GetInvoiceItemSummaryListColumns = this.GetInvoiceItemSummaryListColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.CustomerReview.PaymentSummaryList\"):\r\n if (!this.GetInvoiceReceiptPaymentSummaryListColumns || this.GetInvoiceReceiptPaymentSummaryListColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"CustomerReview/GetInvoiceReceiptPaymentInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetInvoiceReceiptPaymentSummaryListColumns = data as form_control[];\r\n this.GetInvoiceReceiptPaymentSummaryListColumns = this.GetInvoiceReceiptPaymentSummaryListColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.CustomerReview.ReceiptPaymentList\"):\r\n if (!this.GetCustomerReceiptPaymentSummaryListColumns || this.GetCustomerReceiptPaymentSummaryListColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"CustomerReview/GetCustomerReceiptPaymentInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetCustomerReceiptPaymentSummaryListColumns = data as form_control[];\r\n this.GetCustomerReceiptPaymentSummaryListColumns = this.GetCustomerReceiptPaymentSummaryListColumns.sort(\r\n (a, b) => a.order - b.order\r\n );\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Item\"):\r\n if (this.GetItemSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetItemSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetItemSummaryColumns = data as form_control[];\r\n this.GetItemSummaryColumns = this.GetItemSummaryColumns.filter(\r\n (x) =>\r\n x.name !== \"Total\" &&\r\n x.name !== \"TotalRounding\" &&\r\n x.name !== \"TotalTip\" &&\r\n x.name !== \"TotalShippingCost\" &&\r\n x.name !== \"PayableTotal\" &&\r\n x.name !== \"TotalDebit\" &&\r\n x.name !== \"TotalCredit\" &&\r\n x.name !== \"PayableTotal\" &&\r\n x.name !== \"Total\" &&\r\n x.name !== \"BranchTitle\"\r\n ).sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n setSelectedFilter(filter: string) {\r\n if (this.selected === filter) this.selected = \"\";\r\n else this.selected = filter;\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.CustomerReview.Branch\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.CustomerReview.SaleMethod\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.CustomerReview.Location\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.CustomerReview.FactorStatus\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.AccountStatus\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n 0 && isActveTab('ClientApp.FrontOffice.Review.CustomerReview.CustomerCategory' | translate)\"\r\n name=\"CustomerCategorySummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.CustomerReview.CustomerCategory' | translate\"\r\n apiName=\"CustomerReview/CustomerCategorySummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [groupable]=\"false\"\r\n [columns]=\"GetCustomercategoryColumns\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [filtering]=\"true\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"Title\"\r\n key=\"CustomerCategoryIds\"\r\n aggregatesColumnName=\"EndingAmount,DuringAmount,DuringCalculate,DeliveryPayableTotal,DeliveryDebit,InvoiceCount,PayableAmount,OpeningAmount\">\r\n \r\n \r\n \r\n \r\n \r\n 0 && isActveTab('ClientApp.FrontOffice.Review.CustomerReview.CustomerSummaryList' | translate)\r\n \"\r\n name=\"CustomerSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.CustomerReview.CustomerSummaryList' | translate\"\r\n apiName=\"CustomerReview/CustomerSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [groupable]=\"false\"\r\n [columns]=\"GetCustomerSummaryListColumns\"\r\n [filtering]=\"true\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n displayNameColumn=\"DisplayName\"\r\n defaultSortKey=\"Number\"\r\n key=\"CustomerIds\"\r\n aggregatesColumnName=\"DuringAmount,DeliveryPayableTotal,InvoiceCount,PayableAmount,OpeningAmount,TotalCredit,TotalDebit,Discount, EndingAmount, DuringCalculate, DeliveryDebit\">\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n name=\"InvoiceSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.CustomerReview.Factor' | translate\"\r\n apiName=\"CustomerReview/InvoiceSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [groupable]=\"false\"\r\n pathPreFix=\"SALE\"\r\n [columns]=\"GetInvoiceSummaryListColumns\"\r\n [filtering]=\"true\"\r\n displayNameColumn=\"DisplayName\"\r\n defaultSortKey=\"CustomerNumber\"\r\n key=\"InvoiceIds\"\r\n aggregatesColumnName=\"Debit,PayableTotal,Tip,TotalRounding,ShippingCost,TotalTax,TotalDiscount,TotalNet\">\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n name=\"InvoiceItemSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.CustomerReview.FactorDetail' | translate\"\r\n apiName=\"CustomerReview/InvoiceItemSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [groupable]=\"true\"\r\n pathPreFix=\"SALE\"\r\n defaultSortKey=\"Code\"\r\n [columns]=\"GetInvoiceItemSummaryListColumns\"\r\n [filtering]=\"false\"\r\n aggregatesColumnName=\"Debit,Tax,Service,Discount,Price,Quantity,UnitPrice\">\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n name=\"ItemSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.ItemSalesSummaryList' | translate\"\r\n [apiName]=\"'CustomerReview/ItemCustomerSummaryList'\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetItemSummaryColumns\"\r\n [filtering]=\"false\"\r\n key=\"ItemIds\"\r\n defaultSortKey=\"Number\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"ItemTitle\"\r\n aggregatesColumnName=\"TotalPriceInclServiceInclTax,TotalDiscount,TotalTax,TotalService,InvoiceCount,TotalPrice,UnitPrice\">\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n name=\"InvoiceReceiptPaymentSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.CustomerReview.PaymentSummaryList' | translate\"\r\n apiName=\"CustomerReview/InvoiceReceiptPaymentSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [groupable]=\"true\"\r\n pathPreFix=\"SALE\"\r\n [columns]=\"GetInvoiceReceiptPaymentSummaryListColumns\"\r\n defaultSortKey=\"Code\"\r\n [filtering]=\"false\"\r\n aggregatesColumnName=\"Amount\">\r\n \r\n \r\n \r\n \r\n \r\n 0\"\r\n name=\"CustomerReceiptPaymentSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.CustomerReview.ReceiptPaymentList' | translate\"\r\n apiName=\"CustomerReview/CustomerReceiptPaymentSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [groupable]=\"true\"\r\n pathPreFix=\"SALE\"\r\n defaultSortKey=\"ShamsiDate\"\r\n [columns]=\"GetCustomerReceiptPaymentSummaryListColumns\"\r\n [filtering]=\"false\"\r\n aggregatesColumnName=\"Amount\">\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { CustomerReviewComponent } from './customer-review.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nimport { ReportReviewModule } from 'src/app/review/review.module';\r\n\r\n\r\nconst components =\r\n [\r\n CustomerReviewComponent\r\n ]\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule,\r\n ReportReviewModule\r\n ]\r\n})\r\nexport class CustomerReviewModule { }\r\n","import { Component } from \"@angular/core\";\r\nimport { AuthService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { SimpleModalComponent } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.component\";\r\n\r\n@Component({\r\n selector: \"ngx-contact-us-modal\",\r\n templateUrl: \"./contact-us-modal.component.html\",\r\n styleUrls: [\"./contact-us-modal.component.scss\"],\r\n})\r\nexport class ContactUsModalComponent extends SimpleModalComponent {\r\n currentInformation = this.authService.currentInformation();\r\n\r\n constructor(private authService: AuthService) {\r\n super();\r\n }\r\n\r\n close() {\r\n this.closeModal();\r\n }\r\n}\r\nexport interface ConfirmModel {}\r\n","
\r\n
\r\n
\r\n
\r\n \"sepidz\r\n
\r\n
\r\n
\r\n
\r\n \r\n 021-91002030\r\n
\r\n
\r\n \r\n www.sepidz.com\r\n
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Review.Dashboard.Address\" | translate }} \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Review.Dashboard.CustomerCode\" | translate }}\r\n \r\n {{ currentInformation?.LockNumber }}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Review.Dashboard.SaftWareVersion\" | translate }}\r\n \r\n \r\n {{ currentInformation?.ProductVersion }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n {{ \"ClientApp.FrontOffice.Review.Dashboard.Calling\" | translate }}\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Type } from \"@angular/core\";\r\nimport { AccountService, AuthService, HttpCommonService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { TimeInterval, DashboardModel } from \"./models/dashboard.model\";\r\nimport * as moment from \"jalali-moment\";\r\nimport { ContactUsModalComponent } from \"./contact-us-modal/contact-us-modal.component\";\r\nimport { finalize, take } from \"rxjs/operators\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { LicenseInformation } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"ngx-dashboard\",\r\n templateUrl: \"./dashboard.component.html\",\r\n styleUrls: [\"./dashboard.component.scss\"],\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n currentInformation: LicenseInformation;\r\n hasBranch: boolean;\r\n\r\n public isLoading = true;\r\n inputEditorform: Type;\r\n public timeInterval: TimeInterval = \"Daily\";\r\n public model: DashboardModel;\r\n public TimeIntervalLabels = {\r\n Daily: [\r\n this.translate.instant(\"ClientApp.FrontOffice.Review.Dashboard.Today\"),\r\n this.translate.instant(\"ClientApp.FrontOffice.Review.Dashboard.Yesterday\"),\r\n ],\r\n Weekly: [\r\n this.translate.instant(\"ClientApp.FrontOffice.Review.Dashboard.Weekend\"),\r\n this.translate.instant(\"ClientApp.FrontOffice.Review.Dashboard.LastWeek\"),\r\n ],\r\n Monthly: [\r\n this.translate.instant(\"ClientApp.FrontOffice.Review.Dashboard.Month\"),\r\n this.translate.instant(\"ClientApp.FrontOffice.Review.Dashboard.LastMonth\"),\r\n ],\r\n Yearly: [\r\n this.translate.instant(\"ClientApp.FrontOffice.Review.Dashboard.Year\"),\r\n this.translate.instant(\"ClientApp.FrontOffice.Review.Dashboard.LastYear\"),\r\n ],\r\n };\r\n today: string;\r\n public logoFilePath: string;\r\n isMultiBranch: boolean;\r\n BranchQuantitySaleComparisonSummary: boolean;\r\n BranchAmountSaleComparisonSummary: boolean;\r\n\r\n constructor(\r\n private accountService: AccountService,\r\n public dialogService: SimpleModalService,\r\n private sts: ShowToastrService,\r\n private httpCommonService: HttpCommonService,\r\n private translate: TranslateService //تا اینجا انجام شد\r\n ) {\r\n this.inputEditorform = ContactUsModalComponent;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.currentInformation = this.accountService.authService?.currentInformation();\r\n this.load(this.timeInterval);\r\n this.setToday();\r\n this.isMultiBranch =\r\n (this.accountService.authService.currentInformation().BranchingAdvancedEnabled ||\r\n this.accountService.authService.currentInformation().BranchingLightEnabled ||\r\n this.accountService.authService.currentInformation().RestaurantCallCenter) &&\r\n this.accountService.authService.currentBranch?.AccessToAllBranches;\r\n this.hasBranch =\r\n this.currentInformation.BranchingAdvancedEnabled ||\r\n this.currentInformation.BranchingLightEnabled ||\r\n this.currentInformation?.RestaurantCallCenter;\r\n this.branchComparisonSalePermission();\r\n }\r\n\r\n private setToday() {\r\n this.today = moment().locale(\"fa-IR\").format(\"dddd، jDD jMMMM jYYYY\").toString();\r\n }\r\n branchComparisonSalePermission() {\r\n if (this.accountService.userHasPermission(`RestaurantSale:Dashboard`, \"ReadBranchSaleAmount\")) {\r\n this.BranchAmountSaleComparisonSummary = true;\r\n }\r\n if (this.accountService.userHasPermission(`RestaurantSale:Dashboard`, \"ReadBranchSaleQuantity\")) {\r\n this.BranchQuantitySaleComparisonSummary = true;\r\n }\r\n }\r\n load(timeInterval: TimeInterval) {\r\n this.isLoading = true;\r\n this.timeInterval = timeInterval;\r\n this.httpCommonService\r\n .get(`Dashboard/Load/?TimeInterval=${timeInterval}`)\r\n .pipe(take(1))\r\n .pipe(finalize(() => (this.isLoading = false)))\r\n .subscribe((model: DashboardModel) => {\r\n this.model = model;\r\n this.logoFilePath = model.Info.LogoFilePath;\r\n });\r\n }\r\n\r\n openContactUsModal() {\r\n this.dialogService.open(this.inputEditorform, {}, { autoFocus: true, closeOnClickOutside: false, closeOnEscape: true });\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n

{{ \"ClientApp.FrontOffice.Review.Dashboard.SepidzSoftWare\" | translate }}

\r\n\r\n \r\n {{ \"ClientApp.FrontOffice.Review.Dashboard.Branch\" | translate }} {{ model?.Info?.BranchTitle }}\r\n \r\n \r\n {{ currentInformation?.CustomerName }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ today }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.Dashboard.SaftWareVersion\" | translate }} {{ currentInformation?.ProductVersion }}\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Review.Dashboard.FilterList\" | translate }}\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { DashboardComponent } from \"./dashboard.component\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { ContactUsModalComponent } from \"./contact-us-modal/contact-us-modal.component\";\r\nimport { ReportReviewModule } from \"src/app/review/review.module\";\r\n\r\nconst components = [DashboardComponent, ContactUsModalComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, ReportReviewModule],\r\n})\r\nexport class DashboardModule {}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { UntypedFormGroup, UntypedFormBuilder } from \"@angular/forms\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ReviewService } from \"src/app/review/review.service\";\r\nimport { AccountService, AuthService, GridFilter, HttpCommonService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ReviewKpiItemBundle } from \"src/app/review/kpi-review/kpi-review.component\";\r\nimport { ReceiptPaymentModel } from \"../../order/model/receiptpayment.model\";\r\nimport { Subject } from \"rxjs\";\r\nimport { pairwise, takeUntil } from \"rxjs/operators\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ReviewFilter } from \"../../../review/models/review-filter\";\r\nimport { ReviewHelper } from \"../../../review/review-helper\";\r\nimport { VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { EnumModel } from \"../../order/orderpage/item/deposit/deposit.component\";\r\nimport { MealEnum, DeliveryEnum, ClearEnum } from \"../../catalog/model/deposit.enum\";\r\nimport { ReviewFilterItem } from \"src/app/review/models/review-filter-item\";\r\nimport { PaymentLinkState } from \"../../order/model/invoice.model\";\r\n\r\n@Component({\r\n selector: \"ngx-order-review\",\r\n templateUrl: \"./order-review.component.html\",\r\n styleUrls: [\"./order-review.component.scss\"],\r\n})\r\nexport class OrderReviewComponent implements OnInit, OnDestroy {\r\n hideChart: boolean;\r\n ngUnsubscribe = new Subject();\r\n formGroup: UntypedFormGroup;\r\n activeTabTitle: string;\r\n unSortableFilterable: string[] = [];\r\n unSortableFilterableDeposit: string[] = [];\r\n unSortableFilterableScheduleList: string[] = [];\r\n c: string[] = [];\r\n BranchIds = undefined;\r\n ItemCategoryIds = undefined;\r\n SaleMethodIds = undefined;\r\n WaiterListIds = undefined;\r\n UserListIds = undefined;\r\n InvoiceStatusIds = undefined;\r\n DriverIds = undefined;\r\n SalePriceTypeIds = undefined;\r\n SalonIds = undefined;\r\n accountstatus = undefined;\r\n SMSType = undefined;\r\n PaymentState = undefined;\r\n PaymentMethod = undefined;\r\n Months = undefined;\r\n Delivery = undefined;\r\n Cook = undefined;\r\n ClearType = undefined;\r\n DeliveryType = undefined;\r\n MealTime = undefined;\r\n GetSaleMethodSummaryColumns: form_control[] = [];\r\n GetBranchSaleComparisonColumns: form_control[] = [];\r\n GetMmonthSummaryColumns: form_control[] = [];\r\n GetDaySummaryColumns: form_control[] = [];\r\n GetHourSummaryColumns: form_control[] = [];\r\n GetUserSummaryColumns: form_control[] = [];\r\n GetDriverSummaryColumns: form_control[] = [];\r\n GetWaiterSummaryColumns: form_control[] = [];\r\n GetItemCategorySummaryColumns: form_control[] = [];\r\n GetInvoiceSummaryColumns: form_control[] = [];\r\n GetInvoiceScheduleListColumns: form_control[] = [];\r\n GetInvoiceItemSummaryColumns: form_control[] = [];\r\n GetUserSettlementSummaryColumns: form_control[] = [];\r\n GetDriverSettlementSummaryColumns: form_control[] = [];\r\n GetPaymentMethodSaleSummaryColumns: form_control[] = [];\r\n GetReceiptPaymentSummaryColumns: form_control[] = [];\r\n GetItemSummaryColumns: form_control[] = [];\r\n GetItemAdditiveSummaryColumns: form_control[] = [];\r\n GetItemDescriptionSummaryColumns: form_control[] = [];\r\n ReceiptPaymentColumns: form_control[] = [];\r\n invoiceItemSummaryColumns: form_control[] = [];\r\n depositSalesSummaryColumns: form_control[] = [];\r\n personnelServicesSummaryColumns: form_control[] = [];\r\n depositSummaryColumns: form_control[] = [];\r\n selected: string = \"\";\r\n UserSettlementReceipt: ReceiptPaymentModel[];\r\n DriverSettlementReceipt: ReceiptPaymentModel[];\r\n kpiBundlesDeposit: ReviewKpiItemBundle[] = [\r\n {\r\n item1: { name: \"SalesAmount\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.SalesAmount\" },\r\n class: \"kpi-colr1\",\r\n },\r\n {\r\n item1: { name: \"TakenDeposit\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.TakenDeposit\" },\r\n class: \"kpi-colr2\",\r\n },\r\n {\r\n item1: { name: \"Remain\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.Remain\" },\r\n class: \"kpi-colr3\",\r\n },\r\n {\r\n item1: { name: \"ServicesAmount\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.PersonnelServices\" },\r\n class: \"kpi-colr6\",\r\n },\r\n {\r\n item1: { name: \"NumberOfCooks\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.NumberOfCooks\" },\r\n class: \"kpi-colr4\",\r\n },\r\n {\r\n item1: { name: \"NumberOfPeople\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.NumberOfPeople\" },\r\n class: \"kpi-colr5\",\r\n },\r\n ];\r\n\r\n paymentStates = [\r\n { Id: PaymentLinkState.Nothing, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Nothing\") },\r\n { Id: PaymentLinkState.SentLink, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.SentLink\") },\r\n {\r\n Id: PaymentLinkState.OpenFactorLink,\r\n Selected: false,\r\n Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.OpenFactorLink\"),\r\n },\r\n { Id: PaymentLinkState.Paying, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Paying\") },\r\n { Id: PaymentLinkState.Paid, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Paid\") },\r\n { Id: PaymentLinkState.FailPayment, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.FailPayment\") },\r\n ];\r\n\r\n filterByDepositCreatedDate: boolean;\r\n\r\n public isMultiBranch =\r\n (this.authService.currentInformation().BranchingAdvancedEnabled ||\r\n this.authService.currentInformation().BranchingLightEnabled ||\r\n this.authService.currentInformation().RestaurantCallCenter) &&\r\n this.authService.currentBranch?.AccessToAllBranches;\r\n isDepositReview: boolean;\r\n MealTimeDataList: EnumModel[];\r\n DeliveryTypeDataList: EnumModel[];\r\n ClearTypeDataList: EnumModel[];\r\n hasUserSalesSummary: boolean;\r\n showAllDays = false;\r\n BranchSaleComparisonSummary: boolean = false;\r\n\r\n constructor(\r\n private service: ReviewService,\r\n private fb: UntypedFormBuilder,\r\n protected translate: TranslateService,\r\n protected authService: AuthService,\r\n private httpCommonService: HttpCommonService,\r\n _VoucherKindInfo: VoucherKindInfo,\r\n public accountService: AccountService\r\n ) {\r\n this.isDepositReview = _VoucherKindInfo.VoucherKindId === 2;\r\n this.MealTimeDataList = this.enumToEnumModelArray(MealEnum);\r\n this.DeliveryTypeDataList = this.enumToEnumModelArray(DeliveryEnum);\r\n this.ClearTypeDataList = this.enumToEnumModelArray(ClearEnum);\r\n }\r\n\r\n enumToArray(enumObj: any): any[] {\r\n return Object.keys(enumObj)\r\n .filter((key) => !isNaN(Number(enumObj[key])))\r\n .map((key) => ({ Id: Number(enumObj[key]), Title: key }));\r\n }\r\n\r\n enumToEnumModelArray(enumObj: any): EnumModel[] {\r\n return Object.keys(enumObj)\r\n .filter((key) => !isNaN(Number(enumObj[key])))\r\n .map((key) => ({ Id: enumObj[key], Title: key }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n\r\n this.formGroup = undefined;\r\n this.unSortableFilterable = undefined;\r\n this.unSortableFilterableScheduleList = undefined;\r\n this.c = undefined;\r\n this.BranchIds = undefined;\r\n this.ItemCategoryIds = undefined;\r\n this.SaleMethodIds = undefined;\r\n this.WaiterListIds = undefined;\r\n this.UserListIds = undefined;\r\n this.InvoiceStatusIds = undefined;\r\n this.DriverIds = undefined;\r\n this.SalePriceTypeIds = undefined;\r\n this.SalonIds = undefined;\r\n this.PaymentMethod = undefined;\r\n this.Months = undefined;\r\n this.GetSaleMethodSummaryColumns = undefined;\r\n this.GetMmonthSummaryColumns = undefined;\r\n this.GetDaySummaryColumns = undefined;\r\n this.GetHourSummaryColumns = undefined;\r\n this.GetUserSummaryColumns = undefined;\r\n this.GetDriverSummaryColumns = undefined;\r\n this.GetWaiterSummaryColumns = undefined;\r\n this.GetItemCategorySummaryColumns = undefined;\r\n this.GetInvoiceSummaryColumns = undefined;\r\n this.GetInvoiceScheduleListColumns = undefined;\r\n this.GetInvoiceItemSummaryColumns = undefined;\r\n this.GetUserSettlementSummaryColumns = undefined;\r\n this.GetDriverSettlementSummaryColumns = undefined;\r\n this.GetPaymentMethodSaleSummaryColumns = undefined;\r\n this.GetReceiptPaymentSummaryColumns = undefined;\r\n this.GetItemSummaryColumns = undefined;\r\n this.GetItemAdditiveSummaryColumns = undefined;\r\n this.GetItemDescriptionSummaryColumns = undefined;\r\n this.ReceiptPaymentColumns = undefined;\r\n this.UserSettlementReceipt = undefined;\r\n this.DriverSettlementReceipt = undefined;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.unSortableFilterable = [\r\n ...this.unSortableFilterable,\r\n \"Date\",\r\n \"CreationTime\",\r\n \"ClearedBy\",\r\n \"PaymentLinkState\",\r\n \"TerminalNumber\",\r\n \"RecieptTotal\",\r\n \"EditedBy\",\r\n \"SmsType\",\r\n \"OldRemain\",\r\n \"PersonnelTitle\",\r\n ];\r\n this.service.startDate = new Date();\r\n this.service.endDate = new Date();\r\n this.service.ReportKey = \"SalesReview\";\r\n this.service.startDate$.next(this.service.startDate);\r\n this.service.endDate$.next(this.service.endDate);\r\n this.formGroup = this.fb.group({\r\n SaleMethodIds: this.SaleMethodIds,\r\n BranchIds: this.BranchIds,\r\n WaiterListIds: this.WaiterListIds,\r\n UserListIds: this.UserListIds,\r\n ItemCategoryIds: this.ItemCategoryIds,\r\n InvoiceStatusIds: this.InvoiceStatusIds,\r\n DriverIds: this.DriverIds,\r\n SalePriceTypeIds: this.SalePriceTypeIds,\r\n IncludeCancelled: true,\r\n SalonIds: this.SalonIds,\r\n accountstatus: this.accountstatus,\r\n SMSType: this.SMSType,\r\n PaymentState: this.PaymentState,\r\n PaymentMethod: this.PaymentMethod,\r\n Delivery: this.Delivery,\r\n Cook: this.Cook,\r\n ClearType: this.ClearType,\r\n DeliveryType: this.DeliveryType,\r\n MealTime: this.MealTime,\r\n });\r\n this.service.filterChangeSubject.pipe(pairwise(), takeUntil(this.ngUnsubscribe)).subscribe(([prev, next]) => {\r\n if (next && next.changedKeys.length > 0 && JSON.stringify(prev?.items) === JSON.stringify(next?.items)) {\r\n this.GetSaleChartData();\r\n this.GetMonthChart();\r\n this.ItemSalesSummaryList();\r\n }\r\n });\r\n }\r\n\r\n setColumns(activeTabTitle: string) {\r\n switch (activeTabTitle) {\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.BranchSaleComparison\"):\r\n if (this.GetBranchSaleComparisonColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"OrderReview/GetBranchSaleComparisonModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetBranchSaleComparisonColumns = data as form_control[];\r\n this.GetBranchSaleComparisonColumns = this.GetBranchSaleComparisonColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Sale\"):\r\n if (this.GetSaleMethodSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"OrderReview/GetSaleMethodSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetSaleMethodSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.GetSaleMethodSummaryColumns = this.GetSaleMethodSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Item\"):\r\n if (this.GetItemSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"OrderReview/GetItemSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetItemSummaryColumns = data as form_control[];\r\n this.GetItemSummaryColumns = this.GetItemSummaryColumns.filter(\r\n (x) =>\r\n x.name !== \"Total\" &&\r\n x.name !== \"TotalRounding\" &&\r\n x.name !== \"TotalTip\" &&\r\n x.name !== \"TotalShippingCost\" &&\r\n x.name !== \"PayableTotal\" &&\r\n x.name !== \"TotalDebit\" &&\r\n x.name !== \"TotalCredit\" &&\r\n x.name !== \"PayableTotal\" &&\r\n x.name !== \"Total\" &&\r\n x.name !== \"BranchTitle\"\r\n ).sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.DepositSales\"):\r\n if (this.depositSalesSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"OrderReview/GetDepositSalesSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.depositSalesSummaryColumns = data as form_control[];\r\n this.depositSalesSummaryColumns = this.depositSalesSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.DepositDetail\"):\r\n if (this.invoiceItemSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"OrderReview/GetInvoiceItemDepositSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.invoiceItemSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.invoiceItemSummaryColumns = this.invoiceItemSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.PersonnelServices\"):\r\n if (this.personnelServicesSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"OrderReview/GetPersonnelServicesSummaryInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.personnelServicesSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.personnelServicesSummaryColumns = this.personnelServicesSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Deposit\"):\r\n if (this.depositSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"OrderReview/GetDepositSummaryListInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.depositSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.depositSummaryColumns = this.depositSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n selectTab($event) {\r\n this.setColumns($event.tabTitle);\r\n this.activeTabTitle = $event.tabTitle;\r\n if (this.activeTabTitle == this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.BranchSaleComparison\")) {\r\n this.GetBranchSaleComparisonChartData();\r\n }\r\n if (this.activeTabTitle == this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Sale\")) {\r\n this.GetSaleChartData();\r\n }\r\n if (this.activeTabTitle == this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Item\")) {\r\n this.ItemSalesSummaryList();\r\n }\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n setSelectedFilter(filter: string) {\r\n if (this.selected === filter) this.selected = \"\";\r\n else this.selected = filter;\r\n }\r\n onRowSelected($event) {\r\n this.UserSettlementReceipt = $event.length > 0 ? $event[0].ReceiptPayments : null;\r\n }\r\n onDriverRowSelected($event) {\r\n this.DriverSettlementReceipt = $event.length > 0 ? $event[0].ReceiptPayments : null;\r\n }\r\n chartData: any[] = [];\r\n isFinished: boolean;\r\n GetSaleChartData() {\r\n setTimeout(() => {\r\n const filter = this.FillFilters(this.service?.filterSubject?.getValue());\r\n this.httpCommonService\r\n .create(\"OrderReview/ReadSalesChart\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: any[]) => {\r\n this.chartData = data;\r\n });\r\n }, 100);\r\n }\r\n GetBranchSaleComparisonChartData() {\r\n setTimeout(() => {\r\n const filter = this.FillFilters(this.service?.filterSubject?.getValue());\r\n this.httpCommonService\r\n .create(\"OrderReview/ReadBranchSaleComparisonChart\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: any[]) => {\r\n this.chartData = data;\r\n });\r\n }, 100);\r\n }\r\n protected FillFilters(filters: ReviewFilter): GridFilter[] {\r\n var basefilters = ReviewHelper.buildQuery(filters);\r\n let _filters = [];\r\n if (this.authService.currentFiscalYear && this.authService.currentFiscalYear.Id)\r\n _filters.push({ Type: \"F\", Filed: \"FiscalYearId\", Value: this.authService.currentFiscalYear.Id, Operator: \"eq\" });\r\n basefilters.filters.forEach((x) => {\r\n if (x.Name === \"StartDate\") _filters.push({ Type: \"F\", Filed: \"VoucherDate\", Value: x.Value, Operator: \"gte\" });\r\n else if (x.Name === \"EndDate\") _filters.push({ Type: \"F\", Filed: \"VoucherDate\", Value: x.Value, Operator: \"lte\" });\r\n else if (x.Name === \"StartNumber\") _filters.push({ Type: \"F\", Filed: \"VoucherNo\", Value: x.Value, Operator: \"gte\" });\r\n else if (x.Name === \"EndNumber\") _filters.push({ Type: \"F\", Filed: \"VoucherNo\", Value: x.Value, Operator: \"lte\" });\r\n else if (x.Name.includes(\"Ids\")) _filters.push({ Type: \"F\", Filed: x.Name, Value: x.Value, Operator: \"contains\" });\r\n else _filters.push({ Type: \"F\", Filed: x.Name, Value: x.Value, Operator: \"eq\" });\r\n });\r\n _filters.forEach((x) => {\r\n x.Take = 1000;\r\n });\r\n return _filters;\r\n }\r\n GetMonthChart() {\r\n if (this.activeTabTitle != this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.MonthSales\")) {\r\n return;\r\n }\r\n const filter = this.FillFilters(this.service?.filterSubject?.getValue());\r\n this.httpCommonService\r\n .create(\"OrderReview/ReadMonthSalesChart\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: any[]) => {\r\n this.chartData = data;\r\n });\r\n }\r\n ItemSalesSummaryList() {\r\n if (this.activeTabTitle != this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Item\")) {\r\n return;\r\n }\r\n const filter = this.FillFilters(this.service?.filterSubject?.getValue());\r\n this.httpCommonService\r\n .create(\"OrderReview/ReadItemChart\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: any[]) => {\r\n this.chartData = data;\r\n });\r\n }\r\n\r\n applyDepositDateFilter() {\r\n this.filterByDepositCreatedDate = !this.filterByDepositCreatedDate;\r\n if (this.filterByDepositCreatedDate) {\r\n const filters = [{ key: \"DepositDateFilter\", value: this.filterByDepositCreatedDate }];\r\n this.service.addFilter(\"DepositDateFilter\", filters as ReviewFilterItem[]);\r\n } else {\r\n this.service.removeFilter(\"DepositDateFilter\", \"DepositDateFilter\", [true], \"array\");\r\n }\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.FilterRegistrationDate\" | translate }}\r\n {{\r\n \"ClientApp.FrontOffice.Review.SalesReview.FilterRegistrationDate\" | translate\r\n }}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.Branch\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.User\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.InvoiceStatus\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.MealTime\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.DeliveryType\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.ClearType\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.Cook\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.Driver\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.BranchSaleComparisonTitle\" | translate }}\r\n
\r\n 0\"\r\n name=\"BranchSaleComparison\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.BranchSaleComparison' | translate\"\r\n [apiName]=\"'OrderReview/BranchSaleComparison'\"\r\n areaName=\"RestaurantSale\"\r\n [groupable]=\"false\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetBranchSaleComparisonColumns\"\r\n [filtering]=\"false\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"BranchTitle\"\r\n key=\"BranchId\"\r\n aggregatesColumnName=\"BranchTitle,BranchId,TotalRounding, PackingPrice,TotalTip,TotalShippingCost,TotalCredit,TotalDebit,UsedCredit,TotalTax,TotalService,InvoiceCount,PayableTotal\">\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.SaleMethodSalesSummaryList\" | translate }}\r\n
\r\n 0\"\r\n name=\"SaleMethodSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.SaleMethodSalesSummaryList' | translate\"\r\n apiName=\"OrderReview/SaleMethodDepositSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [groupable]=\"false\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetSaleMethodSummaryColumns\"\r\n [filtering]=\"false\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"SaleMethodTitle\"\r\n key=\"SaleMethodIds\"\r\n aggregatesColumnName=\"TotalRounding, PackingPrice,TotalTip,TotalShippingCost,TotalCredit,TotalDebit,UsedCredit,TotalTax,TotalService,InvoiceCount,PayableTotal\">\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.DepositSalesSummaryList\" | translate }}\r\n
\r\n 0\"\r\n name=\"DepositSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.DepositSalesSummaryList' | translate\"\r\n apiName=\"OrderReview/DepositSalesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterableDeposit\"\r\n [columns]=\"depositSalesSummaryColumns\"\r\n [filtering]=\"false\"\r\n key=\"InvoiceIds\"\r\n defaultSortKey=\"InvoiceCode\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"CustomerName\"\r\n aggregatesColumnName=\"PayableTotal,ServicesAmount,Remain,DepositAmount,ShippingCost\">\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.DepositDetail\" | translate }}
\r\n 0\"\r\n name=\"InvoiceItemDepositSummaryList\"\r\n key=\"FactorDetails\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.DepositDetail' | translate\"\r\n apiName=\"OrderReview/InvoiceItemDepositSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n displayNameColumn=\"ItemNumber\"\r\n pathPreFix=\"SALE\"\r\n [columns]=\"invoiceItemSummaryColumns\"\r\n aggregatesColumnName=\"Quantity,UnitPrice,TotalTax,TotalService,TotalDiscount,TotalPriceInclServiceInclTax,TotalPrice\"\r\n [filtering]=\"false\">\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.ItemSalesSummaryList\" | translate }}
\r\n 0\"\r\n name=\"ItemSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.ItemSalesSummaryList' | translate\"\r\n apiName=\"OrderReview/ItemDepositSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetItemSummaryColumns\"\r\n [filtering]=\"false\"\r\n key=\"ItemIds\"\r\n defaultSortKey=\"Number\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"ItemTitle\"\r\n aggregatesColumnName=\"TotalPriceInclServiceInclTax,TotalDiscount,TotalTax,TotalService,InvoiceCount,TotalPrice,UnitPrice\">\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.PersonnelServices\" | translate }}
\r\n 0\"\r\n name=\"PersonnelServicesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.PersonnelServicesSummaryList' | translate\"\r\n apiName=\"OrderReview/PersonnelServicesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"personnelServicesSummaryColumns\"\r\n [filtering]=\"false\"\r\n defaultSortKey=\"PersonnelName\"\r\n pathPreFix=\"SALE\"\r\n aggregatesColumnName=\"Amount\">\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.DepositSummaryList\" | translate }}
\r\n 0\"\r\n name=\"DepositSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.DepositSummaryList' | translate\"\r\n apiName=\"OrderReview/DepositSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"depositSummaryColumns\"\r\n [filtering]=\"false\"\r\n defaultSortKey=\"InvoiceCode\"\r\n pathPreFix=\"SALE\"\r\n aggregatesColumnName=\"Amount\">\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { OrderReviewComponent } from \"./order-review.component\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { ReportReviewModule } from \"src/app/review/review.module\";\r\n\r\nconst components = [OrderReviewComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, ReportReviewModule],\r\n})\r\nexport class OrderReviewModule {}\r\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { UntypedFormGroup, UntypedFormBuilder } from \"@angular/forms\";\r\nimport { form_control, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ReviewService } from \"src/app/review/review.service\";\r\nimport { AccountService, AuthService, GridFilter, HttpCommonService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ReviewKpiItemBundle } from \"src/app/review/kpi-review/kpi-review.component\";\r\nimport { ReceiptPaymentModel } from \"../../order/model/receiptpayment.model\";\r\nimport { Subject } from \"rxjs\";\r\nimport { pairwise, takeUntil } from \"rxjs/operators\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { ReviewFilter } from \"../../../review/models/review-filter\";\r\nimport { ReviewHelper } from \"../../../review/review-helper\";\r\nimport { VoucherKindInfo } from \"projects/sepidz-web-framework/src/lib/models/datatransfer.model\";\r\nimport { EnumModel } from \"../../order/orderpage/item/deposit/deposit.component\";\r\nimport { MealEnum, DeliveryEnum, ClearEnum } from \"../../catalog/model/deposit.enum\";\r\nimport { ReviewFilterItem } from \"src/app/review/models/review-filter-item\";\r\nimport { PaymentLinkState } from \"../../order/model/invoice.model\";\r\n\r\n@Component({\r\n selector: \"ngx-sales-review\",\r\n templateUrl: \"./sales-review.component.html\",\r\n styleUrls: [\"./sales-review.component.scss\"],\r\n providers: [ReviewService],\r\n})\r\nexport class SalesReviewComponent implements OnInit, OnDestroy {\r\n customDataList: any[] = [];\r\n hideChart: boolean;\r\n ngUnsubscribe = new Subject();\r\n formGroup: UntypedFormGroup;\r\n activeTabTitle: string;\r\n unSortableFilterable: string[] = [];\r\n unSortableFilterableDeposit: string[] = [];\r\n unSortableFilterableScheduleList: string[] = [];\r\n c: string[] = [];\r\n BranchIds = undefined;\r\n ItemCategoryIds = undefined;\r\n SaleMethodIds = undefined;\r\n WaiterListIds = undefined;\r\n UserListIds = undefined;\r\n InvoiceStatusIds = undefined;\r\n DriverIds = undefined;\r\n SalePriceTypeIds = undefined;\r\n SalonIds = undefined;\r\n accountstatus = undefined;\r\n SMSType = undefined;\r\n PaymentState = undefined;\r\n PaymentMethod = undefined;\r\n Months = undefined;\r\n Delivery = undefined;\r\n Cook = undefined;\r\n ClearType = undefined;\r\n DeliveryType = undefined;\r\n MealTime = undefined;\r\n GetSaleMethodSummaryColumns: form_control[] = [];\r\n GetBranchSaleComparisonColumns: form_control[] = [];\r\n GetMmonthSummaryColumns: form_control[] = [];\r\n GetDaySummaryColumns: form_control[] = [];\r\n GetHourSummaryColumns: form_control[] = [];\r\n GetUserSummaryColumns: form_control[] = [];\r\n GetDriverSummaryColumns: form_control[] = [];\r\n GetWaiterSummaryColumns: form_control[] = [];\r\n GetItemCategorySummaryColumns: form_control[] = [];\r\n GetInvoiceSummaryColumns: form_control[] = [];\r\n GetInvoiceScheduleListColumns: form_control[] = [];\r\n GetSaleQuantitySummaryColumns: form_control[] = [];\r\n GetInvoiceItemSummaryColumns: form_control[] = [];\r\n GetUserSettlementSummaryColumns: form_control[] = [];\r\n GetDriverSettlementSummaryColumns: form_control[] = [];\r\n GetPaymentMethodSaleSummaryColumns: form_control[] = [];\r\n GetReceiptPaymentSummaryColumns: form_control[] = [];\r\n GetItemSummaryColumns: form_control[] = [];\r\n GetItemsNumberSummaryColumns: form_control[] = [];\r\n GetItemAdditiveSummaryColumns: form_control[] = [];\r\n GetItemDescriptionSummaryColumns: form_control[] = [];\r\n ReceiptPaymentColumns: form_control[] = [];\r\n invoiceItemSummaryColumns: form_control[] = [];\r\n depositSalesSummaryColumns: form_control[] = [];\r\n personnelServicesSummaryColumns: form_control[] = [];\r\n depositSummaryColumns: form_control[] = [];\r\n selected: string = \"\";\r\n UserSettlementReceipt: ReceiptPaymentModel[];\r\n DriverSettlementReceipt: ReceiptPaymentModel[];\r\n kpiBundles: ReviewKpiItemBundle[] = [\r\n {\r\n item1: { name: \"Total\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.CollectGoods\" },\r\n item2: { name: \"InvoiceCount\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.Counter\" },\r\n class: \"kpi-colr1\",\r\n },\r\n {\r\n item1: { name: \"TotalDiscount\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.Discount\" },\r\n item2: { name: \"TotalTip\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.Reward\" },\r\n class: \"kpi-colr2\",\r\n },\r\n {\r\n item1: { name: \"TotalCourierShippingCost\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.TotalCourierShippingCost\" },\r\n item2: { name: \"TotalShippingCost\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.Rent\" },\r\n class: \"kpi-colr3\",\r\n },\r\n {\r\n item1: { name: \"TotalTax\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.Tax\" },\r\n item2: { name: \"TotalService\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.Service\" },\r\n class: \"kpi-colr4\",\r\n },\r\n {\r\n item1: { name: \"TotalPackingPrice\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.PackingPrice\" },\r\n item2: { name: \"TotalRounding\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.Round\" },\r\n class: \"kpi-colr5\",\r\n },\r\n {\r\n item1: { name: \"TotalDebit\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.Debit\" },\r\n item2: { name: \"TotalCredit\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.Credit\" },\r\n class: \"kpi-colr6\",\r\n },\r\n {\r\n item1: { name: \"Deposit\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.Deposit\" },\r\n item2: { name: \"TakenDeposit\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.TakenDeposit\" },\r\n class: \"kpi-colr1\",\r\n },\r\n {\r\n item1: { name: \"PayableTotal\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.Payable\" },\r\n item2: { name: \"CashRemain\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.Funds\" },\r\n class: \"kpi-colr2\",\r\n },\r\n ];\r\n\r\n kpiBundlesDeposit: ReviewKpiItemBundle[] = [\r\n {\r\n item1: { name: \"SalesAmount\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.SalesAmount\" },\r\n class: \"kpi-colr1\",\r\n },\r\n {\r\n item1: { name: \"TakenDeposit\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.TakenDeposit\" },\r\n class: \"kpi-colr2\",\r\n },\r\n {\r\n item1: { name: \"Remain\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.Remain\" },\r\n class: \"kpi-colr3\",\r\n },\r\n {\r\n item1: { name: \"ServicesAmount\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.PersonnelServices\" },\r\n class: \"kpi-colr6\",\r\n },\r\n {\r\n item1: { name: \"NumberOfCooks\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.NumberOfCooks\" },\r\n class: \"kpi-colr4\",\r\n },\r\n {\r\n item1: { name: \"NumberOfPeople\", displayName: \"ClientApp.FrontOffice.Review.SalesReview.NumberOfPeople\" },\r\n class: \"kpi-colr5\",\r\n },\r\n ];\r\n\r\n paymentStates = [\r\n { Id: PaymentLinkState.Nothing, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Nothing\") },\r\n { Id: PaymentLinkState.SentLink, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.SentLink\") },\r\n {\r\n Id: PaymentLinkState.OpenFactorLink,\r\n Selected: false,\r\n Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.OpenFactorLink\"),\r\n },\r\n { Id: PaymentLinkState.Paying, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Paying\") },\r\n { Id: PaymentLinkState.Paid, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Paid\") },\r\n { Id: PaymentLinkState.FailPayment, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.FailPayment\") },\r\n ];\r\n\r\n filterByDepositCreatedDate: boolean;\r\n\r\n public isMultiBranch =\r\n (this.authService.currentInformation().BranchingAdvancedEnabled ||\r\n this.authService.currentInformation().BranchingLightEnabled ||\r\n this.authService.currentInformation().RestaurantCallCenter) &&\r\n this.authService.currentBranch?.AccessToAllBranches;\r\n isDepositReview: boolean;\r\n MealTimeDataList: EnumModel[];\r\n DeliveryTypeDataList: EnumModel[];\r\n ClearTypeDataList: EnumModel[];\r\n hasUserSalesSummary: boolean;\r\n showAllDays = false;\r\n BranchSaleComparisonSummary: boolean = false;\r\n\r\n constructor(\r\n private service: ReviewService,\r\n private fb: UntypedFormBuilder,\r\n protected translate: TranslateService,\r\n protected authService: AuthService,\r\n private httpCommonService: HttpCommonService,\r\n _VoucherKindInfo: VoucherKindInfo,\r\n public accountService: AccountService\r\n ) {\r\n this.isDepositReview = _VoucherKindInfo.VoucherKindId === 2;\r\n this.MealTimeDataList = this.enumToEnumModelArray(MealEnum);\r\n this.DeliveryTypeDataList = this.enumToEnumModelArray(DeliveryEnum);\r\n this.ClearTypeDataList = this.enumToEnumModelArray(ClearEnum);\r\n }\r\n\r\n enumToArray(enumObj: any): any[] {\r\n return Object.keys(enumObj)\r\n .filter((key) => !isNaN(Number(enumObj[key])))\r\n .map((key) => ({ Id: Number(enumObj[key]), Title: key }));\r\n }\r\n\r\n enumToEnumModelArray(enumObj: any): EnumModel[] {\r\n return Object.keys(enumObj)\r\n .filter((key) => !isNaN(Number(enumObj[key])))\r\n .map((key) => ({ Id: enumObj[key], Title: key }));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n\r\n this.formGroup = undefined;\r\n this.unSortableFilterable = undefined;\r\n this.unSortableFilterableScheduleList = undefined;\r\n this.c = undefined;\r\n this.BranchIds = undefined;\r\n this.ItemCategoryIds = undefined;\r\n this.SaleMethodIds = undefined;\r\n this.WaiterListIds = undefined;\r\n this.UserListIds = undefined;\r\n this.InvoiceStatusIds = undefined;\r\n this.DriverIds = undefined;\r\n this.SalePriceTypeIds = undefined;\r\n this.SalonIds = undefined;\r\n this.PaymentMethod = undefined;\r\n this.Months = undefined;\r\n this.GetSaleMethodSummaryColumns = undefined;\r\n this.GetMmonthSummaryColumns = undefined;\r\n this.GetDaySummaryColumns = undefined;\r\n this.GetHourSummaryColumns = undefined;\r\n this.GetUserSummaryColumns = undefined;\r\n this.GetDriverSummaryColumns = undefined;\r\n this.GetWaiterSummaryColumns = undefined;\r\n this.GetItemCategorySummaryColumns = undefined;\r\n this.GetInvoiceSummaryColumns = undefined;\r\n this.GetInvoiceScheduleListColumns = undefined;\r\n this.GetSaleQuantitySummaryColumns = undefined;\r\n this.GetInvoiceItemSummaryColumns = undefined;\r\n this.GetUserSettlementSummaryColumns = undefined;\r\n this.GetDriverSettlementSummaryColumns = undefined;\r\n this.GetPaymentMethodSaleSummaryColumns = undefined;\r\n this.GetReceiptPaymentSummaryColumns = undefined;\r\n this.GetItemSummaryColumns = undefined;\r\n this.GetItemsNumberSummaryColumns = undefined;\r\n this.GetItemAdditiveSummaryColumns = undefined;\r\n this.GetItemDescriptionSummaryColumns = undefined;\r\n this.ReceiptPaymentColumns = undefined;\r\n this.UserSettlementReceipt = undefined;\r\n this.DriverSettlementReceipt = undefined;\r\n this.kpiBundles = undefined;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.unSortableFilterable = [\r\n ...this.unSortableFilterable,\r\n \"Date\",\r\n \"CreationTime\",\r\n \"ClearedBy\",\r\n \"PaymentLinkState\",\r\n \"TerminalNumber\",\r\n \"RecieptTotal\",\r\n \"EditedBy\",\r\n \"SmsType\",\r\n \"OldRemain\",\r\n \"PersonnelTitle\",\r\n ];\r\n this.service.startDate = new Date();\r\n this.service.endDate = new Date();\r\n this.service.ReportKey = \"SalesReview\";\r\n this.service.startDate$.next(this.service.startDate);\r\n this.service.endDate$.next(this.service.endDate);\r\n this.formGroup = this.fb.group({\r\n SaleMethodIds: this.SaleMethodIds,\r\n BranchIds: this.BranchIds,\r\n WaiterListIds: this.WaiterListIds,\r\n UserListIds: this.UserListIds,\r\n ItemCategoryIds: this.ItemCategoryIds,\r\n InvoiceStatusIds: this.InvoiceStatusIds,\r\n DriverIds: this.DriverIds,\r\n SalePriceTypeIds: this.SalePriceTypeIds,\r\n IncludeCancelled: true,\r\n SalonIds: this.SalonIds,\r\n accountstatus: this.accountstatus,\r\n SMSType: this.SMSType,\r\n PaymentState: this.PaymentState,\r\n PaymentMethod: this.PaymentMethod,\r\n Delivery: this.Delivery,\r\n Cook: this.Cook,\r\n ClearType: this.ClearType,\r\n DeliveryType: this.DeliveryType,\r\n MealTime: this.MealTime,\r\n });\r\n this.service.filterChangeSubject.pipe(pairwise(), takeUntil(this.ngUnsubscribe)).subscribe(([prev, next]) => {\r\n if (next && next.changedKeys.length > 0 && JSON.stringify(prev?.items) === JSON.stringify(next?.items)) {\r\n this.GetSaleChartData();\r\n this.GetMonthChart();\r\n this.GetUserSalesChart();\r\n this.ItemCategorySalesSummaryList();\r\n this.ItemSalesSummaryList();\r\n }\r\n });\r\n this.hasUserSalesSummaryList();\r\n this.hasBranchSaleComparisonSummaryList();\r\n this.hasViewReportAllDays();\r\n }\r\n hasBranchSaleComparisonSummaryList() {\r\n if (this.accountService.userHasPermission(`RestaurantSale:SaleReview`, \"BranchSaleComparison\")) {\r\n this.BranchSaleComparisonSummary = true;\r\n }\r\n }\r\n\r\n hasViewReportAllDays() {\r\n if (this.accountService.userHasPermission(`RestaurantSale:SaleReview`, \"ViewReportAllDays\")) {\r\n this.showAllDays = true;\r\n }\r\n }\r\n setColumns(activeTabTitle: string) {\r\n switch (activeTabTitle) {\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.BranchSaleComparison\"):\r\n if (this.GetBranchSaleComparisonColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetBranchSaleComparisonModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetBranchSaleComparisonColumns = data as form_control[];\r\n this.GetBranchSaleComparisonColumns = this.GetBranchSaleComparisonColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Sale\"):\r\n if (this.GetSaleMethodSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetSaleMethodSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetSaleMethodSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.GetSaleMethodSummaryColumns = this.GetSaleMethodSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.MonthSales\"):\r\n if (this.GetMmonthSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetMonthSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetMmonthSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.GetMmonthSummaryColumns = this.GetMmonthSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n if (this.GetDaySummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetDaySaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetDaySummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.GetDaySummaryColumns = this.GetDaySummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n if (this.GetHourSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetHourSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetHourSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.GetHourSummaryColumns = this.GetHourSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Users\"):\r\n if (this.GetUserSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetUserSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetUserSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.GetUserSummaryColumns = this.GetUserSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n if (this.GetDriverSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetDriverSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetDriverSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.GetDriverSummaryColumns = this.GetDriverSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n if (this.GetWaiterSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetWaiterSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetWaiterSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.GetWaiterSummaryColumns = this.GetWaiterSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.GoodsGroup\"):\r\n if (this.GetItemCategorySummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetItemCategorySaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetItemCategorySummaryColumns = data as form_control[];\r\n this.GetItemCategorySummaryColumns = this.GetItemCategorySummaryColumns.filter(\r\n (x) =>\r\n x.name !== \"TotalNet\" &&\r\n x.name !== \"TotalRounding\" &&\r\n x.name !== \"TotalTip\" &&\r\n x.name !== \"TotalShippingCost\" &&\r\n x.name !== \"TotalDebit\" &&\r\n x.name !== \"TotalCredit\" &&\r\n x.name !== \"PayableTotal\" &&\r\n x.name !== \"Total\" &&\r\n x.name !== \"BranchTitle\"\r\n ).sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Item\"):\r\n if (this.GetItemSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetItemSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetItemSummaryColumns = data as form_control[];\r\n this.GetItemSummaryColumns = this.GetItemSummaryColumns.filter(\r\n (x) =>\r\n x.name !== \"Total\" &&\r\n x.name !== \"TotalRounding\" &&\r\n x.name !== \"TotalTip\" &&\r\n x.name !== \"TotalShippingCost\" &&\r\n x.name !== \"PayableTotal\" &&\r\n x.name !== \"TotalDebit\" &&\r\n x.name !== \"TotalCredit\" &&\r\n x.name !== \"PayableTotal\" &&\r\n x.name !== \"Total\" &&\r\n x.name !== \"BranchTitle\"\r\n ).sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.ItemsNumber\"):\r\n if (this.GetItemsNumberSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetItemsNumberSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetItemsNumberSummaryColumns = data as form_control[];\r\n this.GetItemsNumberSummaryColumns = this.GetItemsNumberSummaryColumns.filter(\r\n (x) =>\r\n x.name !== \"Total\" &&\r\n x.name !== \"TotalRounding\" &&\r\n x.name !== \"TotalTip\" &&\r\n x.name !== \"TotalShippingCost\" &&\r\n x.name !== \"PayableTotal\" &&\r\n x.name !== \"TotalDebit\" &&\r\n x.name !== \"TotalCredit\" &&\r\n x.name !== \"PayableTotal\" &&\r\n x.name !== \"Total\" &&\r\n x.name !== \"BranchTitle\"\r\n ).sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.AdditiveAndDescription\"):\r\n if (this.GetItemAdditiveSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetItemAdditiveSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetItemAdditiveSummaryColumns = data as form_control[];\r\n this.GetItemAdditiveSummaryColumns = this.GetItemAdditiveSummaryColumns.filter(\r\n (x) =>\r\n x.name !== \"Total\" &&\r\n x.name !== \"TotalRounding\" &&\r\n x.name !== \"TotalTip\" &&\r\n x.name !== \"TotalShippingCost\" &&\r\n x.name !== \"PayableTotal\" &&\r\n x.name !== \"TotalDebit\" &&\r\n x.name !== \"TotalCredit\" &&\r\n x.name !== \"PayableTotal\" &&\r\n x.name !== \"Total\" &&\r\n x.name !== \"BranchTitle\"\r\n ).sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n if (this.GetItemDescriptionSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetItemDescriptionSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetItemDescriptionSummaryColumns = data as form_control[];\r\n this.GetItemDescriptionSummaryColumns = this.GetItemDescriptionSummaryColumns.filter(\r\n (x) =>\r\n x.name !== \"Total\" &&\r\n x.name !== \"TotalRounding\" &&\r\n x.name !== \"TotalTip\" &&\r\n x.name !== \"TotalShippingCost\" &&\r\n x.name !== \"PayableTotal\" &&\r\n x.name !== \"TotalDebit\" &&\r\n x.name !== \"TotalCredit\" &&\r\n x.name !== \"PayableTotal\" &&\r\n x.name !== \"Total\" &&\r\n x.name !== \"BranchTitle\"\r\n ).sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Factor\"):\r\n if (this.GetInvoiceSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetInvoiceSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetInvoiceSummaryColumns = data as form_control[];\r\n this.GetInvoiceSummaryColumns = this.GetInvoiceSummaryColumns.filter((x) => x.name !== \"InvoiceCount\").sort(\r\n (a, b) => a.order - b.order\r\n );\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.SummarySaleQuantity\"):\r\n if (this.GetSaleQuantitySummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetSaleQuantitySummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetSaleQuantitySummaryColumns = data as form_control[];\r\n this.GetSaleQuantitySummaryColumns = this.GetSaleQuantitySummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n if (this.GetInvoiceItemSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetInvoiceItemSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetInvoiceItemSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.GetInvoiceItemSummaryColumns = this.GetInvoiceItemSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.InvoiceSchedule\"):\r\n if (this.GetInvoiceScheduleListColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetInvoiceScheduleListInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetInvoiceScheduleListColumns = data as form_control[];\r\n this.GetInvoiceScheduleListColumns = this.GetInvoiceScheduleListColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.FactorDetail\"):\r\n if (this.GetInvoiceItemSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetInvoiceItemSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetInvoiceItemSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.GetInvoiceItemSummaryColumns = this.GetInvoiceItemSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.UserSettlementSummaryList\"):\r\n if (this.GetUserSettlementSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetUserSettlementSummaryInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetUserSettlementSummaryColumns = data as form_control[];\r\n this.GetUserSettlementSummaryColumns = this.GetUserSettlementSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n if (this.ReceiptPaymentColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetReceiptPaymentSettlementModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.ReceiptPaymentColumns = data as form_control[];\r\n this.ReceiptPaymentColumns = this.ReceiptPaymentColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n if (this.GetDriverSettlementSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetDriverSettlementSummaryInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetDriverSettlementSummaryColumns = data as form_control[];\r\n this.GetDriverSettlementSummaryColumns = this.GetDriverSettlementSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.PaymentMethodSaleSummaryList\"):\r\n if (this.GetPaymentMethodSaleSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetPaymentMethodSaleSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetPaymentMethodSaleSummaryColumns = data as form_control[];\r\n this.GetPaymentMethodSaleSummaryColumns = this.GetPaymentMethodSaleSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.ReceiptPaymentSummaryList\"):\r\n if (this.GetReceiptPaymentSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetReceiptPaymentSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.GetReceiptPaymentSummaryColumns = data as form_control[];\r\n this.GetReceiptPaymentSummaryColumns = this.GetReceiptPaymentSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.DepositSales\"):\r\n if (this.depositSalesSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetDepositSalesSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.depositSalesSummaryColumns = data as form_control[];\r\n this.depositSalesSummaryColumns = this.depositSalesSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.DepositDetail\"):\r\n if (this.invoiceItemSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetInvoiceItemDepositSummaryModelInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.invoiceItemSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.invoiceItemSummaryColumns = this.invoiceItemSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.PersonnelServices\"):\r\n if (this.personnelServicesSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetPersonnelServicesSummaryInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.personnelServicesSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.personnelServicesSummaryColumns = this.personnelServicesSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n case this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Deposit\"):\r\n if (this.depositSummaryColumns?.length <= 0) {\r\n this.httpCommonService\r\n .get(\"SaleReview/GetDepositSummaryListInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.depositSummaryColumns = (data as form_control[]).filter((x) => x.name !== \"BranchTitle\");\r\n this.depositSummaryColumns = this.depositSummaryColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n selectTab($event) {\r\n this.setColumns($event.tabTitle);\r\n this.activeTabTitle = $event.tabTitle;\r\n if (this.activeTabTitle == this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.BranchSaleComparison\")) {\r\n this.GetBranchSaleComparisonChartData();\r\n }\r\n if (this.activeTabTitle == this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Sale\")) {\r\n this.GetSaleChartData();\r\n }\r\n if (this.activeTabTitle == this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.MonthSales\")) {\r\n this.GetMonthChart();\r\n }\r\n if (this.activeTabTitle == this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.UserSales\")) {\r\n this.GetUserSalesChart();\r\n }\r\n if (this.activeTabTitle == this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.GoodsGroup\")) {\r\n this.ItemCategorySalesSummaryList();\r\n }\r\n if (this.activeTabTitle == this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Item\")) {\r\n this.ItemSalesSummaryList();\r\n }\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n setSelectedFilter(filter: string) {\r\n if (this.selected === filter) this.selected = \"\";\r\n else this.selected = filter;\r\n }\r\n onRowSelected(row) {\r\n this.UserSettlementReceipt = row.length > 0 ? row[0].ReceiptPayments : null;\r\n }\r\n onSaleQuantityRowSelected(rows: any[]) {\r\n this.customDataList = rows.length > 0 ? rows[rows.length - 1]?.InvoiceItems : null;\r\n }\r\n onDriverRowSelected($event) {\r\n this.DriverSettlementReceipt = $event.length > 0 ? $event[0].ReceiptPayments : null;\r\n }\r\n chartData: any[] = [];\r\n isFinished: boolean;\r\n GetSaleChartData() {\r\n setTimeout(() => {\r\n const filter = this.FillFilters(this.service?.filterSubject?.getValue());\r\n this.httpCommonService\r\n .create(\"SaleReview/ReadSalesChart\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: any[]) => {\r\n this.chartData = data;\r\n });\r\n }, 100);\r\n }\r\n GetBranchSaleComparisonChartData() {\r\n setTimeout(() => {\r\n const filter = this.FillFilters(this.service?.filterSubject?.getValue());\r\n this.httpCommonService\r\n .create(\"SaleReview/ReadBranchSaleComparisonChart\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: any[]) => {\r\n this.chartData = data;\r\n });\r\n }, 100);\r\n }\r\n protected FillFilters(filters: ReviewFilter): GridFilter[] {\r\n var basefilters = ReviewHelper.buildQuery(filters);\r\n let _filters = [];\r\n if (this.authService.currentFiscalYear && this.authService.currentFiscalYear.Id)\r\n _filters.push({ Type: \"F\", Filed: \"FiscalYearId\", Value: this.authService.currentFiscalYear.Id, Operator: \"eq\" });\r\n basefilters.filters.forEach((x) => {\r\n if (x.Name === \"StartDate\") _filters.push({ Type: \"F\", Filed: \"VoucherDate\", Value: x.Value, Operator: \"gte\" });\r\n else if (x.Name === \"EndDate\") _filters.push({ Type: \"F\", Filed: \"VoucherDate\", Value: x.Value, Operator: \"lte\" });\r\n else if (x.Name === \"StartNumber\") _filters.push({ Type: \"F\", Filed: \"VoucherNo\", Value: x.Value, Operator: \"gte\" });\r\n else if (x.Name === \"EndNumber\") _filters.push({ Type: \"F\", Filed: \"VoucherNo\", Value: x.Value, Operator: \"lte\" });\r\n else if (x.Name.includes(\"Ids\")) _filters.push({ Type: \"F\", Filed: x.Name, Value: x.Value, Operator: \"contains\" });\r\n else _filters.push({ Type: \"F\", Filed: x.Name, Value: x.Value, Operator: \"eq\" });\r\n });\r\n _filters.forEach((x) => {\r\n x.Take = 1000;\r\n });\r\n return _filters;\r\n }\r\n GetMonthChart() {\r\n if (this.activeTabTitle != this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.MonthSales\")) {\r\n return;\r\n }\r\n const filter = this.FillFilters(this.service?.filterSubject?.getValue());\r\n this.httpCommonService\r\n .create(\"SaleReview/ReadMonthSalesChart\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: any[]) => {\r\n this.chartData = data;\r\n });\r\n }\r\n GetUserSalesChart() {\r\n if (this.activeTabTitle != this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.UserSales\")) {\r\n return;\r\n }\r\n const filter = this.FillFilters(this.service?.filterSubject?.getValue());\r\n this.httpCommonService\r\n .create(\"SaleReview/ReadUserSalesChart\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: any[]) => {\r\n this.chartData = data;\r\n });\r\n }\r\n ItemCategorySalesSummaryList() {\r\n if (this.activeTabTitle != this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.GoodsGroup\")) {\r\n return;\r\n }\r\n const filter = this.FillFilters(this.service?.filterSubject?.getValue());\r\n this.httpCommonService\r\n .create(\"SaleReview/ReadItemCategoryChart\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: any[]) => {\r\n this.chartData = data;\r\n });\r\n }\r\n ItemSalesSummaryList() {\r\n if (this.activeTabTitle != this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Item\")) {\r\n return;\r\n }\r\n const filter = this.FillFilters(this.service?.filterSubject?.getValue());\r\n this.httpCommonService\r\n .create(\"SaleReview/ReadItemChart\", filter)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: any[]) => {\r\n this.chartData = data;\r\n });\r\n }\r\n\r\n applyDepositDateFilter() {\r\n this.filterByDepositCreatedDate = !this.filterByDepositCreatedDate;\r\n if (this.filterByDepositCreatedDate) {\r\n const filters = [{ key: \"DepositDateFilter\", value: this.filterByDepositCreatedDate }];\r\n this.service.addFilter(\"DepositDateFilter\", filters as ReviewFilterItem[]);\r\n } else {\r\n this.service.removeFilter(\"DepositDateFilter\", \"DepositDateFilter\", [true], \"array\");\r\n }\r\n }\r\n\r\n hasUserSalesSummaryList() {\r\n if (this.accountService.userHasPermission(`RestaurantSale:SaleReview`, \"UserSalesSummaryList\")) {\r\n this.hasUserSalesSummary = true;\r\n }\r\n }\r\n}\r\n","\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.FilterRegistrationDate\" | translate }}\r\n {{\r\n \"ClientApp.FrontOffice.Review.SalesReview.FilterRegistrationDate\" | translate\r\n }}\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.Branch\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.GoodsGroup\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.User\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.SaleMethod\" | translate }} \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.Waiter\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.Delivery\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.SalePrice\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.InvoiceStatus\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.Salon\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.AccountStatus\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.SMSType\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.PaymentState\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.PaymentMethod\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.MealTime\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.DeliveryType\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.ClearType\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.Cook\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.Driver\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0\">\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.BranchSaleComparisonTitle\" | translate }}\r\n
\r\n 0\"\r\n name=\"BranchSaleComparison\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.BranchSaleComparison' | translate\"\r\n [apiName]=\"'SaleReview/BranchSaleComparison'\"\r\n areaName=\"RestaurantSale\"\r\n [groupable]=\"false\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetBranchSaleComparisonColumns\"\r\n [filtering]=\"false\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"BranchTitle\"\r\n key=\"BranchId\"\r\n aggregatesColumnName=\"BranchTitle,BranchId,TotalRounding, PackingPrice,TotalTip,TotalShippingCost,TotalCredit,TotalDebit,UsedCredit,TotalTax,TotalService,InvoiceCount,PayableTotal\">\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
0\">\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.SaleMethodSalesSummaryList\" | translate }}\r\n
\r\n 0\"\r\n name=\"SaleMethodSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.SaleMethodSalesSummaryList' | translate\"\r\n [apiName]=\"!isDepositReview ? 'SaleReview/SaleMethodSalesSummaryList' : 'SaleReview/SaleMethodDepositSummaryList'\"\r\n areaName=\"RestaurantSale\"\r\n [groupable]=\"false\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetSaleMethodSummaryColumns\"\r\n [filtering]=\"false\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"SaleMethodTitle\"\r\n key=\"SaleMethodIds\"\r\n aggregatesColumnName=\"TotalRounding, PackingPrice,TotalTip,TotalShippingCost,TotalCredit,TotalDebit,UsedCredit,TotalTax,TotalService,InvoiceCount,PayableTotal\">\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.MonthSalesSummaryList\" | translate }}\r\n
\r\n 0\"\r\n name=\"MonthSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.MonthSalesSummaryList' | translate\"\r\n apiName=\"SaleReview/MonthSalesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetMmonthSummaryColumns\"\r\n [filtering]=\"false\"\r\n key=\"Months\"\r\n defaultSortKey=\"MonthName\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"MonthName\"\r\n aggregatesColumnName=\"PayableTotal,InvoiceCount,TotalService,TotalTax,TotalDebit,TotalDiscount,TotalCredit,TotalShippingCost,TotalTip,TotalRounding\">\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.DaySalesSummaryList\" | translate }}\r\n
\r\n 0\"\r\n name=\"DaySalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.DaySalesSummaryList' | translate\"\r\n apiName=\"SaleReview/DaySalesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetDaySummaryColumns\"\r\n [filtering]=\"false\"\r\n key=\"Days\"\r\n pathPreFix=\"SALE\"\r\n [filterTextPrefix]=\"'ClientApp.FrontOffice.Review.SalesReview.Day' | translate\"\r\n defaultSortKey=\"Day\"\r\n displayNameColumn=\"Day\"\r\n aggregatesColumnName=\"PayableTotal,InvoiceCount,TotalService,TotalTax,TotalDebit,TotalDiscount,TotalCredit,TotalShippingCost,TotalTip,TotalRounding\">\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.HourSalesSummaryList\" | translate }}
\r\n 0\"\r\n name=\"HourSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.HourSalesSummaryList' | translate\"\r\n apiName=\"SaleReview/HourSalesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetHourSummaryColumns\"\r\n [filtering]=\"false\"\r\n key=\"Hours\"\r\n displayNameColumn=\"Hour\"\r\n pathPreFix=\"SALE\"\r\n [filterTextPrefix]=\"'ClientApp.FrontOffice.Review.SalesReview.Clock' | translate\"\r\n aggregatesColumnName=\"PayableTotal,TotalDebit,TotalService,TotalTax,TotalCredit,TotalDiscount,TotalShippingCost,TotalTip,UsedCredit,PaymentToAcc, TotalRounding, InvoiceCount\">\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
0 && hasUserSalesSummary\">\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.UserSalesSummaryList\" | translate }}\r\n
\r\n 0 && hasUserSalesSummary\"\r\n name=\"UserSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.UserSalesSummaryList' | translate\"\r\n apiName=\"SaleReview/UserSalesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetUserSummaryColumns\"\r\n [filtering]=\"false\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"UserDisplayName\"\r\n key=\"UserListIds\"\r\n aggregatesColumnName=\"TotalRounding,TotalTip,TotalShippingCost,TotalCredit,TotalDiscount,TotalDebit,TotalTax,TotalService,InvoiceCount,PayableTotal\">\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.DriverSalesSummaryList\" | translate }}
\r\n 0\"\r\n name=\"DriverSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.DriverSalesSummaryList' | translate\"\r\n apiName=\"SaleReview/DriverSalesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetDriverSummaryColumns\"\r\n [filtering]=\"true\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"DriverTitle\"\r\n key=\"DriverIds\"\r\n aggregatesColumnName=\"TotalRounding,TotalTip,TotalShippingCost,TotalCredit,TotalDiscount,TotalDebit,TotalTax,TotalService,InvoiceCount,PayableTotal,TotalCourierShippingCost\">\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.WaiterSalesSummaryList\" | translate }}
\r\n 0\"\r\n name=\"WaiterSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.WaiterSalesSummaryList' | translate\"\r\n apiName=\"SaleReview/WaiterSalesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetWaiterSummaryColumns\"\r\n [filtering]=\"false\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"WaiterTitle\"\r\n key=\"WaiterListIds\"\r\n aggregatesColumnName=\"TotalRounding,TotalTip,TotalShippingCost,TotalCredit,TotalDiscount,TotalDebit,TotalTax,TotalService,InvoiceCount,PayableTotal\">\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.ItemCategorySalesSummaryList\" | translate }}
\r\n 0\"\r\n name=\"ItemCategorySalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.ItemCategorySalesSummaryList' | translate\"\r\n apiName=\"SaleReview/ItemCategorySalesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetItemCategorySummaryColumns\"\r\n [filtering]=\"false\"\r\n key=\"ItemCategoryIds\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"ItemCategoryTitle\"\r\n aggregatesColumnName=\"TotalPriceInclServiceInclTax,TotalDiscount,TotalTax,TotalService,InvoiceCount,TotalPrice\">\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.DepositSalesSummaryList\" | translate }}\r\n
\r\n 0\"\r\n name=\"DepositSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.DepositSalesSummaryList' | translate\"\r\n apiName=\"SaleReview/DepositSalesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterableDeposit\"\r\n [columns]=\"depositSalesSummaryColumns\"\r\n [filtering]=\"false\"\r\n key=\"InvoiceIds\"\r\n defaultSortKey=\"InvoiceCode\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"CustomerName\"\r\n aggregatesColumnName=\"PayableTotal,ServicesAmount,Remain,DepositAmount,ShippingCost\">\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.DepositDetail\" | translate }}
\r\n 0\"\r\n name=\"InvoiceItemDepositSummaryList\"\r\n key=\"FactorDetails\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.DepositDetail' | translate\"\r\n apiName=\"SaleReview/InvoiceItemDepositSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n displayNameColumn=\"ItemNumber\"\r\n pathPreFix=\"SALE\"\r\n [columns]=\"invoiceItemSummaryColumns\"\r\n aggregatesColumnName=\"Quantity,UnitPrice,TotalTax,TotalService,TotalDiscount,TotalPriceInclServiceInclTax,TotalPrice\"\r\n [filtering]=\"false\">\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.ItemSalesSummaryList\" | translate }}
\r\n 0\"\r\n name=\"ItemSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.ItemSalesSummaryList' | translate\"\r\n [apiName]=\"!isDepositReview ? 'SaleReview/ItemSalesSummaryList' : 'SaleReview/ItemDepositSummaryList'\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetItemSummaryColumns\"\r\n [filtering]=\"false\"\r\n key=\"ItemIds\"\r\n defaultSortKey=\"Number\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"ItemTitle\"\r\n aggregatesColumnName=\"TotalPriceInclServiceInclTax,TotalDiscount,TotalTax,TotalService,InvoiceCount,TotalPrice,UnitPrice\">\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.PersonnelServices\" | translate }}
\r\n 0\"\r\n name=\"PersonnelServicesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.PersonnelServicesSummaryList' | translate\"\r\n apiName=\"SaleReview/PersonnelServicesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"personnelServicesSummaryColumns\"\r\n [filtering]=\"false\"\r\n defaultSortKey=\"PersonnelName\"\r\n pathPreFix=\"SALE\"\r\n aggregatesColumnName=\"Amount\">\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.DepositSummaryList\" | translate }}
\r\n 0\"\r\n name=\"DepositSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.DepositSummaryList' | translate\"\r\n apiName=\"SaleReview/DepositSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"depositSummaryColumns\"\r\n [filtering]=\"false\"\r\n defaultSortKey=\"InvoiceCode\"\r\n pathPreFix=\"SALE\"\r\n aggregatesColumnName=\"Amount\">\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.InvoiceSalesSummaryList\" | translate }}\r\n
\r\n 0\"\r\n name=\"InvoiceSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.InvoiceSalesSummaryList' | translate\"\r\n apiName=\"SaleReview/InvoiceSalesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetInvoiceSummaryColumns\"\r\n [filtering]=\"true\"\r\n key=\"InvoiceIds\"\r\n displayNameColumn=\"Code\"\r\n pathPreFix=\"SALE\"\r\n [filterTextPrefix]=\"'ClientApp.FrontOffice.Review.SalesReview.InvoiceNo' | translate\"\r\n aggregatesColumnName=\"PayableTotal,TotalDebit,TotalService,TotalTax,TotalCredit,TotalDiscount,TotalShippingCost,TotalTip,UsedCredit,Karmozd,PaymentToAcc\">\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.InvoiceItemSalesSummaryList\" | translate }}
\r\n 0\"\r\n name=\"InvoiceItemSalesSummaryList\"\r\n key=\"FactorDetails\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.InvoiceItemSalesSummaryList' | translate\"\r\n apiName=\"SaleReview/InvoiceItemSalesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n displayNameColumn=\"ItemNumber\"\r\n pathPreFix=\"SALE\"\r\n [columns]=\"GetInvoiceItemSummaryColumns\"\r\n [filtering]=\"false\"\r\n aggregatesColumnName=\"TotalPriceInclServiceInclTax,TotalTax,TotalService,TotalDiscount,TotalPrice,Quantity,UnitPrice\">\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.InvoiceItemAdditiveSalesSummaryList\" | translate }}\r\n
\r\n 0\"\r\n name=\"InvoiceItemAdditiveSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.InvoiceItemAdditiveSalesSummaryList' | translate\"\r\n apiName=\"SaleReview/InvoiceItemAdditiveSalesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetItemAdditiveSummaryColumns\"\r\n [filtering]=\"false\"\r\n key=\"AdditiveIds\"\r\n defaultSortKey=\"Number\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"ItemAdditiveTitle\"\r\n aggregatesColumnName=\"UnitPrice ,TotalAdditive\">\r\n \r\n
\r\n\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.InvoiceItemDescriptionSalesSummaryList\" | translate }}\r\n
\r\n 0\"\r\n name=\"InvoiceItemDescriptionSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.InvoiceItemDescriptionSalesSummaryList' | translate\"\r\n apiName=\"SaleReview/InvoiceItemAdditiveSalesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetItemDescriptionSummaryColumns\"\r\n [filtering]=\"false\"\r\n key=\"DescriptionIds\"\r\n defaultSortKey=\"Number\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"ItemDescriptionTitle\">\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.ItemsNumber\" | translate }}\r\n
\r\n 0\"\r\n name=\"ItemsNumberSalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.ItemsNumber' | translate\"\r\n apiName=\"SaleReview/ItemsNumberSalesSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [columns]=\"GetItemsNumberSummaryColumns\"\r\n [filtering]=\"true\"\r\n key=\"ItemIds\"\r\n defaultSortKey=\"Number\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"ItemTitle\"\r\n aggregatesColumnName=\"InvoiceCount\">\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.SummarySaleQuantity\" | translate }}\r\n
\r\n 0\"\r\n name=\"SaleQuantitySummaryList\"\r\n apiName=\"SaleReview/SaleQuantitySalesSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.SaleQuantitySummaryList' | translate\"\r\n areaName=\"RestaurantSale\"\r\n [columns]=\"GetSaleQuantitySummaryColumns\"\r\n (onRowSelected)=\"onSaleQuantityRowSelected($event)\"\r\n [filtering]=\"true\"\r\n key=\"InvoiceIds\"\r\n displayNameColumn=\"Code\"\r\n pathPreFix=\"SALE\">\r\n \r\n
\r\n\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.FactorDetail\" | translate }}
\r\n 0\"\r\n name=\"FactorDetail\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.FactorDetail' | translate\"\r\n areaName=\"RestaurantSale\"\r\n [columns]=\"GetInvoiceItemSummaryColumns\"\r\n [customDataList]=\"customDataList\"\r\n [filtering]=\"true\"\r\n key=\"InvoiceIds\"\r\n displayNameColumn=\"Code\"\r\n pathPreFix=\"SALE\">\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.InvoiceSchedule\" | translate }}\r\n
\r\n 0\"\r\n name=\"InvoiceScheduleList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.InvoiceSchedule' | translate\"\r\n apiName=\"SaleReview/InvoiceScheduleList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterableScheduleList\"\r\n [columns]=\"GetInvoiceScheduleListColumns\"\r\n [filtering]=\"true\"\r\n key=\"InvoiceIds\"\r\n displayNameColumn=\"Code\"\r\n pathPreFix=\"SALE\"\r\n [filterTextPrefix]=\"'ClientApp.FrontOffice.Review.SalesReview.InvoiceNo' | translate\">\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.UserSettlementSummaryList\" | translate }}\r\n
\r\n 0\"\r\n name=\"UserSettlementSummaryList\"\r\n key=\"UserSettlementSummaryLists\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.UserSettlementSummaryList' | translate\"\r\n apiName=\"SaleReview/UserSettlementSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetUserSettlementSummaryColumns\"\r\n [filtering]=\"false\"\r\n (onRowSelected)=\"onRowSelected($event)\"\r\n pathPreFix=\"SALE\"\r\n displayNameColumn=\"DisplayName\">\r\n \r\n
\r\n
0\">\r\n \r\n \r\n
\r\n
\r\n
{{ \"ClientApp.FrontOffice.Review.SalesReview.DriverSettlementSummaryList\" | translate }}
\r\n 0\"\r\n name=\"DriverSettlementSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.DriverSettlementSummaryList' | translate\"\r\n apiName=\"SaleReview/DriverSettlementSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n [columns]=\"GetDriverSettlementSummaryColumns\"\r\n [filtering]=\"false\"\r\n pathPreFix=\"SALE\"\r\n (onRowSelected)=\"onDriverRowSelected($event)\">\r\n \r\n
\r\n
0\">\r\n \r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.PaymentMethodSaleSummaryList\" | translate }}\r\n
\r\n 0\"\r\n name=\"PaymentMethodSaleSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.PaymentMethodSaleSummaryList' | translate\"\r\n apiName=\"SaleReview/PaymentMethodSaleSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n pathPreFix=\"SALE\"\r\n [columns]=\"GetPaymentMethodSaleSummaryColumns\"\r\n [filtering]=\"true\"\r\n key=\"PaymentMethodIds\"\r\n displayNameColumn=\"Title\"\r\n aggregatesColumnName=\"Remain,ReceiptAmount,PaymentAmount\">\r\n \r\n
\r\n
\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.ReceiptPaymentSummaryList\" | translate }}\r\n
\r\n 0\"\r\n name=\"ReceiptPaymentSummaryList\"\r\n [title]=\"'ClientApp.FrontOffice.Review.SalesReview.ReceiptPaymentSummaryList' | translate\"\r\n apiName=\"SaleReview/ReceiptPaymentSummaryList\"\r\n areaName=\"RestaurantSale\"\r\n [unSortableFilterable]=\"unSortableFilterable\"\r\n pathPreFix=\"SALE\"\r\n defaultSortKey=\"Code\"\r\n [columns]=\"GetReceiptPaymentSummaryColumns\"\r\n [filtering]=\"false\"\r\n valueNameColumn=\"Code\"\r\n aggregatesColumnName=\"ReceiptAmount\">\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { SalesReviewComponent } from \"./sales-review.component\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { ReportReviewModule } from \"src/app/review/review.module\";\r\n\r\nconst components = [SalesReviewComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule, ReportReviewModule],\r\n})\r\nexport class SalesReviewModule {}\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { MapObjectPipe } from \"projects/sepidz-web-framework/src/lib/pipes/mapobject.pipe\";\r\nimport { InvoiceHistory, InvoiceHistoryCompare, InvoiceItemHistory } from \"src/app/frontoffice/order/model/invoicehistory.model\";\r\nimport { ShowToastrService } from \"../../../../../../projects/sepidz-web-framework/src/lib/services\";\r\nimport { HttpCommonService } from \"../../../../../../projects/sepidz-web-framework/src/lib/services/http-common.service\";\r\nimport { SecurityReviewService } from \"../security-review.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { ClearEnum, DeliveryEnum, MealEnum } from \"src/app/frontoffice/catalog/model/deposit.enum\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { DepositChangedFieldEnum } from \"src/app/frontoffice/catalog/model/deposit.model\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"detail-security-review\",\r\n templateUrl: \"./detail-security-review.component.html\",\r\n styleUrls: [\"./detail-security-review.component.scss\"],\r\n})\r\nexport class DetailSecurityReviewComponent implements OnInit {\r\n showHeaderContent: boolean = false;\r\n showDepositHeaderContent: boolean = false;\r\n showFooterContent: boolean = false;\r\n changeFactor: boolean = false;\r\n DeleteList: InvoiceItemHistory[] = [];\r\n\r\n mealTimeEnum = MealEnum;\r\n clearTypeEnum = ClearEnum;\r\n deliveryTypeEnum = DeliveryEnum;\r\n stateEnum = RowState;\r\n changedFieldCodeEnum = DepositChangedFieldEnum;\r\n\r\n @Input() CompareList: InvoiceHistoryCompare[];\r\n @Input() IsDelino: boolean = false;\r\n AllInvoice: InvoiceHistory[];\r\n stateFilter: any[] = [\r\n { key: 1, title: this.translate.instant(\"ClientApp.FrontOffice.Review.SecurityReview.TemporaryRegistration\"), count: 0, selected: false },\r\n { key: 2, title: this.translate.instant(\"ClientApp.FrontOffice.Review.SecurityReview.PrintingAndPreparation\"), count: 0, selected: false },\r\n { key: 3, title: this.translate.instant(\"ClientApp.FrontOffice.Review.SecurityReview.KitchenPrint\"), count: 0, selected: false },\r\n { key: 4, title: this.translate.instant(\"ClientApp.FrontOffice.Review.SecurityReview.DedicatedToCourier\"), count: 0, selected: false },\r\n ];\r\n constructor(\r\n private sts: ShowToastrService,\r\n public securityService: SecurityReviewService,\r\n private httpCommonService: HttpCommonService,\r\n private translate: TranslateService\r\n ) {}\r\n\r\n FillData() {\r\n this.httpCommonService\r\n .get(`SecurityReview/SecurityReviewDetails/${this.securityService.CompareList[0].InvoiceId}`)\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: any) => {\r\n this.AllInvoice = data;\r\n this.CompareList = [];\r\n this.AllInvoice.forEach((el) => {\r\n if (el.DepositHistory?.Changes) el.DepositHistory.Changes = JSON.parse(el.DepositHistory.Changes as any);\r\n if (this.securityService.CompareList.some((f) => f.Id === el.Id)) {\r\n el.selected = true;\r\n let output = new InvoiceHistory();\r\n let mapper = new MapObjectPipe();\r\n const history = JSON.parse(JSON.stringify(mapper.transform(el, output)));\r\n this.CompareList.push(history);\r\n }\r\n });\r\n this.CompareList.sort((a, b) => {\r\n return a.Code - b.Code;\r\n });\r\n this.checkChange();\r\n },\r\n (error) => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n ngOnInit(): void {\r\n this.FillData();\r\n }\r\n changeCompare(invoice: InvoiceHistory) {\r\n const findItemIndex = this.AllInvoice.findIndex((f) => f.Id === invoice.Id);\r\n this.AllInvoice[findItemIndex].selected = !this.AllInvoice[findItemIndex].selected;\r\n this.CompareList = [];\r\n this.AllInvoice.forEach((el) => {\r\n if (el.selected) {\r\n el.selected = true;\r\n let output = new InvoiceHistory();\r\n let mapper = new MapObjectPipe();\r\n const history = JSON.parse(JSON.stringify(mapper.transform(el, output)));\r\n this.CompareList.push(history);\r\n }\r\n });\r\n this.checkChange();\r\n }\r\n checkChange() {\r\n try {\r\n if (!this.CompareList || this.CompareList.length < 2) return;\r\n for (let index = 1; index <= this.CompareList.length - 1; index++) {\r\n /// tax\r\n if (this.CompareList[index].TotalTax > this.CompareList[index - 1].TotalTax) {\r\n this.CompareList[index].TotalTaxup = true;\r\n }\r\n if (this.CompareList[index].TotalTax < this.CompareList[index - 1].TotalTax) {\r\n this.CompareList[index].TotalTaxDown = true;\r\n }\r\n /// service\r\n if (this.CompareList[index].TotalService > this.CompareList[index - 1].TotalService) {\r\n this.CompareList[index].TotalServiceup = true;\r\n }\r\n if (this.CompareList[index].TotalService < this.CompareList[index - 1].TotalService) {\r\n this.CompareList[index].TotalServiceDown = true;\r\n }\r\n /// DiscountPrice\r\n if (this.CompareList[index].DiscountPrice > this.CompareList[index - 1].DiscountPrice) {\r\n this.CompareList[index].TotalDiscountup = true;\r\n }\r\n if (this.CompareList[index].DiscountPrice < this.CompareList[index - 1].DiscountPrice) {\r\n this.CompareList[index].TotalDiscountDown = true;\r\n }\r\n /// ShipingCost\r\n if (this.CompareList[index].ShippingCost > this.CompareList[index - 1].ShippingCost) {\r\n this.CompareList[index].ShippingCostup = true;\r\n }\r\n if (this.CompareList[index].ShippingCost < this.CompareList[index - 1].ShippingCost) {\r\n this.CompareList[index].ShippingCostDown = true;\r\n }\r\n /// PackingPrice\r\n if (this.CompareList[index].PackingPrice > this.CompareList[index - 1].PackingPrice) {\r\n this.CompareList[index].PackingPriceup = true;\r\n }\r\n if (this.CompareList[index].PackingPrice < this.CompareList[index - 1].PackingPrice) {\r\n this.CompareList[index].PackingPriceDown = true;\r\n }\r\n /// PayableTotal\r\n if (this.CompareList[index].PayableTotal > this.CompareList[index - 1].PayableTotal) {\r\n this.CompareList[index].PayableTotalup = true;\r\n }\r\n if (this.CompareList[index].PayableTotal < this.CompareList[index - 1].PayableTotal) {\r\n this.CompareList[index].PayableTotalDown = true;\r\n }\r\n /// Total\r\n if (this.CompareList[index].Total > this.CompareList[index - 1].Total) {\r\n this.CompareList[index].Totalup = true;\r\n }\r\n if (this.CompareList[index].Total < this.CompareList[index - 1].Total) {\r\n this.CompareList[index].TotalDown = true;\r\n }\r\n /// Debit\r\n if (this.CompareList[index].Debit > this.CompareList[index - 1].Debit) {\r\n this.CompareList[index].Debitup = true;\r\n }\r\n if (this.CompareList[index].Debit < this.CompareList[index - 1].Debit) {\r\n this.CompareList[index].DebitDown = true;\r\n }\r\n /// Credit\r\n if (this.CompareList[index].Credit > this.CompareList[index - 1].Credit) {\r\n this.CompareList[index].Creditup = true;\r\n }\r\n if (this.CompareList[index].Credit < this.CompareList[index - 1].Credit) {\r\n this.CompareList[index].CreditDown = true;\r\n }\r\n ///\r\n if (this.CompareList[index].Description !== this.CompareList[index - 1].Description) {\r\n this.CompareList[index].DescriptionChange = true;\r\n }\r\n if (index > 0) {\r\n this.CompareList[index - 1].Items.forEach((f) => {\r\n const deletedItem =\r\n this.CompareList[index].Items.some((s) => s.Index == f.Index && s.ItemId === f.ItemId) &&\r\n !this.DeleteList.some((s) => s.Index == f.Index && s.ItemId === f.ItemId);\r\n if (!deletedItem) {\r\n const tempItem = Object.assign({}, f);\r\n tempItem.Index = f.Index;\r\n tempItem.ItemTitle = null;\r\n this.DeleteList.push(tempItem);\r\n this.CompareList[index].Items.push(tempItem);\r\n this.CompareList[index].Items = this.CompareList[index].Items.sort((a, b) => a.Index - b.Index);\r\n }\r\n });\r\n }\r\n for (var i = 0; i < this.CompareList[index].Items.length; i++) {\r\n if (\r\n this.CompareList[index]?.Items?.find((f) => f.Index == i)?.ItemId &&\r\n this.CompareList[index - 1]?.Items?.find((f) => f.Index == i)?.ItemId &&\r\n this.CompareList[index]?.Items?.find((f) => f.Index == i)?.ItemId ===\r\n this.CompareList[index - 1]?.Items?.find((f) => f.Index == i)?.ItemId &&\r\n this.CompareList[index]?.Items?.find((f) => f.Index == i).Index === this.CompareList[index - 1]?.Items?.find((f) => f.Index == i).Index\r\n ) {\r\n if (\r\n this.CompareList[index]?.Items?.find((f) => f.Index == i).Quantity >\r\n this.CompareList[index - 1]?.Items?.find((f) => f.Index == i).Quantity\r\n ) {\r\n this.CompareList[index].Items.find((f) => f.Index == i).QuantityUp = true;\r\n }\r\n if (\r\n this.CompareList[index]?.Items?.find((f) => f.Index == i)?.Description !==\r\n this.CompareList[index - 1]?.Items?.find((f) => f.Index == i)?.Description ||\r\n this.CompareList[index]?.Items?.find((f) => f.Index == i)?.Description !==\r\n this.CompareList[index - 1]?.Items?.find((f) => f.Index == i)?.Description\r\n ) {\r\n this.CompareList[index].Items.find((f) => f.Index == i).DescriptionChange = true;\r\n this.CompareList[index - 1].Items.find((f) => f.Index == i).DescriptionChange = true;\r\n }\r\n if (\r\n this.CompareList[index]?.Items?.find((f) => f.Index == i).Quantity <\r\n this.CompareList[index - 1]?.Items?.find((f) => f.Index == i)?.Quantity\r\n ) {\r\n this.CompareList[index].Items.find((f) => f.Index == i).QuantityDown = true;\r\n }\r\n if (\r\n this.CompareList[index]?.Items?.find((f) => f.Index == i)?.RowDiscountPrice >\r\n this.CompareList[index - 1]?.Items?.find((f) => f.Index == i)?.RowDiscountPrice\r\n ) {\r\n this.CompareList[index].Items.find((f) => f.Index == i).RowDiscountPriceUP = true;\r\n }\r\n if (\r\n this.CompareList[index]?.Items?.find((f) => f.Index == i).RowDiscountPrice <\r\n this.CompareList[index - 1]?.Items?.find((f) => f.Index == i)?.RowDiscountPrice\r\n ) {\r\n this.CompareList[index].Items.find((f) => f.Index == i).RowDiscountPriceDown = true;\r\n }\r\n if (\r\n this.CompareList[index]?.Items?.find((f) => f.Index == i).TotalPrice >\r\n this.CompareList[index - 1]?.Items?.find((f) => f.Index == i)?.TotalPrice\r\n ) {\r\n this.CompareList[index].Items.find((f) => f.Index == i).TotalPriceUp = true;\r\n }\r\n if (\r\n this.CompareList[index]?.Items?.find((f) => f.Index == i).TotalPrice <\r\n this.CompareList[index - 1]?.Items?.find((f) => f.Index == i).TotalPrice\r\n ) {\r\n this.CompareList[index].Items.find((f) => f.Index == i).TotalPriceDown = true;\r\n }\r\n }\r\n }\r\n }\r\n } catch (error) {\r\n console.log(`In Change Check Has Error`);\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n {{ item.StatusTitle }} {{ item.ShamsiCreatedDate }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.StateFactor\" | translate }}\r\n
\r\n
\r\n
{{ compare.CreatedUserName }}
\r\n
{{ compare.CommandTitle }}
\r\n
{{ \"ClientApp.FrontOffice.Review.SecurityReview.OnlineFactor\" | translate }}
\r\n
{{ change?.Lookup?.Title }}
\r\n
\r\n {{\r\n \"ClientApp.FrontOffice.Review.SecurityReview.\" + (change.ChangedFieldCode | translateEnum : changedFieldCodeEnum) | translate\r\n }}\r\n {{\r\n \"ClientApp.FrontOffice.Review.SecurityReview.\" + (change.State | translateEnum : stateEnum) | translate\r\n }}\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.FactorInformation\" | translate }}\r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.CustomerName\" | translate }} : {{ compare.CustomerDisplayName }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.ClearedUserName\" | translate }} : {{ compare.ClearedUserName }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.CustomerCode\" | translate }}: {{ compare.CustomerNumber }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.TableTitle\" | translate }} : {{ compare.TableTitle }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.SalePriceTypeTitle\" | translate }} : {{ compare.SalePriceTypeTitle }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.PhoneNumber\" | translate }}: {{ compare.PhoneNumber }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.WaiterName\" | translate }} : {{ compare.WaiterName }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.BranchName\" | translate }}: {{ compare.Branch?.Title }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.QuestNumber\" | translate }} : {{ compare.NumberOfGuests }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.Address\" | translate }}: {{ compare.CustomerAddres }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.Deposit\" | translate }}\r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.ServingFoodDate\" | translate }} : {{ compare.DepositHistory.ServingFoodDate | persianDate }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.ServingFoodTime\" | translate }}: {{ compare.DepositHistory.ServingFoodTime }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.MealTime\" | translate }} : {{ compare.DepositHistory.MealTime | translateEnum : mealTimeEnum }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.DeliveryType\" | translate }} : {{ compare.DepositHistory.DeliveryType | translateEnum : deliveryTypeEnum }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.ClearType\" | translate }}: {{ compare.DepositHistory.ClearType | translateEnum : clearTypeEnum }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.NumberOfPeople\" | translate }} : {{ compare.DepositHistory.NumberOfPeople }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.NumberOfCooks\" | translate }}: {{ compare.DepositHistory?.NumberOfCooks }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.DepositAmount\" | translate }} : {{ compare.DepositHistory.DepositAmount }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.ServicesAmount\" | translate }}: {{ compare.DepositHistory.ServicesAmount }}\r\n
\r\n
\r\n \r\n {{ personnel.Amount }}\r\n \r\n \r\n {{ personnel.PersonnelTitle }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.FoodName\" | translate }}\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.Count\" | translate }}\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.Price\" | translate }}\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.Discount\" | translate }}\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.TotalPrice\" | translate }} \r\n
\r\n
\r\n
\r\n {{ item.ItemTitle }}\r\n -\r\n {{\r\n item.Quantity | number\r\n }}\r\n {{ item.UnitPrice + item.UnitAdditive | number }}\r\n {{ item.RowDiscountPrice | number }}\r\n \r\n {{\r\n (item.UnitPrice + item.UnitAdditive - ((item.UnitPrice + item.UnitAdditive) * item.RowDiscount) / 100) * item.Quantity | number\r\n }}\r\n
\r\n
{{ item.Description }}
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.TotalPrice\" | translate }} \r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.TotalPrice\" | translate }} :{{ compare.Total | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.Discount\" | translate }}: {{ compare.TotalDiscount | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.ShippingCost\" | translate }}: {{ compare.ShippingCost | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.TotalService\" | translate }}: {{ compare.TotalService | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.TotalTax\" | translate }}: {{ compare.TotalTax + compare.TotalToll | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.RoundingAmount\" | translate }} : {{ compare.RoundingAmount | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.PayableTotal\" | translate }}: {{ compare.PayableTotal | number }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.PackingPrice\" | translate }} : {{ compare.PackingPrice | number }}\r\n
\r\n
0\">\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.Debit\" | translate }} : {{ compare.Debit | number }}\r\n
\r\n
0\">\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.Credit\" | translate }} : {{ compare.Credit | number }}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { UntypedFormBuilder, UntypedFormGroup } from \"@angular/forms\";\r\nimport { AccountService, GridFilter, HttpCommonService, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ReviewService } from \"src/app/review/review.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { InvoiceHistory } from \"../../order/model/invoicehistory.model\";\r\nimport { SecurityReviewService } from \"./security-review.service\";\r\nimport { SplashFormService } from \"projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { Subject } from \"rxjs\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"ngx-security-review\",\r\n templateUrl: \"./security-review.component.html\",\r\n styleUrls: [\"./security-review.component.scss\"],\r\n providers: [ReviewService],\r\n})\r\nexport class SecurityReviewComponent implements OnInit, OnDestroy {\r\n ngUnsubscribe = new Subject();\r\n formGroup: UntypedFormGroup;\r\n SecurityReviewInfoColumns: form_control[] = [];\r\n BranchIds: number[] = [];\r\n SaleMethodIds: number[] = [];\r\n UserListIds: number[] = [];\r\n InvoiceCommandIds: number[] = [];\r\n InvoiceStatusIds: number[] = [];\r\n InvoiceChangesIds: number[] = [];\r\n InvoicePayableChangeIds: number[] = [];\r\n selected: string = \"\";\r\n showGrid: boolean = true;\r\n InvoiceItems: any;\r\n CompareList: InvoiceHistory[] = [];\r\n apiName: string;\r\n accountstatus = undefined;\r\n InvoiceHistoryColumnInfo: form_control[] = [];\r\n onFilter: GridFilter[] = [];\r\n unSortableFilterable: any[] = [];\r\n SMSType = undefined;\r\n PaymentState = undefined;\r\n hasWebId: boolean = false;\r\n\r\n paymentStates = [\r\n { Id: 0, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Nothing\") },\r\n { Id: 10, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.SentLink\") },\r\n { Id: 20, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.DeliveredLink\") },\r\n { Id: 30, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.OpenFactorLink\") },\r\n { Id: 40, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Paying\") },\r\n { Id: 50, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.Paid\") },\r\n { Id: 60, Selected: false, Title: this.translate.instant(\"ClientApp.FrontOffice.Review.SalesReview.FailPayment\") },\r\n ];\r\n\r\n public isMultiBranch =\r\n (this.accountService.authService.currentInformation().BranchingAdvancedEnabled ||\r\n this.accountService.authService.currentInformation().BranchingLightEnabled ||\r\n this.accountService.authService.currentInformation().RestaurantCallCenter) &&\r\n this.accountService.authService.currentBranch?.AccessToAllBranches;\r\n\r\n constructor(\r\n private service: ReviewService,\r\n private fb: UntypedFormBuilder,\r\n private sts: ShowToastrService,\r\n private splash: SplashFormService,\r\n private accountService: AccountService,\r\n private securityService: SecurityReviewService,\r\n private httpCommonService: HttpCommonService,\r\n private translate: TranslateService\r\n ) {}\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.formGroup = undefined;\r\n this.SecurityReviewInfoColumns = undefined;\r\n this.BranchIds = undefined;\r\n this.SaleMethodIds = undefined;\r\n this.UserListIds = undefined;\r\n this.InvoiceCommandIds = undefined;\r\n this.InvoiceStatusIds = undefined;\r\n this.InvoiceChangesIds = undefined;\r\n this.InvoicePayableChangeIds = undefined;\r\n this.InvoiceItems = undefined;\r\n this.CompareList = undefined;\r\n this.InvoiceHistoryColumnInfo = undefined;\r\n this.onFilter = undefined;\r\n this.unSortableFilterable = undefined;\r\n }\r\n ngOnInit(): void {\r\n this.unSortableFilterable = [...this.unSortableFilterable,\"DiscountType\", \"ClearedUserName\"]\r\n this.apiName = \"InvoiceHistory\";\r\n this.securityService.CompareList = [];\r\n this.securityService.selectedInvoiceId = null;\r\n this.onFilter = [];\r\n this.setDetailColumns();\r\n this.service.startDate = new Date();\r\n this.service.endDate = new Date();\r\n this.service.ReportKey = \"SecurityReview\";\r\n this.service.startDate$.next(this.service.startDate);\r\n this.service.endDate$.next(this.service.endDate);\r\n this.formGroup = this.fb.group({\r\n SaleMethodIds: this.SaleMethodIds,\r\n BranchIds: this.BranchIds,\r\n UserListIds: this.UserListIds,\r\n InvoiceCommandIds: this.InvoiceCommandIds,\r\n InvoiceStatusIds: this.InvoiceStatusIds,\r\n InvoiceChangesIds: this.InvoiceChangesIds,\r\n InvoicePayableChangeIds: this.InvoicePayableChangeIds,\r\n SMSType: this.SMSType,\r\n accountstatus: this.accountstatus,\r\n PaymentState: this.PaymentState,\r\n });\r\n this.setColumns();\r\n }\r\n setColumns() {\r\n this.httpCommonService\r\n .get(\"SecurityReview/GetSecurityReviewInfo\")\r\n .pipe(take(1))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.SecurityReviewInfoColumns = data as form_control[];\r\n this.SecurityReviewInfoColumns = this.SecurityReviewInfoColumns.sort((a, b) => a.order - b.order);\r\n }\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n onRowSelected(invoice: any) {\r\n this.onFilter = [];\r\n this.hasWebId = invoice?.WebId;\r\n this.securityService.selectedInvoiceId = invoice.Id;\r\n this.unSortableFilterable = [];\r\n this.unSortableFilterable.push(\"CreatedDateTime\");\r\n\r\n this.onFilter.push({\r\n Filed: \"InvoiceId\",\r\n Type: \"F\",\r\n Value: this.securityService.selectedInvoiceId,\r\n Operator: \"eq\",\r\n Logic: \"and\",\r\n Skip: 0,\r\n Take: 10,\r\n });\r\n }\r\n setDetailColumns() {\r\n this.splash.openDialog();\r\n this.httpCommonService\r\n .get(\"InvoiceHistory/GetInvoiceHistoryInfo\")\r\n .pipe(take(1))\r\n .subscribe(\r\n (data) => {\r\n if (data) {\r\n this.InvoiceHistoryColumnInfo = data as form_control[];\r\n this.InvoiceHistoryColumnInfo = this.InvoiceHistoryColumnInfo.sort((a, b) => a.order - b.order);\r\n this.splash.closeLoading();\r\n }\r\n },\r\n (error) => {\r\n this.splash.closeLoading();\r\n }\r\n );\r\n }\r\n setSelectedFilter(filter: string) {\r\n if (this.selected === filter) this.selected = \"\";\r\n else this.selected = filter;\r\n }\r\n goToCompareList() {\r\n if (!this.securityService.CompareList || this.securityService.CompareList.length === 0) {\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.FrontOffice.Review.SecurityReview.ComparisonListEmpty\"),\r\n this.translate.instant(\"ClientApp.FrontOffice.Review.SecurityReview.ErrorMessage\")\r\n );\r\n } else this.showGrid = false;\r\n }\r\n onDetailRowSelected(invoices: InvoiceHistory[]) {\r\n this.securityService.CompareList = Object.assign([], invoices);\r\n }\r\n}\r\n","
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.Detail\" | translate }}\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.Security\" | translate }}\r\n
\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.Branch\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.SaleMethod\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.User\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.FactorStatus\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.FactorOpration\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.FactorCallect\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SecurityReview.InvoiceChanges\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.SMSType\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.PaymentState\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ \"ClientApp.FrontOffice.Review.SalesReview.AccountStatus\" | translate }}\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
0\">\r\n \r\n \r\n
\r\n
0\">\r\n
\r\n \r\n
\r\n 0 ? apiName : '' }}\"\r\n [isAdd]=\"false\"\r\n [isEdit]=\"false\"\r\n [isDelete]=\"false\"\r\n [groupable]=\"false\"\r\n [noToolBar]=\"false\"\r\n pathPreFix=\"SALE\"\r\n defaultSortKey=\"Code\"\r\n defaultSortKeyKind=\"asc\"\r\n (onRowsSelected)=\"onDetailRowSelected($event)\"\r\n [columns]=\"InvoiceHistoryColumnInfo\"\r\n [filters]=\"onFilter\"\r\n [filtering]=\"false\"\r\n [isMulti]=\"true\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SecurityReviewComponent } from './security-review.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nimport { ReportReviewModule } from 'src/app/review/review.module';\r\nimport { DetailSecurityReviewComponent } from './detail-security-review/detail-security-review.component';\r\nimport { SecurityReviewService } from './security-review.service';\r\n\r\n\r\n\r\nconst components =\r\n [\r\n SecurityReviewComponent\r\n ]\r\n@NgModule({\r\n declarations: [...components, DetailSecurityReviewComponent],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule,\r\n ReportReviewModule\r\n ],\r\n providers: [SecurityReviewService]\r\n})\r\nexport class SecurityReviewModule { }\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BaseService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-service.component\";\r\n\r\n@Injectable()\r\n\r\nexport class SecurityReviewService extends BaseService {\r\n public CompareList: any[];\r\n public selectedInvoiceId: number;\r\n}","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n//import { Branch } from 'projects/sepidz-web-framework/src/lib/models';\r\nimport { SaleMethod } from \"./sale-method.model\";\r\nimport { ItemCategory } from \"../../catalog/model/item-category.model\";\r\n\r\nexport class SaleMethodBranchModel extends EntityBase {\r\n public IsActive: boolean;\r\n public ApplyService: boolean;\r\n public ApplyTax: boolean;\r\n public ApplyTaxForService: boolean;\r\n public IsBarCodeInvoice?: boolean;\r\n public PreprationTimeIsActive?: boolean;\r\n public PreprationTimeRequired?: boolean;\r\n public HasDeposit?: boolean;\r\n public ApplyTaxForShippingCost: boolean;\r\n public DeliveryCustomerPrintTimeId: number;\r\n public DeliveryCustomerPrintTimeTitle: string;\r\n public DeliveryCustomerPrintTimeCode: number;\r\n public NumberOfGuestsIsRequired: boolean;\r\n public IncludeFreeItemDependency: boolean;\r\n public IncludeItemDependency: boolean;\r\n public MaximumTimeForStay: number;\r\n public TableIsRequired: boolean;\r\n public HasKeyboardOrder: boolean;\r\n public HasOnlineRezerv: boolean;\r\n public HasHappyHour: boolean;\r\n public ItemCountDisplay: boolean;\r\n public ShowDescInvKitchen: boolean;\r\n public ShowDescInvCustomer: boolean;\r\n public FreeService?: boolean;\r\n public FreeShipping?: boolean;\r\n public HappyHourStart?: Date;\r\n public HappyHourEnd?: Date;\r\n public HappyHourFromDate?: Date;\r\n public HappyHourToDate?: Date;\r\n public Discount?: number;\r\n public IsDiscountPercent: boolean;\r\n public DaysOfWeek: string | string[];\r\n public WaiterIsRequired: boolean;\r\n public SaleMethodId: number;\r\n public SaleMethod: SaleMethod;\r\n public SaleMethodTitle: string;\r\n public ApplyTaxForPackingPrice?: boolean;\r\n public ApplyPackingPrice: boolean;\r\n public HasSnap: boolean;\r\n public AutoApplySnap: boolean;\r\n public InPerson: boolean;\r\n public HasDelino: boolean;\r\n public HaspickupOrderOnline: boolean;\r\n public FirstNumberingInDate: number;\r\n\r\n // public BranchId: number;\r\n // public Branch: Branch[];\r\n public IsChangeTheSalesMethod: boolean;\r\n public IsSalonFastAccess: boolean;\r\n public IsDriverAssignmentFastAccess: boolean;\r\n public IsCustomreFastAccess: boolean;\r\n public IsWaiterFastAccess: boolean;\r\n public IsPagerFastAccess: boolean;\r\n public IsClubFastAccess: boolean;\r\n public IsPaymentLink: boolean;\r\n public HasDelinoOfflineFactor: boolean;\r\n public ShowSalonName: boolean;\r\n public HasNecessaryMobile: boolean;\r\n public ShowCustomerInfo: boolean;\r\n public ShowWaiterName: boolean;\r\n public ShowNumberOfGuests: boolean;\r\n public SaleMethodNatureTitle: string;\r\n public SaleMethodNatureCode: number;\r\n public Code: number;\r\n public HasFactorLink: boolean;\r\n public HasPaymentLink: boolean;\r\n public AutomaticLinks: boolean;\r\n public HasPaymentLinkForNewCustomer: boolean;\r\n public PrintForOnlineOrder: boolean;\r\n public PrintForOnlineOrderForNewCustomer: boolean;\r\n\r\n public ItemCategories: SaleMethodBranchItemCategory[];\r\n public PaymentMethods: SaleMethodBranchPaymentMethod[];\r\n public SalePriceTypes: SaleMethodBranchSalePriceType[];\r\n public Salons: SaleMethodBranchSalon[];\r\n public CustomerCategories: SaleMethodBranchCustomerCategory[];\r\n public PrintTemplates: SaleMethodBranchPrintTemplate[];\r\n public PrintTemplatesClear: SaleMethodBranchPrintTemplate[];\r\n public Users: SaleMethodBranchUser[];\r\n public ItemSaleSubLedgerId?: number;\r\n public ShippingCostSubLedgerId?: number;\r\n public CourierShippingCostSubLedgerId?: number;\r\n public ServiceCostSubLedgerId?: number;\r\n public DiscountSubLedgerId?: number;\r\n public RoundingAmountSubLedgerId?: number;\r\n public HasNecessaryName: boolean;\r\n public UseMobileInValidation: boolean;\r\n public Branches: number[];\r\n public AllBranches: number[];\r\n public PaymentId: number;\r\n public DetailLedgerId: number;\r\n public DetailLedgerTitle: string;\r\n public DetailLedgerCode: number;\r\n public InvVoucherId: number;\r\n public InvWareHouseId: number;\r\n public InvDepositWareHouseId: number;\r\n public InvDepositVoucherKindId: number;\r\n public BranchId: number;\r\n public TaxApplyIsChanged: boolean;\r\n public hasBirthdayDate: boolean;\r\n public hasMarriageDate: boolean;\r\n constructor() {\r\n super();\r\n this.ApplyTax = false;\r\n this.hasBirthdayDate = false;\r\n this.hasMarriageDate = false;\r\n this.ApplyTaxForService = false;\r\n this.ApplyTaxForShippingCost = false;\r\n this.ApplyService = false;\r\n this.ItemCategories = [];\r\n this.IsActive = false;\r\n this.IsCustomreFastAccess = false;\r\n this.IsDriverAssignmentFastAccess = false;\r\n this.IsChangeTheSalesMethod = false;\r\n this.IsPagerFastAccess = false;\r\n this.IsClubFastAccess = false;\r\n this.IsSalonFastAccess = false;\r\n this.IsWaiterFastAccess = false;\r\n this.ShowSalonName = false;\r\n this.HasNecessaryMobile = false;\r\n this.ShowCustomerInfo = false;\r\n this.ShowNumberOfGuests = false;\r\n this.ShowWaiterName = false;\r\n this.HasDelino = false;\r\n this.HasSnap = false;\r\n this.HasHappyHour = false;\r\n this.HasNecessaryName = false;\r\n this.UseMobileInValidation = false;\r\n this.HasKeyboardOrder = false;\r\n this.SaleMethodTitle = \"\";\r\n this.WaiterIsRequired = false;\r\n this.HasFactorLink = false;\r\n this.HasPaymentLink = false;\r\n this.AutomaticLinks = false;\r\n this.HasPaymentLinkForNewCustomer = false;\r\n this.Branches = [];\r\n this.IsPaymentLink = false;\r\n this.PrintForOnlineOrder = false;\r\n this.PrintForOnlineOrderForNewCustomer = false;\r\n this.DetailLedgerId = null;\r\n }\r\n}\r\n\r\nexport class SaleMethodBranchItemCategory extends EntityBase {\r\n public Selected: boolean;\r\n public Category: ItemCategory;\r\n public CategoryId: number;\r\n public CategoryTitle: string;\r\n public SaleMethodBranchId: number;\r\n public IsDefault: boolean;\r\n}\r\n\r\nexport class SaleMethodBranchPaymentMethod extends EntityBase {\r\n public Selected: boolean;\r\n public PaymentMethodId: number;\r\n public PaymentMethodTitle: string;\r\n public SaleMethodBranchId: number;\r\n public IsDefault: boolean;\r\n}\r\n\r\nexport class SaleMethodBranchSalePriceType extends EntityBase {\r\n public Selected: boolean;\r\n public SalePriceTypeId: number;\r\n public SalePriceTypeTitle: string;\r\n public SaleMethodBranchId: number;\r\n public IsDefault: boolean;\r\n}\r\n\r\nexport class SaleMethodBranchSalon extends EntityBase {\r\n public Selected: boolean;\r\n public SalonId: number;\r\n public SalonTitle: string;\r\n public SaleMethodBranchId: number;\r\n}\r\n\r\nexport class SaleMethodBranchCustomerCategory extends EntityBase {\r\n public Selected: boolean;\r\n public CategoryId: number;\r\n public CategoryTitle: string;\r\n public SaleMethodBranchId: number;\r\n}\r\n\r\nexport class SaleMethodBranchPrintTemplate extends EntityBase {\r\n public Selected: boolean;\r\n public PrintTemplateId: number;\r\n public PrintTemplateTitle: string;\r\n public SaleMethodBranchId: number;\r\n public IsDefault: boolean;\r\n}\r\n\r\nexport class SaleMethodBranchUser extends EntityBase {\r\n public Selected: boolean;\r\n public UserId: number;\r\n public UserName: string;\r\n public InvoiceDisplayTypeId: number;\r\n public InvoiceDisplayTypeTitle: string;\r\n public DisplayedInvoiceStatusId: number;\r\n public DisplayedInvoiceStatusTitle: number;\r\n public SalonId: number;\r\n public SaleMethodBranchId: number;\r\n}\r\nexport class SaleMethodBranches extends EntityBase {\r\n public Selected: boolean;\r\n public BranchId: number;\r\n public IsActive: boolean;\r\n public BranchTitle: string;\r\n}\r\nexport enum SaleMethodNature {\r\n Restaurant = 1,\r\n FastFood = 2,\r\n Delivery = 3,\r\n}\r\n\r\nexport enum DeliveryCustomerPrintTime {\r\n PreparationPrint = 1,\r\n Assign = 2,\r\n}\r\nexport class BranchList {\r\n Id: number;\r\n Title: string;\r\n IsActive: boolean;\r\n}\r\n","import { AfterViewChecked, ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { Validators } from \"@angular/forms\";\r\nimport * as moment from \"moment\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Branch, form_control, Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { AuthService, isNullOrUndefined, LocalStoreManager } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { DBkeys } from \"projects/sepidz-web-framework/src/lib/services/db-keys\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { PaymentMethodType } from \"src/app/frontoffice/financial/model/payment-method.enum\";\r\nimport {\r\n BranchList,\r\n SaleMethodBranchCustomerCategory,\r\n SaleMethodBranchItemCategory,\r\n SaleMethodBranchModel,\r\n SaleMethodBranchPaymentMethod,\r\n SaleMethodBranchPrintTemplate,\r\n SaleMethodBranchSalePriceType,\r\n SaleMethodBranchSalon,\r\n SaleMethodNature,\r\n} from \"../../model/sale-method-branch.model\";\r\n\r\n@Component({\r\n selector: \"ngx-sale-method-branch-form\",\r\n templateUrl: \"./sale-method-branch-form.html\",\r\n styleUrls: [\"./sale-method-branch-form.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SaleMethodBranchForm extends BaseFormComponent implements AfterViewChecked {\r\n _DBkeys = DBkeys;\r\n ItemCategoryLookup: Lookup[] = [];\r\n ItemCategory: Lookup[] = [];\r\n ItemCategoriesDefaultList: Lookup[] = [];\r\n SaleMethodList: Lookup[] = [];\r\n PaymentMethodLookup: Lookup[] = [];\r\n PaymentMethod: Lookup[] = [];\r\n PaymentMethodDefaultList: Lookup[] = [];\r\n SalePriceTypeLookup: Lookup[] = [];\r\n SalePriceType: Lookup[] = [];\r\n SalePriceTypeDefaultList: Lookup[] = [];\r\n PrintTemplateLookup: Lookup[] = [];\r\n PrintTemplate: Lookup[] = [];\r\n PrintTemplateDefaultList: Lookup[] = [];\r\n oldmodel: SaleMethodBranchModel[] = [];\r\n SalonLookupList: Lookup[] = [];\r\n DetailLedgerLookupList: Lookup[] = [];\r\n erroremessage: string;\r\n ItemCategoryIdList: number[] = [];\r\n ItemCategoriesDefaultId: number;\r\n PaymentMethodIdList: number[] = [];\r\n PaymentMethodDefaultId: number;\r\n SalePriceTypeIdList: number[] = [];\r\n SalePriceTypeDefaultId: number;\r\n PrintTemplateIdList: number[] = [];\r\n SalonLookup: number[] = [];\r\n CustomerCategoriesLookup: number[] = [];\r\n SaleMethodNatureId: number;\r\n oldSaleMethodNatureId: number;\r\n SaleMethodNatureCode: number;\r\n oldformGroup: any;\r\n isStartGetData: boolean = false;\r\n activeTabTitle: string;\r\n _saleMethodNature: typeof SaleMethodNature = SaleMethodNature;\r\n isAccessToAllBranches = true;\r\n Branches: BranchList[] = [];\r\n DefaultValues: Dictionary = [];\r\n branchShow: boolean = false;\r\n HasHappyHour: boolean = false;\r\n ShowDescInvCustomer: boolean = false;\r\n ShowDescInvKitchen: boolean = false;\r\n Branchescolumns: form_control[] = [];\r\n SoftWareLicenseKind = SoftWareLicenseKind;\r\n HasAccessOrderOnline: boolean;\r\n delinoActiveControl: SaleMethodBranchModel[];\r\n controlIdDelino: number;\r\n PaymentMethodData: any[] = [];\r\n IsActivePreparationTime: boolean = false;\r\n hasInv: boolean;\r\n invalidHourDiscount: boolean = false;\r\n depositVisibilityIsCalled: boolean;\r\n currentInformation = this.accountService.authService.currentInformation();\r\n currentBranch = this.accountService.authService.currentBranch;\r\n\r\n DaysOfWeekList = [\r\n { Id: \"0\", Title: this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Saturday\") },\r\n { Id: \"1\", Title: this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Sunday\") },\r\n { Id: \"2\", Title: this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Monday\") },\r\n { Id: \"3\", Title: this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Tuesday\") },\r\n { Id: \"4\", Title: this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Wednesday\") },\r\n { Id: \"5\", Title: this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Thursday\") },\r\n { Id: \"6\", Title: this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Friday\") },\r\n ];\r\n hasReserved: boolean;\r\n OriginalApplyTax: boolean;\r\n constructor(\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n public storage: LocalStoreManager,\r\n public authservice: AuthService\r\n ) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.getRelative();\r\n this.FillData();\r\n this.apiName = \"SaleMethodBranch\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.SaleMethodBranch\");\r\n super.ngOnInit();\r\n this.controlActiveDelino();\r\n this.getAccessDelino();\r\n this.DefaultValues[\"SaleMethodBranchId\"] = 0;\r\n const firstcol = new form_control();\r\n firstcol.name = \"IsActive\";\r\n firstcol.controlType = FormControlTypes.checkbox;\r\n firstcol.label = this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Includes\");\r\n firstcol.areaName = \"default\";\r\n firstcol.listVisible = true;\r\n firstcol.columnWidth = 100;\r\n firstcol.decimalsLength = 100;\r\n firstcol.textType = \"checkbox\";\r\n firstcol.disabled = false;\r\n firstcol.formVisible = true;\r\n this.Branchescolumns.push(firstcol);\r\n const secondcol = new form_control();\r\n secondcol.label = this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Branch\");\r\n secondcol.areaName = \"default\";\r\n secondcol.name = \"Title\";\r\n secondcol.listVisible = true;\r\n secondcol.columnWidth = 500;\r\n secondcol.decimalsLength = 500;\r\n secondcol.controlType = FormControlTypes.textbox;\r\n secondcol.disabled = true;\r\n\r\n this.Branchescolumns.push(secondcol);\r\n this.hasInv = !!this.currentInformation.InventoryKind;\r\n this.OriginalApplyTax = this.currentrow.ApplyTax;\r\n }\r\n\r\n ngAfterViewChecked(): void {\r\n const controls = this.formGroup.controls;\r\n if (!this.currentInformation?.HasClub) {\r\n if (this.currentInformation.SmartEvaluation) {\r\n controls[\"IsClubFastAccess\"]?.enable();\r\n } else {\r\n controls[\"IsClubFastAccess\"]?.disable();\r\n }\r\n }\r\n\r\n if (!this.currentInformation?.PaymentPanelAVA) {\r\n controls[\"IsPaymentLink\"]?.disable();\r\n }\r\n if (!this.formGroup?.value?.HasFactorLink || !this.formGroup?.value?.HasPaymentLinkForNewCustomer) {\r\n controls[\"PrintForOnlineOrderForNewCustomer\"]?.disable();\r\n }\r\n if (!this.formGroup?.value?.HasFactorLink) {\r\n controls[\"HasPaymentLinkForNewCustomer\"]?.disable();\r\n controls[\"AutomaticLinks\"]?.disable();\r\n }\r\n if (!this.formGroup?.value?.HasFactorLink || !this.currentInformation?.PaymentPanelAVA) {\r\n controls[\"HasPaymentLink\"]?.disable();\r\n }\r\n if (!this.currentInformation?.OrderServices) {\r\n controls.HasDeposit.disable();\r\n } else if (this.model.Id && this.formGroup?.value?.HasDeposit && !this.depositVisibilityIsCalled) {\r\n this.depositVisibilityIsCalled = true;\r\n this.httpCommonService\r\n .get(\"SaleMethodBranch/DepositVisibility/\" + this.model.Id)\r\n .pipe(take(1))\r\n .subscribe((isVisible) => {\r\n if (isVisible) controls.HasDeposit.enable();\r\n else controls.HasDeposit.disable();\r\n });\r\n }\r\n }\r\n\r\n setdefault() {\r\n if (!this.model.Branches) this.model.Branches = [];\r\n if (this.SaleMethodList?.length <= 0 && !this.isStartGetData) {\r\n this.isStartGetData = true;\r\n this.httpCommonService\r\n .getList(`SaleMethod/ReadSaleMethodLookUpFilter/${this.model?.Id}/${this.accountService.authService.currentBranchId}`)\r\n .pipe(take(1))\r\n .subscribe((data: Lookup[]) => {\r\n if (data) this.SaleMethodList = data;\r\n this.isStartGetData = false;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n this.HasHappyHour = this.model.HasHappyHour;\r\n this.IsActivePreparationTime = this.model.PreprationTimeIsActive;\r\n this.oldmodel = JSON.parse(JSON.stringify(this.model));\r\n if (!this.model.ItemCategories) this.model.ItemCategories = [];\r\n else {\r\n this.model.ItemCategories?.forEach((x) => {\r\n if (!x.IsDefault) this.ItemCategoryIdList.push(x.CategoryId);\r\n });\r\n }\r\n if (!this.model.PaymentMethods) this.model.PaymentMethods = [];\r\n else {\r\n this.model.PaymentMethods?.forEach((x) => {\r\n if (!x.IsDefault) this.PaymentMethodIdList.push(x.PaymentMethodId);\r\n });\r\n }\r\n if (!this.model.PrintTemplates) this.model.PrintTemplates = [];\r\n else {\r\n this.model.PrintTemplates?.forEach((x) => {\r\n if (!x.IsDefault) this.PrintTemplateIdList.push(x.PrintTemplateId);\r\n });\r\n }\r\n if (!this.model.SalePriceTypes) this.model.SalePriceTypes = [];\r\n else {\r\n this.model.SalePriceTypes?.forEach((x) => {\r\n if (!x.IsDefault) this.SalePriceTypeIdList.push(x.SalePriceTypeId);\r\n });\r\n }\r\n\r\n if (!this.model.Salons) this.model.Salons = [];\r\n else this.model.Salons?.forEach((x) => this.SalonLookup.push(x.SalonId));\r\n\r\n if (!this.model.CustomerCategories) this.model.CustomerCategories = [];\r\n else {\r\n this.model.CustomerCategories?.forEach((x) => this.CustomerCategoriesLookup.push(x.CategoryId));\r\n }\r\n //new mode\r\n if (isNullOrUndefined(this.model.Id) || this.model.Id === 0) this.model.IsActive = true;\r\n //edit mode\r\n else {\r\n this.SaleMethodNatureCode = this.model.SaleMethod.SaleMethodNatureCode;\r\n this.oldSaleMethodNatureId = this.model.SaleMethod.SaleMethodNatureId;\r\n }\r\n if (this.currentrow && this.model.DaysOfWeek && typeof this.model.DaysOfWeek === \"string\") {\r\n this.model.DaysOfWeek = this.model.DaysOfWeek.split(\",\");\r\n }\r\n }\r\n\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n this.orignalColumns?.forEach((x) => {\r\n if (x.name === \"DetailLedgerId\")\r\n x.formVisible =\r\n this.currentInformation.AccountingKind === SoftWareLicenseKind.AccountingAdvancedWeb ||\r\n this.currentInformation.AccountingKind === SoftWareLicenseKind.AccountingToAdvancedWeb;\r\n if (x.name === \"GoodsId\")\r\n x.formVisible =\r\n this.currentInformation.InventoryKind === SoftWareLicenseKind.InventoryWeb ||\r\n this.currentInformation.InventoryKind === SoftWareLicenseKind.InventoryAdvancedWeb ||\r\n this.currentInformation.InventoryKind === SoftWareLicenseKind.InventoryToAdvancedWeb;\r\n });\r\n this.cd.markForCheck();\r\n }\r\n\r\n addControl() {\r\n this.setValue(\"ApplyTax\", this.model.ApplyTax);\r\n this.setValue(\"TaxApplyIsChanged\", null);\r\n this.setValue(\"ApplyService\", this.model.ApplyService);\r\n this.setValue(\"WaiterIsRequired\", this.model.WaiterIsRequired);\r\n this.setValue(\"HasKeyboardOrder\", this.model.HasKeyboardOrder);\r\n this.setValue(\"HasHappyHour\", this.model.HasHappyHour);\r\n this.setValue(\"ShowDescInvKitchen\", this.model.ShowDescInvKitchen);\r\n this.setValue(\"ShowDescInvCustomer\", this.model.ShowDescInvCustomer);\r\n this.setValue(\"HappyHourStart\", this.model.HappyHourStart ? moment(this.model.HappyHourStart).format(\"HH:mm\") : null);\r\n this.setValue(\"HappyHourEnd\", this.model.HappyHourEnd ? moment(this.model.HappyHourEnd).format(\"HH:mm\") : null);\r\n this.setValue(\"HappyHourFromDate\", this.model.HappyHourFromDate ? moment(this.model.HappyHourFromDate).locale(\"fa\").format(\"YYYY/MM/DD\") : null);\r\n this.setValue(\"HappyHourToDate\", this.model.HappyHourToDate ? moment(this.model.HappyHourToDate).locale(\"fa\").format(\"YYYY/MM/DD\") : null);\r\n this.setValue(\"DaysOfWeek\", this.model.DaysOfWeek);\r\n this.setValue(\"Discount\", this.model.Discount);\r\n this.formGroup?.controls[\"Discount\"].setValue(this.model.Discount);\r\n this.setValue(\"FreeShipping\", this.model.FreeShipping);\r\n this.setValue(\"FreeService\", this.model.FreeService);\r\n this.setValue(\"IncludeFreeItemDependency\", this.model.IncludeFreeItemDependency);\r\n this.setValue(\"IncludeItemDependency\", this.model.IncludeItemDependency);\r\n this.setValue(\"ApplyTaxForService\", this.model.ApplyTaxForService);\r\n this.setValue(\"IsBarCodeInvoice\", this.model.IsBarCodeInvoice);\r\n this.setValue(\"HasDeposit\", this.model.HasDeposit);\r\n this.setValue(\"ApplyTaxForPackingPrice\", this.model.ApplyTaxForPackingPrice);\r\n this.setValue(\"ApplyPackingPrice\", this.model.ApplyPackingPrice);\r\n this.setValue(\"HasSnap\", this.model.HasSnap);\r\n this.setValue(\"AutoApplySnap\", this.model.AutoApplySnap);\r\n this.setValue(\"ApplyTaxForShippingCost\", this.model.ApplyTaxForShippingCost);\r\n this.setValue(\"TableIsRequired\", this.model.TableIsRequired);\r\n this.setValue(\"NumberOfGuestsIsRequired\", this.model.NumberOfGuestsIsRequired);\r\n this.setValue(\"ShowSalonName\", this.model.ShowSalonName);\r\n this.setValue(\"HasNecessaryMobile\", this.model.HasNecessaryMobile);\r\n this.setValue(\"ShowCustomerInfo\", this.model.ShowCustomerInfo);\r\n this.setValue(\"ShowWaiterName\", this.model.ShowWaiterName);\r\n this.setValue(\"ShowNumberOfGuests\", this.model.ShowNumberOfGuests);\r\n this.setValue(\"MaximumTimeForStay\", this.model.MaximumTimeForStay);\r\n this.setValue(\"HasNecessaryName\", this.model.HasNecessaryName);\r\n this.setValue(\"UseMobileInValidation\", this.model.UseMobileInValidation);\r\n this.setValue(\"PaymentMethodIdList\", this.PaymentMethodIdList);\r\n this.setValue(\"ItemCategoriesDefaultId\", this.ItemCategoriesDefaultId);\r\n this.setValue(\"ItemCategoryIdList\", this.ItemCategoryIdList);\r\n this.setValue(\"PaymentMethodDefaultId\", this.PaymentMethodDefaultId);\r\n this.setValue(\"SalePriceTypeIdList\", this.SalePriceTypeIdList);\r\n this.setValue(\"SalePriceTypeDefaultId\", this.SalePriceTypeDefaultId);\r\n this.setValue(\"PrintTemplateIdList\", this.PrintTemplateIdList);\r\n this.setValue(\"SalonLookup\", this.SalonLookup);\r\n this.setValue(\"CustomerCategoriesLookup\", this.CustomerCategoriesLookup);\r\n this.setValue(\"IsChangeTheSalesMethod\", this.model.IsChangeTheSalesMethod);\r\n this.setValue(\"IsSalonFastAccess\", this.model.IsSalonFastAccess);\r\n this.setValue(\"IsDriverAssignmentFastAccess\", this.model.IsDriverAssignmentFastAccess);\r\n this.setValue(\"IsCustomreFastAccess\", this.model.IsCustomreFastAccess);\r\n this.setValue(\"IsWaiterFastAccess\", this.model.IsWaiterFastAccess);\r\n this.setValue(\"IsPagerFastAccess\", this.model.IsPagerFastAccess);\r\n this.setValue(\"IsClubFastAccess\", this.model.IsClubFastAccess);\r\n this.setValue(\"IsPaymentLink\", this.model.IsPaymentLink);\r\n this.setValue(\"SaleMethodId\", this.model.SaleMethodId, true);\r\n this.setValue(\"HasFactorLink\", this.model.HasFactorLink);\r\n this.setValue(\"HasPaymentLink\", this.model.HasPaymentLink);\r\n this.setValue(\"HasDelinoOfflineFactor\", this.model.HasDelinoOfflineFactor);\r\n this.setValue(\"AutomaticLinks\", this.model.AutomaticLinks);\r\n this.setValue(\"HasPaymentLinkForNewCustomer\", this.model.HasPaymentLinkForNewCustomer);\r\n this.setValue(\"PrintForOnlineOrder\", this.model.PrintForOnlineOrder);\r\n this.setValue(\"PrintForOnlineOrderForNewCustomer\", this.model.PrintForOnlineOrderForNewCustomer);\r\n this.setValue(\"PaymentId\", this.model.PaymentId);\r\n this.setValue(\"PreprationTimeIsActive\", this.model.PreprationTimeIsActive);\r\n this.setValue(\"PreprationTimeRequired\", this.model.PreprationTimeRequired);\r\n this.setValue(\"InvVoucherId\", this.model.InvVoucherId);\r\n this.setValue(\"InvWareHouseId\", this.model.InvWareHouseId);\r\n this.setValue(\"InvDepositVoucherKindId\", this.model.InvDepositVoucherKindId);\r\n this.setValue(\"InvDepositWareHouseId\", this.model.InvDepositWareHouseId);\r\n this.setValue(\"BranchId\", this.model.BranchId);\r\n\r\n const controls = this.formGroup.controls;\r\n if (this.HasAccessOrderOnline === false) controls[\"HasDelino\"].disable();\r\n else controls[\"HasDelino\"].enable();\r\n\r\n if (this.currentInformation?.SmartEvaluation && this.currentInformation?.ReservedKind) {\r\n controls[\"HasOnlineRezerv\"].enable();\r\n } else {\r\n controls[\"HasOnlineRezerv\"].disable();\r\n }\r\n this.cd.markForCheck();\r\n }\r\n\r\n waiterIsRequiredvalueChange($event) {\r\n this.setValue(\"ShowWaiterName\", $event);\r\n }\r\n\r\n TableIsRequiredvalueChange($event) {\r\n this.setValue(\"ShowSalonName\", $event);\r\n }\r\n\r\n NumberOfGuestsIsRequiredvalueChange($event) {\r\n this.setValue(\"ShowNumberOfGuests\", $event);\r\n }\r\n\r\n delinoIsRequiredvalueChange($event) {\r\n this.setValue(\"HaspickupOrderOnline\", $event);\r\n }\r\n\r\n clearHappyHourForm() {\r\n const controls = this.formGroup.controls;\r\n controls[\"Discount\"].setValue(null);\r\n controls[\"HappyHourStart\"].setValue(null);\r\n controls[\"HappyHourEnd\"].setValue(null);\r\n controls[\"FreeService\"].setValue(false);\r\n controls[\"FreeShipping\"].setValue(false);\r\n controls[\"HappyHourFromDate\"].setValue(null);\r\n controls[\"HappyHourToDate\"].setValue(null);\r\n controls[\"DaysOfWeek\"].setValue(\"\");\r\n }\r\n\r\n HappyHourValueChange($event) {\r\n if ($event == false) this.clearHappyHourForm();\r\n this.HasHappyHour = $event;\r\n }\r\n\r\n HappyHourStratValueChange($event) {\r\n const start = $event;\r\n const end = this.formGroup.controls[\"HappyHourEnd\"]?.value;\r\n if (typeof end == \"string\" && typeof end == \"string\" && start.split(\":\") > end.split(\":\")) {\r\n this.setValue(\"HappyHourEnd\", start);\r\n }\r\n }\r\n\r\n HappyHourEndValueChange($event) {\r\n const start = this.formGroup.controls[\"HappyHourStart\"]?.value;\r\n const end = $event;\r\n if (typeof end == \"string\" && typeof end == \"string\" && start.split(\":\") > end.split(\":\")) {\r\n this.setValue(\"HappyHourEnd\", start);\r\n }\r\n }\r\n\r\n async FillData() {\r\n this.populateBranch();\r\n this.oldSaleMethodNatureId = null;\r\n this.model.Salons?.forEach((x) => {\r\n if (!this.SalonLookup.some((d) => d === x.SalonId)) this.SalonLookup.push(x.SalonId);\r\n this.SalonLookup = this.SalonLookup?.filter((d) => d !== null);\r\n });\r\n this.model.CustomerCategories?.forEach((x) => {\r\n if (!this.CustomerCategoriesLookup.some((d) => d === x.CategoryId)) this.CustomerCategoriesLookup.push(x.CategoryId);\r\n this.CustomerCategoriesLookup = this.CustomerCategoriesLookup?.filter((d) => d !== null);\r\n });\r\n this.setValue(\"SalonLookup\", this.SalonLookup);\r\n this.setValue(\"CustomerCategoriesLookup\", this.CustomerCategoriesLookup);\r\n }\r\n\r\n FillItemCategory(data: Lookup[]) {\r\n this.ItemCategory = data;\r\n this.ItemCategoryLookup = data;\r\n this.ItemCategoriesDefaultList = data;\r\n if (!isNullOrUndefined(this.currentrow.Id) || (this.currentrow.Id !== 0 && this.currentrow.ItemCategories)) {\r\n this.currentrow.ItemCategories?.forEach((x) => {\r\n if (!x.IsDefault) {\r\n if (!this.ItemCategoryIdList.some((d) => d === x.CategoryId)) this.ItemCategoryIdList.push(x.CategoryId);\r\n this.ItemCategoryIdList = this.ItemCategoryIdList?.filter((d) => d !== null);\r\n this.ItemCategoriesDefaultList = this.ItemCategoriesDefaultList?.filter((f) => f.Id !== x.CategoryId);\r\n } else {\r\n if (!isNullOrUndefined(x.CategoryId) && x.CategoryId !== 0) {\r\n this.ItemCategoriesDefaultId = x.CategoryId;\r\n this.ItemCategory = this.ItemCategory?.filter((f) => f.Id !== x.CategoryId);\r\n }\r\n }\r\n });\r\n }\r\n this.setValue(\"ItemCategoryIdList\", this.ItemCategoryIdList);\r\n this.setValue(\"ItemCategoriesDefaultId\", this.ItemCategoriesDefaultId);\r\n }\r\n\r\n onHasFactorChanges(value: boolean): void {\r\n const controls = this.formGroup.controls;\r\n if (!value) {\r\n this.setValue(\"HasPaymentLink\", false);\r\n this.setValue(\"AutomaticLinks\", false);\r\n this.setValue(\"PrintForOnlineOrder\", false);\r\n this.setValue(\"HasPaymentLinkForNewCustomer\", false);\r\n this.setValue(\"PrintForOnlineOrderForNewCustomer\", false);\r\n controls[\"HasPaymentLink\"]?.disable();\r\n controls[\"AutomaticLinks\"]?.disable();\r\n controls[\"PrintForOnlineOrder\"]?.disable();\r\n controls[\"HasPaymentLinkForNewCustomer\"]?.disable();\r\n controls[\"PrintForOnlineOrderForNewCustomer\"]?.disable();\r\n } else {\r\n controls[\"HasPaymentLink\"]?.enable();\r\n controls[\"AutomaticLinks\"]?.enable();\r\n controls[\"PrintForOnlineOrder\"]?.enable();\r\n controls[\"HasPaymentLinkForNewCustomer\"]?.enable();\r\n controls[\"PrintForOnlineOrderForNewCustomer\"]?.enable();\r\n }\r\n }\r\n\r\n onInPersonChanges(value: boolean) {\r\n const controls = this.formGroup.controls;\r\n if (!!value) {\r\n this.model.HasSnap = false;\r\n controls[\"HasSnap\"]?.setValue(false);\r\n controls[\"HasSnap\"]?.disable();\r\n this.model.AutoApplySnap = false;\r\n controls[\"AutoApplySnap\"]?.setValue(false);\r\n controls[\"AutoApplySnap\"]?.disable();\r\n } else {\r\n controls[\"HasSnap\"]?.enable();\r\n }\r\n }\r\n\r\n onApplySnap(value: boolean) {\r\n const controls = this.formGroup.controls;\r\n if (!!value) {\r\n this.model.InPerson = false;\r\n controls[\"InPerson\"]?.setValue(false);\r\n controls[\"InPerson\"]?.disable();\r\n controls[\"AutoApplySnap\"]?.enable();\r\n } else {\r\n this.model.AutoApplySnap = false;\r\n controls[\"InPerson\"]?.enable();\r\n controls[\"AutoApplySnap\"]?.disable();\r\n }\r\n }\r\n\r\n onPaymentLinkChanges(value: boolean): void {\r\n const controls = this.formGroup.controls;\r\n if (!value) controls[\"PaymentId\"].clearValidators();\r\n else controls[\"PaymentId\"].setValidators(Validators.required);\r\n controls[\"PaymentId\"].updateValueAndValidity();\r\n }\r\n\r\n onAutomaticLinksChanges(value: boolean): void {\r\n if (!value) this.setValue(\"PrintForOnlineOrder\", false);\r\n }\r\n\r\n onHasPaymentLinkForNewCustomerChanges(value: boolean): void {\r\n if (!value) this.formGroup.controls[\"PrintForOnlineOrderForNewCustomer\"]?.disable();\r\n else this.formGroup.controls[\"PrintForOnlineOrderForNewCustomer\"]?.enable();\r\n }\r\n\r\n FillPaymentMethod(data: Lookup[]) {\r\n this.PaymentMethod = data;\r\n this.PaymentMethodLookup = data;\r\n this.PaymentMethodDefaultList = data;\r\n this.storage.savePermanentData(data, ClearableCache.PaymentMethodLookUp);\r\n if (!isNullOrUndefined(this.currentrow.Id) || this.currentrow.Id !== 0) {\r\n this.currentrow.PaymentMethods?.forEach((x) => {\r\n if (!x.IsDefault) {\r\n if (!this.PaymentMethodIdList.some((d) => d === x.PaymentMethodId)) this.PaymentMethodIdList.push(x.PaymentMethodId);\r\n this.PaymentMethodIdList = this.PaymentMethodIdList?.filter((d) => d !== null);\r\n this.PaymentMethodDefaultList = this.PaymentMethodDefaultList?.filter((f) => f.Id !== x.PaymentMethodId);\r\n } else {\r\n if (!isNullOrUndefined(x.PaymentMethodId) && x.PaymentMethodId !== 0) {\r\n this.PaymentMethodDefaultId = x.PaymentMethodId;\r\n this.PaymentMethod = this.PaymentMethod?.filter((f) => f.Id !== x.PaymentMethodId);\r\n }\r\n }\r\n });\r\n }\r\n this.setValue(\"PaymentMethodIdList\", this.PaymentMethodIdList);\r\n this.setValue(\"PaymentMethodDefaultId\", this.PaymentMethodDefaultId);\r\n }\r\n FillPrintTemplate(data: Lookup[]) {\r\n this.PrintTemplate = data;\r\n this.PrintTemplateLookup = data;\r\n this.PrintTemplateDefaultList = data;\r\n if (!isNullOrUndefined(this.model.Id) || this.model.Id !== 0) {\r\n this.model.PrintTemplates?.forEach((x) => {\r\n if (!x.IsDefault) {\r\n if (!this.PrintTemplateIdList.some((d) => d === x.PrintTemplateId)) this.PrintTemplateIdList.push(x.PrintTemplateId);\r\n this.PrintTemplateIdList = this.PrintTemplateIdList?.filter((d) => d !== null);\r\n this.PrintTemplateDefaultList = this.PrintTemplateDefaultList?.filter((f) => f.Id !== x.PrintTemplateId);\r\n } else if (!isNullOrUndefined(x.PrintTemplateId) && x.PrintTemplateId !== 0) {\r\n this.PrintTemplate = this.PrintTemplate?.filter((f) => f.Id !== x.PrintTemplateId);\r\n }\r\n });\r\n }\r\n this.setValue(\"PrintTemplateIdList\", this.PrintTemplateIdList);\r\n }\r\n FillSalePriceType(data: Lookup[]) {\r\n this.SalePriceType = data;\r\n this.SalePriceTypeLookup = data;\r\n this.SalePriceTypeDefaultList = data;\r\n if (!isNullOrUndefined(this.currentrow.Id) || this.currentrow.Id !== 0) {\r\n this.currentrow.SalePriceTypes?.forEach((x) => {\r\n if (!x.IsDefault) {\r\n if (!this.SalePriceTypeIdList.some((d) => d === x.SalePriceTypeId)) this.SalePriceTypeIdList.push(x.SalePriceTypeId);\r\n this.SalePriceTypeIdList = this.SalePriceTypeIdList?.filter((d) => d !== null);\r\n this.SalePriceTypeDefaultList = this.SalePriceTypeDefaultList?.filter((f) => f.Id !== x.SalePriceTypeId);\r\n } else {\r\n this.SalePriceTypeDefaultId = x.SalePriceTypeId;\r\n this.SalePriceType = this.SalePriceType?.filter((f) => f.Id !== x.SalePriceTypeId);\r\n }\r\n });\r\n }\r\n this.setValue(\"SalePriceTypeIdList\", this.SalePriceTypeIdList);\r\n this.setValue(\"SalePriceTypeDefaultId\", this.SalePriceTypeDefaultId);\r\n }\r\n getRelative() {\r\n this.httpCommonService\r\n .getList(\"ItemCategory/ReadLookUp\")\r\n .pipe(take(1))\r\n .subscribe((data: Lookup[]) => {\r\n if (data) this.FillItemCategory(data);\r\n });\r\n this.httpCommonService\r\n .getList(\"PaymentMethod/PaymentMethodLookUp/\" + this.accountService.authService.currentBranchId)\r\n .pipe(take(1))\r\n .subscribe((data: Lookup[]) => {\r\n if (data) this.FillPaymentMethod(data);\r\n });\r\n\r\n this.httpCommonService\r\n .getList(\"SalePriceType/ReadLookUp\")\r\n .pipe(take(1))\r\n .subscribe((data: Lookup[]) => {\r\n if (data) {\r\n this.storage.savePermanentData(data, ClearableCache.SalePriceType);\r\n this.FillSalePriceType(data);\r\n }\r\n });\r\n this.httpCommonService\r\n .getList(\"PrintTemplate/ReadLookUp\")\r\n .pipe(take(1))\r\n .subscribe((data: Lookup[]) => {\r\n if (data) this.FillPrintTemplate(data);\r\n });\r\n this.httpCommonService\r\n .getList(\"Salon/ReadLookupApi/\" + this.accountService.authService.currentBranchId)\r\n .pipe(take(1))\r\n .subscribe((data: Lookup[]) => {\r\n if (data) this.SalonLookupList = data;\r\n });\r\n this.httpCommonService\r\n .getList(\"DetailLedger/GetPagining\")\r\n .pipe(take(1))\r\n .subscribe((data: Lookup[]) => {\r\n if (data) this.DetailLedgerLookupList = data;\r\n });\r\n }\r\n clearForm() {\r\n this.ItemCategoryIdList = null;\r\n this.ItemCategoryIdList = [];\r\n this.PaymentMethodIdList = null;\r\n this.PaymentMethodIdList = [];\r\n this.PaymentMethodDefaultId = null;\r\n this.SalePriceTypeIdList = null;\r\n this.SalePriceTypeIdList = [];\r\n this.SalePriceTypeDefaultId = null;\r\n this.PrintTemplateIdList = null;\r\n this.PrintTemplateIdList = [];\r\n this.SalonLookup = [];\r\n this.model.DaysOfWeek = [];\r\n this.CustomerCategoriesLookup = [];\r\n this.ItemCategory = this.ItemCategoryLookup;\r\n this.PaymentMethod = this.PaymentMethodLookup;\r\n this.SalePriceType = this.SalePriceTypeLookup;\r\n this.PrintTemplate = this.PrintTemplateLookup;\r\n }\r\n onMasterChanged(event: any) {\r\n if (!isNullOrUndefined(event.Code)) {\r\n if (isNullOrUndefined(this.oldSaleMethodNatureId)) {\r\n // if new mode\r\n this.oldSaleMethodNatureId = event.Id;\r\n this.model = null;\r\n this.model = {};\r\n }\r\n if (!isNullOrUndefined(this.oldSaleMethodNatureId) && event.Id !== this.oldSaleMethodNatureId) {\r\n // if edit mode and changed SaleMethodCode\r\n this.SaleMethodNatureCode = event.Code;\r\n this.oldSaleMethodNatureId = this.SaleMethodNatureId;\r\n this.model = null;\r\n this.model = JSON.parse(JSON.stringify(this.oldmodel));\r\n this.clearForm();\r\n } else {\r\n this.SaleMethodNatureId = event.Id;\r\n this.SaleMethodNatureCode = event.Code;\r\n }\r\n switch (event.Code) {\r\n case SaleMethodNature.Restaurant:\r\n this.model.IsChangeTheSalesMethod = true;\r\n this.model.IsSalonFastAccess = true;\r\n this.model.IsCustomreFastAccess = true;\r\n this.model.IsWaiterFastAccess = true;\r\n this.model.IsClubFastAccess = true;\r\n this.model.IsPaymentLink = true;\r\n break;\r\n case SaleMethodNature.FastFood:\r\n this.model.IsChangeTheSalesMethod = true;\r\n this.model.IsDriverAssignmentFastAccess = true;\r\n this.model.IsCustomreFastAccess = true;\r\n this.model.IsPagerFastAccess = true;\r\n this.model.IsClubFastAccess = true;\r\n this.model.IsPaymentLink = true;\r\n break;\r\n case SaleMethodNature.Delivery:\r\n this.model.IsChangeTheSalesMethod = true;\r\n this.model.IsDriverAssignmentFastAccess = true;\r\n this.model.IsCustomreFastAccess = true;\r\n this.model.IsClubFastAccess = true;\r\n this.model.IsPaymentLink = true;\r\n break;\r\n }\r\n this.addControl();\r\n }\r\n }\r\n onChanged(item: Lookup, detailId: number) {\r\n if (!isNullOrUndefined(item) && !isNullOrUndefined(detailId)) {\r\n this.addFilter(item, detailId);\r\n }\r\n }\r\n onAddItem(item: Lookup, detailId: number) {\r\n if (!isNullOrUndefined(item) && !isNullOrUndefined(detailId)) {\r\n this.addFilter(item, detailId);\r\n }\r\n }\r\n onClear(detailId: number) {\r\n switch (detailId) {\r\n case 0:\r\n this.ItemCategoriesDefaultList = this.ItemCategoryLookup;\r\n break;\r\n case 1:\r\n this.ItemCategory = this.ItemCategoryLookup;\r\n break;\r\n case 2:\r\n this.PaymentMethodDefaultList = this.PaymentMethodLookup;\r\n break;\r\n case 3:\r\n this.PaymentMethod = this.PaymentMethodLookup;\r\n break;\r\n case 4:\r\n this.SalePriceTypeDefaultList = this.SalePriceTypeLookup;\r\n break;\r\n case 5:\r\n this.SalePriceType = this.SalePriceTypeLookup;\r\n break;\r\n case 6:\r\n this.PrintTemplateDefaultList = this.PrintTemplateLookup;\r\n break;\r\n case 7:\r\n this.PrintTemplate = this.PrintTemplateLookup;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n onRemoveItem(item: any, detailId: number) {\r\n switch (detailId) {\r\n case 0:\r\n this.ItemCategoriesDefaultList.push(item.value);\r\n this.ItemCategoriesDefaultList = this.ItemCategoriesDefaultList?.filter((f) => f.Id !== null);\r\n break;\r\n case 2:\r\n this.PaymentMethodDefaultList.push(item.value);\r\n this.PaymentMethodDefaultList = this.PaymentMethodDefaultList?.filter((f) => f.Id !== null);\r\n break;\r\n case 4:\r\n this.SalePriceTypeDefaultList.push(item.value);\r\n this.SalePriceTypeDefaultList = this.SalePriceTypeDefaultList?.filter((f) => f.Id !== null);\r\n break;\r\n case 6:\r\n this.PrintTemplateDefaultList.push(item.value);\r\n this.PrintTemplateDefaultList = this.PrintTemplateDefaultList?.filter((f) => f.Id !== null);\r\n this.model.PrintTemplates.find((x) => x.PrintTemplateId === item.value?.Id).State = RowState.Delete;\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n PreprationTimeIsActiveValueChange(value: any) {\r\n this.IsActivePreparationTime = value;\r\n if (!value) this.formGroup.controls[\"PreprationTimeRequired\"].setValue(false);\r\n }\r\n addFilter(item: Lookup, detailId: number) {\r\n switch (detailId) {\r\n case 0:\r\n this.ItemCategoriesDefaultList = this.ItemCategoriesDefaultList?.filter((f) => f.Id !== item.Id);\r\n break;\r\n case 1:\r\n this.ItemCategory = this.ItemCategoryLookup?.filter((f) => f.Id !== item.Id);\r\n break;\r\n case 2:\r\n this.PaymentMethodDefaultList = this.PaymentMethodDefaultList?.filter((f) => f.Id !== item.Id);\r\n break;\r\n case 3:\r\n this.PaymentMethod = this.PaymentMethodLookup?.filter((f) => f.Id !== item.Id);\r\n break;\r\n case 4:\r\n this.SalePriceTypeDefaultList = this.SalePriceTypeDefaultList?.filter((f) => f.Id !== item.Id);\r\n break;\r\n case 5:\r\n this.SalePriceType = this.SalePriceTypeLookup?.filter((f) => f.Id !== item.Id);\r\n break;\r\n case 6:\r\n this.PrintTemplateDefaultList = this.PrintTemplateDefaultList?.filter((f) => f.Id !== item.Id);\r\n break;\r\n case 7:\r\n this.PrintTemplate = this.PrintTemplateLookup?.filter((f) => f.Id !== item.Id);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n beforupdate() {\r\n if (this.SaleMethodNatureCode !== this._saleMethodNature.Delivery) this.model.PrintForOnlineOrderForNewCustomer = false;\r\n if (this.SaleMethodNatureCode !== this._saleMethodNature.Delivery) this.model.HasPaymentLinkForNewCustomer = false;\r\n if (!this.model?.Id && this.accountService.authService.currentBranch.AccessToAllBranches) {\r\n this.Branches = this.Branches?.filter((x) => x.IsActive);\r\n if (!this.model?.Branches) this.model.Branches = [];\r\n this.Branches?.forEach((x) => {\r\n this.model.Branches.push(x.Id);\r\n });\r\n this.model.AllBranches = Object.assign([], this.model.Branches);\r\n } else {\r\n this.model.Branches = null;\r\n }\r\n if (!this.model.ItemCategories) this.model.ItemCategories = [];\r\n if (!this.model.PaymentMethods) this.model.PaymentMethods = [];\r\n if (!this.model.PrintTemplates) this.model.PrintTemplates = [];\r\n if (!this.model.SalePriceTypes) this.model.SalePriceTypes = [];\r\n if (!this.model.Salons) this.model.Salons = [];\r\n if (!this.model.CustomerCategories) this.model.CustomerCategories = [];\r\n\r\n this.ItemCategoryIdList = this.formGroup.controls[\"ItemCategoryIdList\"]?.value;\r\n this.PaymentMethodIdList = this.formGroup.controls[\"PaymentMethodIdList\"]?.value;\r\n this.SalePriceTypeIdList = this.formGroup.controls[\"SalePriceTypeIdList\"]?.value;\r\n this.PrintTemplateIdList = this.formGroup.controls[\"PrintTemplateIdList\"]?.value;\r\n this.SalonLookup = this.formGroup.controls[\"SalonLookup\"]?.value;\r\n this.CustomerCategoriesLookup = this.formGroup.controls[\"CustomerCategoriesLookup\"]?.value;\r\n\r\n this.ItemCategoriesDefaultId = this.formGroup.controls[\"ItemCategoriesDefaultId\"]?.value;\r\n this.PaymentMethodDefaultId = this.formGroup.controls[\"PaymentMethodDefaultId\"]?.value;\r\n this.SalePriceTypeDefaultId = this.formGroup.controls[\"SalePriceTypeDefaultId\"]?.value;\r\n this.model.SaleMethodId = this.formGroup.controls[\"SaleMethodId\"]?.value;\r\n this.model.HasHappyHour = this.formGroup.controls[\"HasHappyHour\"]?.value;\r\n const DaysOfWeek = this.formGroup.controls[\"DaysOfWeek\"]?.value;\r\n this.model.Discount = this.formGroup.controls[\"Discount\"]?.value;\r\n this.model.HappyHourStart = this.formGroup.controls[\"HappyHourStart\"]?.value;\r\n this.model.HappyHourEnd = this.formGroup.controls[\"HappyHourEnd\"]?.value;\r\n this.model.HappyHourFromDate = this.formGroup.controls[\"HappyHourFromDate\"]?.value;\r\n this.model.HappyHourToDate = this.formGroup.controls[\"HappyHourToDate\"]?.value;\r\n this.model.HappyHourToDate = this.formGroup.controls[\"HappyHourToDate\"]?.value;\r\n this.model.FreeService = this.formGroup.controls[\"FreeService\"]?.value;\r\n this.model.FreeShipping = this.formGroup.controls[\"FreeShipping\"]?.value;\r\n this.model.DaysOfWeek = this.formGroup.controls[\"DaysOfWeek\"]?.value;\r\n this.formGroup.controls[\"IsDiscountPercent\"].setValue(this.model.IsDiscountPercent);\r\n if (DaysOfWeek) this.formGroup.controls[\"DaysOfWeek\"].setValue(DaysOfWeek.join());\r\n this.model.HasKeyboardOrder = this.formGroup.controls[\"HasKeyboardOrder\"]?.value;\r\n this.model.HasDelino = this.formGroup.controls[\"HasDelino\"]?.value;\r\n this.model.HasSnap = this.formGroup.controls[\"HasSnap\"]?.value;\r\n if (this.model.ItemCategories) {\r\n this.model.ItemCategories?.forEach((x) => {\r\n if (!this.ItemCategoryIdList?.some((d) => d === x.CategoryId) || this.ItemCategoriesDefaultId !== x.CategoryId) x.State = RowState.Delete;\r\n });\r\n }\r\n if (this.model.PaymentMethods) {\r\n this.model.PaymentMethods?.forEach((x) => {\r\n if (!this.PaymentMethodIdList?.some((d) => d === x.PaymentMethodId) || this.PaymentMethodDefaultId !== x.PaymentMethodId)\r\n x.State = RowState.Delete;\r\n });\r\n }\r\n if (this.model.SalePriceTypes) {\r\n this.model.SalePriceTypes?.forEach((x) => {\r\n if (!this.SalePriceTypeIdList?.some((d) => d === x.SalePriceTypeId) || this.SalePriceTypeDefaultId !== x.SalePriceTypeId)\r\n x.State = RowState.Delete;\r\n });\r\n }\r\n\r\n if (this.model.Salons) {\r\n this.model.Salons?.forEach((x) => {\r\n if (!this.SalonLookup.some((d) => d === x.SalonId)) x.State = RowState.Delete;\r\n });\r\n }\r\n if (this.model.CustomerCategories) {\r\n this.model.CustomerCategories?.forEach((x) => {\r\n if (!this.CustomerCategoriesLookup?.some((d) => d === x.CategoryId)) x.State = RowState.Delete;\r\n });\r\n }\r\n\r\n this.ItemCategoryIdList?.forEach((x) => {\r\n if (!this.model.ItemCategories?.some((d) => d.CategoryId === x && d.State !== RowState.Delete && d.State !== RowState.Detached)) {\r\n const doc: SaleMethodBranchItemCategory = new SaleMethodBranchItemCategory();\r\n doc.CategoryId = x;\r\n doc.State = RowState.New;\r\n this.model.ItemCategories.push(doc);\r\n }\r\n });\r\n if (\r\n !isNullOrUndefined(this.ItemCategoriesDefaultId) &&\r\n !this.model.ItemCategories?.some(\r\n (d) => d.CategoryId === this.ItemCategoriesDefaultId && d.IsDefault && d.State !== RowState.Delete && d.State !== RowState.Detached\r\n )\r\n ) {\r\n const doc: SaleMethodBranchItemCategory = new SaleMethodBranchItemCategory();\r\n doc.CategoryId = this.ItemCategoriesDefaultId;\r\n doc.IsDefault = true;\r\n doc.State = RowState.New;\r\n this.model.ItemCategories.push(doc);\r\n }\r\n this.PaymentMethodIdList?.forEach((x) => {\r\n if (!this.model.PaymentMethods?.some((d) => d.PaymentMethodId === x && d.State !== RowState.Delete && d.State !== RowState.Detached)) {\r\n const doc: SaleMethodBranchPaymentMethod = new SaleMethodBranchPaymentMethod();\r\n doc.PaymentMethodId = x;\r\n doc.State = RowState.New;\r\n this.model.PaymentMethods.push(doc);\r\n }\r\n });\r\n if (\r\n this.PaymentMethodDefaultId &&\r\n !this.model.PaymentMethods?.some(\r\n (d) => d.PaymentMethodId === this.PaymentMethodDefaultId && d.State !== RowState.Delete && d.State !== RowState.Detached\r\n )\r\n ) {\r\n const doc: SaleMethodBranchPaymentMethod = new SaleMethodBranchPaymentMethod();\r\n doc.PaymentMethodId = this.PaymentMethodDefaultId;\r\n doc.IsDefault = true;\r\n doc.State = RowState.New;\r\n this.model.PaymentMethods.push(doc);\r\n }\r\n this.PrintTemplateIdList?.forEach((x) => {\r\n if (!this.model.PrintTemplates?.some((d) => d.PrintTemplateId === x && d.State !== RowState.Delete && d.State !== RowState.Detached)) {\r\n const doc: SaleMethodBranchPrintTemplate = new SaleMethodBranchPrintTemplate();\r\n doc.PrintTemplateId = x;\r\n doc.State = RowState.New;\r\n this.model.PrintTemplates.push(doc);\r\n }\r\n });\r\n\r\n this.SalePriceTypeIdList?.forEach((x) => {\r\n if (!this.model.SalePriceTypes.some((d) => d.SalePriceTypeId === x && d.State !== RowState.Delete && d.State !== RowState.Detached)) {\r\n const doc: SaleMethodBranchSalePriceType = new SaleMethodBranchSalePriceType();\r\n doc.SalePriceTypeId = x;\r\n doc.State = RowState.New;\r\n this.model.SalePriceTypes.push(doc);\r\n }\r\n });\r\n if (\r\n !isNullOrUndefined(this.SalePriceTypeDefaultId) &&\r\n !this.model.SalePriceTypes?.some(\r\n (d) => d.SalePriceTypeId === this.SalePriceTypeDefaultId && d.State !== RowState.Delete && d.State !== RowState.Detached\r\n )\r\n ) {\r\n const doc: SaleMethodBranchSalePriceType = new SaleMethodBranchSalePriceType();\r\n doc.SalePriceTypeId = this.SalePriceTypeDefaultId;\r\n doc.IsDefault = true;\r\n doc.State = RowState.New;\r\n this.model.SalePriceTypes.push(doc);\r\n }\r\n this.SalonLookup?.forEach((x) => {\r\n if (!this.model.Salons?.some((d) => d.SalonId === x && d.State !== RowState.Delete && d.State !== RowState.Detached)) {\r\n const doc: SaleMethodBranchSalon = new SaleMethodBranchSalon();\r\n doc.SalonId = x;\r\n doc.State = RowState.New;\r\n this.model.Salons.push(doc);\r\n }\r\n });\r\n this.CustomerCategoriesLookup?.forEach((x) => {\r\n if (!this.model.CustomerCategories?.some((d) => d.CategoryId === x && d.State !== RowState.Delete && d.State !== RowState.Detached)) {\r\n const doc: SaleMethodBranchCustomerCategory = new SaleMethodBranchCustomerCategory();\r\n doc.CategoryId = x;\r\n doc.State = RowState.New;\r\n this.model.CustomerCategories.push(doc);\r\n }\r\n });\r\n this.Branches = this.Branches?.filter((x) => x.IsActive);\r\n\r\n this.model.SaleMethodTitle = this.SaleMethodList?.find((f) => f.Id === this.formGroup.controls[\"SaleMethodId\"].value)?.Title;\r\n this.setValue(\"SaleMethodTitle\", this.model.SaleMethodTitle);\r\n\r\n if (this.model.Id && this.OriginalApplyTax !== this.formGroup.controls['ApplyTax'].value) {\r\n this.model.TaxApplyIsChanged = true;\r\n this.setValue(\"TaxApplyIsChanged\", true);\r\n }\r\n }\r\n\r\n isValid() {\r\n let flag: boolean = true;\r\n if (\r\n this.SaleMethodNatureCode == SaleMethodNature.Delivery &&\r\n this.formGroup.controls[\"Discount\"].value > 0 &&\r\n this.formGroup.controls[\"FreeShipping\"].value\r\n ) {\r\n flag = false;\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.NotPossibleFreeAndDiscountedFaresDeactivateOneThem\")}`,\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n if (this.formGroup.controls[\"HasDelino\"].value) {\r\n this.delinoActiveControl.forEach((element) => {\r\n if (element.HasDelino && this.model.SaleMethodId != element.SaleMethodId) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.DelinoActiveAnotherSalesMode\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n });\r\n }\r\n if (\r\n this.formGroup.controls[\"HasHappyHour\"]?.value &&\r\n this.formGroup.controls[\"Discount\"]?.value == null &&\r\n !(this.formGroup.controls[\"FreeService\"]?.value || this.formGroup.controls[\"FreeShipping\"]?.value)\r\n ) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.ChooseHourlyDiscountMandatoryDiscountAmount\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n if (\r\n this.formGroup.controls[\"HasHappyHour\"]?.value &&\r\n this.formGroup.controls[\"Discount\"]?.value == null &&\r\n (this.formGroup.controls[\"FreeService\"]?.value || this.formGroup.controls[\"FreeShipping\"]?.value)\r\n ) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.MinimumDiscountAmountZero\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n if (this.formGroup.controls[\"HasHappyHour\"]?.value && !this.formGroup.controls[\"HappyHourStart\"]?.value) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.HourlyDiscountMandatoryStartingTimeDiscount\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n if (\r\n this.formGroup.controls[\"Discount\"]?.value == 0 &&\r\n !(this.formGroup.controls[\"FreeService\"]?.value || this.formGroup.controls[\"FreeShipping\"]?.value)\r\n ) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.MakeRentServiceFree\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n if (this.formGroup.controls[\"HasHappyHour\"]?.value && !this.formGroup.controls[\"HappyHourEnd\"]?.value) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.ChooseHourlyDiscountMandatoryEndTimeDiscount\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n if (this.formGroup.controls[\"WaiterIsRequired\"]?.value && !this.formGroup.controls[\"ShowWaiterName\"]?.value) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.HostessMandatoryChoosingNameHostessMandatory\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n if (!this.formGroup.controls[\"SaleMethodId\"]?.value) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.NatureSaleEntered\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n if (this.formGroup.controls[\"NumberOfGuestsIsRequired\"]?.value && !this.formGroup.controls[\"ShowNumberOfGuests\"]?.value) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.NumberOfPeopleMandatory\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n if (this.formGroup.controls[\"TableIsRequired\"]?.value && !this.formGroup.controls[\"ShowSalonName\"]?.value) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.MandatorySelectionTable\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n if (this.formGroup.controls[\"HasPaymentLink\"]?.value && !this.formGroup.controls[\"PaymentId\"].value) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.PaymentMethodRequired\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n this.ItemCategoryIdList = this.formGroup.controls[\"ItemCategoryIdList\"]?.value;\r\n if (\r\n flag &&\r\n this.ItemCategoryLookup &&\r\n this.ItemCategoryIdList &&\r\n this.ItemCategoryLookup?.length === this.ItemCategoryIdList?.length &&\r\n this.ItemCategoryIdList?.length > 0\r\n ) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.NotPossibleSelectProductGroupsUnauthorized\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n\r\n this.PaymentMethodIdList = this.formGroup.controls[\"PaymentMethodIdList\"]?.value;\r\n this.SalePriceTypeIdList = this.formGroup.controls[\"SalePriceTypeIdList\"]?.value;\r\n this.PrintTemplateIdList = this.formGroup.controls[\"PrintTemplateIdList\"]?.value;\r\n if (\r\n flag &&\r\n this.PaymentMethodIdList &&\r\n this.PaymentMethodLookup &&\r\n this.PaymentMethodLookup?.length === this.PaymentMethodIdList?.length &&\r\n this.PaymentMethodIdList?.length > 0\r\n ) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.NotPossibleSelectAllPaymentMethods\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n if (\r\n flag &&\r\n this.SalePriceTypeIdList &&\r\n this.SalePriceTypeLookup &&\r\n this.SalePriceTypeLookup?.length === this.SalePriceTypeIdList?.length &&\r\n this.SalePriceTypeIdList?.length > 0\r\n ) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.NotPossibleSalesPriceTypesUnauthorized\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n if (\r\n flag &&\r\n this.PrintTemplateIdList &&\r\n this.PrintTemplateLookup &&\r\n this.PrintTemplateLookup?.length === this.PrintTemplateIdList?.length &&\r\n this.PrintTemplateIdList?.length > 0\r\n ) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.NotPossibleSelectPrintPatternsUnauthorized\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n this.SalonLookup = this.formGroup.controls[\"SalonLookup\"]?.value;\r\n\r\n if (\r\n flag &&\r\n this.SalonLookup &&\r\n this.SalonLookupList &&\r\n this.SalonLookupList?.length === this.SalonLookup?.length &&\r\n this.SalonLookupList?.length > 0\r\n ) {\r\n flag = false;\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.NotPossibleSelectHallsUnauthorized\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Error\")\r\n );\r\n }\r\n\r\n if (!flag) this.selectorService.submitted$.next(true);\r\n return flag;\r\n }\r\n SaleMethodChange($event) {\r\n this.SaleMethodNatureCode = $event.Code;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n\r\n if (this.activeTabTitle === this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.PaymentLink\")) {\r\n this.getPaymentMethodData();\r\n }\r\n if (this.activeTabTitle === this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.IsClubFastAccess\")) {\r\n if (!this.model.HasSnap) {\r\n this.formGroup.controls[\"AutoApplySnap\"]?.disable();\r\n } else {\r\n this.formGroup.controls[\"AutoApplySnap\"]?.enable();\r\n }\r\n }\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n controlDelino() {\r\n this.delinoActiveControl.forEach((element) => {\r\n if (element.HasDelino) {\r\n this.controlIdDelino = element.SaleMethodId;\r\n }\r\n });\r\n }\r\n getAccessDelino() {\r\n this.httpCommonService\r\n .get(\"Branch/GetById/\" + this.accountService.authService.currentBranch?.Id)\r\n .pipe(take(1))\r\n .subscribe(\r\n (x: Branch) => {\r\n if (x.HasOrderOnline === true) this.HasAccessOrderOnline = true;\r\n else this.HasAccessOrderOnline = false;\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n controlActiveDelino() {\r\n this.httpCommonService\r\n .get(\"SaleMethodBranch/GetAllSaleMethodBranch\")\r\n .pipe(take(1))\r\n .subscribe((data: SaleMethodBranchModel[]) => {\r\n this.delinoActiveControl = data;\r\n });\r\n }\r\n populateBranch() {\r\n if (this.accountService.authService.currentBranch.AccessToAllBranches) {\r\n this.isAccessToAllBranches = true;\r\n this.httpCommonService\r\n .getList(\"Branch/ReadLookUp\")\r\n .pipe(take(1))\r\n .subscribe(\r\n (data: Lookup[]) => {\r\n if (!this.Branches) this.Branches = [];\r\n data?.forEach((ele: Lookup) => {\r\n let entity = {};\r\n entity.Title = ele.Title;\r\n entity.Id = ele.Id;\r\n entity.IsActive = true;\r\n this.Branches.push(entity);\r\n });\r\n this.branchShow = true;\r\n this.cd.markForCheck();\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n private getPaymentMethodData(): void {\r\n if (!this.PaymentMethodData.length) {\r\n this.httpCommonService\r\n .getList(\"PaymentMethod/PaymentMethodLookUp/\" + this.accountService.authService.currentBranchId)\r\n .pipe(take(1))\r\n .subscribe((res: any[]) => {\r\n this.PaymentMethodData = res.filter((x) => x.PaymentMethodCode === PaymentMethodType.Internet);\r\n });\r\n }\r\n }\r\n //DiscountFocus\r\n onDiscountfocus() {\r\n if (this.formGroup.controls[\"Discount\"].value === \"0\" || this.formGroup.controls[\"Discount\"].value === 0) {\r\n this.setValue(\"Discount\", 0);\r\n }\r\n }\r\n //اعمال تخفیف\r\n applyDiscount(value: string, isPercent: boolean) {\r\n let output = null;\r\n if (isPercent != null) {\r\n this.model.IsDiscountPercent = isPercent;\r\n this.model.Discount = null;\r\n this.formGroup.controls[\"Discount\"].setValue(null);\r\n return;\r\n }\r\n let discountValue: number = this.formGroup.controls[\"Discount\"].value;\r\n if (this.model.IsDiscountPercent) {\r\n discountValue = this.formGroup.controls[\"Discount\"].value ? Number(this.formGroup.controls[\"Discount\"].value) : null;\r\n this.model.Discount = discountValue;\r\n this.model.IsDiscountPercent = true;\r\n\r\n if (Number(value) > 100) {\r\n this.formGroup.controls[\"Discount\"].setValue(100);\r\n } else {\r\n output = Number(value) ? Number(value) : this.authservice.currentUser.PercentDiscount;\r\n discountValue = output;\r\n }\r\n } else {\r\n if (this.authservice.currentUser.RialDiscount > 0) {\r\n output = Number(value) ? Number(value) : this.authservice.currentUser.RialDiscount;\r\n discountValue = output;\r\n }\r\n this.model.IsDiscountPercent = false;\r\n this.model.Discount = discountValue;\r\n }\r\n }\r\n\r\n //Clear Discount\r\n clearDiscount() {\r\n this.formGroup.controls[\"Discount\"].setValue(0);\r\n this.model.Discount = null;\r\n }\r\n\r\n focus(id: string) {\r\n const input: HTMLInputElement = document.getElementById(id) as HTMLInputElement;\r\n if (input) {\r\n input.focus();\r\n input.select();\r\n }\r\n }\r\n}\r\n","\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.Percent\" | translate }}\r\n \r\n \r\n {{ \"ClientApp.FrontOffice.Order.OrderPage.Invoice.TotalPrice.UnitOfPrice\" | translate }}\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n 0 && !model?.Id && branchShow && currentBranch.AccessToAllBranches\">\r\n \r\n \r\n \r\n \r\n
\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { BaseListComponent } from 'projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { CheckBrachAccessModel } from 'src/app/gnr/data-center-process/chek-branch-access.model';\r\nimport { SaleMethodBranchForm } from '../sale-method-branch-form/sale-method-branch-form';\r\n\r\n@Component({\r\n selector: 'ngx-sale-method-branch-list',\r\n templateUrl: './sale-method-branch-list.html',\r\n styleUrls: ['./sale-method-branch-list.scss']\r\n})\r\nexport class SaleMethodBranchList extends BaseListComponent {\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = '';\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n constructor() {\r\n super()\r\n this.inputEditorform = SaleMethodBranchForm;\r\n this.FillData();\r\n }\r\n ngOnInit() {\r\n this.apiName= \"SaleMethodBranch\";\r\n this.label = this.translate('ClientApp.FrontOffice.SALE.SaleMethod.SaleMethodBranch');\r\n this.areaName = \"RestaurantSale\"\r\n }\r\n async FillData() {\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n if (currentBranch.BranchingLightEnabled ||\r\n currentBranch.BranchingAdvancedEnabled ||\r\n currentBranch.RestaurantCallCenter) {\r\n if(!this.accountService.authService.currentBranch.AccessToAllBranches){\r\n this.isAdd = false;\r\n this.isDelete = false;\r\n }\r\n if(this.accountService.authService.currentBranch.AccessToAllBranches){\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n \r\n }\r\n }\r\n}","
\r\n \r\n\r\n
\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SaleMethod } from \"../../model/sale-method.model\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { delay, take } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\n\r\n@Component({\r\n selector: \"ngx-sale-method-form\",\r\n templateUrl: \"./sale-method-form.component.html\",\r\n styleUrls: [\"./sale-method-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SaleMethodFormComponent extends BaseFormComponent {\r\n deactivateSave: boolean;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"SaleMethod\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.SaleMethod\");\r\n super.ngOnInit();\r\n this.FillData();\r\n this.checkAccessToChangeSaleMethodNature();\r\n }\r\n\r\n checkAccessToChangeSaleMethodNature() {\r\n if (this.currentrow) {\r\n this.httpCommonService\r\n .get(\"SaleMethod/HasAccessToChangeSaleMethodNature?saleMethodId=\" + this.currentrow.Id)\r\n .pipe(take(1), delay(200))\r\n .subscribe((hasAccess) => {\r\n if (!hasAccess) this.formGroup.controls[\"SaleMethodNatureId\"].disable();\r\n });\r\n }\r\n }\r\n\r\n async FillData() {\r\n // چک کردن انتقال اطلاعات مدیریت شعب\r\n const currentInformation = this.accountService.authService.currentInformation();\r\n if (currentInformation.BranchingLightEnabled || currentInformation.BranchingAdvancedEnabled) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch/SaleMethod\")\r\n .pipe(take(1))\r\n .subscribe(\r\n (hbc: CheckBrachAccessModel) => {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n } else if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.HasCallCenterCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n }\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { SaleMethodFormComponent } from \"../sale-method-form/sale-method-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-sale-method-list\",\r\n templateUrl: \"./sale-method-list.component.html\",\r\n styleUrls: [\"./sale-method-list.component.scss\"],\r\n})\r\nexport class SaleMethodListComponent extends BaseListComponent {\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n\r\n constructor() {\r\n super();\r\n this.inputEditorform = SaleMethodFormComponent;\r\n this.FillData();\r\n }\r\n ngOnInit() {\r\n this.apiName = \"SaleMethod\";\r\n this.areaName = \"RestaurantSale\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.SaleMethod\");\r\n }\r\n async FillData() {\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n if (currentBranch.BranchingLightEnabled || currentBranch.BranchingAdvancedEnabled || currentBranch.RestaurantCallCenter) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch/SaleMethod\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (!this.accountService.authService.currentBranch.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.HasBranchCommunication\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.SALE.SaleMethod.HasCallCenterCommunication\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nimport { SaleMethodFormComponent } from './sale-method/sale-method-form/sale-method-form.component';\r\nimport { SaleMethodListComponent } from './sale-method/sale-method-list/sale-method-list.component';\r\nimport { SaleMethodBranchForm } from './sale-method-branch/sale-method-branch-form/sale-method-branch-form';\r\nimport { SaleMethodBranchList } from './sale-method-branch/sale-method-branch-list/sale-method-branch-list';\r\n\r\nconst components =\r\n [\r\n SaleMethodFormComponent,\r\n SaleMethodListComponent,\r\n SaleMethodBranchForm,\r\n SaleMethodBranchList,\r\n\r\n ]\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class SalesModule { }\r\n","import { EntityBase } from 'projects/sepidz-web-framework/src/lib/models/entity-base.model';\r\nimport { Invoice, InvoiceMode } from '../../order/model/invoice.model';\r\n\r\nexport class Salon extends EntityBase {\r\n public Title: string;\r\n public BranchId:number;\r\n public Tables: Table[];\r\n public TableReads: TableRead[];\r\n public Selected: boolean;\r\n public IsActive: boolean;\r\n public Illegal: boolean;\r\n}\r\n\r\nexport class Table extends EntityBase {\r\n public Title: string;\r\n public Code: number;\r\n public IsActive: boolean;\r\n public SalonId: number;\r\n}\r\n\r\nexport class TableRead {\r\n public Id: number;\r\n public Title: string;\r\n public SalonTitle: string;\r\n public Code: number;\r\n public IsActive: boolean;\r\n public SalonId?:number;\r\n public InvoiceId: number;\r\n //public Invoice: Invoice;\r\n public InvoiceTotal: number;\r\n public CustomerName: string;\r\n //public CustomerId: number;\r\n public NumberOfGuests: number;\r\n public Status: TableStatus;\r\n public RelativeInvoiceTime?: Date;\r\n public RelativeInvoiceTimeString: string;\r\n public Locked: boolean;\r\n public MaximumTimeForStay: number;\r\n public SaleMethodBranchId: number;\r\n public SaleMethodTitle: string;\r\n public InvoiceStatusCode: number;\r\n constructor() {\r\n this.Title = '';\r\n this.SalonTitle = '';\r\n this.Code = 0;\r\n this.IsActive = false;\r\n this.InvoiceId = 0;\r\n this.InvoiceTotal = 0;\r\n this.CustomerName = '';\r\n //this.CustomerId = 0;\r\n this.NumberOfGuests = 0;\r\n this.Status = TableStatus.Free;\r\n this.RelativeInvoiceTime = new Date();\r\n this.RelativeInvoiceTimeString = '';\r\n this.Locked = false;\r\n }\r\n}\r\n\r\nexport enum TableStatus {\r\n Free = 1,\r\n Ordering = 2,\r\n Clearing = 3,\r\n TimeOver = 4\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit } from \"@angular/core\";\r\nimport { Salon, Table } from \"../model/salon.model\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { takeUntil } from \"rxjs/internal/operators/takeUntil\";\r\nimport { ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\n\r\n@Component({\r\n selector: \"ngx-salon-form\",\r\n templateUrl: \"./salon-form.component.html\",\r\n styleUrls: [\"./salon-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class SalonFormComponent extends BaseFormComponent implements OnInit {\r\n start: number = 1;\r\n end: number = 5;\r\n IsActive: boolean = false;\r\n tableName: string = this.translate(\"ClientApp.FrontOffice.Salon.Table\");\r\n haserror: boolean = false;\r\n erroremessage: string;\r\n Tables: form_control[];\r\n deactivateSave: boolean = false;\r\n onPermissionDelete: boolean = false;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, protected sts: ShowToastrService) {\r\n super(selectorService, cd);\r\n this.FillData();\r\n }\r\n\r\n async ngOnInit() {\r\n this.apiName = \"Salon\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Salon.Salons\");\r\n super.ngOnInit();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.Tables = undefined;\r\n }\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.Tables = this.getDetailControlModels(\"Tables\");\r\n }\r\n setdefault() {\r\n if (!this.model.Tables) this.model.Tables = [];\r\n if (this.model.BranchId == undefined) this.model.BranchId = this.accountService.authService.currentBranchId;\r\n if (this.model && this.model?.Tables?.length > 0) {\r\n this.end = this.model.Tables.length;\r\n this.model.Tables = this.model.Tables.sort(function (a, b) {\r\n return a.Code - b.Code;\r\n });\r\n this.setValue(\"end\", this.end);\r\n this.setValue(\"tableName\", this.tableName);\r\n }\r\n }\r\n\r\n ngCreateTables(): void {\r\n this.start = this.formGroup.controls[\"start\"].value;\r\n this.end = this.formGroup.controls[\"end\"].value;\r\n this.tableName = this.formGroup.controls[\"tableName\"].value;\r\n this.IsActive = this.formGroup.controls[\"IsActive\"].value;\r\n if (this.start > 999 || this.end > 999) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Salon.EnterAppropriateValue\");\r\n return;\r\n } else {\r\n let newTableName: string;\r\n let found = false;\r\n for (var i = this.start; i <= this.end; i++) {\r\n newTableName = this.tableName + \" \" + i;\r\n var table = new Table();\r\n table.Title = newTableName;\r\n table.Code = i;\r\n table.IsActive = true;\r\n table.SalonId = this.model.Id > 0 ? this.model.Id : 0;\r\n this.model.Tables.forEach((x) => {\r\n if (x.State != RowState.Delete && x.State != RowState.Detached && (x.Code === i || x.Title == newTableName)) {\r\n x.Title = newTableName;\r\n x.Code = i;\r\n x.IsActive = true;\r\n x.State = RowState.Modify;\r\n found = true;\r\n return;\r\n }\r\n //this.tableName = newTableName;\r\n });\r\n if (!found) {\r\n table.State = RowState.New;\r\n this.model.Tables.push(table);\r\n }\r\n found = false;\r\n }\r\n var temp = Object.assign([], this.model.Tables);\r\n this.model.Tables = [];\r\n this.model.Tables = temp;\r\n this.cd.markForCheck();\r\n }\r\n }\r\n addControl() {\r\n this.setValue(\"start\", this.start);\r\n this.setValue(\"end\", this.end);\r\n this.setValue(\"tableName\", this.tableName);\r\n this.setValue(\"IsActive\", this.model.IsActive != null ? this.model.IsActive : true);\r\n }\r\n isValid(): boolean {\r\n this.erroremessage = undefined;\r\n this.haserror = false;\r\n if (this.model && this.model.Tables) {\r\n let tables = this.model.Tables.filter((t) => t.State != RowState.Delete && t.State != RowState.Detached);\r\n if (tables.length > 0) {\r\n let tableTitleArray = tables.map(function (table) {\r\n return table.Title;\r\n });\r\n let isDuplicateTitle = tableTitleArray.some(function (item, idx) {\r\n return tableTitleArray.indexOf(item) != idx;\r\n });\r\n if (isDuplicateTitle) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Salon.TitleTableCannotRepeated\");\r\n }\r\n let tableCodeArray = tables.map(function (table) {\r\n return table.Code;\r\n });\r\n if (tableCodeArray.some((x) => !x)) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Salon.TableCodeMandatory\");\r\n }\r\n let isDuplicateCode = tableCodeArray.some(function (item, idx) {\r\n return tableCodeArray.indexOf(item) != idx;\r\n });\r\n if (isDuplicateCode) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Salon.TableCodeCannotDuplicated\");\r\n }\r\n } else {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.FrontOffice.Salon.SelectingLeastOneTableRequired\");\r\n }\r\n }\r\n return !this.haserror;\r\n }\r\n //beforupdate() {\r\n //this.model.Tables = this.model.Tables.filter(f => f.State != RowState.Delete && f.State != RowState.Detached);\r\n // }\r\n onDelete($event) {\r\n if (this.onPermissionDelete) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Salon.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Salon.Attention\")\r\n );\r\n }\r\n }\r\n async FillData() {\r\n if (\r\n this.accountService.authService.currentInformation().BranchingLightEnabled ||\r\n this.accountService.authService.currentInformation().BranchingAdvancedEnabled\r\n ) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Salon\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Salon.HasBranchCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Salon.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.FrontOffice.Salon.HasCallCenterCommunication\"),\r\n this.translate(\"ClientApp.FrontOffice.Salon.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n (error) => this.getFailedHelper(error);\r\n }\r\n }\r\n}\r\n","\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n {{ erroremessage }}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n 0 && model.Tables\" [columns]=\"Tables\" [dataList]=\"model.Tables\" [hideToolber]=\"true\">\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"src/app/gnr/data-center-process/chek-branch-access.model\";\r\nimport { DataCenterProcess } from \"src/app/gnr/data-center-process/data-center-process.model\";\r\nimport { SalonFormComponent } from \"../salon-form/salon-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-salon-list\",\r\n templateUrl: \"./salon-list.component.html\",\r\n styleUrls: [\"./salon-list.component.scss\"],\r\n})\r\nexport class SalonListComponent extends BaseListComponent {\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n constructor() {\r\n super();\r\n this.inputEditorform = SalonFormComponent;\r\n this.FillData();\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Salon\";\r\n this.label = this.translate(\"ClientApp.FrontOffice.Salon.Salons\");\r\n this.areaName = \"RestaurantSale\";\r\n }\r\n async FillData() {\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n if (currentBranch.RestaurantCallCenter) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Salon\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (this.accountService.authService.currentBranch.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n });\r\n }\r\n if (currentBranch.BranchingLightEnabled || currentBranch.BranchingAdvancedEnabled) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Salon\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Salon.HasBranchCommunication\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.FrontOffice.Salon.HasCallCenterCommunication\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n
","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { SalonFormComponent } from \"./salon-form/salon-form.component\";\r\nimport { SalonListComponent } from \"./salon-list/salon-list.component\";\r\n\r\nconst components = [SalonFormComponent, SalonListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class SalonModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { BarCodeReaderFormat } from \"../bar-code-reader-format.model\";\r\n\r\n@Component({\r\n selector: \"ngx-bar-code-reader-format-form\",\r\n templateUrl: \"./bar-code-reader-format-form.component.html\",\r\n styleUrls: [\"./bar-code-reader-format-form.component.scss\"],\r\n})\r\nexport class BarCodeReaderFormatFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"BarCodeReaderFormat\";\r\n this.label = this.translate(\"ClientApp.GNR.BarCodeReaderFormat.BarcodeTemplate\");\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n this.model.IsWeight = false;\r\n }\r\n\r\n beforupdate(): void {\r\n localStorage.removeItem(\"BarCodeReaderFormat\");\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { BarCodeReaderFormatFormComponent } from \"../bar-code-reader-format-form/bar-code-reader-format-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-bar-code-reader-format-list\",\r\n templateUrl: \"./bar-code-reader-format-list.component.html\",\r\n styleUrls: [\"./bar-code-reader-format-list.component.scss\"],\r\n})\r\nexport class BarCodeReaderFormatListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = BarCodeReaderFormatFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"BarCodeReaderFormat\";\r\n this.areaName = \"General\";\r\n this.label = this.translate(\"ClientApp.GNR.BarCodeReaderFormat.BarcodeTemplate\");\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BarCodeReaderFormatFormComponent } from './bar-code-reader-format-form/bar-code-reader-format-form.component';\r\nimport { BarCodeReaderFormatListComponent } from './bar-code-reader-format-list/bar-code-reader-format-list.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\n\r\nconst components =\r\n [\r\n BarCodeReaderFormatListComponent,\r\n BarCodeReaderFormatFormComponent\r\n ]\r\n@NgModule({\r\n declarations: [...components,],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class BarCodeReaderFormatModule { }\r\n","import { ChangeDetectorRef, Component, OnInit } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { BranchDataTransferInfo } from \"projects/sepidz-web-framework/src/lib/models/branch.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\n\r\n@Component({\r\n selector: \"ngx-branch-data-transfer-info\",\r\n templateUrl: \"./branch-data-transfer-info.component.html\",\r\n styleUrls: [\"./branch-data-transfer-info.component.scss\"],\r\n})\r\nexport class BranchDataTransferInfoComponent extends BaseFormComponent {\r\n isOkforLoad: boolean = false;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Branch\";\r\n this.label = this.translate(\"ClientApp.GNR.Branch.BranchDataTransferInfo\");\r\n super.noLoadData = true;\r\n super.ngOnInit();\r\n this.model.OrignalOppositeBranchId = this.model.OppositeBranchId;\r\n }\r\n setColumnAttribute() {\r\n this.orignalColumns = this.getDetailControlModels(\"BranchDataTransferInfos\");\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n super.setColumnAttribute();\r\n }\r\n\r\n onValueChangeByApiName($event) {\r\n if ($event && $event.data && $event.data.Title) {\r\n this.model.OppositeBranchTitle = $event.data.Title;\r\n this.model.Number = $event.data.Number;\r\n this.setValue(\"Number\", this.model.Number);\r\n this.setValue(\"OppositeBranchTitle\", $event.data.Title);\r\n }\r\n }\r\n addControl() {\r\n this.isOkforLoad = true;\r\n this.cd.markForCheck();\r\n if (this.model.OppositeBranchUrl != undefined) this.testConection();\r\n }\r\n testConection() {\r\n if (this.formGroup.controls[\"OppositeBranchUrl\"].value != undefined) {\r\n var _model = this.getDataFromFormGroup();\r\n if (!_model.OppositeBranchId) _model.OppositeBranchId = 0;\r\n this.httpCommonService\r\n .create(\"Home/GetOppositeBranchList\", _model)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n this.selectorService.setDataList(\"OppositeBranchId\", data as []);\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n } else\r\n this.sts.showDialog(this.translate(\"ClientApp.GNR.Branch.ServerAddressNotComplete\"), this.translate(\"ClientApp.GNR.Branch.ConnectionTest\"));\r\n }\r\n async save() {\r\n this.selectorService.submitted$.next(this.submitted);\r\n if (this.model.State === RowState.NoChange) this.model.State = RowState.Modify;\r\n this.result = this.getDataFromFormGroup();\r\n this.closeModal();\r\n }\r\n}\r\n","\r\n \r\n \r\n \r\n \r\n\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Type } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { Branch, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { AccountService, LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { RoundingType, Currency, ShippingCostReducedKind, TypeOfDocument, InvDailyBalanceInhibitorEnum } from \"../branch.enum\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { BranchDataTransferInfo } from \"projects/sepidz-web-framework/src/lib/models/branch.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { BranchDataTransferInfoComponent } from \"../branch-data-transfer-info/branch-data-transfer-info.component\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { SplashFormService } from \"../../../../../projects/sepidz-web-framework-shell/src/lib/shared/splash-form/Splash-form.service\";\r\nimport { SplashScreenService } from \"../../../../../projects/sepidz-web-framework-shell/src/lib/shared/splash-form/SplashScreenService\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\nimport { PaymentMethodLookUp } from \"../../../frontoffice/order/model/payment.lookup\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\nimport { Subject } from \"rxjs\";\r\nimport { MapComponent, MapConfirmValue } from \"src/app/frontoffice/parties/map/map.component\";\r\nimport { PaymentMethodType } from \"src/app/frontoffice/financial/model/payment-method.enum\";\r\nimport { EnumModel } from \"src/app/frontoffice/order/orderpage/item/deposit/deposit.component\";\r\nimport { SaleMethodBranchModel } from \"src/app/frontoffice/sales/model/sale-method-branch.model\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\n\r\n@Component({\r\n selector: \"ngx-branch-form\",\r\n templateUrl: \"./branch-form.component.html\",\r\n styleUrls: [\"./branch-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class BranchFormComponent extends BaseFormComponent {\r\n roundingType = RoundingType;\r\n shippingCostReducedKind = ShippingCostReducedKind;\r\n BranchDataTransferInfos: form_control[];\r\n currency = Currency;\r\n activeTabTitle: string;\r\n hasLocal: boolean = false;\r\n hasFleetService: boolean = false;\r\n SoftWareLicenseKind = SoftWareLicenseKind;\r\n deactivateSave: boolean = false;\r\n isAccounting: boolean;\r\n hasAccounting: boolean;\r\n SendingSalesType: boolean;\r\n TransferDebtorsType: boolean;\r\n isAccessToAllBranches = false;\r\n SendingSalesTypes = [\r\n { Id: \"1\", Name: \"SaleMethodBranch\", Title: this.translate(\"ClientApp.GNR.Branch.SaleMethod\") },\r\n { Id: \"2\", Name: \"ItemCategory\", Title: this.translate(\"ClientApp.GNR.Branch.ItemCategory\") },\r\n { Id: \"3\", Name: \"Item\", Title: this.translate(\"ClientApp.GNR.Branch.Item\") },\r\n ];\r\n hasOrderOnline: boolean = false;\r\n public inputEditorform: Type;\r\n public isSepidzUser: boolean;\r\n transferDebtorTypesData: any[];\r\n SendingSalesTypesData: any[];\r\n PaymentTypeData: PaymentMethodLookUp[];\r\n AggregateAndSeparateData: any[] = [];\r\n InvDailyBalanceInhibitorEnumDataList: EnumModel[];\r\n InvWarehouseDataList: any[] = [];\r\n isAccessToActivation = false;\r\n currentInformation = this.accountService.authService.currentInformation();\r\n\r\n constructor(\r\n public commonservice: CommonService,\r\n private lookupservice: LookupService,\r\n protected selectorService: SelectorService,\r\n protected cd: ChangeDetectorRef,\r\n public splashScreenService: SplashScreenService,\r\n public splashFormService: SplashFormService,\r\n _tabsservice: TabularService,\r\n account: AccountService,\r\n public http: HttpClient\r\n ) {\r\n super(selectorService, cd);\r\n this.tabsservice = _tabsservice;\r\n this.isAccounting =\r\n account.authService.currentInformation().AccountingKind === SoftWareLicenseKind.AccountingAdvancedWeb ||\r\n account.authService.currentInformation().AccountingKind === SoftWareLicenseKind.AccountingToAdvancedWeb ||\r\n account.authService.currentInformation().AccountingKind === SoftWareLicenseKind.AccountingWeb;\r\n this.isSepidzUser = account.getCurrentUser().UserName === \"SepidzUser\" ? true : false;\r\n this.FillData();\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Branch\";\r\n this.label = this.translate(\"ClientApp.GNR.Branch.Branch\");\r\n this.InvDailyBalanceInhibitorEnumDataList = this.enumToEnumModelArray(InvDailyBalanceInhibitorEnum);\r\n super.ngOnInit();\r\n this.addControl();\r\n }\r\n async FillData() {\r\n this.httpCommonService\r\n .getList(\"PaymentMethod/PaymentMethodLookUp\" + \"/\" + (this.currentrow.Id || this.accountService.authService.currentBranchId))\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: PaymentMethodLookUp[]) => {\r\n const result = data.filter((x) => x.PaymentMethodCode == PaymentMethodType.Internet);\r\n this.PaymentTypeData = result;\r\n });\r\n\r\n this.httpCommonService\r\n .getList(\"Warehouse/HalfMadeWarehouseReadLookUp\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: PaymentMethodLookUp[]) => {\r\n this.InvWarehouseDataList = data;\r\n this.getSaleMethodBranchOnlineOrder();\r\n });\r\n\r\n if (!this.model.TimeForChange) this.model.TimeForChange = 2;\r\n if (!this.model.RoundingTypeId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"GNR\", \"RoundingType\", this.roundingType.Standard)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (x) => {\r\n this.model.RoundingTypeId = x.Id;\r\n this.model.RoundingTypeCode = x.Code;\r\n this.model.RoundingTypeTitle = x.Title;\r\n });\r\n if (!this.model.ShippingCostReducedKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"GNR\", \"ShippingCostReducedKind\", this.shippingCostReducedKind.NoReduced)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (x) => {\r\n this.model.ShippingCostReducedKindId = x.Id;\r\n this.model.ShippingCostReducedKindCode = x.Code;\r\n this.model.ShippingCostReducedKindTitle = x.Title;\r\n });\r\n }\r\n\r\n if (!this.model.TransferDebtorsTypeId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"TransferDebtorsType\", TypeOfDocument.Separation)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (x) => {\r\n this.model.TransferDebtorsTypeId = x.Id;\r\n this.model.TransferDebtorsTypeCode = x.Code;\r\n this.model.TransferDebtorsTypeTitle = x.Title;\r\n });\r\n }\r\n if (!this.model.SendingSalesTypeId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"ACC\", \"SendingSalesType\", TypeOfDocument.Separation)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(async (x) => {\r\n this.model.SendingSalesTypeId = x.Id;\r\n this.model.SendingSalesTypeCode = x.Code;\r\n this.model.SendingSalesTypeTitle = x.Title;\r\n });\r\n }\r\n }\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n if (currentBranch.BranchingLightEnabled || currentBranch.BranchingAdvancedEnabled || currentBranch.RestaurantCallCenter) {\r\n if (!this.accountService.authService.currentBranch.AccessToAllBranches) {\r\n this.sts.showDialog(this.translate(\"ClientApp.GNR.Branch.YouDoNotHaveAccessToThisArea\"), this.translate(\"ClientApp.GNR.Branch.Attention\"));\r\n this.deactivateSave = true;\r\n }\r\n }\r\n }\r\n setdefault() {\r\n if (!this.model.CurrencyId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"GNR\", \"Currency\", this.currency.Rial)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.model.CurrencyId = x.Id;\r\n this.model.CurrencyCode = x.Code;\r\n this.model.CurrencyTitle = x.Title;\r\n });\r\n }\r\n if (this.model && this.model.Title) {\r\n this.formGroup.controls[\"Code\"].disable();\r\n }\r\n if (!this.model.CustomerTitles) this.model.CustomerTitles = [];\r\n if (!this.model.CustomerTitles) this.model.CustomerTitles = [];\r\n if (this.currentrow && this.model.SendingSalesTitle && typeof this.model.SendingSalesTitle === \"string\") {\r\n this.model.SendingSalesTitle = this.model.SendingSalesTitle.split(\",\");\r\n }\r\n if (!this.model.AccessToAllBranches) {\r\n this.isAccessToAllBranches = true;\r\n }\r\n }\r\n addControl() {\r\n this.setValue(\"PhoneNumber\", this.model.PhoneNumber);\r\n this.setValue(\"EconomicalNumber\", this.model.EconomicalNumber);\r\n this.setValue(\"PostalCode\", this.model.PostalCode);\r\n this.setValue(\"CustomerTitles\", this.model.CustomerTitles);\r\n this.setValue(\"TaxPercentage\", this.model.TaxPercentage);\r\n this.setValue(\"TollPercentage\", this.model.TollPercentage);\r\n this.setValue(\"ServicePercentage\", this.model.ServicePercentage);\r\n this.setValue(\"StandardDelayTimeForPreparation\", this.model.StandardDelayTimeForPreparation);\r\n this.setValue(\"AlertDelayTimeForPreparation\", this.model.AlertDelayTimeForPreparation);\r\n this.setValue(\"TimeForChangeDate\", this.model.TimeForChange);\r\n this.setValue(\"AddSettlementForUnpaidAndSuspendedInvoices\", this.model.AddSettlementForUnpaidAndSuspendedInvoices);\r\n this.setValue(\"RoundingAmount\", this.model.RoundingAmount);\r\n this.setValue(\"RoundingTypeId\", this.model.RoundingTypeId);\r\n this.setValue(\"ShippingCostReducedKindId\", this.model.ShippingCostReducedKindId);\r\n this.setValue(\"Message\", this.model.Message);\r\n this.setValue(\"DisplayLogoInPrintTemplates\", this.model.DisplayLogoInPrintTemplates);\r\n this.setValue(\"DisplayAddressInInvoice\", this.model.DisplayAddressInInvoice);\r\n this.setValue(\"IgnoreBlackBackground\", this.model.IgnoreBlackBackground);\r\n this.setValue(\"ShowTotalCalories\", this.model.ShowTotalCalories);\r\n this.setValue(\"CurrencyId\", this.model.CurrencyId);\r\n this.setValue(\"EnableCreateCustomerSms\", this.model.EnableCreateCustomerSms);\r\n this.setValue(\"EnableAssignToDriverSms\", this.model.EnableAssignToDriverSms);\r\n this.setValue(\"HasOrderOnline\", this.model.HasOrderOnline);\r\n this.setValue(\"ReadyToReceiveOnlineOrders\", this.model.ReadyToReceiveOnlineOrders);\r\n this.setValue(\"AutoPrintOnline\", this.model.AutoPrintOnline);\r\n this.setValue(\"CustomerPrintOrderOnile\", this.model.CustomerPrintOrderOnile);\r\n this.setValue(\"HasDecimal\", this.model.HasDecimal);\r\n this.setValue(\"HasLocalService\", this.model.HasLocalService);\r\n this.setValue(\"HasAuditorInSalesAmounts\", this.model.HasAuditorInSalesAmounts);\r\n this.setValue(\"SendVoucherFromCenter\", this.model.SendVoucherFromCenter);\r\n this.setValue(\"LocalServiceIp\", this.model.LocalServiceIp);\r\n this.setValue(\"AutoPrintCash\", this.model.AutoPrintCash);\r\n this.setValue(\"NationalCode\", this.model.NationalCode);\r\n this.setValue(\"PaymentType\", this.model.PaymentType);\r\n this.setValue(\"multiOrder\", this.model.multiOrder);\r\n const currentInformation = this.accountService.authService.currentInformation();\r\n this.setValue(\"SmsAdvertisingNumber\", currentInformation.SmsAdvertisingNumber);\r\n this.setValue(\"SmsServiceNumber\", currentInformation.SmsServiceNumber);\r\n\r\n if (!this.model.HasOrderOnline) {\r\n this.formGroup.controls[\"PaymentType\"].disable();\r\n this.formGroup.controls[\"AutoPrintCash\"].disable();\r\n this.formGroup.controls[\"AutoPrintOnline\"].disable();\r\n this.formGroup.controls[\"CustomerPrintOrderOnile\"].disable();\r\n } else {\r\n this.formGroup.controls[\"PaymentType\"].enable();\r\n this.formGroup.controls[\"AutoPrintCash\"].enable();\r\n this.formGroup.controls[\"AutoPrintOnline\"].enable();\r\n this.formGroup.controls[\"CustomerPrintOrderOnile\"].enable();\r\n }\r\n this.setValue(\"IsActive\", this.model.IsActive != null ? this.model.IsActive : true);\r\n this.setValue(\"HasAccounting\", this.model.HasAccounting);\r\n this.setValue(\"DetailLedgerId\", this.model.DetailLedgerId);\r\n this.setValue(\"TransferDebtorsTypeId\", this.model.TransferDebtorsTypeId);\r\n this.setValue(\"DebtorsSubLedgerId\", this.model.DebtorsSubLedgerId);\r\n this.setValue(\"SendingSalesTypeId\", this.model.SendingSalesTypeId);\r\n this.setValue(\"SendingSalesTitle\", this.model.SendingSalesTitle);\r\n this.setValue(\"NoDisplayDashboard\", this.model.NoDisplayDashboard);\r\n this.setValue(\"Latitude\", this.model.Latitude);\r\n this.setValue(\"Longitude\", this.model.Longitude);\r\n this.setValue(\"InvWarehouseId\", this.model.InvWarehouseId);\r\n this.setValue(\"InvDailyBalanceInhibitorId\", this.model.InvDailyBalanceInhibitorId);\r\n this.hasLocal = this.model?.HasLocalService;\r\n this.hasAccounting = this.model?.HasAccounting;\r\n\r\n this.SendingSalesType = this.model?.SendingSalesTypeCode === TypeOfDocument.Separation;\r\n this.TransferDebtorsType = this.model?.TransferDebtorsTypeCode === TypeOfDocument.accumulative;\r\n\r\n this.cd.markForCheck();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.BranchDataTransferInfos = undefined;\r\n this.roundingType = undefined;\r\n this.shippingCostReducedKind = undefined;\r\n this.currency = undefined;\r\n this.inputEditorform = undefined;\r\n }\r\n\r\n onHasOrderOnline(value: boolean): void {\r\n if (!value) {\r\n this.formGroup.controls[\"PaymentType\"].disable();\r\n this.formGroup.controls[\"PaymentType\"].setValue(null);\r\n this.formGroup.controls[\"AutoPrintCash\"].disable();\r\n this.formGroup.controls[\"AutoPrintOnline\"].disable();\r\n this.formGroup.controls[\"CustomerPrintOrderOnile\"].disable();\r\n this.formGroup.controls[\"ReadyToReceiveOnlineOrders\"].setValue(false);\r\n this.formGroup.controls[\"ReadyToReceiveOnlineOrders\"].disable();\r\n } else {\r\n this.formGroup.controls[\"PaymentType\"].enable();\r\n this.formGroup.controls[\"AutoPrintCash\"].enable();\r\n this.formGroup.controls[\"AutoPrintOnline\"].enable();\r\n this.formGroup.controls[\"CustomerPrintOrderOnile\"].enable();\r\n this.formGroup.controls[\"ReadyToReceiveOnlineOrders\"].enable();\r\n }\r\n }\r\n\r\n setColumnAttribute() {\r\n super.setColumnAttribute();\r\n this.BranchDataTransferInfos = this.getDetailControlModels(\"BranchDataTransferInfos\");\r\n\r\n const currentInformation = this.accountService.authService.currentInformation();\r\n if (!currentInformation.RestaurantCallCenter || this.accountService.getCurrentUser().UserName !== \"SepidzUser\") {\r\n this.orignalColumns.find((x) => x.name === \"BranchAddress\").formVisible = false;\r\n }\r\n if (!currentInformation.RestaurantCallCenter) {\r\n this.orignalColumns.find((x) => x.name === \"BranchAddress\").formVisible = false;\r\n }\r\n if (!this.currentrow?.Id) {\r\n if (currentInformation.RestaurantCallCenter || currentInformation.BranchingAdvancedEnabled || currentInformation.BranchingLightEnabled) {\r\n this.orignalColumns.find((x) => x.name === \"StencilBranchId\").formVisible = true;\r\n }\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.cd.markForCheck();\r\n }\r\n }\r\n setMaxCode() {\r\n this.httpCommonService\r\n .get(this.apiName + \"/GetMaxCodeBranch\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n\r\n this.setdefault();\r\n }\r\n\r\n checkAccounting($event): void {\r\n this.hasAccounting = $event;\r\n }\r\n TransferDebtorsTypeChange(id: number): void {\r\n const selected = this.AggregateAndSeparateData.find((x) => x.Id === id);\r\n if (selected) {\r\n this.TransferDebtorsType = selected.Code && selected.Code === TypeOfDocument.accumulative ? true : false;\r\n this.formGroup.controls[\"DebtorsSubLedgerId\"].setValue(null);\r\n }\r\n }\r\n\r\n SendingSalesTypeChange(id: number): void {\r\n const selected = this.AggregateAndSeparateData.find((x) => x.Id === id);\r\n if (selected) {\r\n this.SendingSalesType = selected.Code && selected.Code === TypeOfDocument.Separation ? true : false;\r\n this.formGroup.controls[\"SendingSalesTitle\"].setValue(null);\r\n }\r\n }\r\n\r\n protected getDataFromFormGroup(): Branch {\r\n Object.keys(this.formGroup.controls).forEach((key) => {\r\n if (\r\n key === \"CustomerTitles\" &&\r\n this.formGroup.controls[key] &&\r\n this.formGroup.controls[key].value &&\r\n this.formGroup.controls[key].value !== \"\" &&\r\n this.formGroup.controls[key].value\r\n ) {\r\n this.model[key] = [];\r\n if (Array.isArray(this.formGroup.controls[key].value)) {\r\n let k: string[] = this.formGroup.controls[key].value;\r\n k.forEach((x) => {\r\n this.model[key].push(x);\r\n });\r\n } else this.model[key].push(this.formGroup.controls[key].value);\r\n } else this.model[key] = this.formGroup.controls[key].value;\r\n });\r\n return this.model;\r\n }\r\n onCreate() {\r\n if (this.model.BranchDataTransferInfos === undefined) this.model.BranchDataTransferInfos = [];\r\n let bdti = {};\r\n bdti.BranchId = this.model.Id;\r\n bdti.InterruptTime = 10;\r\n bdti.IsCentralOffice = true;\r\n bdti.TopRecordCount = 100;\r\n bdti.IsCentralOffice = true;\r\n bdti.TransferAccountingCode = false;\r\n bdti.State = RowState.New;\r\n this.inputEditorform = BranchDataTransferInfoComponent;\r\n this.dialogService\r\n .open(this.inputEditorform, {\r\n currentrow: bdti,\r\n })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((_model: BranchDataTransferInfo) => {\r\n if (_model != undefined) {\r\n if (this.model.BranchDataTransferInfos.some((x) => x.OppositeBranchId === _model.OppositeBranchId))\r\n this.sts.showDialog(this.translate(\"ClientApp.GNR.Branch.BranchAlreadySelected\"), this.translate(\"ClientApp.GNR.Branch.SaveInfo\"));\r\n else this.model.BranchDataTransferInfos.push(_model);\r\n if (_model.Number) this.model.Number = _model.Number;\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n }\r\n });\r\n }\r\n onEdit(event: BranchDataTransferInfo) {\r\n this.inputEditorform = BranchDataTransferInfoComponent;\r\n this.dialogService\r\n .open(this.inputEditorform, {\r\n currentrow: event,\r\n })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((_model: BranchDataTransferInfo) => {\r\n if (_model != undefined) {\r\n let temp = this.model.BranchDataTransferInfos.find((x) => x.OppositeBranchId == _model.OrignalOppositeBranchId);\r\n temp.OppositeBranchUrl = _model.OppositeBranchUrl;\r\n temp.OppositeBranchId = _model.OppositeBranchId;\r\n temp.OppositeBranchTitle = _model.OppositeBranchTitle;\r\n temp.StartHour1 = _model.StartHour1;\r\n temp.EndHour1 = _model.EndHour1;\r\n temp.StartHour2 = _model.StartHour2;\r\n temp.EndHour2 = _model.EndHour2;\r\n temp.StartHour3 = _model.StartHour3;\r\n temp.EndHour3 = _model.EndHour3;\r\n temp.InterruptTime = _model.InterruptTime;\r\n temp.IsCentralOffice = _model.IsCentralOffice;\r\n temp.TransferAccountingCode = _model.TransferAccountingCode;\r\n temp.TopRecordCount = _model.TopRecordCount;\r\n temp.State = _model.State;\r\n if (_model.Number) {\r\n this.model.Number = _model.Number;\r\n this.setValue(\"Number\", this.model.Number);\r\n }\r\n }\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n });\r\n }\r\n onDelete(event: BranchDataTransferInfo) {\r\n let message = `${this.translate(\"ClientApp.GNR.Branch.AreSureToDelete\")}`;\r\n this.sts.showDialog(message, this.translate(\"ClientApp.GNR.Branch.DeleteInfo\"), DialogType.confirm, () => this.deleteFormHelper(event));\r\n }\r\n deleteFormHelper(dataItem: BranchDataTransferInfo) {\r\n let entity = this.model.BranchDataTransferInfos.find((x) => x.OppositeBranchId === dataItem.OppositeBranchId);\r\n if (entity != undefined) {\r\n if (entity.State === RowState.New) entity.State = RowState.Detached;\r\n else entity.State = RowState.Delete;\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n }\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n }\r\n ngAfterViewInit(): void {\r\n this.FillData();\r\n }\r\n\r\n public getSaleMethodBranchOnlineOrder() {\r\n this.httpCommonService\r\n .get(\"SaleMethodBranch/GetAllSaleMethodBranch\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: SaleMethodBranchModel[]) => {\r\n const branchId = this.model.Id;\r\n this.isAccessToActivation = data.some((x) => x.HasDelino && branchId && x.BranchId === branchId);\r\n this.CheckHasOrderOnline();\r\n });\r\n }\r\n isValid() {\r\n const controls = this.formGroup.controls;\r\n if (controls[\"HasOrderOnline\"].value && !controls[\"PaymentType\"].value && !this.isMultiBranch) {\r\n this.sts.showDialog(this.translate(\"ClientApp.GNR.Branch.ChooseOnlineInvoicePayment\"), this.translate(\"ClientApp.GNR.Branch.Attention\"));\r\n return false;\r\n }\r\n if (controls[\"HasAccounting\"].value && this.AggregateAndSeparateData?.length) {\r\n const selected = this.AggregateAndSeparateData.find((x) => x.Id === controls[\"TransferDebtorsTypeId\"].value);\r\n if (selected?.Code === TypeOfDocument.accumulative && !controls[\"DebtorsSubLedgerId\"]?.value) {\r\n this.sts.showDialog(this.translate(\"ClientApp.GNR.Branch.SelectDetailLedger\"), this.translate(\"ClientApp.GNR.Branch.Attention\"));\r\n return false;\r\n }\r\n }\r\n if (!controls[\"IsActive\"].value && !this.isMultiBranch) {\r\n this.sts.showDialog(this.translate(\"ClientApp.GNR.Branch.SingleBranchSoftware\"), this.translate(\"ClientApp.GNR.Branch.Attention\"));\r\n return false;\r\n }\r\n const value = controls[\"ReadyToReceiveOnlineOrders\"].value;\r\n if (typeof value === \"boolean\" && this.hasOrderOnline) {\r\n if (this.isAccessToActivation) {\r\n const branchId = this.model.Id;\r\n const isActive = value;\r\n this.httpCommonService\r\n .get(`Delino/ActivationInDelino/${isActive}/${branchId}`)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((res: boolean) => {\r\n console.log(res);\r\n });\r\n } else if (value) {\r\n this.sts.showDialog(this.translate(\"ClientApp.GNR.Branch.ReceiveOnlineOrderMustSale\"), \"\");\r\n return false;\r\n }\r\n }\r\n\r\n if (!controls[\"LocalServiceIp\"].value && controls[\"HasLocalService\"].value) {\r\n this.sts.showDialog(this.translate(\"ClientApp.GNR.Branch.LocalServiceIsMandatory\"), \"\");\r\n return false;\r\n }\r\n return super.isValid();\r\n }\r\n\r\n beforupdate(): void {\r\n const sendingSalesTitleCTRL = this.formGroup.controls[\"SendingSalesTitle\"];\r\n if (sendingSalesTitleCTRL?.value) sendingSalesTitleCTRL.setValue(sendingSalesTitleCTRL.value.join());\r\n }\r\n\r\n showLocal(event) {\r\n if (!event) this.formGroup.controls[\"LocalServiceIp\"].setValue(\"\");\r\n this.hasLocal = event;\r\n }\r\n\r\n showFleetService(event: boolean) {\r\n this.hasFleetService = event;\r\n if (!event) {\r\n this.formGroup.get(\"Longitude\")?.setValue(\"\");\r\n this.formGroup.get(\"Latitude\")?.setValue(\"\");\r\n this.formGroup.get(\"Longitude\")?.disable();\r\n this.formGroup.get(\"Latitude\")?.disable();\r\n } else {\r\n this.formGroup.get(\"Longitude\")?.enable();\r\n this.formGroup.get(\"Latitude\")?.enable();\r\n }\r\n }\r\n ConnectionTest() {\r\n try {\r\n this.splashScreenService.startLoading();\r\n this.splashFormService.openDialog();\r\n if (!this.formGroup.controls[\"LocalServiceIp\"].value) {\r\n this.splashScreenService.stopLoading();\r\n this.splashFormService.closeLoading();\r\n return;\r\n }\r\n const url = \"http://\" + this.formGroup.controls[\"LocalServiceIp\"].value + \"/TestConnection\";\r\n this.http\r\n .get(url, { headers: { \"Access-Control-Allow-Headers\": \"Content-Type\", \"Access-Control-Allow-Origin\": \"*\" } })\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data: any) => {\r\n if (data) {\r\n this.sts.showDialog(this.translate(\"ClientApp.GNR.Branch.ConnectSuccessfully\"), this.translate(\"ClientApp.GNR.Branch.Attention\"));\r\n this.splashScreenService.stopLoading();\r\n this.splashFormService.closeLoading();\r\n }\r\n },\r\n (err) => {\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.GNR.Branch.ConnectionProblem\")} ` + err,\r\n this.translate(\"ClientApp.GNR.Branch.Attention\")\r\n );\r\n this.splashScreenService.stopLoading();\r\n this.splashFormService.closeLoading();\r\n console.log(err);\r\n }\r\n );\r\n // this.httpCommonService\r\n // .getCustom(url)\r\n // .pipe(takeUntil(this.ngUnsubscribe))\r\n // .subscribe(\r\n // (data: any) => {\r\n // if (data) {\r\n // this.sts.showDialog(this.translate(\"ClientApp.GNR.Branch.ConnectSuccessfully\"), this.translate(\"ClientApp.GNR.Branch.Attention\"));\r\n // this.splashScreenService.stopLoading();\r\n // this.splashFormService.closeLoading();\r\n // }\r\n // },\r\n // (err) => {\r\n // this.sts.showDialog(\r\n // `${this.translate(\"ClientApp.GNR.Branch.ConnectionProblem\")} ` + err,\r\n // this.translate(\"ClientApp.GNR.Branch.Attention\")\r\n // );\r\n // this.splashScreenService.stopLoading();\r\n // this.splashFormService.closeLoading();\r\n // console.log(err);\r\n // }\r\n // );\r\n } catch (e) {\r\n this.sts.showDialog(`${this.translate(\"ClientApp.GNR.Branch.ConnectionProblem\")} ` + e, this.translate(\"ClientApp.GNR.Branch.Attention\"));\r\n console.log(e);\r\n this.splashScreenService.stopLoading();\r\n this.splashFormService.closeLoading();\r\n }\r\n }\r\n afterupdate() {\r\n this.accountService.authService.getBranchById(this.accountService.authService.currentBranchId);\r\n }\r\n valueChangeByApiName(event: { KeyName: string; apiName: string; data: any }) {\r\n if (event?.KeyName === \"StencilBranchId\" && event?.data) {\r\n this.setValue(\"TaxPercentage\", event.data.TaxPercentage);\r\n this.setValue(\"TollPercentage\", event.data.TollPercentage);\r\n this.setValue(\"ServicePercentage\", event.data.ServicePercentage);\r\n this.setValue(\"RoundingTypeId\", event.data.RoundingTypeId);\r\n this.setValue(\"ShippingCostReducedKindId\", event.data.ShippingCostReducedKindId);\r\n this.setValue(\"CustomerTitles\", event.data.CustomerTitles);\r\n this.setValue(\"SendingSalesTypeId\", event.data.SendingSalesTypeId);\r\n this.setValue(\"TransferDebtorsTypeId\", event.data.TransferDebtorsTypeId);\r\n this.setValue(\"DetailLedgerId\", event.data.DetailLedgerId);\r\n this.setValue(\"InvWarehouseId\", event.data.InvWarehouseId);\r\n }\r\n\r\n this.httpCommonService\r\n .getItem(\"Branch\", event?.data?.Id)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((branch: Branch) => {\r\n if (event?.KeyName === \"StencilBranchId\" && branch) {\r\n this.setValue(\"CustomerTitles\", branch.CustomerTitles);\r\n this.setValue(\"TaxPercentage\", branch.TaxPercentage);\r\n this.setValue(\"TollPercentage\", branch.TollPercentage);\r\n this.setValue(\"ServicePercentage\", branch.ServicePercentage);\r\n this.setValue(\"RoundingTypeId\", branch.RoundingTypeId);\r\n this.setValue(\"ShippingCostReducedKindId\", branch.ShippingCostReducedKindId);\r\n this.setValue(\"RoundingAmount\", branch.RoundingAmount);\r\n this.setValue(\"SendingSalesTypeId\", branch.SendingSalesTypeId);\r\n this.setValue(\"TransferDebtorsTypeId\", branch.TransferDebtorsTypeId);\r\n this.setValue(\"DetailLedgerId\", branch.DetailLedgerId);\r\n this.setValue(\"InvWarehouseId\", branch.InvWarehouseId);\r\n }\r\n });\r\n }\r\n\r\n onAggregateAndSeparateLoad(data: { apiName: string; data: any[] }) {\r\n this.AggregateAndSeparateData = data?.data;\r\n }\r\n\r\n /**\r\n * انتخاب لوکیشن برای رستوران\r\n * @param\r\n */\r\n showMapDialog() {\r\n const confirmValue = new Subject();\r\n confirmValue.pipe(take(1)).subscribe((value: MapConfirmValue) => {\r\n this.model[\"Latitude\"] = value.lat;\r\n this.setValue(\"Latitude\", this.model.Latitude);\r\n this.model[\"Longitude\"] = value.lng;\r\n this.setValue(\"Longitude\", this.model.Longitude);\r\n });\r\n this.dialogService.open(\r\n MapComponent,\r\n { confirmValue, lat: this.model.Latitude ?? 0, lng: this.model.Longitude ?? 0 },\r\n { autoFocus: true, closeOnClickOutside: true }\r\n );\r\n }\r\n\r\n enumToArray(enumObj: any): any[] {\r\n return Object.keys(enumObj)\r\n .filter((key) => !isNaN(Number(enumObj[key])))\r\n .map((key) => ({ Id: Number(enumObj[key]), Title: key }));\r\n }\r\n enumToEnumModelArray(enumObj: any): EnumModel[] {\r\n return Object.keys(enumObj)\r\n .filter((key) => !isNaN(Number(enumObj[key])))\r\n .map((key) => ({ Id: enumObj[key], Title: key }));\r\n }\r\n\r\n private CheckHasOrderOnline(): void {\r\n const url = `Branch/HasOnlineOrderCheck`;\r\n this.httpCommonService\r\n .get(url)\r\n .pipe(take(1))\r\n .subscribe((result: boolean) => {\r\n if (result) this.hasOrderOnline = result;\r\n });\r\n }\r\n}\r\n"," 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [group]=\"formGroup\"\r\n [areaName]=\"areaName\"\r\n [model]=\"model\"\r\n (valueChangeByApiName)=\"valueChangeByApiName($event)\"\r\n [columns]=\"columns\"\r\n (cancelChange)=\"cancel()\"\r\n [noSubmit]=\"deactivateSave\"\r\n (submitChange)=\"save()\">\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
{{ \"ClientApp.GNR.Branch.ConnectionLocalServiceTest\" | translate }}
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BranchFormComponent } from \"../branch-form/branch-form.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { RowAccessComponent } from \"../../row-access/row-access.component\";\r\nimport { Branch, EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridFilter, LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { RowAccessKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\n\r\n@Component({\r\n selector: \"ngx-branch-list\",\r\n templateUrl: \"./branch-list.component.html\",\r\n styleUrls: [\"./branch-list.component.scss\"],\r\n})\r\nexport class BranchListComponent extends BaseListComponent {\r\n target: any;\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n HasRowAccess: boolean;\r\n constructor(private lookupservice: LookupService, private missetup: MisSetupService) {\r\n super();\r\n this.inputEditorform = BranchFormComponent;\r\n this.onActionClick = this.onActionClick.bind(this);\r\n }\r\n ngOnInit() {\r\n if (this.HasRowAccess === undefined) {\r\n this.HasRowAccess = this.missetup.getboolean(\"GNR\", \"HasRowAccess\");\r\n }\r\n this.target = () => import(\"src/app/gnr/branch/branch.module\").then((m) => m.BranchModule);\r\n this.apiName = \"Branch\";\r\n this.areaName = \"General\";\r\n this.label = this.translate(\"ClientApp.GNR.Branch.BranchDefine\");\r\n this.FillData();\r\n this.setactions();\r\n }\r\n async FillData() {\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n if (\r\n currentBranch.RestaurantLightWeb ||\r\n (currentBranch.SepidzWebKind &&\r\n !currentBranch.RestaurantCallCenter &&\r\n !currentBranch.BranchingLightEnabled &&\r\n !currentBranch.BranchingAdvancedEnabled)\r\n ) {\r\n this.isAdd = false;\r\n this.isDelete = false;\r\n }\r\n if (currentBranch.RestaurantCallCenter) {\r\n if (!this.accountService.authService.currentBranch.AccessToAllBranches) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n }\r\n }\r\n setactions() {\r\n if (this.HasRowAccess === true)\r\n this.actions = [\r\n {\r\n name: \"RowAccess\",\r\n disabled: false,\r\n displayName: this.translate(\"ClientApp.GNR.Branch.AccessInRows\"),\r\n iconName: \"icon-users\",\r\n apiName: \"Branch/RowAccess\",\r\n areaName: \"General\",\r\n requireSelectedrows: true,\r\n Form_Component: RowAccessComponent,\r\n permission: Permission.samePermission,\r\n },\r\n ];\r\n }\r\n onActionClick(action: EntityListAction, onRowSelected: Branch, onRowsSelected: Branch[], isAllSelected: boolean, gridFilter: GridFilter[]) {\r\n if (action.name === \"RowAccess\") {\r\n let ids: number[] = [];\r\n if (onRowsSelected != null && onRowsSelected.length > 0) {\r\n onRowsSelected.forEach((x) => ids.push(x.Id));\r\n } else ids.push(onRowSelected.Id);\r\n this.lookupservice\r\n .getLookupbyCode(\"Security\", \"RowAccess\", RowAccessKind.Branch)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (x) => {\r\n this.dialogService\r\n .open(\r\n action.Form_Component,\r\n {\r\n SelectedRows: ids,\r\n RowKindId: x.Id,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model: GridFilter[]) => {});\r\n },\r\n (error) => {}\r\n );\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","export enum RoundingType {\r\n Standard = 0,\r\n RoundingUp = 1,\r\n RoundingDown = 2,\r\n}\r\nexport enum ShippingCostReducedKind {\r\n NoReduced = 1,\r\n ShippingCost = 2,\r\n CourierShippingCost = 3,\r\n}\r\n\r\nexport enum Currency {\r\n Rial = 1,\r\n Toman = 2,\r\n}\r\n\r\nexport enum TypeOfDocument {\r\n accumulative = 1,\r\n Separation = 2,\r\n}\r\n\r\nexport enum InvDailyBalanceInhibitorEnum {\r\n \"بازدارنده\" = 1,\r\n \"هشداردهنده\" = 2,\r\n}\r\n\r\nexport enum InvDailyBalanceInhibitorValueEnum {\r\n Inhibitor = 1,\r\n warning = 2,\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BranchListComponent } from './branch-list/branch-list.component';\r\nimport { BranchFormComponent } from './branch-form/branch-form.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nimport { BranchDataTransferInfoComponent } from './branch-data-transfer-info/branch-data-transfer-info.component';\r\n\r\nconst components =\r\n [\r\n BranchListComponent,\r\n BranchFormComponent,\r\n BranchDataTransferInfoComponent\r\n ]\r\n@NgModule({\r\n declarations: [...components,],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class BranchModule { }\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { City } from \"projects/sepidz-web-framework/src/lib/models\";\r\n@Component({\r\n selector: \"ngx-city-form\",\r\n templateUrl: \"./city-form.component.html\",\r\n styleUrls: [\"./city-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CityFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"City\";\r\n this.label = this.translate(\"ClientApp.GNR.City.City\");\r\n super.ngOnInit();\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { CityFormComponent } from \"../city-form/city-form.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\n@Component({\r\n selector: \"ngx-city-list\",\r\n templateUrl: \"city-list.component.html\",\r\n styleUrls: [\"city-list.component.scss\"],\r\n})\r\nexport class CityListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = CityFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"City\";\r\n this.areaName = \"General\";\r\n this.label = this.translate(\"ClientApp.GNR.City.City\");\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { CityListComponent } from \"./city-list/city-list.component\";\r\nimport { CityFormComponent } from \"./city-form/city-form.component\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nconst components = [CityListComponent, CityFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class CityModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { Company } from \"projects/sepidz-web-framework/src/lib/models/company.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-company-form\",\r\n templateUrl: \"./company-form.component.html\",\r\n styleUrls: [\"./company-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class CompanyFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Company\";\r\n this.label = this.translate(\"ClientApp.GNR.Company.Company\");\r\n super.ngOnInit();\r\n }\r\n\r\n addControl() {\r\n this.setValue(\"Code\", this.model.Code);\r\n this.cd.markForCheck();\r\n }\r\n\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n if (!this.model) this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { CompanyFormComponent } from \"../company-form/company-form.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\n\r\n@Component({\r\n selector: \"ngx-company-list\",\r\n templateUrl: \"./company-list.component.html\",\r\n styleUrls: [\"./company-list.component.scss\"],\r\n})\r\nexport class CompanyListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = CompanyFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Company\";\r\n this.areaName = \"General\";\r\n this.label = this.translate(\"ClientApp.GNR.Company.CompanyDefine\");\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { CompanyFormComponent } from \"./company-form/company-form.component\";\r\nimport { CompanyListComponent } from \"./company-list/company-list.component\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nconst components = [CompanyFormComponent, CompanyListComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class CompanyModule {}\r\n","import { ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { DataCenterProcess } from \"../data-center-process.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"ngx-data-center-process-form\",\r\n templateUrl: \"./data-center-process-form.component.html\",\r\n styleUrls: [\"./data-center-process-form.component.scss\"],\r\n})\r\nexport class DataCenterProcessFormComponent extends BaseFormComponent {\r\n erroremessage: string;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, private lookup: LookupService) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"DataCenterProcess\";\r\n this.label = this.translate(\"ClientApp.GNR.DataCenterProcess.TransferBetweenBranches\");\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n if (this.model.TransferKindCode > 3) this.erroremessage = this.translate(\"ClientApp.GNR.DataCenterProcess.CannotEdited\");\r\n else {\r\n this.lookup\r\n .getLookupbyCategory(\"GNR\", \"TransferKind\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.selectorService.setDataList(\r\n \"TransferKindId\",\r\n x.filter((x) => x.Code < 4)\r\n );\r\n });\r\n }\r\n this.setFormGroup(this.model);\r\n }\r\n\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { DataCenterProcessFormComponent } from \"../data-center-process-form/data-center-process-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-data-center-process-list\",\r\n templateUrl: \"./data-center-process-list.component.html\",\r\n styleUrls: [\"./data-center-process-list.component.scss\"],\r\n})\r\nexport class DataCenterProcessListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = DataCenterProcessFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"DataCenterProcess\";\r\n this.areaName = \"General\";\r\n this.label = this.translate(\"ClientApp.GNR.DataCenterProcess.TransferBetweenBranches\");\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { EntityBase } from \"projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n\r\nexport class DataCenterProcess extends EntityBase {\r\n public MainMenuCaption: string;\r\n public MenuCaption: string;\r\n public MainTableName: string;\r\n public TransferKindId: number;\r\n public TransferKindTitle: string;\r\n public HasOppositeBranch: boolean;\r\n public TransferKindCode?: number;\r\n public Entity?: string;\r\n public EntityName?: string;\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { DataCenterProcessListComponent } from \"./data-center-process-list/data-center-process-list.component\";\r\nimport { DataCenterProcessFormComponent } from \"./data-center-process-form/data-center-process-form.component\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { FormsModule } from \"@angular/forms\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nconst components = [DataCenterProcessListComponent, DataCenterProcessFormComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, SharedModule.forRoot(), SepidzGridModule],\r\n})\r\nexport class DataCenterProcessModule {}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { FiscalYear } from \"projects/sepidz-web-framework/src/lib/models/fiscal-year.model\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\n@Component({\r\n selector: \"ngx-fiscal-year-form\",\r\n templateUrl: \"./fiscal-year-form.component.html\",\r\n styleUrls: [\"./fiscal-year-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FiscalYearFormComponent extends BaseFormComponent {\r\n erroremessage: string;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.setdefault();\r\n this.apiName = \"FiscalYear\";\r\n this.label = this.translate(\"ClientApp.GNR.FiscalYear.FiscalYear\");\r\n super.ngOnInit();\r\n }\r\n\r\n isValid() {\r\n return this.erroremessage === undefined;\r\n }\r\n}\r\n","\r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { FiscalYearFormComponent } from \"../fiscal-year-form/fiscal-year-form.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\n@Component({\r\n selector: \"ngx-fiscal-year-list\",\r\n templateUrl: \"./fiscal-year-list.component.html\",\r\n styleUrls: [\"./fiscal-year-list.component.scss\"],\r\n})\r\nexport class FiscalYearListComponent extends BaseListComponent {\r\n constructor() {\r\n super();\r\n this.inputEditorform = FiscalYearFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"FiscalYear\";\r\n this.areaName = \"General\";\r\n this.label = this.translate(\"ClientApp.GNR.FiscalYear.FiscalYear\");\r\n }\r\n}\r\n","
\r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FiscalYearListComponent } from './fiscal-year-list/fiscal-year-list.component';\r\nimport { FiscalYearFormComponent } from './fiscal-year-form/fiscal-year-form.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nconst components =\r\n [\r\n FiscalYearListComponent,\r\n FiscalYearFormComponent\r\n ]\r\n@NgModule({\r\n declarations: [...components,],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class FiscalYearModule { }\r\n","import { Component, OnInit } from \"@angular/core\";\r\n\r\nimport { AccountService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services/show-toastr.service\";\r\nimport { MisSetUp } from \"projects/sepidz-web-framework/src/lib/models/missetup.model\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\n@Component({\r\n selector: \"ngx-missetup\",\r\n templateUrl: \"./missetup.component.html\",\r\n styleUrls: [\"./missetup.component.scss\"],\r\n})\r\nexport class MissetupComponent implements OnInit {\r\n model = {};\r\n public isNewRow = false;\r\n public showValidationErrors: boolean = true;\r\n\r\n public changesSavedCallback: () => void;\r\n public changesFailedCallback: () => void;\r\n public changesCancelledCallback: () => void;\r\n\r\n label: string;\r\n\r\n public apiName: string = \"MisSetUp\";\r\n constructor(\r\n public missetup: MisSetupService,\r\n private sts: ShowToastrService,\r\n protected route: ActivatedRoute,\r\n protected accountService: AccountService,\r\n private translateservice: TranslateService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.label = this.translateservice.instant(\"ClientApp.GNR.MisSetup.GeneralSetting\");\r\n this.missetup.isLoding = false;\r\n this.getall();\r\n }\r\n public save() {\r\n this.missetup.save();\r\n }\r\n\r\n public cancel() {\r\n this.sts.showToast(\r\n \"primary\",\r\n this.translateservice.instant(\"ClientApp.GNR.MisSetup.Cancel\"),\r\n this.translateservice.instant(\"ClientApp.GNR.MisSetup.StopWithOprator\")\r\n );\r\n }\r\n getall() {\r\n this.missetup.getall();\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { MissetupComponent } from \"./missetup.component\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SettingresourceComponent } from \"./settingresource/settingresource.component\";\r\nimport { SettingDetailResourceComponent } from \"./settingdetailresource/settingdetailresource.component\";\r\n\r\nconst components = [MissetupComponent, SettingDetailResourceComponent, SettingresourceComponent];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, SharedModule.forRoot()],\r\n})\r\nexport class MissetupModule {}\r\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy, ChangeDetectorRef } from \"@angular/core\";\r\nimport { IRuleElement } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState, ControlTypes } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { MisSetUp } from \"projects/sepidz-web-framework/src/lib/models/missetup.model\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { UntypedFormControl, UntypedFormGroup } from \"@angular/forms\";\r\nimport { MisSetupService } from \"projects/sepidz-web-framework/src/lib/services/missetup.service\";\r\nimport { Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { InvVoucherHeader } from \"src/app/backoffice/inv/models/inv-voucher-header.model\";\r\n\r\n@Component({\r\n selector: \"setting-detail-resource\",\r\n templateUrl: \"./SettingDetailResource.component.html\",\r\n styleUrls: [\"./SettingDetailResource.component.scss\"],\r\n})\r\nexport class SettingDetailResourceComponent implements OnInit, OnDestroy {\r\n ngUnsubscribe = new Subject();\r\n tempListData: MisSetUp[];\r\n dataList: InvVoucherHeader[] = [];\r\n isCheckboxDisabled: boolean = false;\r\n systemName: string;\r\n isShowBg: boolean;\r\n resouceId: number;\r\n public formGroup: UntypedFormGroup;\r\n\r\n @Output() public formSettingResourcesChange = new EventEmitter();\r\n _formSettingResources: IRuleElement[] = [];\r\n\r\n public get formSettingResources(): IRuleElement[] {\r\n return this._formSettingResources;\r\n }\r\n public set formSettingResources(val: IRuleElement[]) {\r\n this._formSettingResources = val;\r\n this.formSettingResourcesChange.emit(val);\r\n }\r\n @Input()\r\n public get formSettingPermissions(): MisSetUp[] {\r\n return this.misSetup.source;\r\n }\r\n\r\n constructor(\r\n private _route: ActivatedRoute,\r\n private misSetup: MisSetupService,\r\n private translateService: TranslateService,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n this.resouceId = +this._route.snapshot.queryParams[\"elements\"];\r\n }\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.tempListData = undefined;\r\n this.systemName = undefined;\r\n this.formGroup = undefined;\r\n this._formSettingResources = undefined;\r\n }\r\n\r\n setResouce(resource: any) {\r\n this.systemName = resource;\r\n this.isShowBg = true;\r\n this.setFormGroup();\r\n this.formGroup.valueChanges.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n console.log(x);\r\n });\r\n }\r\n setFormGroup() {\r\n let rs = this.getRuleElements(this.systemName);\r\n let group: any = {};\r\n rs.forEach((r) => {\r\n let entity = this.getValue(r.SystemName, r.KeyValue);\r\n group[r.KeyValue] = new UntypedFormControl({\r\n value: entity === undefined ? null : entity === \"false\" ? false : entity === \"true\" ? true : entity,\r\n disabled: r.disabled,\r\n });\r\n });\r\n this.formGroup = new UntypedFormGroup(group);\r\n this.setDisable();\r\n }\r\n getRuleElements(systemName: string): IRuleElement[] {\r\n if (this.formSettingResources === undefined) return [];\r\n let rs = this.formSettingResources.filter((x) => x.SystemName === systemName);\r\n return rs;\r\n }\r\n ngOnInit(): void {\r\n this.checkInventoryData();\r\n }\r\n checkInventoryData() {\r\n this.misSetup.getAllInventorySave().subscribe(\r\n (data) => {\r\n this.dataList = data;\r\n this.isCheckboxDisabled = this.dataList.length > 0;\r\n this.makeruleelement();\r\n this.cdr.checkNoChanges();\r\n },\r\n (error) => {}\r\n );\r\n }\r\n /*-------------------------Start ControlKind Check-----------------------------*/\r\n IsCheckBox(controlKind: ControlTypes) {\r\n return controlKind === ControlTypes.Check;\r\n }\r\n getTextBoxType(controlKind: ControlTypes) {\r\n switch (controlKind) {\r\n case ControlTypes.NumericTextBox:\r\n return \"number\";\r\n case ControlTypes.TimeTextBox:\r\n return \"time\";\r\n default:\r\n return \"text\";\r\n }\r\n }\r\n IsTextBox(controlKind: ControlTypes) {\r\n return controlKind === ControlTypes.TextBox;\r\n }\r\n IsRadio(controlKind: ControlTypes) {\r\n return controlKind === ControlTypes.Radio;\r\n }\r\n IsDropDown(controlKind: ControlTypes) {\r\n return controlKind === ControlTypes.DropDown;\r\n }\r\n IsLookup(controlKind: ControlTypes) {\r\n return controlKind === ControlTypes.lookup;\r\n }\r\n\r\n IsGrid(controlKind: ControlTypes) {\r\n return controlKind === ControlTypes.Grid;\r\n }\r\n IsNumericTextBox(controlKind: ControlTypes) {\r\n return controlKind === ControlTypes.NumericTextBox;\r\n }\r\n IsTimeTextBox(controlKind: ControlTypes) {\r\n return controlKind === ControlTypes.TimeTextBox;\r\n }\r\n IsCheckAndNumericTextBox(controlKind: ControlTypes) {\r\n return controlKind === ControlTypes.CheckAndNumericTextBox;\r\n }\r\n IsBreak(controlKind: ControlTypes) {\r\n return controlKind === ControlTypes.Break;\r\n }\r\n\r\n /*-------------------------End ControlKind Check-----------------------------*/\r\n /*-------------------------Start CheckBox Methods-----------------------------*/\r\n public getCheckboxValue(SystemName: string, KeyValue: string): boolean {\r\n let val = this.getValue(SystemName, KeyValue);\r\n if (val === undefined) return false;\r\n return JSON.parse(val);\r\n }\r\n /*-------------------------End CheckBox Methods-----------------------------*/\r\n /*-------------------------Start CheckAndNumericTextBox Methods-----------------------------*/\r\n getCheckAndNumericTextBoxCheckValue(SystemName: string, KeyValue: string): boolean {\r\n let result = false;\r\n let val = this.getValue(SystemName, KeyValue);\r\n if (val != null && (val instanceof String || val.indexOf(\",\") > -1)) {\r\n let parts = val.split(\",\");\r\n if (parts && parts.length > 0) result = JSON.parse(parts[0]);\r\n } else if (val != null && val instanceof Boolean) result = val;\r\n return result;\r\n }\r\n getCheckAndNumericTextBoxNumberValue(SystemName: string, KeyValue: string): number {\r\n let result: number = 0;\r\n\r\n let val = this.getValue(SystemName, KeyValue);\r\n if (val != null && (val instanceof String || val.indexOf(\",\") > -1)) {\r\n let parts = val.split(\",\");\r\n if (parts && parts.length > 1) result = new Number(parts[1]).valueOf();\r\n } else if (val != null && val instanceof Number) result = val;\r\n return result;\r\n }\r\n setCheckAndNumericTextBoxCheckValue(SystemName: string, KeyValue: string, value: any) {\r\n let val = this.getValue(SystemName, KeyValue);\r\n let parts: any[] = [false, 0];\r\n if (val && (val instanceof String || val.indexOf(\",\") > -1)) {\r\n parts = val.split(\",\");\r\n if (parts && parts.length > 0) parts[0] = value;\r\n } else if (val instanceof Number) {\r\n parts[0] = value;\r\n parts[1] = val;\r\n } else {\r\n parts[0] = value;\r\n parts[1] = 0;\r\n }\r\n val = parts[0].toString() + \",\" + parts[1].toString();\r\n this.setValue(SystemName, KeyValue, val);\r\n }\r\n setCheckAndNumericTextBoxNumberValue(SystemName: string, KeyValue: string, value: number) {\r\n let parts = [false, 0];\r\n let val = this.getValue(SystemName, KeyValue);\r\n if (val && (val instanceof String || val.indexOf(\",\") > -1)) {\r\n let parts = val.split(\",\");\r\n if (parts && parts.length > 1) parts[1] = value;\r\n } else if (val instanceof Boolean) {\r\n parts[0] = val;\r\n parts[1] = value;\r\n } else {\r\n parts[0] = false;\r\n parts[1] = value;\r\n }\r\n val = parts[0].toString() + \",\" + parts[1].toString();\r\n this.setValue(SystemName, KeyValue, val);\r\n }\r\n /*-------------------------End CheckAndNumericTextBox Methods-----------------------------*/\r\n public checkboxChangeValue(systemName: string, KeyValue: string, event: any) {\r\n this.setValue(systemName, KeyValue, event);\r\n }\r\n\r\n getLookupValue(SystemName: string, KeyValue: string): number {\r\n let result: any = undefined;\r\n let val = this.getValue(SystemName, KeyValue);\r\n if (!val) return result;\r\n return JSON.parse(val);\r\n }\r\n /*-------------------------General-----------------------------*/\r\n public getValue(SystemName: string, KeyValue: string): any {\r\n if (!this.formSettingPermissions) this.misSetup.getall();\r\n if (this.formSettingPermissions === undefined) return undefined;\r\n let items = this.formSettingPermissions.filter((x) => x.SystemName === SystemName && x.KeyValue === KeyValue);\r\n if (items === undefined || items.length === 0) {\r\n let rules = this.getRuleElements(SystemName).filter((x) => x.SystemName === SystemName && x.KeyValue === KeyValue);\r\n if (rules === undefined || rules.length === 0 || !rules[0].DataValue) return null;\r\n else if (rules[0] && rules[0].DataValue) return String(rules[0].DataValue).trim();\r\n } else {\r\n if (items[0] && items[0].DataValue) return String(items[0].DataValue).trim();\r\n }\r\n return undefined;\r\n }\r\n public setValue(SystemName: string, KeyValue: string, value: any) {\r\n if (this.formSettingPermissions) {\r\n if (!this.formSettingPermissions.some((x) => x.SystemName === SystemName && x.KeyValue === KeyValue)) {\r\n this.formSettingPermissions.push({ State: RowState.New, SystemName: SystemName, KeyValue: KeyValue, DataValue: value });\r\n } else {\r\n this.formSettingPermissions.find((x) => x.SystemName === SystemName && x.KeyValue === KeyValue).DataValue = value;\r\n\r\n if (this.formSettingPermissions.find((x) => x.SystemName === SystemName && x.KeyValue === KeyValue).State != RowState.New)\r\n this.formSettingPermissions.find((x) => x.SystemName === SystemName && x.KeyValue === KeyValue).State = RowState.Modify;\r\n }\r\n }\r\n }\r\n\r\n /*-------------------------General-----------------------------*/\r\n makeruleelement() {\r\n if (!this._formSettingResources) this._formSettingResources = [];\r\n //#region ACC\r\n let re: IRuleElement = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.GroupIdLength\");\r\n re.SystemName = \"ACC\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n re.KeyValue = \"PLLEN\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.KolIdLegth\");\r\n re.SystemName = \"ACC\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n re.KeyValue = \"GLLEN\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.SubLedureLength\");\r\n re.SystemName = \"ACC\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n re.KeyValue = \"SLLEN\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.DetailLedureLength\");\r\n re.SystemName = \"ACC\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n re.KeyValue = \"DLLEN\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.DetailLedureLevel\");\r\n re.SystemName = \"ACC\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n re.KeyValue = \"DLLEVEL\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.SystemName = \"ACC\";\r\n re.ControlType = ControlTypes.Break;\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.CopyHeaderTitleToDetailTitle\");\r\n re.SystemName = \"ACC\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"CopyHeaderTitleToDetailTitle\";\r\n this._formSettingResources.push(re);\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.VoucherNumberBranchSeparate\");\r\n re.SystemName = \"ACC\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"VoucherNumberBranchSeparate\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.ToDayDate\");\r\n re.SystemName = \"ACC\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"ToDayDate\";\r\n this._formSettingResources.push(re);\r\n //#endregion\r\n //#region INV\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.GoodsCodeLength\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n re.KeyValue = \"GoodsCodeLength\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.AccountsPayableSubLedger\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.lookup;\r\n re.KeyValue = \"AccountsPayableSubLedger\";\r\n re.apiName = \"SubLedger/GetPagining\";\r\n re.displayMember = \"Title\";\r\n re.columnsName = \"Title,Code\";\r\n re.valueMember = \"Id\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.Cashdiscountsonpurchases\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.lookup;\r\n re.KeyValue = \"Cashdiscountsonpurchases\";\r\n re.apiName = \"SubLedger/GetPagining\";\r\n re.displayMember = \"Title\";\r\n re.columnsName = \"Title,Code\";\r\n re.valueMember = \"Id\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.SurplusageSubLedger\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.lookup;\r\n re.KeyValue = \"SurplusageSubLedger\";\r\n re.apiName = \"SubLedger/GetPagining\";\r\n re.displayMember = \"Title\";\r\n re.columnsName = \"Title,Code\";\r\n re.valueMember = \"Id\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.DeductionSubLedger\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.lookup;\r\n re.KeyValue = \"DeductionSubLedger\";\r\n re.apiName = \"SubLedger/GetPagining\";\r\n re.displayMember = \"Title\";\r\n re.columnsName = \"Title,Code\";\r\n re.valueMember = \"Id\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.TransportInterfaceSubLedger\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.lookup;\r\n re.KeyValue = \"TransportInterfaceSubLedger\";\r\n re.apiName = \"SubLedger/GetPagining\";\r\n re.displayMember = \"Title\";\r\n re.columnsName = \"Title,Code\";\r\n re.valueMember = \"Id\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.AutoGoodsNum\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"AutoGoodsNum\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.NegativeBalance\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"NegativeBalance\";\r\n this._formSettingResources.push(re);\r\n\r\n // re = {};\r\n // re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.ClassificationPricingMethodIs\");\r\n // re.SystemName = \"INV\";\r\n // re.ControlType = ControlTypes.Check;\r\n // re.KeyValue = \"ClassificationPricingMethodIs\";\r\n // re.disabled = true;\r\n // this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.IsGroupByWithGoods\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"IsGroupByWithGoods\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.SingleOrIngredients\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"SingleOrIngredients\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.WarehouseGoodsRelation\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"WarehouseGoodsRelation\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.NetWithNoTax\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"NetWithNoTax\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.CostBasedPricing\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"CostBasedPricing\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.HasTransferee\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"HasTransferee\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.DisableReferenceDocument\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"DisableReferenceDocument\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.CostBasedPricingForce\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"CostBasedPricingForce\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.CheckWarehouseTransferDuplicated\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"CheckWarehouseTransferDuplicated\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.TransportInterfaceSubLedgerFromWareHous\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"TransportInterfaceSubLedgerFromWareHous\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.LinearCalculationMethod\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"LinearCalculationMethod\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.VoucherNumberWarehouseSeparate\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"VoucherNumberWarehouseSeparate\";\r\n re.disabled = this.isCheckboxDisabled;\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.InvAccVoucherSeparateDate\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"InvAccVoucherSeparateDate\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.InvAccVoucherSeparateVoucherKind\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"InvAccVoucherSeparateVoucherKind\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.AccVoucherWithNetPrice\");\r\n re.SystemName = \"INV\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"AccVoucherWithNetPrice\";\r\n this._formSettingResources.push(re);\r\n //#endregion\r\n //#region TRS\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.TrsReceivableSubLedger\");\r\n re.SystemName = \"TRS\";\r\n re.ControlType = ControlTypes.lookup;\r\n re.KeyValue = \"TrsReceivableSubLedger\";\r\n re.apiName = \"SubLedger/GetPagining\";\r\n re.displayMember = \"Title\";\r\n re.columnsName = \"Title,Code\";\r\n re.valueMember = \"Id\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.TrspayableSubLedger\");\r\n re.SystemName = \"TRS\";\r\n re.ControlType = ControlTypes.lookup;\r\n re.KeyValue = \"TrspayableSubLedger\";\r\n re.apiName = \"SubLedger/GetPagining\";\r\n re.displayMember = \"Title\";\r\n re.columnsName = \"Title,Code\";\r\n re.valueMember = \"Id\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.SystemName = \"TRS\";\r\n re.ControlType = ControlTypes.Break;\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.TrsAccVoucherSeparateDate\");\r\n re.SystemName = \"TRS\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"TrsAccVoucherSeparateDate\";\r\n this._formSettingResources.push(re);\r\n re = {};\r\n\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.TrsAccVoucherSeparateVoucherKind\");\r\n re.SystemName = \"TRS\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"TrsAccVoucherSeparateVoucherKind\";\r\n this._formSettingResources.push(re);\r\n //#endregion\r\n\r\n //#region GNR\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.HasTaxDuty\");\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"HasTaxDuty\";\r\n this._formSettingResources.push(re);\r\n re = {};\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.TaxRate\");\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n re.KeyValue = \"TaxRate\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.TaxSubLedger\");\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.lookup;\r\n re.KeyValue = \"TaxSubLedger\";\r\n re.apiName = \"SubLedger/GetPagining\";\r\n re.displayMember = \"Title\";\r\n re.columnsName = \"Title,Code\";\r\n re.valueMember = \"Id\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.AdvanceTaxSubLedger\");\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.lookup;\r\n re.KeyValue = \"AdvanceTaxSubLedger\";\r\n re.apiName = \"SubLedger/GetPagining\";\r\n re.displayMember = \"Title\";\r\n re.columnsName = \"Title,Code\";\r\n re.valueMember = \"Id\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.Break;\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.IsActiveBarCodeReader\");\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n re.KeyValue = \"IsActiveBarCodeReader\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.ToasterTimeOut\");\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n re.KeyValue = \"ToasterTimeOut\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.BackupCleanup\");\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n re.KeyValue = \"BackupCleanup\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.Break;\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.Break;\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.AutoCreateDetailLedger\");\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"AutoCreateDetailLedger\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.Break;\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.Break;\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.FullScreenView\");\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"FullScreenView\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.HasRowAccess\");\r\n re.SystemName = \"GNR\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"HasRowAccess\";\r\n this._formSettingResources.push(re);\r\n\r\n //#endregion\r\n //#region SELL\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.ShowSellLastMonthInList\");\r\n re.SystemName = \"SELL\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"ShowSellLastMonthInList\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.EditAfterPrint\");\r\n re.SystemName = \"SELL\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"EditAfterPrint\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.SystemName = \"SELL\";\r\n re.ControlType = ControlTypes.Break;\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.CertainAccountsReceivableSubLedger\");\r\n re.ControlType = ControlTypes.lookup;\r\n re.KeyValue = \"CertainAccountsReceivableSubLedger\";\r\n re.apiName = \"SubLedger/GetPagining\";\r\n re.displayMember = \"Title\";\r\n re.columnsName = \"Title,Code\";\r\n re.valueMember = \"Id\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.SellAccVoucherSeparateVoucherKind\");\r\n re.SystemName = \"SELL\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"SellAccVoucherSeparateVoucherKind\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.SellAccVoucherSeparateDate\");\r\n re.SystemName = \"SELL\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"SellAccVoucherSeparateDate\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.EditableGoodsTitle\");\r\n re.SystemName = \"SELL\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"EditableGoodsTitle\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.AccountRemainForCurrentBranch\");\r\n re.SystemName = \"SELL\";\r\n re.ControlType = ControlTypes.Check;\r\n re.KeyValue = \"AccountRemainForCurrentBranch\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.PartType\");\r\n re.SystemName = \"SG\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n re.KeyValue = \"PartType\";\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.ReservationLevel\");\r\n re.SystemName = \"SG\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n re.KeyValue = \"ReservationLevel\";\r\n this._formSettingResources.push(re);\r\n\r\n //#endregion\r\n\r\n re = {};\r\n re.Title = this.translateService.instant(\"ClientApp.GNR.MisSetup.SettingDetailResource.PersCodeLen\");\r\n re.SystemName = \"HRM\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n re.KeyValue = \"PersCodeLen\";\r\n this._formSettingResources.push(re);\r\n\r\n this.setFormGroup();\r\n this.setDisable();\r\n }\r\n setDisable() {\r\n this.misSetup\r\n .hasAccVoucher()\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (x) {\r\n if (this.formGroup.controls[\"SLLEN\"] && this.formGroup?.controls[\"SLLEN\"]?.value) this.formGroup.controls[\"SLLEN\"].disable();\r\n if (this.formGroup.controls[\"DLLEVEL\"] && this.formGroup?.controls[\"DLLEVEL\"]?.value) this.formGroup.controls[\"DLLEVEL\"].disable();\r\n if (this.formGroup.controls[\"DLLEN\"] && this.formGroup?.controls[\"DLLEN\"]?.value) this.formGroup.controls[\"DLLEN\"].disable();\r\n } else {\r\n if (this.formGroup.controls[\"SLLEN\"]) this.formGroup.controls[\"SLLEN\"].enable();\r\n if (this.formGroup.controls[\"DLLEVEL\"]) this.formGroup.controls[\"DLLEVEL\"].enable();\r\n if (this.formGroup.controls[\"DLLEN\"]) this.formGroup.controls[\"DLLEN\"].enable();\r\n }\r\n this._formSettingResources.find((x) => x.SystemName === \"ACC\" && x.KeyValue === \"DLLEVEL\").disabled =\r\n x && this.formGroup?.controls[\"DLLEVEL\"]?.value;\r\n this._formSettingResources.find((x) => x.SystemName === \"ACC\" && x.KeyValue === \"SLLEN\").disabled =\r\n x && this.formGroup?.controls[\"SLLEN\"]?.value;\r\n this._formSettingResources.find((x) => x.SystemName === \"ACC\" && x.KeyValue === \"DLLEN\").disabled =\r\n x && this.formGroup?.controls[\"DLLEN\"]?.value;\r\n });\r\n\r\n this.misSetup\r\n .hasGeneralLedger()\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (this.formGroup.controls[\"PLLEN\"] && x && this.formGroup?.controls[\"PLLEN\"]?.value) this.formGroup.controls[\"PLLEN\"].disable();\r\n else if (this.formGroup.controls[\"PLLEN\"]) this.formGroup.controls[\"PLLEN\"].enable();\r\n this._formSettingResources.find((x) => x.SystemName === \"ACC\" && x.KeyValue === \"PLLEN\").disabled =\r\n x && this.formGroup?.controls[\"PLLEN\"]?.value;\r\n });\r\n this.misSetup\r\n .hasSubLedger()\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n if (this.formGroup.controls[\"GLLEN\"] && x && this.formGroup?.controls[\"GLLEN\"]?.value) this.formGroup.controls[\"GLLEN\"].disable();\r\n else if (this.formGroup.controls[\"GLLEN\"]) this.formGroup.controls[\"GLLEN\"].enable();\r\n this._formSettingResources.find((x) => x.SystemName === \"ACC\" && x.KeyValue === \"GLLEN\").disabled =\r\n x && this.formGroup?.controls[\"GLLEN\"]?.value;\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n

\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Output, EventEmitter, Input } from \"@angular/core\";\r\nimport { IRuleElement } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ControlTypes } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { CommonService } from \"projects/sepidz-web-framework/src/lib/services/common.service\";\r\n\r\n@Component({\r\n selector: \"setting-resource\",\r\n templateUrl: \"./settingresource.component.html\",\r\n styleUrls: [\"./settingresource.component.scss\"],\r\n})\r\nexport class SettingresourceComponent implements OnInit {\r\n @Output() public onResouceClicked = new EventEmitter();\r\n @Output() public formSettingResourcesChange = new EventEmitter();\r\n _formSettingResources: IRuleElement[] = [];\r\n filterShow: boolean;\r\n activeSystemName?;\r\n\r\n @Input()\r\n public get formSettingResources(): IRuleElement[] {\r\n return this._formSettingResources;\r\n }\r\n public set formSettingResources(val: IRuleElement[]) {\r\n this._formSettingResources = val;\r\n this.formSettingResourcesChange.emit();\r\n }\r\n\r\n constructor(private translateservice: TranslateService, public common: CommonService) {}\r\n onClick(elements: any) {\r\n this.onResouceClicked.emit(elements);\r\n this.activeSystemName = elements;\r\n }\r\n ngOnInit(): void {\r\n this.makeSettingResources();\r\n }\r\n makeSettingResources() {\r\n if (!this._formSettingResources) this._formSettingResources = [];\r\n let re: IRuleElement = {};\r\n re.Title = this.translateservice.instant(\"ClientApp.GNR.MisSetup.SettingResource.Accounting\");\r\n re.SystemName = \"ACC\";\r\n re.icon = \"icon-file-document-multiple-outline\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n this._formSettingResources.push(re);\r\n re = {};\r\n re.Title = this.translateservice.instant(\"ClientApp.GNR.MisSetup.SettingResource.Inventory\");\r\n re.SystemName = \"INV\";\r\n re.icon = \"icon-anbar2\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n this._formSettingResources.push(re);\r\n re = {};\r\n re.Title = this.translateservice.instant(\"ClientApp.GNR.MisSetup.SettingResource.Sell\");\r\n re.SystemName = \"SELL\";\r\n re.icon = \"icon-shopping_basket-o\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n this._formSettingResources.push(re);\r\n re = {};\r\n re.Title = this.translateservice.instant(\"ClientApp.GNR.MisSetup.SettingResource.Trs\");\r\n re.SystemName = \"TRS\";\r\n re.icon = \"icon-payment-o\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n this._formSettingResources.push(re);\r\n re = {};\r\n re.Title = this.translateservice.instant(\"ClientApp.GNR.MisSetup.SettingResource.Payroll\");\r\n re.SystemName = \"HRM\";\r\n re.icon = \"icon-pie_chart-o\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n this._formSettingResources.push(re);\r\n re = {};\r\n re.Title = this.translateservice.instant(\"ClientApp.GNR.MisSetup.SettingResource.General\");\r\n re.SystemName = \"GNR\";\r\n re.icon = \"icon-people-o\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n this._formSettingResources.push(re);\r\n\r\n re = {};\r\n re.Title = this.translateservice.instant(\"ClientApp.GNR.MisSetup.SettingResource.SG\");\r\n re.SystemName = \"SG\";\r\n re.icon = \"icon-people-o\";\r\n re.ControlType = ControlTypes.NumericTextBox;\r\n this._formSettingResources.push(re);\r\n }\r\n}\r\n","
\r\n
    \r\n \r\n {{ r.Title }}\r\n \r\n
\r\n
\r\n","import { Component, ChangeDetectorRef, ChangeDetectionStrategy, Input } from \"@angular/core\";\r\nimport { PeopleInfoAddress } from \"projects/sepidz-web-framework/src/lib/models/peopleInfo-address.model\";\r\nimport { Lookup, City, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\n\r\n@Component({\r\n selector: \"address-from\",\r\n templateUrl: \"./address-from.component.html\",\r\n styleUrls: [\"./address-from.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AddressFromComponent extends BaseFormComponent {\r\n @Input() Columns: form_control[];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.noLoadData = true;\r\n super.ngOnInit();\r\n if (!this.apiName) this.apiName = \"PeopleInfo\";\r\n this.label = this.translate(\"ClientApp.GNR.PeopleInfo.Address.Address\");\r\n this.setdefault();\r\n }\r\n setdefault() {\r\n this.isNewRow = !this.currentrow;\r\n Object.assign(this.model, this.currentrow);\r\n if (this.model.IsDefault === undefined) this.model.IsDefault = false;\r\n this.setFormGroup(this.model);\r\n if (!this.model.PeopleInfoId) this.model.PeopleInfoId = 0;\r\n if (this.currentrow && this.currentrow.Id) this.id = !this.id ? this.currentrow.Id : this.id;\r\n this.cd.markForCheck();\r\n }\r\n async setColumns() {\r\n Object.assign(this.orignalColumns, this.Columns);\r\n this.orignalColumns.forEach((x) => {\r\n if (!x.tabOrder) x.tabOrder = x.order ?? 0;\r\n });\r\n this.orignalColumns.forEach((x) => {\r\n if (x.modelName === \"ZipCode\") {\r\n x.patternKey = \"^[1-9]\\\\d{9}\";\r\n }\r\n if (x.name === \"CityId\" && x.controlType === FormControlTypes.treelookup) x.controlType = FormControlTypes.dropdown;\r\n });\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnNumber(this.columns);\r\n }\r\n\r\n public async save() {\r\n this.result = this.getDataFromFormGroup();\r\n this.close();\r\n }\r\n reMoveRepeated() {\r\n let temp = this.formGroup\r\n ?.get(\"Address\")\r\n ?.value.replace(/^\\s+|\\s+$/g, \"\")\r\n .split(\" \");\r\n let temp2: string = \"\";\r\n temp.forEach((x) => {\r\n if (temp.filter((s) => s === x).length <= 2) {\r\n if (x !== \"\") {\r\n if (temp2 === \"\") temp2 = x.replace(/^\\s+|\\s+$/g, \"\").replace(/(.)(?=.*\\4)/g, \"\");\r\n else temp2 += \" \" + x.replace(/^\\s+|\\s+$/g, \"\").replace(/(.)(?=.*\\4)/g, \"\");\r\n }\r\n }\r\n });\r\n if (temp.filter((x) => x === \"\").length >= 1 || this.formGroup?.get(\"Address\")?.value[this.formGroup?.get(\"Address\")?.value.length - 1] === \" \")\r\n temp2 += \" \";\r\n if (this.formGroup?.get(\"Address\")?.value !== temp2) this.setValue(\"Address\", temp2);\r\n }\r\n onChanged($event) {\r\n if ($event.SystemName) {\r\n this.model.AddressKindTitle = ($event as Lookup).Title;\r\n this.setValue(\"AddressKindTitle\", this.model.AddressKindTitle);\r\n } else {\r\n if ($event.ProvinceId) {\r\n this.model.CityTitle = ($event as City).Title;\r\n this.setValue(\"CityTitle\", this.model.CityTitle);\r\n } else {\r\n if ($event.Title && this.model.ProvinceTitle !== $event.Title) {\r\n this.model.CityId = undefined;\r\n this.model.CityTitle = undefined;\r\n this.setValue(\"CityId\", undefined);\r\n this.setValue(\"CityTitle\", undefined);\r\n this.selectorService.setParetnIdValue(\"ProvinceId\", $event.Id);\r\n }\r\n if ($event.Title) {\r\n this.model.ProvinceTitle = $event.Title;\r\n this.setValue(\"ProvinceTitle\", $event.Title);\r\n }\r\n }\r\n }\r\n this.reMoveRepeated();\r\n }\r\n}\r\n","0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [group]=\"formGroup\"\r\n [model]=\"model\"\r\n [columns]=\"columns\"\r\n (cancelChange)=\"cancel()\"\r\n (submitChange)=\"save()\"\r\n (valueChange)=\"onChanged($event)\">\r\n\r\n","import { Component, Type, Input, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { AddressFromComponent } from \"../address-from/address-from.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { PeopleInfo } from \"projects/sepidz-web-framework/src/lib/models/peopleInfo.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\n\r\n@Component({\r\n selector: \"address-list\",\r\n templateUrl: \"./address-list.component.html\",\r\n styleUrls: [\"./address-list.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AddressListComponent extends BaseListComponent {\r\n @ViewChild(\"grid\") public grid: KGridComponent;\r\n\r\n @Input() _columns: form_control[];\r\n @Input() isTabActive: boolean = false;\r\n PeopleInfoAddresssColumns: form_control[];\r\n private innerModel: PeopleInfo = {};\r\n @Input()\r\n public set model(value: PeopleInfo) {\r\n if (this.innerModel !== value) {\r\n this.innerModel = value;\r\n if (this.grid) {\r\n this.grid.refreshData();\r\n this.grid.setDefaultColumnInfo();\r\n }\r\n }\r\n }\r\n\r\n public get model(): PeopleInfo {\r\n return this.innerModel;\r\n }\r\n inputEditorform: Type = AddressFromComponent;\r\n constructor(protected cd: ChangeDetectorRef, protected selectorService: SelectorService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this.label = this.translate(\"ClientApp.GNR.PeopleInfo.Address.Address\");\r\n if (!this.innerModel.PeopleInfoAddresss) this.innerModel.PeopleInfoAddresss = [];\r\n else {\r\n let uid: number = 0;\r\n this.innerModel.PeopleInfoAddresss.forEach((x) => {\r\n uid++;\r\n x[\"UId\"] = uid;\r\n });\r\n }\r\n this.setDetailControlModels(\"PeopleInfoAddresss\");\r\n setTimeout(() => {\r\n if (this.grid) {\r\n this.grid.columns = this.PeopleInfoAddresssColumns;\r\n this.grid.refreshData();\r\n this.grid.setDefaultColumnInfo();\r\n }\r\n }, 200);\r\n\r\n this.cd.markForCheck();\r\n }\r\n\r\n public addHandler(event) {\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: null,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n Columns: this.PeopleInfoAddresssColumns,\r\n label: this.translate(\"ClientApp.GNR.PeopleInfo.Address.Address\"),\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n model[\"UId\"] = this.innerModel.PeopleInfoAddresss.length + 1;\r\n model.State = RowState.New;\r\n if (model.IsDefault === true) {\r\n this.innerModel.PeopleInfoAddresss.forEach((x) => {\r\n x.IsDefault = false;\r\n if (model.State !== RowState.New && x.State !== RowState.Delete && x.State !== RowState.Detached) x.State = RowState.Modify;\r\n });\r\n }\r\n\r\n this.innerModel.PeopleInfoAddresss.push(model);\r\n }\r\n this.cd.markForCheck();\r\n if (this.grid) {\r\n this.grid.refreshData();\r\n this.grid.setDefaultColumnInfo();\r\n }\r\n this.selectorService.onSubmited.next(true);\r\n });\r\n }\r\n\r\n public editHandler(event) {\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: event,\r\n areaName: this.areaName,\r\n apiName: this.apiName,\r\n Columns: this.PeopleInfoAddresssColumns,\r\n label: this.translate(\"ClientApp.GNR.PeopleInfo.Address.Address\"),\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n if (model.IsDefault === true) {\r\n this.innerModel.PeopleInfoAddresss.forEach((x) => {\r\n x.IsDefault = false;\r\n if (model.State !== RowState.New && x.State !== RowState.Delete && x.State !== RowState.Detached) x.State = RowState.Modify;\r\n });\r\n }\r\n this.innerModel.PeopleInfoAddresss.forEach((x) => {\r\n if (x[\"UId\"] === model[\"UId\"] && x.Id == model.Id) {\r\n if (model.State !== RowState.New && x.State !== RowState.Delete && x.State !== RowState.Detached) model.State = RowState.Modify;\r\n Object.assign(x, model);\r\n }\r\n });\r\n }\r\n this.cd.markForCheck();\r\n if (this.grid) {\r\n this.grid.refreshData();\r\n this.grid.setDefaultColumnInfo();\r\n }\r\n this.selectorService.onSubmited.next(true);\r\n });\r\n }\r\n\r\n public removeHandler(dataItem) {\r\n this.sts.showDialog(`${this.translate(\"ClientApp.GNR.PeopleInfo.Address.SureDeleteInformation\")}`, \"\", DialogType.confirm, () => {\r\n this.innerModel.PeopleInfoAddresss.forEach((x) => {\r\n if (x[\"UId\"] === dataItem[\"UId\"]) {\r\n if (x.State == RowState.New) x.State = RowState.Detached;\r\n else x.State = RowState.Delete;\r\n }\r\n });\r\n this.cd.markForCheck();\r\n if (this.grid) this.grid.refreshData();\r\n });\r\n }\r\n setDetailControlModels(keyName: string) {\r\n if (this._columns?.find((x) => x.name === keyName)?.DetailControlModels) {\r\n var col: form_control[] = this._columns.find((x) => x.name === keyName).DetailControlModels[keyName];\r\n this.PeopleInfoAddresssColumns = col.sort((a, b) => a.order - b.order);\r\n }\r\n return [];\r\n }\r\n}\r\n","0\"\r\n #grid\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n (onRowSelected)=\"onRowSelected($event)\"\r\n (onCreate)=\"addHandler($event)\"\r\n (onEdit)=\"editHandler($event)\"\r\n (onDelete)=\"removeHandler($event)\"\r\n [noToolBar]=\"true\"\r\n [groupable]=\"false\"\r\n [name]=\"apiName\"\r\n dataKey=\"'UId'\"\r\n [columns]=\"PeopleInfoAddresssColumns\"\r\n gridHeight=\"30\"\r\n [paging]=\"false\"\r\n [dataList]=\"model.PeopleInfoAddresss\"\r\n reportName=\"PeopleInfoAddresss\"\r\n pathPreFix=\"GNR\">\r\n","import { NgModule } from '@angular/core';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { PeopleInfoListComponent } from './peopleInfo-list.component';\r\nimport { PeopleInfoFormComponent } from './peopleInfo-form.component';\r\nimport { AddressListComponent } from './address/address-list/address-list.component';\r\nimport { AddressFromComponent } from './address/address-from/address-from.component';\r\nimport { TelephoneListComponent } from './telephone/telephone-list/telephone-list.component';\r\nimport { TelephoneFormComponent } from './telephone/telephone-form/telephone-form.component';\r\nimport { RelatedFormComponent } from './related/related-form/related-form.component';\r\nimport { RelatedListComponent } from './related/related-list/related-list.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nconst peopleinfos =\r\n [\r\n PeopleInfoListComponent,\r\n PeopleInfoFormComponent,\r\n AddressListComponent,\r\n AddressFromComponent,\r\n TelephoneListComponent,\r\n TelephoneFormComponent,\r\n RelatedFormComponent,\r\n RelatedListComponent,\r\n ]\r\n@NgModule({\r\n declarations: [...peopleinfos],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ],\r\n exports: [...peopleinfos]\r\n})\r\nexport class PeopleInfoModule { }\r\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\r\nimport { LookupService, PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { DetailLedger, form_control, Lookup } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState, PersonalityKind, TelephoneKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { PeopleInfo } from \"projects/sepidz-web-framework/src/lib/models/peopleInfo.model\";\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\n@Component({\r\n selector: \"peopleinfo-form\",\r\n templateUrl: \"peopleinfo-form.component.html\",\r\n styleUrls: [\"peopleinfo-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PeopleInfoFormComponent extends BaseFormComponent {\r\n haserror: boolean = false;\r\n erroremessage: string;\r\n activeTabTitle: string;\r\n _Columns: form_control[];\r\n constructor(private lookupservice: LookupService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.onDataStateChange = this.onDataStateChange.bind(this);\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.activeTabTitle = undefined;\r\n }\r\n async ngOnInit() {\r\n if (!this.label) this.label = this.translate(\"ClientApp.GNR.PeopleInfo.PersonInformation\");\r\n super.ngOnInit();\r\n if (!this.apiName) this.apiName = \"PeopleInfo\";\r\n this.setdefault();\r\n this.cd.markForCheck();\r\n this.selectorService.onSubmited.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n this.isValid();\r\n this.cd.markForCheck();\r\n if (x === true) setTimeout(() => this.selectorService.onSubmited.next(false), 100);\r\n });\r\n }\r\n\r\n setMaxCode() {\r\n this.httpCommonService\r\n .getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data) => {\r\n this.model = new PeopleInfo();\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n this.setValue(\"Code\", data);\r\n this.setdefault();\r\n }\r\n });\r\n }\r\n\r\n setdefault() {\r\n if (this.isNewRow) {\r\n this.model.IsEmployee = false;\r\n this.model.IsBroker = false;\r\n this.model.IsCustomer = false;\r\n this.model.IsDetailLedger = false;\r\n this.model.IsSupplier = false;\r\n this.model.ContactKindByTelegram = false;\r\n this.model.ContactKindBySMS = false;\r\n this.model.ContactKindByEmail = false;\r\n }\r\n if (!this.model.PeopleInfoAddresss) {\r\n this.model.PeopleInfoAddresss = [];\r\n }\r\n if (!this.model.PeopleInfoTelephones) {\r\n this.model.PeopleInfoTelephones = [];\r\n }\r\n if (!this.model.PeopleInfoRelateds) {\r\n this.model.PeopleInfoRelateds = [];\r\n }\r\n\r\n if (!this.model.PersonalityKindId) {\r\n this.lookupservice.getLookupbyCode(\"GNR\", \"PersonalityKind\", PersonalityKind.Real).subscribe((x: Lookup) => {\r\n this.model.PersonalityKindId = x.Id;\r\n this.model.PersonalityKindCode = x.Code;\r\n this.model.PersonalityKindTitle = x.Title;\r\n this.setValue(\"PersonalityKindId\", this.model.PersonalityKindId);\r\n this.setValue(\"PersonalityKindCode\", this.model.PersonalityKindCode);\r\n this.setValue(\"PersonalityKindTitle\", this.model.PersonalityKindTitle);\r\n });\r\n }\r\n\r\n if (this.model) this.setColumnAttribute();\r\n\r\n this.selectorService.setDataStateChange(\"DetailLedgerId\", this.onDataStateChange);\r\n this.isValid();\r\n\r\n this.cd.markForCheck();\r\n }\r\n\r\n getColumns() {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.modelName === \"CompanyKindId\" || x.modelName === \"CompanyName\" || x.modelName === \"NationalCode\")\r\n x.required = this.model.PersonalityKindCode === PersonalityKind.Legal;\r\n if (x.modelName === \"LastName\" || x.modelName === \"Party.LastName\") x.required = this.model.PersonalityKindCode === PersonalityKind.Real;\r\n });\r\n var columns = this.columns.filter(\r\n (f) =>\r\n !this.model.PersonalityKindCode ||\r\n (this.model.PersonalityKindCode === PersonalityKind.Real && f.name !== \"CompanyName\" && f.name !== \"CompanyKindId\") ||\r\n (this.model.PersonalityKindCode === PersonalityKind.Legal && f.name !== \"FirstName\" && f.name !== \"LastName\")\r\n );\r\n columns.forEach((x) => {\r\n if (x.name === \"BrandName\") {\r\n if (this.model.PersonalityKindCode === PersonalityKind.Real) x.isFloat = 0;\r\n else x.isFloat = 1;\r\n }\r\n });\r\n columns = columns.sort((a, b) => a.order - b.order);\r\n columns.forEach((x) => {\r\n if (x.modelName === \"CompanyKindId\" || x.modelName === \"CompanyName\") x.required = this.model.PersonalityKindCode === PersonalityKind.Legal;\r\n if (x.modelName === \"CompanyKindId\" || x.modelName === \"NationalCode\") x.required = this.model.PersonalityKindCode === PersonalityKind.Legal;\r\n });\r\n columns.forEach((c) => {\r\n if (c.modelName === \"Title\") c.formVisible = this.apiName !== \"CustomerInfo\";\r\n if (c.modelName === \"NationalCode\") {\r\n if (this.model.PersonalityKindCode === PersonalityKind.Legal) {\r\n c.label = this.translate(\"ClientApp.GNR.PeopleInfo.NationalID\");\r\n c.patternKey = \"^[0-9]\\\\d{10}\";\r\n if (this.formGroup) this.setValue(c.name, this.formGroup?.get(c.name)?.value, c.required, c.patternKey);\r\n } else {\r\n c.label = this.translate(\"ClientApp.GNR.PeopleInfo.NationalCode\");\r\n c.patternKey = \"^[0-9]\\\\d{9}\";\r\n if (this.formGroup) this.setValue(c.name, this.formGroup?.get(c.name)?.value, c.required, c.patternKey);\r\n }\r\n }\r\n if (c.modelName === \"Email\") {\r\n c.patternKey = \"^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+\";\r\n }\r\n });\r\n columns = columns.filter((f) => f.formVisible);\r\n columns = columns.sort((a, b) => a.order - b.order);\r\n\r\n this._Columns = (columns as form_control[]).filter((f) => f.formVisible);\r\n this.cd.markForCheck();\r\n }\r\n\r\n setColumnAttribute(): void {\r\n super.setColumnAttribute();\r\n this.getColumns();\r\n }\r\n onChanged(changedValue) {\r\n if (changedValue && changedValue.SystemName) {\r\n if (changedValue.SystemName && changedValue.Category === \"CompanyKind\") {\r\n this.model.CompanyKindTitle = (changedValue as Lookup).Title;\r\n this.model.CompanyKindCode = (changedValue as Lookup).Code;\r\n this.setValue(\"CompanyKindTitle\", this.model.CompanyKindTitle);\r\n this.setValue(\"CompanyKindCode\", this.model.CompanyKindCode);\r\n }\r\n if (changedValue.SystemName && changedValue.Category === \"PersonalityKind\") {\r\n this.model.PersonalityKindCode = (changedValue as Lookup).Code;\r\n this.model.PersonalityKindTitle = (changedValue as Lookup).Title;\r\n this.setValue(\"PersonalityKindCode\", this.model.PersonalityKindCode);\r\n this.setValue(\"PersonalityKindTitle\", this.model.PersonalityKindTitle);\r\n }\r\n this.getColumns();\r\n if (changedValue.SystemName && changedValue.Category === \"PersonalityKind\") {\r\n this.setValue(\"CompanyKindId\", (changedValue as Lookup).Id, (changedValue as Lookup).Code === PersonalityKind.Legal);\r\n this.setValue(\"CompanyName\", this.formGroup?.get(\"CompanyName\")?.value, (changedValue as Lookup).Code === PersonalityKind.Legal);\r\n\r\n let patternKey: string = this._Columns.find((x) => x.modelName === \"NationalCode\").patternKey;\r\n this.setValue(\r\n \"NationalCode\",\r\n this.formGroup?.get(\"NationalCode\")?.value,\r\n (changedValue as Lookup).Code === PersonalityKind.Legal,\r\n patternKey\r\n );\r\n this.setValue(\"LastName\", this.formGroup?.get(\"LastName\")?.value, (changedValue as Lookup).Code === PersonalityKind.Real);\r\n this.setValue(\"FirstName\", this.formGroup?.get(\"FirstName\")?.value, (changedValue as Lookup).Code === PersonalityKind.Real);\r\n }\r\n }\r\n //partyId is changed\r\n if (changedValue?.Number && changedValue?.hasOwnProperty(\"PhoneNumber\")) {\r\n this.PartyAccountChange(changedValue);\r\n }\r\n this.isValid();\r\n }\r\n\r\n beforupdate() {\r\n this.cd.markForCheck();\r\n if (this.model.PersonalityKindCode === PersonalityKind.Legal) {\r\n this.setValue(\"LastName\", this.formGroup?.get(\"CompanyName\")?.value);\r\n }\r\n this.model.PeopleInfoAddresss = this.model.PeopleInfoAddresss.filter((x) => x.State !== RowState.Detached);\r\n this.model.PeopleInfoTelephones = this.model.PeopleInfoTelephones.filter((x) => x.State !== RowState.Detached);\r\n }\r\n\r\n chkeckSum() {\r\n let flag: boolean = true;\r\n const regex = /^\\d{10}/;\r\n this.model.NationalCode = this.formGroup?.get(\"NationalCode\")?.value;\r\n if (this.model.NationalCode && !regex.test(this.model.NationalCode)) return false;\r\n if (\r\n this.model.NationalCode === \"0000000000\" ||\r\n this.model.NationalCode === \"1111111111\" ||\r\n this.model.NationalCode === \"2222222222\" ||\r\n this.model.NationalCode === \"3333333333\" ||\r\n this.model.NationalCode === \"4444444444\" ||\r\n this.model.NationalCode === \"5555555555\" ||\r\n this.model.NationalCode === \"6666666666\" ||\r\n this.model.NationalCode === \"7777777777\" ||\r\n this.model.NationalCode === \"8888888888\" ||\r\n this.model.NationalCode === \"9999999999\" ||\r\n this.model.NationalCode.replace(this.model.NationalCode.substring(0, 1), \"\") === \"\" ||\r\n this.model.NationalCode === \"1234567891\" ||\r\n this.model.NationalCode === \"1000000001\" ||\r\n this.model.NationalCode === \"0123456789\"\r\n ) {\r\n return false;\r\n }\r\n var sum: number = 0;\r\n for (let i = 1; i < this.model.NationalCode.length; i++) {\r\n sum += Number(this.model.NationalCode[i - 1].toString()) * (11 - i);\r\n }\r\n var r = sum % 11;\r\n\r\n let num3: number = Number(this.model.NationalCode[9].toString());\r\n flag = (r === 0 && num3 === 0) || (r === 1 && num3 === 1) || num3 === 11 - r;\r\n return flag;\r\n }\r\n isValid() {\r\n this.erroremessage = undefined;\r\n this.haserror = true;\r\n\r\n if (this.formGroup?.get(\"NationalCode\")?.value && this.model.PersonalityKindCode === PersonalityKind.Real && !this.chkeckSum()) {\r\n this.haserror = false;\r\n this.erroremessage = this.translate(\"ClientApp.GNR.PeopleInfo.NationalCodeNotValid\");\r\n return this.haserror;\r\n }\r\n if (!this.formGroup?.get(\"NationalCode\")?.value && this.model.PersonalityKindCode === PersonalityKind.Legal) {\r\n this.haserror = false;\r\n this.erroremessage = this.translate(\"ClientApp.GNR.PeopleInfo.NationalIDNotEntered\");\r\n return this.haserror;\r\n }\r\n\r\n if (\r\n !this.model.PeopleInfoTelephones ||\r\n this.model.PeopleInfoTelephones.filter((x) => x.IsDefault && x.TelephoneKindCode !== TelephoneKind.Mobile).length > 0\r\n ) {\r\n this.haserror = false;\r\n this.erroremessage = this.translate(\"ClientApp.GNR.PeopleInfo.OnlyMobileDefault\");\r\n return this.haserror;\r\n }\r\n\r\n return this.haserror;\r\n }\r\n selectTab($event) {\r\n this.activeTabTitle = $event.tabTitle;\r\n this.isValid();\r\n setTimeout(() => {\r\n this.cd.detectChanges();\r\n this.cd.markForCheck();\r\n }, 100);\r\n }\r\n isActveTab(title: string) {\r\n return this.activeTabTitle === title;\r\n }\r\n PartyAccountChange(event) {\r\n if (!event) {\r\n this.formGroup.controls[\"FirstName\"].enable();\r\n this.formGroup.controls[\"LastName\"].enable();\r\n this.formGroup.controls[\"Number\"].enable();\r\n }\r\n if (event && event.Number && event.LastName) {\r\n this.model.Number = event.Number;\r\n this.formGroup.controls[\"Number\"].setValue(event.Number);\r\n this.model.FirstName = event.FirstName;\r\n this.formGroup.controls[\"FirstName\"].setValue(event.FirstName);\r\n this.model.LastName = event.LastName;\r\n this.formGroup.controls[\"LastName\"].setValue(event.LastName);\r\n this.model.Description = event.Description;\r\n this.formGroup.controls[\"Description\"].setValue(event.Description);\r\n\r\n if (this.formGroup.controls[\"FirstName\"].value) this.formGroup.controls[\"FirstName\"].disable();\r\n this.formGroup.controls[\"Number\"].disable();\r\n this.formGroup.controls[\"LastName\"].disable();\r\n }\r\n }\r\n onDataStateChange(columnName: string, searchValue: string, skip: number, take: number): Observable> {\r\n var abs = new BehaviorSubject>(null);\r\n let apiName: string = \"DetailLedger/DetailLedgerWithKindId\";\r\n this.httpCommonService\r\n .get>(\r\n apiName + `/?detailLedgerKindId=${this.formGroup.controls[\"DetailLedgerKindId\"].value}&searchValue=${searchValue}&skip=${skip}&take=${take}`\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x) => {\r\n if (x) abs.next(x);\r\n },\r\n (err) => {\r\n this.saveFailedHelper(err);\r\n }\r\n );\r\n return abs.asObservable();\r\n }\r\n}\r\n"," 0 && formGroup\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [group]=\"formGroup\"\r\n [model]=\"model\"\r\n [columns]=\"_Columns\"\r\n [erroremessage]=\"erroremessage\"\r\n (valueChange)=\"onChanged($event)\"\r\n (cancelChange)=\"cancel()\"\r\n (submitChange)=\"save()\">\r\n \r\n \r\n \r\n 0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [_columns]=\"orignalColumns\"\r\n [(model)]=\"model\">\r\n \r\n \r\n \r\n 0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [(model)]=\"model\"\r\n [_columns]=\"orignalColumns\">\r\n \r\n \r\n \r\n 0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [(model)]=\"model\"\r\n [_columns]=\"orignalColumns\">\r\n \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { HttpCommonService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { PeopleInfoFormComponent } from \"./peopleInfo-form.component\";\r\nimport { EntityListAction, Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n@Component({\r\n selector: \"peopleinfo-list\",\r\n templateUrl: \"peopleinfo-list.component.html\",\r\n providers: [HttpCommonService],\r\n})\r\nexport class PeopleInfoListComponent extends BaseListComponent {\r\n unSortableFilterable: string[] = [];\r\n actions: EntityListAction[];\r\n constructor(){\r\n super();\r\n this.setactions();\r\n }\r\n ngOnInit() {\r\n this.unSortableFilterable.push(\"Address\");\r\n this.unSortableFilterable.push(\"Telephone\");\r\n super.ngOnInit();\r\n this.inputEditorform = PeopleInfoFormComponent;\r\n this.apiName = \"PeopleInfo\";\r\n this.label = this.translate(\"ClientApp.GNR.PeopleInfo.IntroductionPersons\");\r\n this.areaName = \"General\";\r\n }\r\n setactions() {\r\n this.actions = [\r\n {\r\n name: \"rahkaranInfo\",\r\n disabled: false,\r\n displayName: this.translate(\"ClientApp.FrontOffice.TaxPayerSystem.GetLatestInvoiceStatus\"),\r\n iconName: \"icon-content_copy-o\",\r\n apiName: \"Rahkaran/SendPeopleInfo\",\r\n areaName: 'RestaurantSale',\r\n permission: Permission.viewPermission,\r\n },\r\n ];\r\n }\r\n onActionClick(){\r\n this.httpCommonService\r\n .getList(\"Rahkaran/SendPeopleInfo\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (data) => {\r\n console.log(data);\r\n },\r\n (error) => console.log(error)\r\n );\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n","import { ChangeDetectorRef, Component, Input, OnInit } from \"@angular/core\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { PeopleInfoRelated } from \"projects/sepidz-web-framework/src/lib/models/peopleInfo-related.model\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\n\r\n@Component({\r\n selector: \"ngx-related-form\",\r\n templateUrl: \"./related-form.component.html\",\r\n styleUrls: [\"./related-form.component.scss\"],\r\n})\r\nexport class RelatedFormComponent extends BaseFormComponent {\r\n @Input() Columns: form_control[];\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n if (!this.apiName) this.apiName = \"PeopleInfo\";\r\n this.label = this.translate(\"ClientApp.GNR.PeopleInfo.Related.RelatedPersons\");\r\n this.noLoadData = true;\r\n super.ngOnInit();\r\n this.setdefault();\r\n }\r\n setdefault() {\r\n if (!this.model.PeopleInfoId) this.model.PeopleInfoId = 0;\r\n this.setFormGroup(this.model);\r\n this.cd.markForCheck();\r\n }\r\n async setColumns() {\r\n Object.assign(this.orignalColumns, this.Columns);\r\n this.orignalColumns.forEach((c) => {\r\n if (c.modelName === \"RelatedEmail\") {\r\n c.patternKey = \"^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+\";\r\n }\r\n });\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n }\r\n public async save() {\r\n this.result = this.getDataFromFormGroup();\r\n this.close();\r\n }\r\n}\r\n","\r\n\r\n","import { Component, Type, Input, ViewChild, ChangeDetectorRef } from \"@angular/core\";\r\nimport { RelatedFormComponent } from \"../related-form/related-form.component\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { PeopleInfo } from \"projects/sepidz-web-framework/src/lib/models/peopleInfo.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\n\r\n@Component({\r\n selector: \"related-list\",\r\n templateUrl: \"./related-list.component.html\",\r\n styleUrls: [\"./related-list.component.scss\"],\r\n})\r\nexport class RelatedListComponent extends BaseListComponent {\r\n PeopleInfoRelateds: form_control[];\r\n @ViewChild(\"grid\") public grid: KGridComponent;\r\n @Input() _columns: form_control[];\r\n @Input() isTabActive: boolean = false;\r\n private innerModel: PeopleInfo = {};\r\n @Input()\r\n public set model(value: PeopleInfo) {\r\n if (this.innerModel !== value) {\r\n this.innerModel = value;\r\n if (this.grid) {\r\n this.grid.refreshData();\r\n this.grid.setDefaultColumnInfo();\r\n }\r\n }\r\n }\r\n public get model(): PeopleInfo {\r\n return this.innerModel;\r\n }\r\n inputEditorform: Type = RelatedFormComponent;\r\n constructor(protected cd: ChangeDetectorRef, protected selectorService: SelectorService) {\r\n super();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.inputEditorform = undefined;\r\n this.PeopleInfoRelateds = undefined;\r\n this.grid = undefined;\r\n this._columns = undefined;\r\n this.innerModel = undefined;\r\n }\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this.label = this.translate(\"ClientApp.GNR.PeopleInfo.Related.RelatedPersons\");\r\n if (!this.model.PeopleInfoRelateds) this.model.PeopleInfoRelateds = [];\r\n else {\r\n let uid: number = 0;\r\n this.model.PeopleInfoRelateds.forEach((x) => {\r\n uid++;\r\n x[\"UId\"] = uid;\r\n });\r\n }\r\n this.PeopleInfoRelateds = this.getDetailControlModels(\"PeopleInfoRelateds\");\r\n setTimeout(() => {\r\n if (this.grid) {\r\n this.grid.columns = this.PeopleInfoRelateds;\r\n this.grid.refreshData();\r\n this.grid.setDefaultColumnInfo();\r\n }\r\n }, 200);\r\n\r\n this.cd.markForCheck();\r\n }\r\n public addHandler(event) {\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: null,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n Columns: this.getDetailControlModels(\"PeopleInfoRelateds\"),\r\n label: this.translate(\"ClientApp.GNR.PeopleInfo.Related.RelatedPersons\"),\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n model[\"UId\"] = this.model.PeopleInfoRelateds.length + 1;\r\n model.State = RowState.New;\r\n this.model.PeopleInfoRelateds.push(model);\r\n }\r\n this.cd.markForCheck();\r\n if (this.grid) {\r\n this.grid.refreshData();\r\n this.grid.setDefaultColumnInfo();\r\n }\r\n this.selectorService.onSubmited.next(true);\r\n });\r\n }\r\n\r\n public editHandler(event) {\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: event,\r\n areaName: this.areaName,\r\n apiName: this.apiName,\r\n Columns: this.getDetailControlModels(\"PeopleInfoRelateds\"),\r\n label: this.translate(\"ClientApp.GNR.PeopleInfo.Related.RelatedPersons\"),\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n this.model.PeopleInfoRelateds.forEach((x) => {\r\n if (x[\"UId\"] === model[\"UId\"]) {\r\n if (model.State !== RowState.New) model.State = RowState.Modify;\r\n Object.assign(x, model);\r\n }\r\n });\r\n }\r\n if (this.grid) this.grid.refreshData();\r\n });\r\n }\r\n\r\n public removeHandler(dataItem) {\r\n this.sts.showDialog(`${this.translate(\"ClientApp.GNR.PeopleInfo.Related.SureDeleteInformation\")}`, \"\", DialogType.confirm, () => {\r\n this.model.PeopleInfoRelateds.forEach((x) => {\r\n if (x[\"UId\"] === dataItem[\"UId\"]) {\r\n if (x.State == RowState.New) x.State = RowState.Detached;\r\n else x.State = RowState.Delete;\r\n }\r\n });\r\n if (this.grid) this.grid.refreshData();\r\n });\r\n }\r\n getDetailControlModels(keyName: string) {\r\n if (this._columns?.find((x) => x.name === keyName)?.DetailControlModels) {\r\n var col = this._columns.find((x) => x.name === keyName).DetailControlModels[keyName];\r\n return col.sort((a, b) => a.order - b.order);\r\n }\r\n return [];\r\n }\r\n}\r\n","0\"\r\n #grid\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n (onRowSelected)=\"onRowSelected($event)\"\r\n (onCreate)=\"addHandler($event)\"\r\n (onEdit)=\"editHandler($event)\"\r\n (onDelete)=\"removeHandler($event)\"\r\n [noToolBar]=\"true\"\r\n [groupable]=\"false\"\r\n [name]=\"apiName\"\r\n dataKey=\"'UId'\"\r\n [columns]=\"PeopleInfoRelateds\"\r\n gridHeight=\"30\"\r\n [paging]=\"false\"\r\n [dataList]=\"model.PeopleInfoRelateds\"\r\n reportName=\"PeopleInfoRelateds\"\r\n pathPreFix=\"GNR\">\r\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef, Input } from \"@angular/core\";\r\nimport { PeopleInfoTelephone } from \"projects/sepidz-web-framework/src/lib/models/peopleInfo-telephone.model\";\r\nimport { LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { TelephoneKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { Lookup, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\n\r\n@Component({\r\n selector: \"ngx-telephone-form\",\r\n templateUrl: \"./telephone-form.component.html\",\r\n styleUrls: [\"./telephone-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TelephoneFormComponent extends BaseFormComponent {\r\n erroremessage: string;\r\n @Input() Columns: form_control[];\r\n constructor(private lookupservice: LookupService, protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.noLoadData = true;\r\n super.ngOnInit();\r\n if (!this.apiName) this.apiName = \"PeopleInfo\";\r\n this.label = this.translate(\"ClientApp.GNR.PeopleInfo.Telephone.Telephone\");\r\n this.setdefault();\r\n }\r\n async setColumns() {\r\n Object.assign(this.orignalColumns, this.Columns);\r\n this.orignalColumns.forEach((x) => {\r\n if (!x.tabOrder) x.tabOrder = x.order ?? 0;\r\n });\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n }\r\n\r\n setdefault() {\r\n this.isNewRow = !this.currentrow;\r\n Object.assign(this.model, this.currentrow);\r\n if (this.model.IsDefault === undefined) this.model.IsDefault = false;\r\n this.setFormGroup(this.model);\r\n if (!this.model.PeopleInfoId) this.model.PeopleInfoId = 0;\r\n if (this.currentrow && this.currentrow.Id) this.id = !this.id ? this.currentrow.Id : this.id;\r\n if (!this.model.TelephoneKindId) {\r\n this.lookupservice\r\n .getLookupbyCode(\"GNR\", \"TelephoneKind\", TelephoneKind.Mobile)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((stateKind) => {\r\n this.model.TelephoneKindId = stateKind.Id;\r\n this.model.TelephoneKindCode = stateKind.Code;\r\n this.model.TelephoneKindTitle = stateKind.Title;\r\n this.onChanged(stateKind);\r\n });\r\n }\r\n this.cd.markForCheck();\r\n }\r\n public async save() {\r\n this.result = this.getDataFromFormGroup();\r\n this.close();\r\n }\r\n onChanged($event) {\r\n if ($event && $event.SystemName) {\r\n this.model.TelephoneKindTitle = ($event as Lookup).Title;\r\n this.model.TelephoneKindCode = ($event as Lookup).Code;\r\n this.setValue(\"TelephoneKindTitle\", this.model.TelephoneKindTitle);\r\n this.setValue(\"TelephoneKindCode\", this.model.TelephoneKindCode);\r\n }\r\n this.columns.forEach((x) => {\r\n if (x.modelName === \"Telephone\" && this.model.TelephoneKindCode == TelephoneKind.Mobile) {\r\n x.patternKey = \"^[0-0][9-9]\\\\d{9}\";\r\n this.columns.find((t) => t.name === \"IsDefault\").disabled = false;\r\n this.setValue(x.name, this.formGroup?.get(x.name)?.value, x.required, x.patternKey);\r\n }\r\n if (x.modelName === \"Telephone\" && this.model.TelephoneKindCode !== TelephoneKind.Mobile) {\r\n x.patternKey = \"^[1-9]\\\\d{3,7}\";\r\n this.columns.find((t) => t.name === \"IsDefault\").disabled = true;\r\n this.setValue(x.name, this.formGroup?.get(x.name)?.value, x.required, x.patternKey);\r\n }\r\n });\r\n }\r\n isValid(): boolean {\r\n var flag: boolean = true;\r\n if (this.model.TelephoneKindCode == TelephoneKind.Mobile && (this.model.Telephone.length !== 11 || this.model.Telephone[0] !== \"0\")) {\r\n this.erroremessage = `${this.translate(\"ClientApp.GNR.PeopleInfo.Telephone.Format\")} ${this.model.TelephoneKindTitle} ${this.translate(\r\n \"ClientApp.GNR.PeopleInfo.Telephone.NotCorrect\"\r\n )}`;\r\n }\r\n if (this.model.TelephoneKindCode !== TelephoneKind.Mobile && (this.model.Telephone.length < 4 || this.model.Telephone.length > 8)) {\r\n this.erroremessage = `${this.translate(\"ClientApp.GNR.PeopleInfo.Telephone.Format\")} ${this.model.TelephoneKindTitle} ${this.translate(\r\n \"ClientApp.GNR.PeopleInfo.Telephone.NotCorrect\"\r\n )}`;\r\n }\r\n return flag;\r\n }\r\n}\r\n","0\"\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n [group]=\"formGroup\"\r\n [model]=\"model\"\r\n [columns]=\"columns\"\r\n (cancelChange)=\"cancel()\"\r\n (submitChange)=\"save()\"\r\n (valueChange)=\"onChanged($event)\">\r\n\r\n","import { Component, Type, Input, ViewChild, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\r\nimport { TelephoneFormComponent } from \"../telephone-form/telephone-form.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\nimport { PeopleInfo } from \"projects/sepidz-web-framework/src/lib/models/peopleInfo.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\n\r\n@Component({\r\n selector: \"telephone-list\",\r\n templateUrl: \"./telephone-list.component.html\",\r\n styleUrls: [\"./telephone-list.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class TelephoneListComponent extends BaseListComponent {\r\n PeopleInfoTelephones: form_control[];\r\n @ViewChild(\"grid\") public grid: KGridComponent;\r\n @Input() _columns: form_control[];\r\n @Input() isTabActive: boolean = false;\r\n private innerModel: PeopleInfo = {};\r\n @Input()\r\n public set model(value: PeopleInfo) {\r\n if (this.innerModel !== value) {\r\n this.innerModel = value;\r\n if (this.grid) {\r\n this.grid.refreshData();\r\n this.grid.setDefaultColumnInfo();\r\n }\r\n }\r\n }\r\n public get model(): PeopleInfo {\r\n return this.innerModel;\r\n }\r\n inputEditorform: Type = TelephoneFormComponent;\r\n constructor(protected cd: ChangeDetectorRef, protected selectorService: SelectorService) {\r\n super();\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.PeopleInfoTelephones = undefined;\r\n this.grid = undefined;\r\n this._columns = undefined;\r\n this.innerModel = undefined;\r\n }\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this.label = this.translate(\"ClientApp.GNR.PeopleInfo.Telephone.Telephone\");\r\n if (!this.innerModel.PeopleInfoTelephones) this.innerModel.PeopleInfoTelephones = [];\r\n else {\r\n let uid: number = 0;\r\n this.innerModel.PeopleInfoTelephones.forEach((x) => {\r\n uid++;\r\n x[\"UId\"] = uid;\r\n });\r\n }\r\n this.PeopleInfoTelephones = this.getDetailControlModels(\"PeopleInfoTelephones\");\r\n setTimeout(() => {\r\n if (this.grid) {\r\n this.grid.columns = this.PeopleInfoTelephones;\r\n this.grid.refreshData();\r\n this.grid.setDefaultColumnInfo();\r\n }\r\n }, 200);\r\n this.cd.markForCheck();\r\n }\r\n\r\n public addHandler(event) {\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: null,\r\n apiName: this.apiName,\r\n areaName: this.areaName,\r\n Columns: this.getDetailControlModels(\"PeopleInfoTelephones\"),\r\n label: this.translate(\"ClientApp.GNR.PeopleInfo.Telephone.Telephone\"),\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) model[\"UId\"] = this.innerModel.PeopleInfoTelephones.length + 1;\r\n model.State = RowState.New;\r\n if (model.IsDefault === true) {\r\n this.innerModel.PeopleInfoTelephones.forEach((x) => {\r\n x.IsDefault = false;\r\n if (model.State !== RowState.New && x.State !== RowState.Delete && x.State !== RowState.Detached) x.State = RowState.Modify;\r\n });\r\n }\r\n this.innerModel.PeopleInfoTelephones.push(model);\r\n if (this.grid) this.grid.refreshData();\r\n this.selectorService.onSubmited.next(true);\r\n this.cd.markForCheck();\r\n });\r\n }\r\n\r\n public editHandler(event) {\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n currentrow: event,\r\n areaName: this.areaName,\r\n apiName: this.apiName,\r\n Columns: this.getDetailControlModels(\"PeopleInfoTelephones\"),\r\n label: this.translate(\"ClientApp.GNR.PeopleInfo.Telephone.Telephone\"),\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((model) => {\r\n if (model) {\r\n if (model.IsDefault === true) {\r\n this.innerModel.PeopleInfoTelephones.forEach((x) => {\r\n x.IsDefault = false;\r\n if (model.State !== RowState.New && x.State !== RowState.Delete && x.State !== RowState.Detached) x.State = RowState.Modify;\r\n });\r\n }\r\n this.innerModel.PeopleInfoTelephones.forEach((x) => {\r\n if (x[\"UId\"] === model[\"UId\"]) {\r\n if (model.State !== RowState.New) model.State = RowState.Modify;\r\n Object.assign(x, model);\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n public removeHandler(dataItem) {\r\n this.sts.showDialog(`${this.translate(\"ClientApp.GNR.PeopleInfo.Telephone.SureDeleteInformation\")}`, \"\", DialogType.confirm, () => {\r\n this.innerModel.PeopleInfoTelephones.forEach((x) => {\r\n if (x.Id === dataItem.Id) {\r\n if (x.State == RowState.New) x.State = RowState.Detached;\r\n else x.State = RowState.Delete;\r\n }\r\n });\r\n if (this.grid) this.grid.refreshData();\r\n this.cd.markForCheck();\r\n });\r\n }\r\n getDetailControlModels(keyName: string) {\r\n if (this._columns?.find((x) => x.name === keyName)?.DetailControlModels) {\r\n var col = this._columns.find((x) => x.name === keyName).DetailControlModels[keyName];\r\n return col.sort((a, b) => a.order - b.order);\r\n }\r\n return [];\r\n }\r\n}\r\n","0\"\r\n #grid\r\n [apiName]=\"apiName\"\r\n [areaName]=\"areaName\"\r\n [label]=\"label\"\r\n (onRowSelected)=\"onRowSelected($event)\"\r\n (onCreate)=\"addHandler($event)\"\r\n (onEdit)=\"editHandler($event)\"\r\n (onDelete)=\"removeHandler($event)\"\r\n [noToolBar]=\"true\"\r\n [groupable]=\"false\"\r\n [name]=\"apiName\"\r\n dataKey=\"'UId'\"\r\n [columns]=\"PeopleInfoTelephones\"\r\n gridHeight=\"30\"\r\n [paging]=\"false\"\r\n [dataList]=\"model.PeopleInfoTelephones\"\r\n reportName=\"PeopleInfoTelephones\"\r\n pathPreFix=\"GNR\">\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from '@angular/core';\r\nimport { BaseFormComponent } from 'projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component';\r\nimport { SelectorService } from 'projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service';\r\nimport { Province } from 'projects/sepidz-web-framework/src/lib/models/province.model';\r\nimport { takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'ngx-province-form',\r\n templateUrl: './province-form.component.html',\r\n styleUrls: ['./province-form.component.scss'],\r\n changeDetection:ChangeDetectionStrategy.OnPush\r\n})\r\nexport class ProvinceFormComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService,protected cd: ChangeDetectorRef) {\r\n super(selectorService,cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Province\";\r\n this.label = this.translate('ClientApp.GNR.Province.Province');\r\n super.ngOnInit();\r\n }\r\n setMaxCode() {\r\n this.httpCommonService.getMaxCode(this.apiName)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(data => {\r\n if (!this.model)\r\n this.model = {};\r\n if (data) {\r\n this.model[\"Code\"] = data as number;\r\n }\r\n this.setFormGroup(this.model);\r\n });\r\n }\r\n addControl()\r\n {\r\n this.cd.markForCheck();\r\n }\r\n}","\r\n\r\n","import { Component, OnInit, Type } from '@angular/core';\r\nimport { ProvinceFormComponent } from '../province-form/province-form.component';\r\nimport { BaseListComponent } from 'projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component';\r\n@Component({\r\n selector: 'ngx-province-list',\r\n templateUrl: './province-list.component.html',\r\n styleUrls: ['./province-list.component.scss']\r\n})\r\nexport class ProvinceListComponent extends BaseListComponent {\r\n constructor() {\r\n super()\r\n this.inputEditorform = ProvinceFormComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName= \"Province\";\r\n this.areaName=\"General\";\r\n this.label = this.translate('ClientApp.GNR.Province.Province');\r\n }\r\n}","
\r\n \r\n\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ProvinceListComponent } from './province-list/province-list.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ProvinceFormComponent } from './province-form/province-form.component';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nconst components =\r\n [\r\n ProvinceListComponent,\r\n ProvinceFormComponent\r\n ]\r\n@NgModule({\r\n declarations: [...components,],\r\n exports: [...components],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class ProvinceModule { }\r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { ResetPasswordComponent } from \"./resetpassword.component\";\r\n\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\n\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\n\r\n@Component({\r\n selector: \"ngx-resetpassword-list\",\r\n templateUrl: \"./resetpassword-list.component.html\",\r\n styleUrls: [\"./resetpassword-list.component.scss\"],\r\n})\r\nexport class ResetPasswordListComponent extends BaseListComponent {\r\n constructor(private _id: FormContainerModel, private tabsservice: TabularService, public dialogService: SimpleModalService) {\r\n super();\r\n this.inputEditorform = ResetPasswordComponent;\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Authorization\";\r\n\r\n this.label = this.translate(\"ClientApp.GNR.ResetPassword.ChangePassword\");\r\n this.dialogService\r\n .open(\r\n this.inputEditorform,\r\n {\r\n apiName: this.apiName,\r\n },\r\n {\r\n autoFocus: true,\r\n closeOnEscape: false,\r\n closeOnClickOutside: false,\r\n }\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((x) => {\r\n this.tabsservice.closeById(this._id.metadata.id);\r\n });\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component } from \"@angular/core\";\r\nimport { form_control, UserEdit } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\n@Component({\r\n selector: \"resetpassword\",\r\n templateUrl: \"./resetpassword.component.html\",\r\n styleUrls: [\"./resetpassword.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ResetPasswordComponent extends BaseFormComponent {\r\n columns: form_control[] = [];\r\n haserror: boolean = false;\r\n erroremessage: string;\r\n\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.ResetPassword.UserName\"),\r\n name: \"UserName\",\r\n order: 0,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"text\",\r\n modelName: \"UserName\",\r\n maxLength: 256,\r\n controlType: FormControlTypes.textbox,\r\n disabled: true,\r\n userClass: \"select-sm\",\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.ResetPassword.CurrentPassword\"),\r\n name: \"OldPassword\",\r\n order: 1,\r\n listVisible: false,\r\n formVisible: true,\r\n required: true,\r\n textType: \"password\",\r\n modelName: \"OldPassword\",\r\n controlType: FormControlTypes.textbox,\r\n maxLength: 128,\r\n minLength: 3,\r\n disabled: false,\r\n userClass: \"select-sm\",\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.ResetPassword.NewPassword\"),\r\n name: \"NewPassword\",\r\n order: 2,\r\n listVisible: false,\r\n formVisible: true,\r\n required: true,\r\n textType: \"password\",\r\n modelName: \"NewPassword\",\r\n controlType: FormControlTypes.textbox,\r\n maxLength: 128,\r\n minLength: 3,\r\n disabled: false,\r\n userClass: \"select-sm\",\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.ResetPassword.ConfirmPassword\"),\r\n name: \"ConfirmPassword\",\r\n order: 3,\r\n listVisible: false,\r\n formVisible: true,\r\n required: true,\r\n textType: \"password\",\r\n modelName: \"ConfirmPassword\",\r\n controlType: FormControlTypes.textbox,\r\n maxLength: 128,\r\n minLength: 3,\r\n disabled: false,\r\n userClass: \"select-sm\",\r\n });\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Authorization/ChangePassword\";\r\n this.areaName = \"General\";\r\n this.label = this.translate(\"ClientApp.GNR.ResetPassword.ChangePassword\");\r\n this.model = Object.assign({}, this.accountService.getCurrentUser() as UserEdit);\r\n this.model.UserName = this.accountService.authService.currentUser.UserName;\r\n this.model.OldPassword = undefined;\r\n this.orignalColumns = this.columns;\r\n this.setFormGroup(this.model);\r\n }\r\n\r\n isValid(): boolean {\r\n this.erroremessage = undefined;\r\n this.haserror = false;\r\n let newPassword: string = this.formGroup.controls[\"NewPassword\"].value;\r\n if (!newPassword || !(newPassword.length > 0)) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.GNR.ResetPassword.PasswordRequired\");\r\n } else if (newPassword && !newPassword.trim()) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.GNR.ResetPassword.PasswordNotContainOnlyHyphens\");\r\n } else if (newPassword && newPassword != this.formGroup.controls[\"ConfirmPassword\"].value) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.GNR.User.CompareFaild\");\r\n }\r\n return !this.haserror;\r\n }\r\n}\r\n","\r\n \r\n
\r\n
\r\n {{erroremessage}}\r\n
\r\n
\r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { ResetPasswordListComponent } from './resetpassword-list.component';\r\nimport { ResetPasswordComponent } from './resetpassword.component';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nconst users =\r\n [\r\n ResetPasswordComponent,\r\n ResetPasswordListComponent\r\n ]\r\n@NgModule({\r\n declarations: [...users,],\r\n exports: [...users],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class ResetPasswordModule { }\r\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { MvcControllerInfo, MvcAreaInfo } from \"projects/sepidz-web-framework/src/lib/models/MvcControllerInfo.model\";\r\nimport { Role, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { take, takeUntil } from \"rxjs/operators\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { UntypedFormControl } from \"@angular/forms\";\r\nimport { TreeviewConfig, TreeviewItem } from \"projects/ngx-treeview/src/lib\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { LocalStoreManager } from \"../../../../../projects/sepidz-web-framework/src/lib/services\";\r\nimport { CheckBrachAccessModel } from \"../../data-center-process/chek-branch-access.model\";\r\nexport function isNullOrUndefined(value: any) {\r\n return value === null || value === undefined;\r\n}\r\n\r\n@Component({\r\n selector: \"ngx-role-form\",\r\n templateUrl: \"./role-form.component.html\",\r\n styleUrls: [\"./role-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class RoleFormComponent extends BaseFormComponent {\r\n apiName = \"Role\";\r\n erroremessage: string;\r\n columns: form_control[] = [];\r\n _config = TreeviewConfig.create({\r\n hasAllCheckBox: true,\r\n hasFilter: true,\r\n hasCollapseExpand: true,\r\n decoupleChildFromParent: false,\r\n maxHeight: 400,\r\n });\r\n items: TreeviewItem[] = [];\r\n values: string[];\r\n deactivateSave: boolean = false;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef, public localStorage: LocalStoreManager) {\r\n super(selectorService, cd);\r\n }\r\n\r\n async ngOnInit() {\r\n this.label = this.translate(\"ClientApp.GNR.Role.UsersRole\");\r\n super.ngOnInit();\r\n this.pupulateitems();\r\n }\r\n setdefault() {\r\n this.pupulateitems();\r\n const info = this.accountService.authService.currentInformation();\r\n if (info.BranchingLightEnabled || info.BranchingAdvancedEnabled) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch/Security\")\r\n .pipe(take(1))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.sts.showDialog(this.translate(\"ClientApp.GNR.Role.InfoBranchCanNotDeleted\"), this.translate(\"ClientApp.GNR.Role.Attention\"));\r\n this.deactivateSave = true;\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.GNR.Role.InfoCentralOfficeCanNotDeleted\"),\r\n this.translate(\"ClientApp.GNR.Role.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n (error) => this.getFailedHelper(error);\r\n }\r\n }\r\n async setColumns() {\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.Role.Name\"),\r\n name: \"Name\",\r\n order: 0,\r\n listVisible: true,\r\n formVisible: true,\r\n placeholder: this.translate(\"ClientApp.GNR.Role.EnterRole\"),\r\n required: true,\r\n textType: \"text\",\r\n modelName: \"Name\",\r\n maxLength: 256,\r\n controlType: FormControlTypes.textbox,\r\n disabled: false,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.Role.DisplayName\"),\r\n name: \"DisplayName\",\r\n order: 1,\r\n listVisible: true,\r\n formVisible: true,\r\n placeholder: this.translate(\"ClientApp.GNR.Role.EnterDescription\"),\r\n required: true,\r\n textType: \"text\",\r\n modelName: \"DisplayName\",\r\n controlType: FormControlTypes.textbox,\r\n disabled: false,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.Role.Description\"),\r\n name: \"Description\",\r\n order: 2,\r\n listVisible: true,\r\n formVisible: true,\r\n placeholder: this.translate(\"ClientApp.GNR.Role.EnterDescription\"),\r\n required: false,\r\n textType: \"text\",\r\n modelName: \"Description\",\r\n controlType: FormControlTypes.textbox,\r\n disabled: false,\r\n });\r\n\r\n this.orignalColumns = this.columns;\r\n this.columns = this.columns.sort((a, b) => a.order - b.order);\r\n this.setColumnNumber(this.columns);\r\n this.setColumnAttribute();\r\n this.setFormGroup(this.model);\r\n }\r\n getAccessList(): string {\r\n var accessList: MvcAreaInfo[] = [];\r\n let _values = this.values;\r\n this.accountService.authService\r\n .userControllers()\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((controllers) => {\r\n if (controllers && controllers.length > 0 && this.values && this.values.length > 0) {\r\n controllers.forEach((a) => {\r\n let currentArea: MvcAreaInfo = { Name: a.Name, DisplayName: a.DisplayName, Id: a.Id, Controllers: [] };\r\n if (a.Controllers) {\r\n a.Controllers.forEach((c) => {\r\n let controller: MvcControllerInfo = {\r\n AreaName: c.AreaName,\r\n DisplayName: c.DisplayName,\r\n Id: c.Id,\r\n Name: c.Name,\r\n Actions: [],\r\n };\r\n if (c.Actions) {\r\n c.Actions.forEach((a) => {\r\n let action = _values.find((v) => v === a.Id);\r\n if (!isNullOrUndefined(action)) controller.Actions.push(a);\r\n });\r\n }\r\n if (controller && controller.Actions && controller.Actions.length > 0) currentArea.Controllers.push(controller);\r\n });\r\n }\r\n if (currentArea && currentArea.Controllers && currentArea.Controllers.length > 0) accessList.push(currentArea);\r\n });\r\n }\r\n });\r\n return JSON.stringify(accessList);\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n\r\n public beforupdate() {\r\n let access = this.getAccessList();\r\n if (access) {\r\n this.model.Access = access;\r\n if (!this.formGroup.controls[\"Access\"]) this.formGroup.addControl(\"Access\", new UntypedFormControl(this.model.Access));\r\n else this.formGroup.controls[\"Access\"].setValue(this.model.Access);\r\n }\r\n }\r\n pupulateitems() {\r\n this.accountService.authService\r\n .userControllers()\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((controllers) => {\r\n var accessList: MvcAreaInfo[] = this.model.Access ? JSON.parse(this.model.Access) : [];\r\n this.items = [];\r\n controllers.forEach((a) => {\r\n let children1: any[] = [];\r\n if (a.Controllers) {\r\n a.Controllers.forEach((c) => {\r\n let children: any[] = [];\r\n if (c.Actions) {\r\n c.Actions.forEach((a) => {\r\n let actions = {\r\n value: a.Id,\r\n checked: accessList.some((x) => x.Controllers && x.Controllers.some((c) => c.Actions.some((a2) => a2.Id === a.Id))),\r\n text: a.DisplayName ? a.DisplayName : a.Name,\r\n };\r\n children.push(actions);\r\n });\r\n }\r\n let item = new TreeviewItem({ value: c.Id, collapsed: true, text: c.DisplayName ? c.DisplayName : c.Name, children: children });\r\n children1.push(item);\r\n });\r\n let item2 = new TreeviewItem({ value: a.Id, collapsed: true, text: a.DisplayName ? a.DisplayName : a.Name, children: children1 });\r\n this.items.push(item2);\r\n }\r\n });\r\n });\r\n }\r\n async afterupdate() {\r\n const authService = this.accountService.authService;\r\n await authService.getLoginUserRoles(authService.currentUser.UserName).then();\r\n }\r\n\r\n close() {\r\n super.close();\r\n }\r\n}\r\n","\r\n 0\"> \r\n \r\n \r\n \r\n\r\n","import { Component } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { CheckBrachAccessModel } from \"../../data-center-process/chek-branch-access.model\";\r\nimport { RoleFormComponent } from \"../role-form/role-form.component\";\r\n@Component({\r\n selector: \"role-list\",\r\n templateUrl: \"role-list.component.html\",\r\n styleUrls: [\"role-list.component.scss\"],\r\n})\r\nexport class RoleListComponent extends BaseListComponent {\r\n isloaded: boolean = false;\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n constructor() {\r\n super();\r\n this.inputEditorform = RoleFormComponent;\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.Role.Name\"),\r\n name: \"Name\",\r\n order: 0,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"text\",\r\n modelName: \"Name\",\r\n maxLength: 256,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.Role.DisplayName\"),\r\n name: \"DisplayName\",\r\n order: 1,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"text\",\r\n modelName: \"Description\",\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.Role.Description\"),\r\n name: \"Description\",\r\n order: 1,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"text\",\r\n modelName: \"Description\",\r\n });\r\n this.FillData();\r\n }\r\n\r\n ngOnInit() {\r\n this.apiName = \"Role\";\r\n this.areaName = \"General\";\r\n this.label = this.translate(\"ClientApp.GNR.Role.UserRole\");\r\n this.accountService.authService.getMvcController();\r\n }\r\n\r\n canManageForms(action: string) {\r\n if (this.isloaded) return true;\r\n return this.accountService.userHasPermission(`${this.areaName}:${this.apiName}`, action);\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.isloaded = true;\r\n }\r\n\r\n async FillData() {\r\n const currentInformation = this.accountService.authService.currentInformation();\r\n if (currentInformation?.BranchingLightEnabled || currentInformation?.BranchingAdvancedEnabled) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch/Security\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.GNR.Role.InfoBranchCanNotDeleted\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.GNR.Role.InfoCentralOfficeCanNotDeleted\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n if (currentInformation?.RestaurantCallCenter && !this.accountService.authService.currentBranch?.AccessToAllBranches) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n }\r\n}\r\n","
\r\n \r\n \r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RoleListComponent } from './role-list/role-list.component';\r\nimport { RoleFormComponent } from './role-form/role-form.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nimport { TreeviewModule } from 'projects/ngx-treeview/src/lib';\r\nconst roles =\r\n [\r\n RoleListComponent,\r\n RoleFormComponent\r\n ]\r\n@NgModule({\r\n declarations: [...roles,],\r\n exports: [...roles],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule,\r\n TreeviewModule.forRoot(),\r\n ]\r\n})\r\nexport class RoleModule { }\r\n","import { ChangeDetectorRef, Component, Input, ViewChild } from \"@angular/core\";\r\nimport { EditableGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/editable-grid/editable-grid.component\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { RowAccess } from \"projects/sepidz-web-framework/src/lib/models/row-access.model\";\r\nimport { GridFilter } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n@Component({\r\n selector: \"row-access\",\r\n templateUrl: \"row-access.component.html\",\r\n styleUrls: [\"row-access.component.scss\"],\r\n})\r\nexport class RowAccessComponent extends BaseFormComponent {\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n @ViewChild(EditableGridComponent) grid: EditableGridComponent;\r\n @Input() RowKindId: number;\r\n @Input() SelectedRows: number[];\r\n dataList: RowAccess[];\r\n entityList: RowAccess[];\r\n async ngOnInit() {\r\n this.apiName = \"RowAccess\";\r\n this.label = this.translate(\"ClientApp.GNR.RowAccess.RowAccess\");\r\n super.ngOnInit();\r\n this.populateData();\r\n }\r\n addControl() {\r\n this.cd.markForCheck();\r\n }\r\n async populateData() {\r\n let filters: GridFilter[] = [];\r\n filters.push({ Filed: \"RowKindId\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: this.RowKindId, Logic: \"and\" });\r\n filters.push({ Filed: \"Rowids\", Operator: \"eq\", Type: \"F\", Skip: 0, Take: 20, Value: this.SelectedRows, Logic: \"and\" });\r\n await this.httpCommonService\r\n .GetFilterGrid(\"RowAccess/GetByRowKindIdRowIds\", filters)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (x) => {\r\n if (x) {\r\n this.entityList = x;\r\n this.dataList = [];\r\n x.forEach((d) => {\r\n if (!this.dataList.some((s) => s.UserId === d.UserId)) this.dataList.push(d);\r\n });\r\n this.cd.markForCheck();\r\n }\r\n },\r\n (error) => {\r\n console.log(\"GridError\");\r\n }\r\n );\r\n }\r\n valueChanges($event: any) {\r\n if ($event[\"DisplayName\"] && $event[\"UserName\"]) {\r\n if (this.grid.formGroup.controls[\"UserName\"]) this.grid.formGroup.controls[\"UserName\"].setValue($event[\"DisplayName\"]);\r\n if (this.grid.formGroup.controls[\"FirstName\"]) this.grid.formGroup.controls[\"FirstName\"].setValue($event[\"FirstName\"]);\r\n if (this.grid.formGroup.controls[\"LastName\"]) this.grid.formGroup.controls[\"LastName\"].setValue($event[\"LastName\"]);\r\n if (this.grid.formGroup.controls[\"Active\"]) this.grid.formGroup.controls[\"Active\"].setValue(true);\r\n }\r\n }\r\n public async save() {\r\n if (this.grid.dataList && this.grid.dataList.length > 0) {\r\n this.grid.dataList.forEach((x) => {\r\n this.SelectedRows.forEach((sr) => {\r\n if (x.State !== RowState.Delete && !this.entityList.some((s) => s.UserId === x.UserId && s.RowKindId === this.RowKindId && s.RowId === sr))\r\n this.entityList.push({\r\n State: RowState.New,\r\n FirstName: x.FirstName,\r\n Id: x.Id,\r\n LastName: x.LastName,\r\n RowId: sr,\r\n RowKindId: this.RowKindId,\r\n UserId: x.UserId,\r\n Active: x.Active,\r\n UserName: x.UserName,\r\n });\r\n else if (x.State === RowState.Delete) {\r\n let temp = this.entityList.find((f) => f.UserId === x.UserId && f.RowId === sr);\r\n if (temp) temp.State = x.State;\r\n }\r\n });\r\n });\r\n }\r\n if (this.entityList.length > 0) {\r\n await this.httpCommonService\r\n .create(\"RowAccess/UpdateRowAccess\", this.entityList)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .toPromise()\r\n .then(\r\n (row) => this.saveSuccessHelper(row),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n }\r\n}\r\n","\r\n \r\n 1\"\r\n [columns]=\"columns\"\r\n (valueChanges)=\"valueChanges($event)\" \r\n [isEdit]=\"false\"\r\n [(dataList)]=\"dataList\">\r\n \r\n \r\n","import { Component, OnInit } from \"@angular/core\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\n\r\n@Component({\r\n selector: \"ngx-user-system-log-list\",\r\n templateUrl: \"./user-system-log-list.component.html\",\r\n styleUrls: [\"./user-system-log-list.component.scss\"],\r\n})\r\nexport class UserSystemLogListComponent extends BaseListComponent {\r\n ngOnInit() {\r\n this.apiName = \"UserSystemLog\";\r\n this.label = this.translate(\"ClientApp.GNR.UserSystemLog.UserReport\");\r\n this.areaName = \"General\";\r\n var branch = this.accountService.authService.currentBranch;\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UserSystemLogListComponent } from './user-system-log-list/user-system-log-list.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\n\r\n@NgModule({\r\n declarations: [UserSystemLogListComponent,],\r\n exports: [UserSystemLogListComponent],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class UserSystemLogModule { }\r\n","import { Component, ChangeDetectionStrategy, ChangeDetectorRef } from \"@angular/core\";\r\nimport { form_control, UserEdit } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { LookupItem } from \"projects/sepidz-web-framework/src/lib/models/lookup-item.model\";\r\nimport { UserBranch } from \"projects/sepidz-web-framework/src/lib/models/user-branch.model\";\r\nimport { RowState } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { UserRole } from \"projects/sepidz-web-framework/src/lib/models/user-role.model\";\r\nimport { Dictionary } from \"projects/sepidz-web-framework/src/lib/models/dictionary\";\r\nimport { ValidatorFn, Validators } from \"@angular/forms\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { DataCenterProcess } from \"../../data-center-process/data-center-process.model\";\r\nimport { CheckBrachAccessModel } from \"../../data-center-process/chek-branch-access.model\";\r\nimport { SoftWareLicenseKind } from \"projects/sepidz-web-framework/src/lib/models/license-information.model\";\r\n\r\n@Component({\r\n selector: \"ngx-user-form\",\r\n templateUrl: \"./user-form.component.html\",\r\n styleUrls: [\"./user-form.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class UserFormComponent extends BaseFormComponent {\r\n haserror: boolean = false;\r\n erroremessage: string;\r\n isOk4View: boolean = false;\r\n roles: number[] = [];\r\n hasRialDiscount: number;\r\n hasPercentDiscount: number;\r\n rolesIsLodes: boolean = false;\r\n isAccessToAllBranches = true;\r\n DefaultValues: Dictionary = [];\r\n Branches: form_control[];\r\n deactivateSave: boolean = false;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n this.FillData();\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"Authorization\";\r\n this.label = this.translate(\"ClientApp.GNR.User.DefineUser\");\r\n super.ngOnInit();\r\n this.DefaultValues[\"ApplicationUserId\"] = 0;\r\n this.setValue(\"rialDiscount\", \"\");\r\n this.setValue(\"percentDiscount\", \"\");\r\n }\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n this.Branches = undefined;\r\n this.roles = undefined;\r\n this.DefaultValues = undefined;\r\n }\r\n setdefault() {\r\n if (this.model.UserName === \"SepidzUser\") {\r\n this.erroremessage = this.translate(\"ClientApp.GNR.User.EditingSepidzExpertUserProhibited\");\r\n this.closeModal();\r\n this.sts.showToast(\r\n \"control\",\r\n this.translate(\"ClientApp.GNR.User.SepidzUser\"),\r\n this.translate(\"ClientApp.GNR.User.EditingSepidzExpertUserProhibited\"),\r\n 3000\r\n );\r\n }\r\n if (!this.model.Branches) this.model.Branches = [];\r\n if (!this.model.Roles) this.model.Roles = [];\r\n if (this.isNewRow) {\r\n this.model.IsEnabled = true;\r\n\r\n ///به درخواست Ramez\r\n // this.model.NewPassword = \"123456\";\r\n // this.model.ConfirmPassword = \"123456\";\r\n }\r\n this.model.Roles.forEach((x) => {\r\n if (!this.roles.some((r) => r === x.ApplicationRoleId)) this.roles.push(x.ApplicationRoleId);\r\n });\r\n this.rolesIsLodes = true;\r\n if (!this.accountService.authService.currentBranch) {\r\n setTimeout(() => this.populateBranch(), 300);\r\n } else {\r\n this.populateBranch();\r\n }\r\n }\r\n setColumnAttribute() {\r\n this.orignalColumns.forEach((x) => {\r\n if (x.name.includes(\"Password\")) {\r\n x.textType = \"password\";\r\n }\r\n if (x.name.includes(\"PasswordHash\")) x.required = false;\r\n if (x.name.includes(\"NormalizedUserName\")) x.required = false;\r\n if (x.name.includes(\"NormalizedDisplayName\")) x.required = false;\r\n if (x.name.includes(\"SerialNumber\")) x.required = false;\r\n if (this.accountService.authService.currentInformation().HasProtel) {\r\n if (x.name === \"ProtelCode\") x.formVisible = true;\r\n }\r\n });\r\n this.columns = this.orignalColumns.filter(\r\n (f) => ((!f.areaName || f.areaName === \"default\") && f.formVisible) || (f.DetailControlModels && f.DetailControlModels[f.name].length > 0)\r\n );\r\n this.Branches = this.getDetailControlModels(\"Branches\");\r\n this.cd.markForCheck();\r\n }\r\n addControl() {\r\n this.setValue(\"RolesId\", this.roles);\r\n this.setValue(\"ConfirmPassword\", this.model.ConfirmPassword);\r\n this.setValue(\"NewPassword\", this.model.NewPassword);\r\n this.setValue(\"PreventChangeClear\", this.model.PreventChangeClear);\r\n this.setValue(\"SerialNumber\", this.model.SerialNumber);\r\n this.setValue(\"rialDiscount\", this.model.RialDiscount);\r\n this.setValue(\"percentDiscount\", this.model.PercentDiscount);\r\n let validator: ValidatorFn[] = [];\r\n validator.push(Validators.minLength(3));\r\n validator.push(Validators.maxLength(128));\r\n this.formGroup.get(\"NewPassword\").setValidators(validator);\r\n this.formGroup.get(\"ConfirmPassword\").setValidators(validator);\r\n this.cd.markForCheck();\r\n this.formGroup\r\n ?.get(\"UserName\")\r\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((val) => {\r\n if (val !== this.formGroup.controls[\"DisplayName\"].value && this.formGroup.dirty) {\r\n this.formGroup.controls[\"DisplayName\"].setValue(val);\r\n }\r\n });\r\n }\r\n Discount() {\r\n if (this.formGroup.controls[\"percentDiscount\"].value > 100) {\r\n this.setValue(\"percentDiscount\", \"100\");\r\n }\r\n }\r\n populateBranch() {\r\n if (!this.model.Branches) this.model.Branches = [];\r\n this.isOk4View = false;\r\n if (this.accountService.authService.currentBranch.AccessToAllBranches) {\r\n this.isAccessToAllBranches = true;\r\n this.httpCommonService\r\n .getList(\"Branch/ReadLookUp\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (data) => {\r\n (data as []).forEach((br: LookupItem) => {\r\n const b = this.model.Branches.find((x) => x.BranchId === br.Id);\r\n if (!b) {\r\n let entity = {};\r\n entity.BranchId = br.Id;\r\n entity.BranchTitle = br.Title;\r\n entity.IsActive = true;\r\n entity.State = RowState.New;\r\n if (!this.model || !(this.model.Id > 0)) {\r\n //اگر در مد ایجاد بودیم\r\n entity.Selected = true;\r\n } else {\r\n entity.Selected = false;\r\n }\r\n this.model.Branches.push(entity);\r\n } else b.Selected = true;\r\n });\r\n this.isOk4View = true;\r\n this.cd.markForCheck();\r\n },\r\n (error) => this.getFailedHelper(error)\r\n );\r\n } else {\r\n this.isAccessToAllBranches = false;\r\n this.httpCommonService\r\n .getItem(\"Branch/GetLookUpByBranchId\", this.accountService.authService.currentBranchId)\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: LookupItem) => {\r\n if (!this.model.Branches) this.model.Branches = [];\r\n const itemBranch = this.model.Branches.find((x) => x.BranchId === data.Id);\r\n if (!itemBranch) {\r\n let entity = {};\r\n entity.BranchId = data.Id;\r\n entity.BranchTitle = data.Title;\r\n entity.IsActive = true;\r\n entity.State = RowState.New;\r\n entity.Selected = true;\r\n this.model.Branches.push(entity);\r\n } else {\r\n this.model.Branches = [];\r\n itemBranch.Selected = true;\r\n this.model.Branches.push(itemBranch);\r\n }\r\n this.isOk4View = true;\r\n this.cd.markForCheck();\r\n });\r\n }\r\n }\r\n beforupdate() {\r\n this.model.RialDiscount = this.formGroup.controls[\"rialDiscount\"].value;\r\n this.model.PercentDiscount = this.formGroup.controls[\"percentDiscount\"].value;\r\n\r\n this.roles = this.formGroup.controls[\"RolesId\"].value;\r\n\r\n this.model.Branches = this.model.Branches.filter((x) => x.Selected);\r\n if (this.model.Branches && this.model.Branches.length <= 0) this.model.Branches = null;\r\n\r\n this.model.Roles.forEach((x) => {\r\n if (!this.roles.some((r) => r === x.ApplicationRoleId)) x.State = RowState.Delete;\r\n });\r\n this.roles.forEach((x) => {\r\n if (!this.model.Roles.some((r) => r.ApplicationRoleId === x)) {\r\n let role: UserRole = {};\r\n role.ApplicationRoleId = x;\r\n role.ApplicationUserId = this.model.Id;\r\n role.State = RowState.New;\r\n this.model.Roles.push(role);\r\n }\r\n });\r\n this.setValue(\"Roles\", this.model.Roles);\r\n }\r\n isValid(): boolean {\r\n if (this.erroremessage !== this.translate(\"ClientApp.GNR.User.InfoBranchCanNotDeleted\")) this.erroremessage = undefined;\r\n this.haserror = false;\r\n if (this.formGroup.controls[\"NewPassword\"].value) {\r\n let newPassword: string = this.formGroup.controls[\"NewPassword\"].value;\r\n let confirmPass = this.formGroup.controls[\"ConfirmPassword\"].value;\r\n if (!newPassword || !confirmPass) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.GNR.User.PasswordRequired\");\r\n } else if (newPassword && !newPassword.trim()) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.GNR.User.PasswordNotContainOnlyHyphens\");\r\n } else if (newPassword && confirmPass && newPassword !== confirmPass) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.GNR.User.CompareFaild\");\r\n }\r\n }\r\n\r\n if (this.isNewRow) {\r\n if (!(this.model.Branches.filter((x) => x.Selected).length > 0)) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.GNR.Branch.DontHaveBranch\");\r\n }\r\n } else if (!(this.model.Branches.filter((x) => x.Selected).length > 0)) {\r\n this.haserror = true;\r\n this.erroremessage = this.translate(\"ClientApp.GNR.Branch.DontHaveBranch\");\r\n }\r\n return this.haserror ? this.haserror : !this.haserror;\r\n }\r\n onChanged($event) {\r\n if (this.haserror || this.model.Branches.filter((x) => x.Selected)[0]) {\r\n this.isValid();\r\n }\r\n }\r\n roleChanged() {\r\n setTimeout(() => this.cd.markForCheck(), 100);\r\n }\r\n async FillData() {\r\n if (\r\n this.accountService.authService.currentInformation().BranchingLightEnabled ||\r\n this.accountService.authService.currentInformation().BranchingAdvancedEnabled\r\n ) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Security\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.sts.showDialog(this.translate(\"ClientApp.GNR.User.InfoBranchCanNotDeleted\"), this.translate(\"ClientApp.GNR.User.Attention\"));\r\n this.deactivateSave = true;\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.sts.showDialog(\r\n this.translate(\"ClientApp.GNR.User.InfoCentralOfficeCanNotDeleted\"),\r\n this.translate(\"ClientApp.GNR.User.Attention\")\r\n );\r\n this.deactivateSave = true;\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n (error) => this.getFailedHelper(error);\r\n }\r\n }\r\n}\r\n"," 0\"\r\n [apiName]=\"apiName\"\r\n [label]=\"label\"\r\n [group]=\"formGroup\"\r\n [areaName]=\"areaName\"\r\n [model]=\"model\"\r\n [erroremessage]=\"erroremessage\"\r\n [columns]=\"columns\"\r\n (valueChange)=\"onChanged($event)\"\r\n [noSubmit]=\"deactivateSave\"\r\n (cancelChange)=\"cancel()\"\r\n (submitChange)=\"save()\"\r\n class=\"user-form\">\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n 0 && isOk4View\"\r\n [DefaultValues]=\"DefaultValues\"\r\n [columns]=\"Branches\"\r\n [dataList]=\"model.Branches\"\r\n [isAdd]=\"false\"\r\n [isDelete]=\"false\">\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n","import { Component, OnInit, AfterViewInit } from \"@angular/core\";\r\nimport { form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { AccountService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { UserFormComponent } from \"../user-form/user-form.component\";\r\nimport { FormControlTypes } from \"projects/sepidz-web-framework/src/lib/models/form-base-control.model\";\r\nimport { BaseListComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-list.component\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { DataCenterProcess } from \"../../data-center-process/data-center-process.model\";\r\nimport { CheckBrachAccessModel } from \"../../data-center-process/chek-branch-access.model\";\r\n@Component({\r\n selector: \"user-list\",\r\n templateUrl: \"./user-list.component.html\",\r\n styleUrls: [\"./user-list.component.scss\"],\r\n})\r\nexport class UserListComponent extends BaseListComponent {\r\n IgnoreDelete: boolean = false;\r\n deleteMessage: string = \"\";\r\n isAdd: boolean = true;\r\n isEdit: boolean = true;\r\n isDelete: boolean = true;\r\n constructor() {\r\n super();\r\n this.inputEditorform = UserFormComponent;\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.User.UserName\"),\r\n name: \"UserName\",\r\n order: 0,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"text\",\r\n modelName: \"UserName\",\r\n maxLength: 256,\r\n controlType: FormControlTypes.textbox,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.User.FullName\"),\r\n name: \"DisplayName\",\r\n order: 1,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"text\",\r\n modelName: \"FullName\",\r\n controlType: FormControlTypes.textbox,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.User.NewPassword\"),\r\n name: \"newPassword\",\r\n order: 2,\r\n listVisible: false,\r\n formVisible: true,\r\n required: false,\r\n textType: \"password\",\r\n modelName: \"newPassword\",\r\n controlType: FormControlTypes.textbox,\r\n maxLength: 20,\r\n minLength: 6,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.User.ConfirmPassword\"),\r\n name: \"confirmPassword\",\r\n order: 3,\r\n listVisible: false,\r\n formVisible: true,\r\n required: false,\r\n textType: \"password\",\r\n modelName: \"confirmPassword\",\r\n controlType: FormControlTypes.textbox,\r\n maxLength: 20,\r\n minLength: 6,\r\n });\r\n this.columns.push({\r\n label: this.translate(\"ClientApp.GNR.User.Active\"),\r\n name: \"IsEnabled\",\r\n order: 4,\r\n listVisible: true,\r\n formVisible: true,\r\n required: true,\r\n textType: \"checkbox\",\r\n modelName: \"IsEnabled\",\r\n controlType: FormControlTypes.checkbox,\r\n });\r\n this.FillData();\r\n }\r\n ngOnInit() {\r\n this.apiName = \"Authorization\";\r\n this.label = this.translate(\"ClientApp.GNR.User.DefineUser\");\r\n this.areaName = \"General\";\r\n }\r\n async FillData() {\r\n const currentBranch = this.accountService.authService.currentInformation();\r\n if (currentBranch.BranchingLightEnabled || currentBranch.BranchingAdvancedEnabled || currentBranch.RestaurantCallCenter) {\r\n this.httpCommonService\r\n .getList(\"UserLocalSetting/GetValidationBranch\" + \"/Security\")\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((hbc: CheckBrachAccessModel) => {\r\n if (!this.accountService.authService.currentBranch.AccessToAllBranches && hbc.BranchCount != 1) {\r\n this.isAdd = false;\r\n this.isEdit = false;\r\n this.isDelete = false;\r\n }\r\n if (hbc.TransferKindCode != 3) {\r\n if ((hbc.TransferKindCode == 2 || hbc.TransferKindCode == 5) && hbc.HasCommunication == true && hbc.BranchCount == 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.GNR.User.InfoBranchCanNotDeleted\");\r\n return;\r\n } else {\r\n if ((hbc.TransferKindCode == 1 || hbc.TransferKindCode == 4) && hbc.BranchCount > 1) {\r\n this.IgnoreDelete = true;\r\n this.deleteMessage = this.translate(\"ClientApp.GNR.User.InfoCentralOfficeCanNotDeleted\");\r\n return;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { UserListComponent } from './user-list/user-list.component';\r\nimport { UserFormComponent } from './user-form/user-form.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nconst roles =\r\n [\r\n UserListComponent,\r\n UserFormComponent\r\n ]\r\n@NgModule({\r\n declarations: [...roles,],\r\n exports: [...roles],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule\r\n ]\r\n})\r\nexport class UserModule { }\r\n","import { ngxMenuItem } from \"projects/sepidz-web-framework/src/lib/models/ngxMenuItem\";\r\nimport { RoleListComponent } from \"src/app/gnr/role/role-list/role-list.component\";\r\nimport { UserListComponent } from \"src/app/gnr/user/user-list/user-list.component\";\r\nimport { ResetPasswordListComponent } from \"src/app/gnr/resetpassword/resetpassword-list.component\";\r\nimport { Permission } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { ProvinceListComponent } from \"src/app/gnr/province/province-list/province-list.component\";\r\nimport { CityListComponent } from \"src/app/gnr/city/city-list/city-list.component\";\r\nimport { FiscalYearListComponent } from \"src/app/gnr/fiscal-year/fiscal-year-list/fiscal-year-list.component\";\r\nimport { MissetupComponent } from \"src/app/gnr/missetup/missetup.component\";\r\nimport { CompanyListComponent } from \"../gnr/company/company-list/company-list.component\";\r\nimport { BranchListComponent } from \"../gnr/branch/branch-list/branch-list.component\";\r\nimport { ZoneListComponent } from \"src/app/frontoffice/parties/zone/zone-list.component\";\r\nimport { CustomerCategoryListComponent } from \"src/app/frontoffice/parties/customer-category/customer-category-list.component\";\r\nimport { CustomerListComponent } from \"src/app/frontoffice/parties/customer/customer-list.component\";\r\nimport { PersonnelListComponent } from \"src/app/frontoffice/parties/personnel/personnel-list.component\";\r\nimport { ItemCategoryListComponent } from \"src/app/frontoffice/catalog/item-category-list/item-category-list.component\";\r\nimport { MeasurementUnitListComponent } from \"src/app/frontoffice/catalog/measurement-unit-list/measurement-unit-list.component\";\r\nimport { SalePriceTypeListComponent } from \"src/app/frontoffice/catalog/sale-price-type-list/sale-price-type-list.component\";\r\nimport { ItemListComponent } from \"src/app/frontoffice/catalog/item-list/item-list.component\";\r\nimport { DescriptionListComponent } from \"src/app/frontoffice/catalog/description-list/description-list.component\";\r\nimport { AdditiveListComponent } from \"src/app/frontoffice/catalog/additive-list/additive-list.component\";\r\nimport { SaleMethodListComponent } from \"../frontoffice/sales/sale-method/sale-method-list/sale-method-list.component\";\r\nimport { SaleMethodBranchList } from \"src/app/frontoffice/sales/sale-method-branch/sale-method-branch-list/sale-method-branch-list\";\r\nimport { GroupMessageComponent } from \"src/app/frontoffice/messaging/group-message/group-message.component\";\r\nimport { MessageTemplateListComponent } from \"src/app/frontoffice/messaging/message-template/message-template-list/message-template-list.component\";\r\nimport { MessageListComponent } from \"src/app/frontoffice/messaging/message-list/message-list.component\";\r\nimport { GeneralLedgerListComponent } from \"src/app/backoffice/acc/generalledger/generalledger-list.component\";\r\nimport { GroupLedgerListComponent } from \"src/app/backoffice/acc/groupledger/groupledger-list/groupledger-list.component\";\r\nimport { SubLedgerListComponent } from \"src/app/backoffice/acc/subledger/subledger-list/subledger-list.component\";\r\nimport { AccVoucherListComponent } from \"src/app/backoffice/acc/accvoucher/accvoucher-list/accvoucher-list.component\";\r\nimport { DetailLedgerKindListComponent } from \"src/app/backoffice/acc/detailledgerkind/detailledgerkind-list.component\";\r\nimport { AccVoucherFormComponent } from \"src/app/backoffice/acc/accvoucher/accvoucher-form/accvoucher-form.component\";\r\nimport { DetailLedgerListComponent } from \"src/app/backoffice/acc/detailledger/detailledger-list/detailledger-list.component\";\r\nimport { AccVoucherKindListComponent } from \"src/app/backoffice/acc/accvoucherkind/accvoucherkind-list/accvoucherkind-list.component\";\r\nimport { WarehouseListComponent } from \"src/app/backoffice/inv/warehouse/warehouse-list/warehouse-list.component\";\r\nimport { UnitListComponent } from \"src/app/backoffice/inv/unit/unit-list/unit-list.component\";\r\nimport { InvVoucherKindListComponent } from \"src/app/backoffice/inv/inv-voucher-kind/inv-voucher-kind-list/inv-voucher-kind-list.component\";\r\nimport { GoodsGroupListComponent } from \"src/app/backoffice/inv/goods-group/goods-group-list/goods-group-list.component\";\r\nimport { GoodsListComponent } from \"src/app/backoffice/inv/goods/goods-list/goods-list.component\";\r\nimport { InvBalanceFormComponent } from \"src/app/backoffice/inv/inv-balance/inv-balance-form/inv-balance-form.component\";\r\nimport { PrintPolicyListComponent } from \"src/app/frontoffice/prints/print-policy-list/print-policy-list.component\";\r\nimport { SalonListComponent } from \"src/app/frontoffice/salons/salon-list/salon-list.component\";\r\nimport { OrderPageComponent } from \"src/app/frontoffice/order/orderpage/orderpage.component\";\r\nimport { InvVoucherListComponent } from \"../backoffice/inv/invvoucher/invvoucher-list/invvoucher-list.component\";\r\nimport { AccountReviewComponent } from \"src/app/backoffice/acc/report/account-review/account-review.component\";\r\nimport { InventoryReviewComponent } from \"src/app/backoffice/inv/report/inventory-review/inventory-review.component\";\r\nimport { DashboardComponent } from \"src/app/frontoffice/review/dashboard/dashboard.component\";\r\nimport { SalesReviewComponent } from \"src/app/frontoffice/review/sales-review/sales-review.component\";\r\nimport { CustomerReviewComponent } from \"src/app/frontoffice/review/customer-review/customer-review.component\";\r\nimport { SecurityReviewComponent } from \"src/app/frontoffice/review/security-review/security-review.component\";\r\nimport { TakingOfInventoryListComponent } from \"src/app/backoffice/inv/taking-of-inventory/taking-of-inventory-list/taking-of-inventory-list.component\";\r\nimport { InventoryClosingListComponent } from \"src/app/backoffice/inv/inventory-closing/inventory-closing-list/inventory-closing-list.component\";\r\nimport { SaleReportDesinerComponent } from \"src/app/frontoffice/prints/sale-report-desiner/sale-report-desiner.component\";\r\nimport { DriverAssignmentComponent } from \"../frontoffice/driverassignment/driverassignment.component\";\r\nimport { MovementVoucherComponent } from \"../backoffice/acc/movement-voucher/movement-voucher.component\";\r\nimport { GeneralLedgerVoucherListComponent } from \"../backoffice/acc/general-ledger-voucher/general-ledger-voucher-list/general-ledger-voucher-list.component\";\r\nimport { BarCodeReaderFormatListComponent } from \"../gnr/bar-code-reader-format/bar-code-reader-format-list/bar-code-reader-format-list.component\";\r\nimport { BankListComponent } from \"../backoffice/trs/bank/bank-list/bank-list.component\";\r\nimport { CashListComponent } from \"../backoffice/trs/cash/cash-list/cash-list.component\";\r\nimport { BankBranchListComponent } from \"../backoffice/trs/bank-branch/bank-branch-list/bank-branch-list.component\";\r\nimport { BankAccountListComponent } from \"../backoffice/trs/bank-account/bank-account-list/bank-account-list.component\";\r\nimport { TrsConcernListComponent } from \"../backoffice/trs/trs-concern/trs-concern-list/trs-concern-list.component\";\r\nimport { ChequeBookListComponent } from \"../backoffice/trs/cheque-book/cheque-book-list/cheque-book-list.component\";\r\nimport { TrsVoucherKindListComponent } from \"../backoffice/trs/trs-voucher-kind/trs-voucher-kind-list/trs-voucher-kind-list.component\";\r\nimport { TrsVoucherListComponent } from \"../backoffice/trs/trs-voucher/trs-voucher-list/trs-voucher-list.component\";\r\nimport { TreasuryReviewComponent } from \"../backoffice/trs/report/treasury-review/treasury-review.component\";\r\nimport { AccCloseProfitandLossAccountsListComponent } from \"../backoffice/acc/acc-close-profitand-loss-accounts/acc-close-profitand-loss-accounts-list/acc-close-profitand-loss-accounts-list.component\";\r\nimport { CreateOpeningJournalVoucherListComponent } from \"../backoffice/acc/create-opening-journal-voucher/create-opening-journal-voucher-list/create-opening-journal-voucher-list.component\";\r\nimport { CreateClosingJournalVoucherListComponent } from \"../backoffice/acc/create-closing-journal-voucher/create-closing-journal-voucher-list/create-closing-journal-voucher-list.component\";\r\nimport { ControlContraryNatureAccountListComponent } from \"../backoffice/acc/control-contrary-nature-account/control-contrary-nature-account-list/control-contrary-nature-account-list.component\";\r\nimport { InvBalanceListComponent } from \"../backoffice/inv/inv-balance/inv-balance-list/inv-balance-list.component\";\r\nimport { InvVoucherPricingListComponent } from \"../backoffice/inv/inv-voucher-pricing/inv-voucher-pricing-list/inv-voucher-pricing-list.component\";\r\nimport { InvNoReferenceVoucherFormComponent } from \"../backoffice/inv/report/inv-no-reference-voucher/inv-no-reference-voucher-form.component\";\r\nimport { DriverSettlementListComponent } from \"../frontoffice/financial/driversettlement/driversettlement-list/driversettlement-list.component\";\r\nimport { PaymentMethodListComponent } from \"../frontoffice/financial/paymentmethod/payment-method-list/payment-method-list.component\";\r\nimport { CasheirSettlementListComponent } from \"../frontoffice/financial/driversettlement/cashiersettlement-list/casheirsettlement-list.component\";\r\nimport { SellCustomerListComponent } from \"../backoffice/sell/sell-customer/sell-customer-list/sell-customer-list.component\";\r\nimport { SellKindListComponent } from \"../backoffice/sell/sell-kind/sell-kind-list/sell-kind-list.component\";\r\nimport { SellCustomerGroupListComponent } from \"../backoffice/sell/sell-customer-group/sell-customer-group-list/sell-customer-group-list.component\";\r\nimport { PriceListHeaderListComponent } from \"../backoffice/sell/price-list-header/price-list-header-list/price-list-header-list.component\";\r\nimport { SellVoucherKindListComponent } from \"../backoffice/sell/sell-voucher-kind/sell-voucher-kind-list/sell-voucher-kind-list.component\";\r\nimport { SellVoucherListComponent } from \"../backoffice/sell/sell-voucher/sell-voucher-list/sell-voucher-list.component\";\r\nimport { CustomerReceiptPaymentListComponent } from \"../frontoffice/financial/customer-receipt-payment/customer-receipt-payment-list/customer-receipt-payment-list.component\";\r\nimport { DataCenterProcessListComponent } from \"../gnr/data-center-process/data-center-process-list/data-center-process-list.component\";\r\nimport { LocalSettingListComponent } from \"../frontoffice/local-setting/local-setting-list/local-setting-list.component\";\r\nimport { OrganizationalUnitListComponent } from \"../backoffice/hrm/base-info/organizational-unit/organizational-unit-list/organizational-unit-list.component\";\r\nimport { JobClassificationListComponent } from \"../backoffice/hrm/base-info/job-classification/job-classification-list/job-classification-list.component\";\r\nimport { JobsListComponent } from \"../backoffice/hrm/base-info/jobs/jobs-list/jobs-list.component\";\r\nimport { EmploymentKindListComponent } from \"../backoffice/hrm/base-info/employment-kind/employment-kind-list/employment-kind-list.component\";\r\nimport { WorkplaceListComponent } from \"../backoffice/hrm/base-info/workplace/workplace-list/workplace-list.component\";\r\nimport { JobGroupListComponent } from \"../backoffice/hrm/payment-system/job-group/job-group-list/job-group-list.component\";\r\nimport { JobBaseListComponent } from \"../backoffice/hrm/payment-system/job-base/job-base-list/job-base-list.component\";\r\nimport { JobRankingListComponent } from \"../backoffice/hrm/payment-system/job-ranking/job-ranking-list/job-ranking-list.component\";\r\nimport { PayCompaniesListComponent } from \"../backoffice/hrm/base-info/pay-companies/pay-companies-list/pay-companies-list.component\";\r\nimport { CitizenshipKindListComponent } from \"../backoffice/hrm/reference-lists/citizenship-kind/citizenship-kind-list/citizenship-kind-list.component\";\r\nimport { NationalityKindListComponent } from \"../backoffice/hrm/reference-lists/nationality-kind/nationality-kind-list/nationality-kind-list.component\";\r\nimport { ReligionKindListComponent } from \"../backoffice/hrm/reference-lists/religion-kind/religion-kind-list/religion-kind-list.component\";\r\nimport { FaithKindListComponent } from \"../backoffice/hrm/reference-lists/faith-kind/faith-kind-list/faith-kind-list.component\";\r\nimport { MartyrFamilayKindListComponent } from \"../backoffice/hrm/reference-lists/martyr-familay-kind/martyr-familay-kind-list/martyr-familay-kind-list.component\";\r\nimport { VeteranWorkShiftKindListComponent } from \"../backoffice/hrm/reference-lists/veteran-work-shift-kind/veteran-work-shift-kind-list/veteran-work-shift-kind-list.component\";\r\nimport { CourseTitleListComponent } from \"../backoffice/hrm/reference-lists/course-title/course-title-list/course-title-list.component\";\r\nimport { LanguageKindListComponent } from \"../backoffice/hrm/reference-lists/language-kind/language-kind-list/language-kind-list.component\";\r\nimport { FluencyInReadingTheLanguageListComponent } from \"../backoffice/hrm/reference-lists/fluency-in-reading-the-language/fluency-in-reading-the-language-list/fluency-in-reading-the-language-list.component\";\r\nimport { ProficiencyInWritingListComponent } from \"../backoffice/hrm/reference-lists/proficiency-in-writing/proficiency-in-writing-list/proficiency-in-writing-list.component\";\r\nimport { FluencyInLanguageConversationListComponent } from \"../backoffice/hrm/reference-lists/fluency-in-language-conversation/fluency-in-language-conversation-list/fluency-in-language-conversation-list.component\";\r\nimport { EducationDegreeListComponent } from \"../backoffice/hrm/reference-lists/education-degree/education-degree-list/education-degree-list.component\";\r\nimport { FieldOfStudyListComponent } from \"../backoffice/hrm/reference-lists/field-of-study/field-of-study-list/field-of-study-list.component\";\r\nimport { AcademicOrientationListComponent } from \"../backoffice/hrm/reference-lists/academic-orientation/academic-orientation-list/academic-orientation-list.component\";\r\nimport { ReasonForDismissalListComponent } from \"../backoffice/hrm/reference-lists/reason-for-dismissal/reason-for-dismissal-list/reason-for-dismissal-list.component\";\r\nimport { RetirementKindListComponent } from \"../backoffice/hrm/reference-lists/retirement-kind/retirement-kind-list/retirement-kind-list.component\";\r\nimport { TaxGroupListComponent } from \"../backoffice/hrm/reference-lists/tax-group/tax-group-list/tax-group-list.component\";\r\nimport { ElementListComponent } from \"../backoffice/hrm/base-info/element/element-list/element-list.component\";\r\nimport { OrganizationalPostsListComponent } from \"../backoffice/hrm/base-info/organizational-posts/organizational-posts-list/organizational-posts-list.component\";\r\nimport { HrmLoanToPersonnelListComponent } from \"../backoffice/hrm/loan/hrm-loan-to-personnel-list/hrm-loan-to-personnel-list.component\";\r\nimport { HrmTaxTableListComponent } from \"../backoffice/hrm/base-info/hrm-tax-table/hrm-tax-table-list/hrm-tax-table-list.component\";\r\nimport { HrmWorkCalendarListComponent } from \"../backoffice/hrm/base-info/hrm-work-calendar/hrm-work-calendar-list/hrm-work-calendar-list.component\";\r\nimport { CostCenterListComponent } from \"../backoffice/hrm/base-info/cost-center/cost-center-list/cost-center-list.component\";\r\nimport { ProjectListComponent } from \"../backoffice/hrm/base-info/project/project-list/project-list.component\";\r\nimport { HrmLoanKindListComponent } from \"../backoffice/hrm/loan/hrm-loan-kind/hrm-loan-kind-list/hrm-loan-kind-list.component\";\r\nimport { HrmPersonnelListComponent } from \"../backoffice/hrm/hrm-personnel/hrm-personnel-list/hrm-personnel-list.component\";\r\nimport { HRNotificationKindListComponent } from \"../backoffice/hrm/base-info/hrnotification-kind/hrnotification-kind-list/hrnotification-kind-list.component\";\r\nimport { HRNotificationHeaderListComponent } from \"../backoffice/hrm/hrnotification-header/hrnotification-header-list/hrnotification-header-list.component\";\r\nimport { FinanceNotificationHeaderListComponent } from \"../backoffice/hrm/finance-notification-header/finance-notification-header-list/finance-notification-header-list.component\";\r\nimport { MonthlySalaryCalculationInformationComponent } from \"../backoffice/hrm/monthly-salary-calculation-information/monthly-salary-calculation-information/monthly-salary-calculation-information.component\";\r\nimport { MonthlyWorkInformationComponent } from \"../backoffice/hrm/monthly-work-information/monthly-work-information/monthly-work-information.component\";\r\nimport { HrmMapReportListComponent } from \"../backoffice/hrm/base-info/hrm-map-report/hrm-map-report-list/hrm-map-report-list.component\";\r\nimport { PayMVPersReportComponent } from \"../backoffice/hrm/report/pay-mvpers-report/pay-mvpers-report.component\";\r\nimport { HrmReviewComponent } from \"../backoffice/hrm/report/hrm-review/hrm-review.component\";\r\nimport { MessageManagementTelephoneListComponent } from \"../frontoffice/messaging/message-management-telephone/message-management-telephone-list/message-management-telephone-list.component\";\r\nimport { ManagementMessageListComponent } from \"../frontoffice/messaging/management-message/management-message-list/management-message-list.component\";\r\nimport { UserSystemLogListComponent } from \"../gnr/user-system-log/user-system-log-list/user-system-log-list.component\";\r\nimport { HrmBankAccountListComponent } from \"../backoffice/hrm/base-info/hrm-bank-account/hrm-bank-account-list/hrm-bank-account-list.component\";\r\nimport { HrmBankListComponent } from \"../backoffice/hrm/base-info/hrm-bank/hrm-bank-list/hrm-bank-list.component\";\r\nimport { CostGroupListComponent } from \"../frontoffice/cost/costgroup/costgroup-list/costgroup-list.component\";\r\nimport { CostListComponent } from \"../frontoffice/cost/cost/cost-list/cost-list.component\";\r\nimport { CostSpentListComponent } from \"../frontoffice/cost/spentcost/costspent-list/costspent-list.component\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { PeopleInfoListComponent } from \"../gnr/people-info/peopleInfo-list.component\";\r\nimport { ZonePriceAnnouncementListComponent } from \"../frontoffice/parties/zone-price-announcement/zone-price-announcement-list/zone-price-announcement-list.component\";\r\nimport { SellCustomerReviewComponent } from \"../backoffice/sell/report/sell-customer-review/sell-customer-review.component\";\r\nimport { DebtorCreditorNoticesHeaderListComponent } from \"../backoffice/sell/debtor-creditor-notices-header/debtor-creditor-notices-header-list/debtor-creditor-notices-header-list.component\";\r\nimport { ItemPriceChangeListComponent } from \"../frontoffice/catalog/item-price-change/item-price-change-list/item-price-change-list.component\";\r\nimport { HrmInsuranceReportComponent } from \"../backoffice/hrm/report/hrm-insurance-report/hrm-insurance-report.component\";\r\nimport { HrmTaxReportComponent } from \"../backoffice/hrm/report/hrm-tax-report/hrm-tax-report.component\";\r\nimport { BillPayReportComponent } from \"../backoffice/hrm/report/bill-pay-report/bill-pay-report.component\";\r\nimport { HrmInsuranceDskComponent } from \"../backoffice/hrm/report/hrm-insurance-disk/hrm-insurance-disk.component\";\r\nimport { HrmDiskFormatListComponent } from \"../backoffice/hrm/report/hrm-disk-format/hrm-disk-format-list/hrm-disk-format-list.component\";\r\nimport { TaxPayerSystemListComponent } from \"../frontoffice/TaxPayerSystem/TaxPayerSystem-list/TaxPayerSystem-list.component\";\r\nimport { AccountingSettingListComponent } from \"../frontoffice/financial/accounting-setting/accounting-setting-list/accounting-setting-list.component\";\r\nimport { DeliveredComponent } from \"../frontoffice/order/delivered/delivered.component\";\r\nimport { CostsSpentReviewComponent } from \"../frontoffice/review/costs-spent-review/costs-spent-review.component\";\r\nimport { HrmAccVoucherCodeComponent } from \"../backoffice/hrm/acc-voucher/hrm-acc-voucher-code/hrm-acc-voucher-code.component\";\r\nimport { HrmAccVoucherComponent } from \"../backoffice/hrm/acc-voucher/hrm-acc-voucher/hrm-acc-voucher.component\";\r\nimport { HrmAccVoucherHeaderComponent } from \"../backoffice/hrm/acc-voucher/hrm-acc-voucher-header/hrm-acc-voucher-header.component\";\r\nimport { ConnectOnlineMenuComponent } from \"../frontoffice/portal/connect-online-menu/connect-online-menu.component\";\r\nimport { HrmPersonnelElementInitialComponent } from \"../backoffice/hrm/hrm-personnel-element-initial/hrm-personnel-element-initial.component\";\r\nimport { ProductConversionListComponent } from \"../backoffice/inv/product-conversion/product-conversion-form/product-conversion-list/product-conversion-list.component\";\r\nimport { ProductConversionStandardListComponent } from \"../backoffice/inv/product-conversion/product-conversion-standard-form/product-conversion-standard-list/product-conversion-standard-list.component\";\r\nimport { InvDailyRemainListComponent } from \"../frontoffice/inv/inv-daily-remain/inv-daily-remain-list/inv-daily-remain-list.component\";\r\nimport { InvDailyWasteListComponent } from \"../frontoffice/inv/inv-daily-waste/inv-daily-waste-list/inv-daily-waste-list.component\";\r\nimport { InvDailyListComponent } from \"../frontoffice/inv/inv-daily-header/inv-daily-list/inv-daily-list.component\";\r\nimport { InvDailyWarehouseComponent } from \"../frontoffice/inv/inv-daily-warehouse/inv-daily-warehouse.component\";\r\nimport { InvCreateInvVoucherListComponent } from \"../frontoffice/inv/inv-CreateInvVoucher/inv-CreateInVoucher-list/inv-CreateInvVoucher-list.component\";\r\nimport { InvDailyBalanceComponent } from \"../frontoffice/inv/inv-daily-balance/inv-daily-balance.component\";\r\nimport { RahkaranListComponent } from \"../frontoffice/portal/rahkaran/rahkaran-list/rahkaran-list.component\";\r\nimport { WarehouseGoodsReportComponent } from \"../backoffice/inv/report/warehouse-goods-report/warehouse-goods-report.component\";\r\nimport { RahkaranSettingComponent } from \"../frontoffice/portal/rahkaran/rahkaran-setting/rahkaran-setting.component\";\r\nimport { AccountingDocumentListComponent } from \"../frontoffice/financial/accounting-document/accounting-document-list/accounting-document-list.component\";\r\nimport { AccBalanceSheetComponent } from \"../backoffice/acc/report/balance-sheet/acc-balance-sheet.component\";\r\nimport { AccBalance4Component } from \"../backoffice/acc/report/aa-balce4/acc-balance-4.component\";\r\nimport { AccBalance6Component } from \"../backoffice/acc/report/aa-balce6/acc-balance-6.component\";\r\nimport { AccBalance8Component } from \"../backoffice/acc/report/aa-balce8/acc-balance-8.component\";\r\nimport { AccDetailLedegerSubledgerBalancSheetComponent } from \"../backoffice/acc/report/detail-ledeger-subledger-balanc-sheet/detail-ledeger-subledger-balanc-sheet.component\";\r\nimport { AccBalanceSheetCompareWithPrevYearComponent } from \"../backoffice/acc/report/balance-sheet-compare-with-prev-year/balance-sheet-compare-with-prev-year.component\";\r\nimport { AccBalanceSheetCompareWithPrevYearSubLedgerFilterdByDetailLedgerComponent } from \"../backoffice/acc/report/balance-sheet-compare-prev-year-subledger-filterd-by-detailLedger/balance-sheet-compare-prev-year-subledger-filterd-by-detailLedger.component\";\r\nimport { AccBalanceSheetCompareWithPrevYearGeneralLedgerFilterdByDetailLedgerComponent } from \"../backoffice/acc/report/balance-sheet-compare-prev-year-generalledger-filterd-by-detailLedger/balance-sheet-compare-prev-year-generalledger-filterd-by-detailLedger.component\";\r\nimport { GeneralLedgerVoucherComponent } from \"../backoffice/acc/report/general-ledger-voucher/general-ledger-voucher.component\";\r\nimport { GeneralLedgerDailyVoucherComponent } from \"../backoffice/acc/report/general-ledger-daily-voucher/general-ledger-daily-voucher.component\";\r\nimport { MaterialUseInProductReportComponent } from \"../backoffice/inv/report/material-use-in-product-report/material-use-in-product-report.component\";\r\nimport { PurchaseInvoiceReportComponent } from \"../backoffice/inv/report/purchase-invoice-report/purchase-invoice-report.component\";\r\nimport { PriceChangeInPurchaseReportComponent } from \"../backoffice/inv/report/price-change-in-purchase-report/price-change-in-purchase-report.component\";\r\nimport { FinishedPriceOfProductsBeforeSaleReportComponent } from \"../backoffice/inv/report/finished-price-of-products-before-sale-report/finished-price-of-products-before-sale-report.component\";\r\nimport { CirculationOfGoodsReportComponent } from \"../backoffice/inv/report/circulation-of-goods-report/circulation-of-goods-report.component\";\r\nimport { CostPriceOfManufacturedProductsReportComponent } from \"../backoffice/inv/report/cost-price-of-manufactured-products-report/cost-price-of-manufactured-products-report.component\";\r\nimport { InvDailyUsageComponent } from \"../frontoffice/inv/inv-daily-usage/inv-daily-usage.component\";\r\nimport { GeneralMonthlyFoodCostReportComponent } from \"../backoffice/inv/report/general-monthly-food-cost-report/general-monthly-food-cost-report.component\";\r\nimport { NewDailyPurchaseInvoiceReportComponent } from \"../backoffice/inv/report/new-daily-purchase-invoice-Report/new-daily-purchase-invoice-Report.component\";\r\nimport { PurchaseReportWithTaxComponent } from \"../backoffice/inv/report/purchase-report-with-tax/purchase-report-with-tax.component\";\r\nimport { NegativeRemainOfGoodsDalyReportComponent } from \"../backoffice/inv/report/negative-remain-of-goods-daly-report/negative-remain-of-goods-daly-report.component\";\r\nimport { AverageGoodsReportComponent } from \"../backoffice/inv/report/average-goods-report/average-goods-report.component\";\r\nimport { CheckBookComponent } from \"../backoffice/trs/report/check-book/check-book.component\";\r\nimport { GeneralLedgerVoucherDocumentComponent } from \"../backoffice/acc/report/general-ledger-voucher-document/general-ledger-voucher-document.component\";\r\nimport { GeneralLedgerDailyVoucherDocumentComponent } from \"../backoffice/acc/report/general-ledger-daily-voucher-document/general-ledger-daily-voucher-document.component\";\r\nimport { OrderReviewComponent } from \"../frontoffice/review/order-review/order-review.component\";\r\n\r\n@Injectable()\r\nexport class MenuService {\r\n MENU_ITEMS: ngxMenuItem[] = [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Information\",\r\n icon: \"icon-information\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.MissSetup\",\r\n icon: \"icon-settings-o1\",\r\n link: \"/\",\r\n data: MissetupComponent,\r\n apiName: \"General:MisSetUp\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.BarCode\",\r\n icon: \"icon-qr_code-o\",\r\n link: \"/\",\r\n data: BarCodeReaderFormatListComponent,\r\n apiName: \"General:BarCodeReaderFormat\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Company\",\r\n icon: \"icon-add_business-o\",\r\n link: \"/\",\r\n data: CompanyListComponent,\r\n apiName: \"General:Company\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Branch\",\r\n icon: \"icon-account_tree-o\",\r\n link: \"/\",\r\n data: BranchListComponent,\r\n apiName: \"General:Branch\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.IntroductionPersons\",\r\n icon: \"icon-group_add-o\",\r\n link: \"/\",\r\n data: PeopleInfoListComponent,\r\n apiName: \"General:PeopleInfo\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.DataCenteProcecss\",\r\n icon: \"icon-branch\",\r\n link: \"/\",\r\n data: DataCenterProcessListComponent,\r\n apiName: \"General:DataCenterProcess\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Province\",\r\n icon: \"icon-location-mark\",\r\n link: \"/\",\r\n data: ProvinceListComponent,\r\n apiName: \"General:Province\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.City\",\r\n icon: \"icon-business-o\",\r\n link: \"/\",\r\n data: CityListComponent,\r\n apiName: \"General:City\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.FiscalYear\",\r\n icon: \"icon-date_range-o\",\r\n link: \"/\",\r\n data: FiscalYearListComponent,\r\n apiName: \"General:FiscalYear\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Sale\",\r\n icon: \"icon-sale\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SaleSetting\",\r\n icon: \"icon-info-24px\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Group\",\r\n icon: \"icon-group-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Personnel\",\r\n link: \"/\",\r\n icon: \"icon-person_outline-F\",\r\n data: PersonnelListComponent,\r\n apiName: \"RestaurantSale:Personnel\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Zone\",\r\n link: \"/\",\r\n icon: \"icon-business-o\",\r\n data: ZoneListComponent,\r\n apiName: \"RestaurantSale:Zone\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CustomerCategory\",\r\n link: \"/\",\r\n icon: \"icon-groups-o\",\r\n data: CustomerCategoryListComponent,\r\n apiName: \"RestaurantSale:CustomerCategory\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Customer\",\r\n link: \"/\",\r\n icon: \"icon-group_add-o\",\r\n data: CustomerListComponent,\r\n apiName: \"RestaurantSale:Customer\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ZonePriceAnnouncement\",\r\n link: \"/\",\r\n icon: \"icon-group_add-o\",\r\n data: ZonePriceAnnouncementListComponent,\r\n apiName: \"RestaurantSale:Customer\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ItemTitle\",\r\n icon: \"icon-cube-outline\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ItemCategory\",\r\n link: \"/\",\r\n icon: \"icon-cube-scan\",\r\n data: ItemCategoryListComponent,\r\n apiName: \"RestaurantSale:ItemCategory\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Item\",\r\n link: \"/\",\r\n icon: \"icon-cube-outline\",\r\n data: ItemListComponent,\r\n apiName: \"RestaurantSale:Item\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Additive\",\r\n link: \"/\",\r\n icon: \"icon-library_add-o\",\r\n data: AdditiveListComponent,\r\n apiName: \"RestaurantSale:Additive\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Description\",\r\n link: \"/\",\r\n icon: \"icon-gamepad-round-outline\",\r\n data: DescriptionListComponent,\r\n apiName: \"RestaurantSale:Description\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.UnitList\",\r\n link: \"/\",\r\n icon: \"icon-scale\",\r\n data: MeasurementUnitListComponent,\r\n apiName: \"RestaurantSale:MeasurementUnit\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SalePriceType\",\r\n link: \"/\",\r\n icon: \"icon-payments-o\",\r\n data: SalePriceTypeListComponent,\r\n apiName: \"RestaurantSale:SalePriceType\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ItemPriceChange\",\r\n link: \"/\",\r\n icon: \"icon-payments-o\",\r\n data: ItemPriceChangeListComponent,\r\n apiName: \"RestaurantSale:ItemPriceChange\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.StructualSale\",\r\n icon: \"icon-widgets-outline\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Salon\",\r\n icon: \"icon-deck-o\",\r\n link: \"/\",\r\n data: SalonListComponent,\r\n apiName: \"RestaurantSale:Salon\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.PaymentMethod\",\r\n icon: \"icon-sell-selling\",\r\n link: \"/\",\r\n data: PaymentMethodListComponent,\r\n apiName: \"RestaurantSale:PaymentMethod\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SaleMethod\",\r\n icon: \"icon-content-copy\",\r\n link: \"/\",\r\n data: SaleMethodListComponent,\r\n apiName: \"RestaurantSale:SaleMethod\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SaleMethodBranchId\",\r\n icon: \"icon-layers-o\",\r\n link: \"/\",\r\n data: SaleMethodBranchList,\r\n apiName: \"RestaurantSale:SaleMethodBranch\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.LocalSetting\",\r\n icon: \"icon-layers-o\",\r\n link: \"/\",\r\n data: LocalSettingListComponent,\r\n apiName: \"RestaurantSale:LocalSetting\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Costs\",\r\n icon: \"icon-cash-multiple\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CostGroup\",\r\n icon: \"icon-print-o\",\r\n link: \"/\",\r\n data: CostGroupListComponent,\r\n apiName: \"RestaurantSale:CostGroup\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Cost\",\r\n icon: \"icon-insights-o\",\r\n link: \"/\",\r\n data: CostListComponent,\r\n apiName: \"RestaurantSale:Cost\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.DailyTitle\",\r\n icon: \"icon-note_add-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SaleTitle\",\r\n name: \"RestaurantSale:Invoice\",\r\n icon: \"icon-shopping_basket-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SaleMethodBranch\",\r\n icon: \"icon-table\",\r\n link: \"/\",\r\n data: OrderPageComponent,\r\n apiName: \"RestaurantSale:SaleMethodBranch\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Delivered\",\r\n icon: \"icon-waiter\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.DeliveredFood\",\r\n link: \"/\",\r\n icon: \"icon-payments-o\",\r\n data: DeliveredComponent,\r\n apiName: \"RestaurantSale:SaleMethodBranch\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AssignmentTitle\",\r\n icon: \"icon-note_add-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.DriverAssignment\",\r\n icon: \"icon-moped-o\",\r\n link: \"/\",\r\n data: DriverAssignmentComponent,\r\n apiName: \"RestaurantSale:DriverAssignment\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n\r\n {\r\n title: \"ClientApp.Pages.PageMenu.PaymentTitle\",\r\n icon: \"icon-payment-o seticon\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.DriverSettlement\",\r\n icon: \"icon-cash-on-delivery\",\r\n link: \"/\",\r\n data: DriverSettlementListComponent,\r\n apiName: \"RestaurantSale:DriverSettlement\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CashierSettlemet\",\r\n icon: \"icon-cash-multiple\",\r\n link: \"/\",\r\n data: CasheirSettlementListComponent,\r\n apiName: \"RestaurantSale:CashierSettlemet\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CustomerSettlemet\",\r\n icon: \"icon-account_balance_wallet-o\",\r\n link: \"/\",\r\n data: CustomerReceiptPaymentListComponent,\r\n apiName: \"RestaurantSale:CustomerSettlemet\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CostSpent\",\r\n icon: \"icon-cash\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CostSpent\",\r\n icon: \"icon-insights-o\",\r\n link: \"/\",\r\n data: CostSpentListComponent,\r\n apiName: \"RestaurantSale:CostSpent\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TaxPayerSystem\",\r\n icon: \"icon-note_add-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TaxPayerSystem\",\r\n icon: \"icon-moped-o\",\r\n link: \"/\",\r\n data: TaxPayerSystemListComponent,\r\n apiName: \"RestaurantSale:TaxPayer\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SmsTitle\",\r\n icon: \"icon-forum-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.MessageTemplate\",\r\n link: \"/\",\r\n icon: \"icon-chat-o\",\r\n data: MessageTemplateListComponent,\r\n apiName: \"RestaurantSale:MessageTemplate\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Message\",\r\n link: \"/\",\r\n icon: \"icon-library_add-o\",\r\n data: GroupMessageComponent,\r\n apiName: \"RestaurantSale:Message\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ReadMessageList\",\r\n link: \"/\",\r\n icon: \"icon-chat_bubble_outline-o\",\r\n data: MessageListComponent,\r\n apiName: \"RestaurantSale:Message/ReadMessageList\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ManagementPhones\",\r\n link: \"/\",\r\n icon: \"icon-chat_bubble_outline-o\",\r\n data: MessageManagementTelephoneListComponent,\r\n apiName: \"RestaurantSale:MessageManagementTelephone\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ManagementMessage\",\r\n link: \"/\",\r\n icon: \"icon-chat_bubble_outline-o\",\r\n data: ManagementMessageListComponent,\r\n apiName: \"RestaurantSale:ManagementMessage\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.PrintPolicyTitle\",\r\n icon: \"icon-print-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.PrintPolicy\",\r\n icon: \"icon-print-o\",\r\n link: \"/\",\r\n data: PrintPolicyListComponent,\r\n apiName: \"RestaurantSale:PrintPolicy\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.PrintTemplate\",\r\n icon: \"icon-insights-o\",\r\n link: \"/\",\r\n data: SaleReportDesinerComponent,\r\n apiName: \"RestaurantSale:PrintPolicy\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.BalanceTitle\",\r\n icon: \"icon-anbar2\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvDailyWarehouse\",\r\n icon: \"icon-fact_check-o\",\r\n link: \"/\",\r\n data: InvDailyWarehouseComponent,\r\n apiName: \"RestaurantSale:InvDailyHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvDailyHeader\",\r\n icon: \"icon-image_aspect_ratio-o\",\r\n link: \"/\",\r\n data: InvDailyListComponent,\r\n apiName: \"RestaurantSale:InvDailyHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvDailyRemain\",\r\n icon: \"icon-image_aspect_ratio-o\",\r\n link: \"/\",\r\n data: InvDailyRemainListComponent,\r\n apiName: \"RestaurantSale:InvDailyRemain\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvDailyWaste\",\r\n icon: \"icon-image_aspect_ratio-o\",\r\n link: \"/\",\r\n data: InvDailyWasteListComponent,\r\n apiName: \"RestaurantSale:InvDailyWaste\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvCreateInvVoucher\",\r\n icon: \"icon-text-box-outline\",\r\n link: \"/\",\r\n data: InvCreateInvVoucherListComponent,\r\n apiName: \"RestaurantSale:InvCreateInvVoucher\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvDailyBalance\",\r\n icon: \"icon-text-box-outline\",\r\n link: \"/\",\r\n data: InvDailyBalanceComponent,\r\n apiName: \"RestaurantSale:InvDailyBalance\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.UseOfIngredients\",\r\n icon: \"icon-text-box-outline\",\r\n link: \"/\",\r\n data: InvDailyUsageComponent,\r\n apiName: \"RestaurantSale:MaterialUseInProduct\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SaleReportTitle\",\r\n icon: \"icon-chart-bar-stacked\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SaleReview\",\r\n icon: \"icon-chart-bell-curve\",\r\n link: \"/\",\r\n data: SalesReviewComponent,\r\n apiName: \"RestaurantSale:SaleReview\",\r\n actionName: Permission.viewPermission,\r\n VoucherKindId: 1,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CustomerReview\",\r\n icon: \"icon-chart-bell-curve-cumulative\",\r\n link: \"/\",\r\n data: CustomerReviewComponent,\r\n apiName: \"RestaurantSale:CustomerReview\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SecurityReview\",\r\n icon: \"icon-chart-multiple\",\r\n link: \"/\",\r\n data: SecurityReviewComponent,\r\n apiName: \"RestaurantSale:SecurityReview\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CostsSpentReview\",\r\n icon: \"icon-chart-multiple\",\r\n link: \"/\",\r\n data: CostsSpentReviewComponent,\r\n apiName: \"RestaurantSale:CostsSpentReview\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.DepositReview\",\r\n icon: \"icon-chart-multiple\",\r\n link: \"/\",\r\n data: OrderReviewComponent,\r\n apiName: \"RestaurantSale:OrderReview\",\r\n actionName: Permission.viewPermission,\r\n VoucherKindId: 2,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Dashboard\",\r\n link: \"/\",\r\n icon: \"icon-dashboard-o1\",\r\n data: DashboardComponent,\r\n apiName: \"RestaurantSale:Dashboard\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.PortalTitle\",\r\n icon: \"icon-sitemap1\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.OnlineMenu\",\r\n icon: \"icon-sitemap1\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ConnectOnlineMenu\",\r\n icon: \"icon-menu_book-F\",\r\n link: \"/\",\r\n data: ConnectOnlineMenuComponent,\r\n apiName: \"RestaurantSale:Peripheral\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.RahkaranTitle\",\r\n icon: \"icon-sitemap1\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Rahkaran\",\r\n icon: \"icon-menu_book-F\",\r\n link: \"/\",\r\n data: RahkaranListComponent,\r\n apiName: \"RestaurantSale:Rahkaran\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.RahkaranSetting\",\r\n icon: \"icon-menu_book-F\",\r\n link: \"/\",\r\n data: RahkaranSettingComponent,\r\n apiName: \"RestaurantSale:RahkaranSetting\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Accounting\",\r\n icon: \"icon-sitemap1\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AccDocumentVoucherTitle\",\r\n icon: \"icon-menu_book-F\",\r\n link: \"/\",\r\n data: AccountingDocumentListComponent,\r\n apiName: \"RestaurantSale:Peripheral\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AccDocumentVoucherSetting\",\r\n link: \"/\",\r\n icon: \"icon-accounting\",\r\n data: AccountingSettingListComponent,\r\n apiName: \"RestaurantSale:SaleAccountingSetting\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AccountingSubTitle\",\r\n icon: \"icon-aounting\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AccountingBasicInformation\",\r\n icon: \"icon-info-24px\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AccountingBasicInformation\",\r\n icon: \"icon-cube-outline\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.GroupLedger\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: GroupLedgerListComponent,\r\n apiName: \"Accounting:GroupLedger\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.GeneralLedger\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: GeneralLedgerListComponent,\r\n apiName: \"Accounting:GeneralLedger\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SubLedger\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: SubLedgerListComponent,\r\n apiName: \"Accounting:SubLedger\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.DetailLedgerKind\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: DetailLedgerKindListComponent,\r\n apiName: \"Accounting:DetailLedgerKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.DetailLedger\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: DetailLedgerListComponent,\r\n apiName: \"Accounting:DetailLedger\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AccVoucherKind\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: AccVoucherKindListComponent,\r\n apiName: \"Accounting:AccVoucherKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AccVoucherTitle\",\r\n icon: \"icon-library_books-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AccVoucherTitle\",\r\n icon: \"icon-cube-outline\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AccVoucherHeader\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: AccVoucherFormComponent,\r\n VoucherKindId: 1,\r\n apiName: \"Accounting:AccVoucherHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.MovementVoucher\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: MovementVoucherComponent,\r\n apiName: \"Accounting:AccVoucherHeader/MovementVoucher\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.GeneralLedgerVoucherHeader\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: GeneralLedgerVoucherListComponent,\r\n apiName: \"Accounting:GeneralLedgerVoucherHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AccVoucherList\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: AccVoucherListComponent,\r\n apiName: \"Accounting:AccVoucherHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.EndOfOpration\",\r\n // icon: { icon:'users', pack:'sepidzicon'},\r\n icon: \"icon-calendar-end\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.EndOfOpration\",\r\n icon: \"icon-calendar-end\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AccCloseProfitandLossAccountsHeader\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: AccCloseProfitandLossAccountsListComponent,\r\n apiName: \"Accounting:AccCloseProfitandLossAccountsHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CreateClosingJournalVoucher\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: CreateClosingJournalVoucherListComponent,\r\n apiName: \"Accounting:AccCloseProfitandLossAccountsHeader/CreateClosingJournalVoucher\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CreateOpeningJournalVoucher\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: CreateOpeningJournalVoucherListComponent,\r\n apiName: \"Accounting:AccCloseProfitandLossAccountsHeader/CreateOpeningJournalVoucher\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.GetControlContraryNatureAccountDetail\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: ControlContraryNatureAccountListComponent,\r\n apiName: \"Accounting:AccCloseProfitandLossAccountsHeader/GetControlContraryNatureAccountDetail\",\r\n actionName: Permission.samePermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AccReportTitle\",\r\n icon: \"icon-chart-bar-stacked\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AccReportTitle\",\r\n icon: \"icon-cube-outline\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AccountReview\",\r\n link: \"/\",\r\n //icon:'icon-fact_check-o',\r\n data: AccountReviewComponent,\r\n apiName: \"Accounting:AccountReview\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.balanceSheet\",\r\n link: \"/\",\r\n //icon:'icon-fact_check-o',\r\n data: AccBalanceSheetComponent,\r\n apiName: \"Accounting:AccountReview/GetAccBalanceSheet\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.FourColumnTrialBalance\",\r\n link: \"/\",\r\n //icon:'icon-fact_check-o',\r\n data: AccBalance4Component,\r\n apiName: \"Accounting:AccountReview/GetAccBalance4\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SixColumnTrialBalance\",\r\n link: \"/\",\r\n //icon:'icon-fact_check-o',\r\n data: AccBalance6Component,\r\n apiName: \"Accounting:AccountReview/GetAccBalance6\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.EightColumnTrialBalance\",\r\n link: \"/\",\r\n //icon:'icon-fact_check-o',\r\n data: AccBalance8Component,\r\n apiName: \"Accounting:AccountReview/GetAccBalance8\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.DetailedBalanceSpecificDetailedBalanceSheet\",\r\n link: \"/\",\r\n //icon:'icon-fact_check-o',\r\n data: AccDetailLedegerSubledgerBalancSheetComponent,\r\n apiName: \"Accounting:AccountReview/GetAccDetailLedegerSubledgerBalancSheet\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ComparativeProfitLossStatement\",\r\n link: \"/\",\r\n //icon:'icon-fact_check-o',\r\n data: AccBalanceSheetCompareWithPrevYearComponent,\r\n apiName: \"Accounting:AccountReview/GetAccBalanceSheetCompareWithPrevYear\",\r\n actionName: Permission.samePermission,\r\n },\r\n // {\r\n // title: \"ClientApp.Pages.PageMenu.ComparativeProfitLossStatementDetailedFilter\",\r\n // link: \"/\",\r\n // //icon:'icon-fact_check-o',\r\n // data: AccBalanceSheetCompareWithPrevYearGeneralLedgerFilterdByDetailLedgerComponent,\r\n // apiName: \"Accounting:AccountReview/AccBalanceSheetCompareWithPrevYearGeneralLedgerFilterdByDetailLedger\",\r\n // actionName: Permission.viewPermission,\r\n // },\r\n // {\r\n // title: \"ClientApp.Pages.PageMenu.CertainComparativeProfitLossStatementDetailedFilter\",\r\n // link: \"/\",\r\n // //icon:'icon-fact_check-o',\r\n // data: AccBalanceSheetCompareWithPrevYearSubLedgerFilterdByDetailLedgerComponent,\r\n // apiName: \"Accounting:AccountReview/AccBalanceSheetCompareWithPrevYearSubledgerFilterdByDetailLedger\",\r\n // actionName: Permission.viewPermission,\r\n // },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.GeneralOfficeDocument\",\r\n link: \"/\",\r\n //icon:'icon-fact_check-o',\r\n data: GeneralLedgerVoucherDocumentComponent,\r\n apiName: \"Accounting:AccountReview/GetGeneralLedgerVoucherDocument\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.GeneralOffice\",\r\n link: \"/\",\r\n //icon:'icon-fact_check-o',\r\n data: GeneralLedgerVoucherComponent,\r\n apiName: \"Accounting:AccountReview/GetGeneralLedgerVoucher\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.NewspaperOfficeDocument\",\r\n link: \"/\",\r\n //icon:'icon-fact_check-o',\r\n data: GeneralLedgerDailyVoucherDocumentComponent,\r\n apiName: \"Accounting:AccountReview/GetGeneralLedgerDailyVoucherDocument\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.NewspaperOffice\",\r\n link: \"/\",\r\n //icon:'icon-fact_check-o',\r\n data: GeneralLedgerDailyVoucherComponent,\r\n apiName: \"Accounting:AccountReview/GetGeneralLedgerDailyVoucher\",\r\n actionName: Permission.samePermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TrsSubtitle\",\r\n icon: \"icon-khazane\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TrsBasicInformation\",\r\n icon: \"icon-info-24px\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TrsBasicInformation\",\r\n icon: \"icon-group-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.BankList\",\r\n //icon: { icon:'bank', pack:'sepidzicon'},\r\n link: \"/\",\r\n data: BankListComponent,\r\n apiName: \"Treasury:Bank\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CashList\",\r\n //icon: { icon:'bank', pack:'sepidzicon'},\r\n link: \"/\",\r\n data: CashListComponent,\r\n apiName: \"Treasury:Cash\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.BankBranchList\",\r\n //icon: { icon:'bank', pack:'sepidzicon'},\r\n link: \"/\",\r\n data: BankBranchListComponent,\r\n apiName: \"Treasury:BankBranch\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.BankAccountList\",\r\n //icon: { icon:'bank', pack:'sepidzicon'},\r\n link: \"/\",\r\n data: BankAccountListComponent,\r\n apiName: \"Treasury:BankAccount\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TrsConcernLis\",\r\n //icon: { icon:'bank', pack:'sepidzicon'},\r\n link: \"/\",\r\n data: TrsConcernListComponent,\r\n apiName: \"Treasury:TrsConcern\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TrsVoucherKindList\",\r\n //icon: { icon:'bank', pack:'sepidzicon'},\r\n link: \"/\",\r\n data: TrsVoucherKindListComponent,\r\n apiName: \"Treasury:TrsVoucherKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ChequeBookList\",\r\n //icon: { icon:'bank', pack:'sepidzicon'},\r\n link: \"/\",\r\n data: ChequeBookListComponent,\r\n apiName: \"Treasury:ChequeBookHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TrsVoucherDaily\",\r\n name: \"Treasury:TrsVoucherHeader\",\r\n icon: \"icon-receipt-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TrsVoucherDaily\",\r\n icon: \"icon-cube-outline\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TrsVoucherList\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: TrsVoucherListComponent,\r\n apiName: \"Treasury:TrsVoucherHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TrsReviewTitle\",\r\n icon: \"icon-cube-outline\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TrsReviewTitle\",\r\n icon: \"icon-cube-outline\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TreasuryReview\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: TreasuryReviewComponent,\r\n apiName: \"Treasury:TreasuryReview\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"گزارش دفتر چک\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: CheckBookComponent,\r\n apiName: \"Treasury:TreasuryReview/GetCheckBook\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Salary\",\r\n icon: \"icon-hoqoq\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.BasicInformation\",\r\n icon: \"icon-info-24px\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Organizations\",\r\n icon: \"icon-cube-outline\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.OrganizationalUnits\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: OrganizationalUnitListComponent,\r\n apiName: \"Payroll:OrganizationalUnit\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.OrganizationalPosts\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: OrganizationalPostsListComponent,\r\n apiName: \"Payroll:OrganizationalPosts\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.JobGrouping\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: JobClassificationListComponent,\r\n apiName: \"Payroll:JobClassification\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Jobs\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: JobsListComponent,\r\n apiName: \"Payroll:Jobs\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TypesEmployment\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: EmploymentKindListComponent,\r\n apiName: \"Payroll:EmploymentKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.PlaceService\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: WorkplaceListComponent,\r\n apiName: \"Payroll:Workplace\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Agents\",\r\n icon: \"icon-cube-outline\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Salary\",\r\n link: \"/\",\r\n icon: \"\",\r\n VoucherKindId: 6,\r\n data: ElementListComponent,\r\n apiName: \"Payroll:Element\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.EidStock\",\r\n link: \"/\",\r\n icon: \"\",\r\n VoucherKindId: 7,\r\n data: ElementListComponent,\r\n apiName: \"Payroll:Element\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.EidFee\",\r\n link: \"/\",\r\n icon: \"\",\r\n VoucherKindId: 8,\r\n data: ElementListComponent,\r\n apiName: \"Payroll:Element\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.VacationSave\",\r\n link: \"/\",\r\n icon: \"\",\r\n VoucherKindId: 9,\r\n data: ElementListComponent,\r\n apiName: \"Payroll:Element\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.VacationRedemption\",\r\n link: \"/\",\r\n icon: \"\",\r\n VoucherKindId: 10,\r\n data: ElementListComponent,\r\n apiName: \"Payroll:Element\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ReserveYearsSservice\",\r\n link: \"/\",\r\n icon: \"\",\r\n VoucherKindId: 11,\r\n data: ElementListComponent,\r\n apiName: \"Payroll:Element\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.PaymentSystem\",\r\n icon: \"icon-cube-outline\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Band\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: JobGroupListComponent,\r\n apiName: \"Payroll:JobGroup\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Base\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: JobBaseListComponent,\r\n apiName: \"Payroll:JobBase\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Rank\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: JobRankingListComponent,\r\n apiName: \"Payroll:JobRanking\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InsuranceFinanceOrganizationsBranches\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: PayCompaniesListComponent,\r\n apiName: \"Payroll:PayCompanies\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ReferenceLists\",\r\n icon: \"icon-cube-outline\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Nationality\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: CitizenshipKindListComponent,\r\n apiName: \"Payroll:CitizenshipKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Nationali\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: NationalityKindListComponent,\r\n apiName: \"Payroll:NationalityKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Dean\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: ReligionKindListComponent,\r\n apiName: \"Payroll:ReligionKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Religion\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: FaithKindListComponent,\r\n apiName: \"Payroll:FaithKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.RelationshipDegreeMartyrFamily\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: MartyrFamilayKindListComponent,\r\n apiName: \"Payroll:MartyrFamilayKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.VeteransShift\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: VeteranWorkShiftKindListComponent,\r\n apiName: \"Payroll:VeteranWorkShiftKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.StudyCourseTitle\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: CourseTitleListComponent,\r\n apiName: \"Payroll:CourseTitle\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.LanguageType\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: LanguageKindListComponent,\r\n apiName: \"Payroll:LanguageKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.LanguageReadingProficiency\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: FluencyInReadingTheLanguageListComponent,\r\n apiName: \"Payroll:FluencyInReadingTheLanguage\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.WritingMastery\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: ProficiencyInWritingListComponent,\r\n apiName: \"Payroll:ProficiencyInWriting\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CommunityLanguageConversation\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: FluencyInLanguageConversationListComponent,\r\n apiName: \"Payroll:FluencyInLanguageConversation\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.StudyPeriod\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: EducationDegreeListComponent,\r\n apiName: \"Payroll:EducationDegree\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.FieldStudy\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: FieldOfStudyListComponent,\r\n apiName: \"Payroll:FieldOfStudy\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AcademicOrientation\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: AcademicOrientationListComponent,\r\n apiName: \"Payroll:AcademicOrientation\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ReasonDismissal\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: ReasonForDismissalListComponent,\r\n apiName: \"Payroll:ReasonForDismissal\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TypeRetirement\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: RetirementKindListComponent,\r\n apiName: \"Payroll:RetirementKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TaxGroup\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: TaxGroupListComponent,\r\n apiName: \"Payroll:TaxGroup\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CostCenter\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: CostCenterListComponent,\r\n apiName: \"Payroll:CostCenter\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ProjectList\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: ProjectListComponent,\r\n apiName: \"Payroll:Project\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TaxTable\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmTaxTableListComponent,\r\n apiName: \"Payroll:HrmTaxTable\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.WorkCalendarTable\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmWorkCalendarListComponent,\r\n apiName: \"Payroll:HrmWorkCalendar\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TypesLoans\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmLoanKindListComponent,\r\n apiName: \"Payroll:HrmLoanKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.DailyOperations\",\r\n icon: \"icon-note_add-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.EmployeeList\",\r\n icon: \"icon-group-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.EmployeeList\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmPersonnelListComponent,\r\n apiName: \"Payroll:HrmPersonnel\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.RecruitmentRules\",\r\n link: \"/\",\r\n icon: \"icon-group-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.VerdictType\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HRNotificationKindListComponent,\r\n apiName: \"Payroll:HRNotificationKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.IndividualSentence\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HRNotificationHeaderListComponent,\r\n apiName: \"Payroll:HRNotificationHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.FinancialProvisions\",\r\n link: \"/\",\r\n icon: \"icon-group-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.IndividualSentence\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: FinanceNotificationHeaderListComponent,\r\n apiName: \"Payroll:FinanceNotificationHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.EmployeeLoan\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmLoanToPersonnelListComponent,\r\n apiName: \"Payroll:HrmLoanToPersonnel\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.PaymentLocations\",\r\n link: \"/\",\r\n icon: \"icon-cube-outline\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.PlacePayment\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmBankListComponent,\r\n apiName: \"Payroll:HrmBank\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.LinkingAccountNumberPlacePayment\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmBankAccountListComponent,\r\n apiName: \"Payroll:HrmBank\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.MonthlyInformation\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: MonthlyWorkInformationComponent,\r\n apiName: \"Payroll:MonthlyWorkInformation\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AgentDeploymentInformation\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmPersonnelElementInitialComponent,\r\n apiName: \"Payroll:HrmPersonnelElementInitial\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Calculation\",\r\n link: \"/\",\r\n icon: \"icon-cube-outline\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SalaryCalculation\",\r\n link: \"/\",\r\n icon: \"\",\r\n VoucherKindId: 6,\r\n data: MonthlySalaryCalculationInformationComponent,\r\n apiName: \"Payroll:MonthlySalaryCalculationInformation\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.EidStock\",\r\n link: \"/\",\r\n icon: \"\",\r\n VoucherKindId: 7,\r\n data: MonthlySalaryCalculationInformationComponent,\r\n apiName: \"Payroll:MonthlySalaryCalculationInformation\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.EidFee\",\r\n link: \"/\",\r\n icon: \"\",\r\n VoucherKindId: 8,\r\n data: MonthlySalaryCalculationInformationComponent,\r\n apiName: \"Payroll:MonthlySalaryCalculationInformation\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.VacationSave\",\r\n link: \"/\",\r\n icon: \"\",\r\n VoucherKindId: 9,\r\n data: MonthlySalaryCalculationInformationComponent,\r\n apiName: \"Payroll:VacationBuyInformation\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.VacationRedemption\",\r\n link: \"/\",\r\n icon: \"\",\r\n VoucherKindId: 10,\r\n data: MonthlySalaryCalculationInformationComponent,\r\n apiName: \"Payroll:VacationBuyInformation\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ReserveYearsSservice\",\r\n link: \"/\",\r\n icon: \"\",\r\n VoucherKindId: 11,\r\n data: MonthlySalaryCalculationInformationComponent,\r\n apiName: \"Payroll:EstablishmentTheReserveOfYearsOfService\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.RightsDocuments\",\r\n icon: \"icon-receipt-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.RightsDocuments\",\r\n icon: \"icon-receipt-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.IssuanceAccountingDocument\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmAccVoucherComponent,\r\n apiName: \"Payroll:HrmAccVoucherCode/GetAccVoucherInfo\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.RelationshipAccountsAgents\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmAccVoucherCodeComponent,\r\n apiName: \"Payroll:HrmAccVoucherCode\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ListIssuedDocuments\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmAccVoucherHeaderComponent,\r\n apiName: \"Payroll:HrmAccVoucherHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Reports\",\r\n icon: \"icon-chart-bar-stacked\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Reports\",\r\n icon: \"icon-chart-bar-stacked\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.RightsReview\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmReviewComponent,\r\n apiName: \"Payroll:HrmReview\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ComprehensiveRightsList\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: PayMVPersReportComponent,\r\n apiName: \"Payroll:MonthlySalaryCalculationInformation/PayMVPersReport\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SalarySlip\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: BillPayReportComponent,\r\n apiName: \"Payroll:MonthlySalaryCalculationInformation/BillPayReport\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.AssociationAgentsReports\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmMapReportListComponent,\r\n apiName: \"Payroll:HrmMapReport\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InsuranceListReport\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmInsuranceReportComponent,\r\n apiName: \"Payroll:MonthlySalaryCalculationInformation/HrmInsuranceReport\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.MakingInsuranceDiskette\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmInsuranceDskComponent,\r\n apiName: \"Payroll:MonthlySalaryCalculationInformation/MakeInsDisk\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TaxListReport\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmTaxReportComponent,\r\n apiName: \"Payroll:MonthlySalaryCalculationInformation/HrmTaxReport\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.MakingTaxBankDiskette\",\r\n link: \"/\",\r\n icon: \"\",\r\n data: HrmDiskFormatListComponent,\r\n apiName: \"Payroll:HrmDiskFormat\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvSubTitle\",\r\n icon: \"icon-anbar2\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvBasicInformation\",\r\n icon: \"icon-info-24px\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Warehouse\",\r\n link: \"/\",\r\n icon: \"icon-home_work-o\",\r\n data: WarehouseListComponent,\r\n apiName: \"Inventory:Warehouse\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.UnitList\",\r\n link: \"/\",\r\n icon: \"icon-scale\",\r\n data: UnitListComponent,\r\n apiName: \"Inventory:Unit\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.GoodsGroup\",\r\n link: \"/\",\r\n icon: \"icon-cubes1\",\r\n data: GoodsGroupListComponent,\r\n apiName: \"Inventory:GoodsGroup\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.GoodsList\",\r\n link: \"/\",\r\n icon: \"icon-cube1\",\r\n data: GoodsListComponent,\r\n apiName: \"Inventory:Goods\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvVoucherKind\",\r\n link: \"/\",\r\n icon: \"icon-file-text1\",\r\n data: InvVoucherKindListComponent,\r\n apiName: \"Inventory:InvVoucherKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvBalance\",\r\n link: \"/\",\r\n icon: \"icon-file-text1\",\r\n data: InvBalanceFormComponent,\r\n apiName: \"Inventory:InvBalance\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvDailyOpration\",\r\n icon: \"icon-receipt-o\",\r\n name: \"Inventory:InvVoucherHeader\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvDailyOpration\",\r\n icon: \"icon-receipt-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvVoucherPricing\",\r\n link: \"/\",\r\n icon: \"account-outline\",\r\n data: InvVoucherPricingListComponent,\r\n apiName: \"Inventory:InvVoucherPricing\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvVoucherList\",\r\n link: \"/\",\r\n icon: \"account-outline\",\r\n data: InvVoucherListComponent,\r\n apiName: \"Inventory:InvVoucherHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InvReview\",\r\n icon: \"icon-chart-bar-stacked\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InventoryReview\",\r\n link: \"/\",\r\n icon: \"account-outline\",\r\n data: InventoryReviewComponent,\r\n apiName: \"Inventory:InventoryReview\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.GetInventoryBalancing\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: InvBalanceListComponent,\r\n apiName: \"Inventory:InvBalance/GetInventoryBalancing\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.GetReferenceVoucherByVoucherKind\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: InvNoReferenceVoucherFormComponent,\r\n apiName: \"Inventory:InvVoucherHeader/GetInvNoReferenceVoucher\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.WarehouseGoodsReport\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: WarehouseGoodsReportComponent,\r\n apiName: \"Inventory:Warehouse/WarehouseGoodsReport\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.UseMaterialsProduct\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: MaterialUseInProductReportComponent,\r\n apiName: \"Inventory:InventoryReview/GetMaterialUseInProductReport\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.PurchaseInvoiceReport\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: PurchaseInvoiceReportComponent,\r\n apiName: \"Inventory:PurchaseInvoiceReview/GetPurchaseInvoice\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.PriceChangeReportPurchase\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: PriceChangeInPurchaseReportComponent,\r\n apiName: \"Inventory:InventoryReview/GetPriceChangeInPurchaseReport\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ReportingTotalPriceProductsBeforeSale\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: FinishedPriceOfProductsBeforeSaleReportComponent,\r\n apiName: \"Inventory:InventoryReview/GetFinishedPriceOfProductsBeforeSaleReport\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ProductionCostReport\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: CostPriceOfManufacturedProductsReportComponent,\r\n apiName: \"Inventory:InventoryReview/GetCostPriceOfManufacturedProductsReport\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.GoodsTurnoverReport\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: CirculationOfGoodsReportComponent,\r\n apiName: \"Inventory:InventoryReview/GetCirculationOfGoodsReport\",\r\n actionName: Permission.samePermission,\r\n },\r\n\r\n {\r\n title: \"ClientApp.Pages.PageMenu.GeneralMonthlyFoodCassetteReport\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: GeneralMonthlyFoodCostReportComponent,\r\n apiName: \"Inventory:InventoryReview/GetGeneralMonthlyFoodCostReport\",\r\n actionName: Permission.samePermission,\r\n },\r\n\r\n // {\r\n // title: \"ClientApp.Pages.PageMenu.NewDailyPurchaseInvoiceReport\",\r\n // link: \"/\",\r\n // //icon:'account-outline',\r\n // data: NewDailyPurchaseInvoiceReportComponent,\r\n // apiName: \"Inventory:InventoryReview/GetNewDailyPurchaseInvoiceReport\",\r\n // actionName: Permission.samePermission,\r\n // },\r\n // {\r\n // title: \"ClientApp.Pages.PageMenu.PurchasingDetailTeportTax\",\r\n // link: \"/\",\r\n // //icon:'account-outline',\r\n // data: PurchaseReportWithTaxComponent,\r\n // apiName: \"Inventory:InventoryReview/GetPurchaseReportWithTax\",\r\n // actionName: Permission.samePermission,\r\n // },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.NegativeProductBalanceReportDay\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: NegativeRemainOfGoodsDalyReportComponent,\r\n apiName: \"Inventory:InventoryReview/GetNegativeRemainOfGoodsDailyReport\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CommodityIntermediaryReport\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: AverageGoodsReportComponent,\r\n apiName: \"Inventory:InventoryReview/GetAverageGoodsReport\",\r\n actionName: Permission.samePermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.CommodityIntermediaryReportCompare\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: AverageGoodsReportComponent,\r\n apiName: \"Inventory:InventoryReview/GetAverageGoodsReport\",\r\n actionName: Permission.samePermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TakingOfInventoryTitle\",\r\n icon: \"icon-anbar2\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.TakingOfInventoryHeader\",\r\n link: \"/\",\r\n //icon:'icon-cubes1',\r\n data: TakingOfInventoryListComponent,\r\n apiName: \"Inventory:TakingOfInventoryHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InventoryTransfer\",\r\n icon: \"icon-transfer\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.InventoryClosing\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: InventoryClosingListComponent,\r\n apiName: \"Inventory:InventoryClosing\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ProductConversionTitle\",\r\n icon: \"icon-dynamic_feed-F\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ProductConversionTitle\",\r\n icon: \"icon-dynamic_feed-F\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ProductConversionTitle\",\r\n link: \"/\",\r\n icon: \"icon-dynamic_feed-F\",\r\n data: ProductConversionListComponent,\r\n apiName: \"Inventory:ProductConversionHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ProductConversionStandardTitle\",\r\n link: \"/\",\r\n icon: \"icon-standard\",\r\n data: ProductConversionStandardListComponent,\r\n apiName: \"Inventory:ProductConversionStandardHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SellSubTitle\",\r\n icon: \"icon-bazargani\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SellBaseInformation\",\r\n icon: \"icon-info-24px\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SellBaseInformation\",\r\n icon: \"icon-info-24px\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SellCustomer\",\r\n //icon: { icon:'bank', pack:'sepidzicon'},\r\n link: \"/\",\r\n data: SellCustomerListComponent,\r\n apiName: \"SellCustomer:SellCustomer\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SellKind\",\r\n //icon: { icon:'bank', pack:'sepidzicon'},\r\n link: \"/\",\r\n data: SellKindListComponent,\r\n apiName: \"SellCustomer:SellKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SellCustomerGroup\",\r\n //icon: { icon:'bank', pack:'sepidzicon'},\r\n link: \"/\",\r\n data: SellCustomerGroupListComponent,\r\n apiName: \"SellCustomer:SellCustomerGroup\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.PriceListHeader\",\r\n //icon: { icon:'bank', pack:'sepidzicon'},\r\n link: \"/\",\r\n data: PriceListHeaderListComponent,\r\n apiName: \"SellCustomer:PriceListHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SellVoucherKind\",\r\n //icon: { icon:'bank', pack:'sepidzicon'},\r\n link: \"/\",\r\n data: SellVoucherKindListComponent,\r\n apiName: \"Inventory:InvVoucherKind\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SellDailyOpration\",\r\n name: \"SellCustomer:SellVoucherHeader\",\r\n icon: \"icon-receipt-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SellDailyOpration\",\r\n icon: \"icon-receipt-o\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.DebtorCreditorNotices\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: DebtorCreditorNoticesHeaderListComponent,\r\n apiName: \"SellCustomer:DebtorCreditorNoticesHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SellVoucherHeader\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: SellVoucherListComponent,\r\n apiName: \"SellCustomer:SellVoucherHeader\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SellReviewTitle\",\r\n icon: \"icon-chart-bar-stacked\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SellReviewTitle\",\r\n icon: \"icon-chart-bar-stacked\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.SellReview\",\r\n link: \"/\",\r\n //icon:'account-outline',\r\n data: SellCustomerReviewComponent,\r\n apiName: \"SellCustomer:SellCustomerReview\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Access\",\r\n icon: \"icon-dastresi\",\r\n children: [\r\n {\r\n title: \"ClientApp.Pages.PageMenu.Role\",\r\n icon: \"icon-groups-o\",\r\n link: \"/\",\r\n data: RoleListComponent,\r\n apiName: \"General:Role\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.UserList\",\r\n icon: \"icon-person_outline-F\",\r\n link: \"/\",\r\n data: UserListComponent,\r\n apiName: \"General:Authorization\",\r\n actionName: Permission.viewPermission,\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.ResetPassword\",\r\n icon: \"icon-lock_open-o\",\r\n link: \"/\",\r\n data: ResetPasswordListComponent,\r\n apiName: \"General:Authorization\",\r\n actionName: \"ChangePassword\",\r\n },\r\n {\r\n title: \"ClientApp.Pages.PageMenu.UserReport\",\r\n icon: \"icon-lock_open-o\",\r\n link: \"/\",\r\n data: UserSystemLogListComponent,\r\n apiName: \"General:UserSystemLog\",\r\n actionName: Permission.viewPermission,\r\n },\r\n ],\r\n },\r\n ];\r\n}\r\n","import { ChangeDetectorRef, Component, OnInit } from \"@angular/core\";\r\nimport { BaseFormComponent } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/base-form.component\";\r\nimport { SelectorService } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/base/selector.service\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport { ReviewFilter } from \"../models/review-filter\";\r\nimport { ReviewReportModel } from \"./filter-name.model\";\r\n\r\n@Component({\r\n selector: \"ngx-filter-name\",\r\n templateUrl: \"./filter-name.component.html\",\r\n styleUrls: [\"./filter-name.component.scss\"],\r\n})\r\nexport class FilterNameComponent extends BaseFormComponent implements OnInit {\r\n reviewFilter: ReviewFilter;\r\n constructor(protected selectorService: SelectorService, protected cd: ChangeDetectorRef) {\r\n super(selectorService, cd);\r\n }\r\n async ngOnInit() {\r\n this.apiName = \"ReviewReport\";\r\n this.areaName = \"General\";\r\n this.label = this.translate(\"ClientApp.Review.FilterName.ReviewReport\");\r\n super.ngOnInit();\r\n }\r\n setdefault() {\r\n this.model.DataValue = JSON.stringify(this.reviewFilter);\r\n this.model.ReportKey = this.reviewFilter.ReportKey;\r\n }\r\n saveData() {\r\n try {\r\n if (!this.isSaving) {\r\n if (this.isValid()) {\r\n this.beforupdate();\r\n this.sts.showToast(\"info\", \"\", this.translate(\"ClientApp.Review.FilterName.SavingChanges\"));\r\n this.isSaving = true;\r\n this.isSaved = false;\r\n if (this.isNewRow || !this.id) {\r\n this.httpCommonService\r\n .create(this.apiName + \"/SaveData\", this.getDataFromFormGroup())\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (row) => this.saveSuccessHelper(row),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n } else {\r\n this.httpCommonService\r\n .update(this.apiName, this.getDataFromFormGroup())\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (response) => this.saveSuccessHelper(),\r\n (error) => this.saveFailedHelper(error)\r\n );\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } else {\r\n this.selectorService.submitted$.next(this.submitted);\r\n }\r\n } catch (e) {\r\n this.saveFailedHelper(e);\r\n }\r\n }\r\n}\r\n","\r\n\r\n","import { EntityBase } from \"../../../../projects/sepidz-web-framework/src/lib/models/entity-base.model\";\r\n\r\nexport class ReviewReportModel extends EntityBase {\r\n public ReportKey: string;\r\n public Title: string;\r\n public DataValue: string;\r\n constructor() {\r\n super();\r\n this.ReportKey = \"\";\r\n this.ReportKey = \"\";\r\n this.DataValue = \"\";\r\n }\r\n}\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { ReviewDataCardComponent } from \"../review-card/review-data-card.component\";\r\nimport { HttpCommonService, AuthService, LookupService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ReviewService } from \"../review.service\";\r\n\r\n@Component({\r\n selector: \"sepidz-kpi-review\",\r\n templateUrl: \"./kpi-review.component.html\",\r\n styleUrls: [\"./kpi-review.component.scss\"],\r\n})\r\nexport class KpiReviewComponent extends ReviewDataCardComponent {\r\n public data = {};\r\n @Input()\r\n bundles: ReviewKpiItemBundle[] = [];\r\n constructor(service: ReviewService, fetchService: HttpCommonService, protected lookupservice: LookupService, protected authService: AuthService) {\r\n super(service, fetchService, lookupservice, authService);\r\n }\r\n\r\n protected retrieved(data: any): void {\r\n this.data = data;\r\n }\r\n}\r\n\r\nexport interface ReviewKpiItemBundle {\r\n item1: ReviewKpiItem;\r\n item2?: ReviewKpiItem;\r\n class: string;\r\n}\r\n\r\nexport interface ReviewKpiItem {\r\n name: string;\r\n displayName: string;\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n {{ bundle.item1.displayName | translate }} :\r\n \r\n {{ data[bundle.item1.name] | number }}\r\n \r\n
\r\n\r\n
\r\n {{ bundle.item2.displayName | translate }} :\r\n \r\n {{ data[bundle.item2.name] | number }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, OnDestroy } from \"@angular/core\";\r\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { Observable, Subject } from \"rxjs\";\r\nimport { debounceTime, finalize, tap } from \"rxjs/operators\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { KpiWidget } from \"src/app/frontoffice/review/dashboard/models/dashboard.model\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"sepidz-kpi-widget\",\r\n templateUrl: \"./kpi-widget.component.html\",\r\n styleUrls: [\"./kpi-widget.component.scss\"],\r\n})\r\nexport class KpiWidgetComponent implements OnInit, OnDestroy {\r\n ngUnsubscribe = new Subject();\r\n @Input() background: string; // list of valid css class exist in _background.scss\r\n @Input() icon: string;\r\n @Input() path: string;\r\n @Input() reload: Observable;\r\n @Input() filters: NameValue[];\r\n @Input() data: KpiWidget;\r\n @Input() type: \"string\" | \"number\" | \"boolean\" | \"date\" | \"time\" | \"dateTime\" = \"number\";\r\n @Input() isLoading: boolean = true;\r\n\r\n constructor(private httpClient: HttpClient) {}\r\n\r\n ngOnInit(): void {\r\n if (this.path) {\r\n this.load();\r\n this.reloading();\r\n }\r\n }\r\n\r\n private reloading() {\r\n if (!this.reload) {\r\n return;\r\n }\r\n\r\n this.reload\r\n .pipe(\r\n debounceTime(300),\r\n tap((value) => {\r\n if (value) {\r\n this.load();\r\n }\r\n })\r\n )\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe();\r\n }\r\n\r\n private load() {\r\n this.isLoading = true;\r\n const params = this.buildParams();\r\n this.httpClient\r\n .get(`${this.path}`, { params })\r\n .pipe(finalize(() => (this.isLoading = false)))\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((data: KpiWidget) => {\r\n this.data = data;\r\n });\r\n }\r\n\r\n buildParams(): HttpParams | undefined {\r\n if (!this.filters) {\r\n return;\r\n }\r\n let params = new HttpParams();\r\n this.filters.forEach((f) => (params = params.append(f.Name, f.Value)));\r\n return params;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.filters = undefined;\r\n this.data = undefined;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
{{ data.First.Name }}
\r\n
\r\n \r\n {{ data.First.Value | number }}\r\n \r\n \r\n {{ data.First.Value }}\r\n \r\n \r\n {{ data.First.Value }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {{ data.Second.Name }}\r\n
\r\n
\r\n
\r\n \r\n \r\n {{ data.Second.Value | number }}\r\n \r\n \r\n {{ data.Second.Value }}\r\n \r\n \r\n {{ data.Second.Value }}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { UntypedFormGroup } from \"@angular/forms\";\r\nimport { ReviewDataCardComponent } from \"../review-card/review-data-card.component\";\r\nimport { ReviewService } from \"../review.service\";\r\nimport { HttpCommonService, LookupService, AuthService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { ReviewFilter } from \"../models/review-filter\";\r\nimport { ReviewFilterItem } from \"../models/review-filter-item\";\r\nimport { CheckboxLlist } from \"projects/sepidz-web-framework-shell/src/lib/shared/controls/checkbox-list/checkbox-list.model\";\r\nimport { takeUntil, finalize, pairwise } from \"rxjs/operators\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n@Component({\r\n selector: \"sepidz-remote-select-review\",\r\n templateUrl: \"./remote-select-review.component.html\",\r\n styleUrls: [\"./remote-select-review.component.scss\"],\r\n})\r\nexport class RemoteSelectReviewComponent extends ReviewDataCardComponent implements OnInit {\r\n ngUnsubscribe = new Subject();\r\n @Input() items: CheckboxLlist[] = [];\r\n dataList: any[];\r\n @Input() form: UntypedFormGroup;\r\n @Input() textFieldName: string = \"Title\";\r\n @Output() onChange = new EventEmitter();\r\n constructor(service: ReviewService, fetchService: HttpCommonService, protected lookupservice: LookupService, protected authService: AuthService) {\r\n super(service, fetchService, lookupservice, authService);\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this.service.filter$.pipe(pairwise(), takeUntil(this.ngUnsubscribe)).subscribe(([prev, next]) => {\r\n if (next && next.changedKeys?.length > 0 && JSON.stringify(prev?.items) === JSON.stringify(next?.items)) {\r\n const relatedFilter = prev?.items.find((x) => x.key === this.key);\r\n if (relatedFilter && this.form?.controls[this.key]) {\r\n this.form.controls[this.key]?.setValue([relatedFilter.value]);\r\n }\r\n }\r\n });\r\n }\r\n setDefaultFilterValue() {\r\n const filtersValue = this.service.filterSubject.getValue();\r\n if (filtersValue && filtersValue.items?.length) {\r\n const relatedFilter = filtersValue.items.filter((x) => x.key === this.key);\r\n if (relatedFilter && this.form?.controls[this.key]) {\r\n const value = relatedFilter?.map((x) => x.value);\r\n this.form.controls[this.key]?.setValue(value);\r\n }\r\n }\r\n }\r\n\r\n protected prepareFilterForLoading(filter: ReviewFilter) {\r\n const filterForLoad = { ...filter };\r\n filterForLoad.items = filter.items;\r\n return filterForLoad;\r\n }\r\n\r\n protected filterChanging(filter: ReviewFilter): void {\r\n this.items.forEach((item) => {\r\n item.Selected = filter.items.some((filterItem) => filterItem.key === this.key && filterItem.value === item.Id);\r\n });\r\n }\r\n\r\n protected loadItems(filter: ReviewFilter): void {\r\n try {\r\n if (!this.loaded) {\r\n this.loadingSubject.next(true);\r\n if (!this.category && this.apiName) {\r\n this.fetchService\r\n .getList(this.apiName)\r\n .pipe(finalize(() => this.loadingSubject.next(false)))\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (result: any[]) => {\r\n if (result && result.length > 0) {\r\n this.dataList = result as [];\r\n this.setDefaultFilterValue();\r\n this.retrieved(result);\r\n }\r\n },\r\n (error) => console.log(\"fetch error: \" + error)\r\n );\r\n } else {\r\n this.lookupservice\r\n .getLookupbyCategory(this.systemName, this.category)\r\n .pipe(finalize(() => this.loadingSubject.next(false)))\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (result) => {\r\n if ((result as []) && (result as []).length > 0) {\r\n this.dataList = result as [];\r\n this.setDefaultFilterValue();\r\n this.retrieved(result);\r\n }\r\n },\r\n (error) => console.log(\"fetch error: \" + error)\r\n );\r\n }\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n changed(value: any) {\r\n this.onChange.emit(value);\r\n if (value.Selected) {\r\n this.service.addFilter(this.name, [\r\n {\r\n key: this.key,\r\n value: value.Id,\r\n title: value.Title,\r\n persianKey: this.title,\r\n },\r\n ]);\r\n } else {\r\n this.service.removeFilter(this.name, this.key, [value.Id], \"array\",true);\r\n }\r\n }\r\n\r\n protected retrieved(data: any): void {\r\n this.items = [];\r\n if (data && data.length) {\r\n const ids: any[] = this.form.controls[this.key]?.value;\r\n data.forEach((x) => {\r\n if (ids.includes(x.Id)) {\r\n x.Selected = true;\r\n }\r\n });\r\n this.items = >data.map((c: any) => { Title: c[this.textFieldName], Id: c.Id, Selected: c.Selected });\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n if (this.ngUnsubscribe) {\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n this.items = undefined;\r\n this.dataList = undefined;\r\n this.form = undefined;\r\n }\r\n}\r\n","\r\n\r\n","import { Component, Input, OnChanges, SimpleChanges } from \"@angular/core\";\r\n\r\nimport { ReviewService } from \"../../review.service\";\r\nimport { ChartOptions, ChartType } from \"chart.js\";\r\nimport { Color } from \"ng2-charts\";\r\nimport { ReviewDataCardComponent } from \"../review-data-card.component\";\r\nimport { HttpCommonService, LookupService, AuthService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { PersianService } from \"projects/sepidz-web-framework/src/lib/services/persian.service\";\r\n\r\n@Component({\r\n selector: \"sepidz-chart-review\",\r\n template: `\r\n \r\n {{ title }}\r\n
\r\n \r\n
\r\n \r\n `,\r\n})\r\nexport class ChartReviewComponent extends ReviewDataCardComponent implements OnChanges {\r\n @Input() aggregateColumns: string[] = [\"data\"];\r\n @Input() keyColumn = \"Name\";\r\n @Input() seriesTitle = [\"data\"];\r\n @Input() chartColors: Color[] = chartColors;\r\n @Input() chartLegend = true;\r\n @Input() chartType: ChartType = \"bar\";\r\n @Input() stacked = true;\r\n @Input() chartOptions: ChartOptions;\r\n @Input() ratio = 1;\r\n labels: string[] = [];\r\n @Input() datasetList: any[] = [];\r\n @Input() dataList: any[] = [];\r\n loaded: boolean;\r\n\r\n constructor(\r\n service: ReviewService,\r\n fetchService: HttpCommonService,\r\n protected lookupservice: LookupService,\r\n private persian: PersianService,\r\n protected authService: AuthService\r\n ) {\r\n super(service, fetchService, lookupservice, authService);\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes[\"dataList\"].currentValue) {\r\n this.retrieved(this.dataList);\r\n }\r\n }\r\n protected retrieved(data: any): void {\r\n this.labels = [];\r\n this.datasetList = [];\r\n if (Array.isArray(data)) {\r\n for (const dataItem of data) {\r\n if (this.labels.indexOf(dataItem[this.keyColumn]) === -1) {\r\n this.labels.push(dataItem[this.keyColumn]);\r\n }\r\n }\r\n\r\n for (let i = 0; i < this.aggregateColumns.length; i++) {\r\n const aggregateColumnTitle = this.seriesTitle[i];\r\n const dataItems = {\r\n data: data.map((c) => c[this.aggregateColumns[i]]),\r\n label: aggregateColumnTitle,\r\n borderWidth: 0,\r\n };\r\n this.datasetList.push(dataItems);\r\n }\r\n } else {\r\n const dataItems = {\r\n data: {},\r\n label: \"Empty\",\r\n borderWidth: 0,\r\n };\r\n this.datasetList.push(dataItems);\r\n }\r\n }\r\n\r\n protected initialize(): void {\r\n this.populateDefaultOption();\r\n }\r\n\r\n populateDefaultOption(): any {\r\n this.chartOptions = {\r\n tooltips: {\r\n mode: \"index\",\r\n intersect: false,\r\n titleFontFamily: \"IRANSansX\",\r\n titleFontStyle: \"400\",\r\n titleFontSize: 12,\r\n bodyFontFamily: \"IRANSansX\",\r\n bodyFontSize: 12,\r\n },\r\n responsive: true,\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n color: \"rgba(0,0,0,0.02)\",\r\n zeroLineColor: \"rgba(0,0,0,0.02)\",\r\n },\r\n stacked: this.stacked,\r\n ticks: {\r\n beginAtZero: true,\r\n fontSize: 11,\r\n fontFamily: \"IRANSansX\",\r\n callback: (label, index, labels) => {\r\n if (isNaN(label as any)) {\r\n return label;\r\n }\r\n return this.persian.toPersianNumber(label as any);\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n color: \"rgba(0,0,0,0.02)\",\r\n zeroLineColor: \"rgba(0,0,0,0.02)\",\r\n },\r\n stacked: this.stacked,\r\n ticks: {\r\n beginAtZero: false,\r\n fontSize: 12,\r\n fontFamily: \"IRANSansX\",\r\n callback: (label, index, labels) => {\r\n if (isNaN(label as any)) {\r\n return label;\r\n }\r\n\r\n if (this.datasetList.every((d) => !d[\"data\"].length)) {\r\n return;\r\n }\r\n label = (label as number) / this.ratio;\r\n return this.persian.toPersianNumber(label as any);\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n legend: {\r\n display: false,\r\n position: \"bottom\",\r\n },\r\n plugins: {\r\n labels: {\r\n render: (args) => \"\",\r\n },\r\n },\r\n };\r\n }\r\n}\r\n\r\nconst chartColors = [\r\n {\r\n backgroundColor: \"#80CBC4\",\r\n borderColor: \"#00897B\",\r\n pointBackgroundColor: \"#00897B\",\r\n pointBorderColor: \"#fff\",\r\n pointHoverBackgroundColor: \"#fff\",\r\n pointHoverBorderColor: \"#00897B\",\r\n },\r\n {\r\n // dark grey\r\n backgroundColor: \"rgba(77,83,96,0.2)\",\r\n borderColor: \"rgba(77,83,96,1)\",\r\n pointBackgroundColor: \"rgba(77,83,96,1)\",\r\n pointBorderColor: \"#fff\",\r\n pointHoverBackgroundColor: \"#fff\",\r\n pointHoverBorderColor: \"rgba(77,83,96,1)\",\r\n },\r\n {\r\n // red\r\n backgroundColor: \"rgba(255,0,0,0.3)\",\r\n borderColor: \"red\",\r\n pointBackgroundColor: \"rgba(148,159,177,1)\",\r\n pointBorderColor: \"#fff\",\r\n pointHoverBackgroundColor: \"#fff\",\r\n pointHoverBorderColor: \"rgba(148,159,177,0.8)\",\r\n },\r\n {\r\n // grey\r\n backgroundColor: \"rgba(148,159,177,0.2)\",\r\n borderColor: \"rgba(148,159,177,1)\",\r\n pointBackgroundColor: \"rgba(148,159,177,1)\",\r\n pointBorderColor: \"#fff\",\r\n pointHoverBackgroundColor: \"#fff\",\r\n pointHoverBorderColor: \"rgba(148,159,177,0.8)\",\r\n },\r\n];\r\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {ChartType} from 'chart.js';\r\nimport { ChartComponent } from './chart.component';\r\nimport { PersianService } from 'projects/sepidz-web-framework/src/lib/services/persian.service';\r\n\r\n@Component({\r\n selector: 'sepidz-bar-chart',\r\n template: `\r\n
\r\n
\r\n {{ title }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class BarChartComponent extends ChartComponent {\r\n @Input() labelField = 'Name';\r\n @Input() valueField = 'Value';\r\n public type: ChartType = 'bar';\r\n\r\n constructor(httpClient: HttpClient, persian: PersianService) {\r\n super(httpClient, persian);\r\n }\r\n\r\n protected init() {\r\n super.init();\r\n this.options.legend.position = 'bottom';\r\n this.options.legend.labels.padding = 10;\r\n }\r\n\r\n protected loaded(data: any[]) {\r\n if (this.legendLabels.length > 1) {\r\n const datasetList = [...this.datasetList];\r\n datasetList.forEach(dataset => dataset.data.length = 0);\r\n data.forEach((dataItem: Array) => {\r\n (dataItem as Array).forEach(item => {\r\n if (this.labels.indexOf(item[this.labelField]) === -1) {\r\n this.labels.push(item[this.labelField]);\r\n }\r\n });\r\n\r\n for (let i = 0; i < dataItem.length; i++) {\r\n datasetList[i].data.push(dataItem[i][this.valueField]);\r\n }\r\n }\r\n );\r\n this.datasetList = [...datasetList];\r\n } else {\r\n data.forEach(item => {\r\n if (this.labels.indexOf(item[this.labelField]) === -1) {\r\n this.labels.push(item[this.labelField]);\r\n }\r\n });\r\n this.datasetList[0].data = data.map(c => c[this.valueField]);\r\n }\r\n }\r\n}\r\n","import { Input, OnChanges, OnDestroy, OnInit, SimpleChanges, Directive } from \"@angular/core\";\r\nimport { Color, Label, SingleOrMultiDataSet } from \"ng2-charts\";\r\nimport { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { Observable, Subscription } from \"rxjs\";\r\nimport { debounceTime, finalize, tap } from \"rxjs/operators\";\r\nimport { ChartDataSets, ChartOptions, ChartType } from \"chart.js\";\r\nimport labelPlugin from \"chartjs-plugin-labels\";\r\nimport { PersianService } from \"projects/sepidz-web-framework/src/lib/services/persian.service\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\n\r\nexport type ChartDataList = SingleOrMultiDataSet;\r\nexport type ChartDatasetList = ChartDataSets[];\r\n\r\n@Directive()\r\nexport abstract class ChartComponent implements OnInit, OnDestroy, OnChanges {\r\n private reloadSubscription: Subscription;\r\n private loadSubscription: Subscription;\r\n @Input() isLoading = true;\r\n @Input() data: any[];\r\n @Input() apiName: string;\r\n @Input() areaName: string;\r\n @Input() title: string;\r\n @Input() ratio = 1;\r\n @Input() stackedX = true;\r\n @Input() stackedY = true;\r\n @Input() legend = false;\r\n @Input() legendLabels: string[] = [];\r\n @Input() filters: NameValue[];\r\n @Input() tooltipEnabled = false;\r\n @Input() labelEnabled = false;\r\n @Input() reload: Observable;\r\n @Input() countable = true;\r\n @Input() colors: Color[] = [\r\n {\r\n // dark grey\r\n backgroundColor: \"rgba(77,83,96,0.2)\",\r\n borderColor: \"rgba(77,83,96,1)\",\r\n pointBackgroundColor: \"rgba(77,83,96,1)\",\r\n pointBorderColor: \"#fff\",\r\n pointHoverBackgroundColor: \"#fff\",\r\n pointHoverBorderColor: \"rgba(77,83,96,1)\",\r\n },\r\n {\r\n // cyan\r\n backgroundColor: \"#80CBC4\",\r\n borderColor: \"#00897B\",\r\n pointBackgroundColor: \"#00897B\",\r\n pointBorderColor: \"#fff\",\r\n pointHoverBackgroundColor: \"#fff\",\r\n pointHoverBorderColor: \"#00897B\",\r\n },\r\n {\r\n // red\r\n backgroundColor: \"rgba(255,0,0,0.3)\",\r\n borderColor: \"red\",\r\n pointBackgroundColor: \"rgba(148,159,177,1)\",\r\n pointBorderColor: \"#fff\",\r\n pointHoverBackgroundColor: \"#fff\",\r\n pointHoverBorderColor: \"rgba(148,159,177,0.8)\",\r\n },\r\n ];\r\n public plugins = [labelPlugin];\r\n public datasetList: ChartDatasetList = [{ data: [] }];\r\n public dataList: ChartDataList = [];\r\n public labels: Label[] = [];\r\n public options: ChartOptions;\r\n\r\n protected constructor(protected httpClient: HttpClient, protected persian: PersianService) {}\r\n\r\n protected abstract type: ChartType;\r\n\r\n protected abstract loaded(data: any[]);\r\n\r\n protected init() {\r\n this.options = {\r\n elements: {\r\n arc: {\r\n borderWidth: 0,\r\n },\r\n },\r\n tooltips: {\r\n enabled: this.tooltipEnabled,\r\n mode: \"index\",\r\n intersect: false,\r\n titleFontFamily: \"IRANSansX\",\r\n titleFontStyle: \"400\",\r\n titleFontSize: 12,\r\n bodyFontFamily: \"IRANSansX\",\r\n bodyFontSize: 12,\r\n },\r\n responsive: true,\r\n scales: {\r\n xAxes: [\r\n {\r\n gridLines: {\r\n color: \"rgba(0,0,0,0.02)\",\r\n zeroLineColor: \"rgba(0,0,0,0.02)\",\r\n },\r\n stacked: this.stackedX,\r\n ticks: {\r\n beginAtZero: true,\r\n fontSize: 12,\r\n fontFamily: \"IRANSansX\",\r\n callback: (label, index, labels) => {\r\n if (isNaN(label as any)) {\r\n return label;\r\n }\r\n return this.persian.toPersianNumber(label as any);\r\n },\r\n },\r\n },\r\n ],\r\n yAxes: [\r\n {\r\n gridLines: {\r\n color: \"rgba(0,0,0,0.02)\",\r\n zeroLineColor: \"rgba(0,0,0,0.02)\",\r\n },\r\n stacked: this.stackedY,\r\n ticks: {\r\n beginAtZero: true,\r\n fontSize: 12,\r\n fontFamily: \"IRANSansX\",\r\n callback: (label, index, labels) => {\r\n if (isNaN(label as any)) {\r\n return label;\r\n }\r\n\r\n if (this.datasetList.every((d) => !d.data.length)) {\r\n return;\r\n }\r\n label = (label as number) / this.ratio;\r\n return this.countable === true && label % 1 !== 0 ? undefined : this.persian.toPersianNumber(label as any);\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n legend: {\r\n display: this.legend,\r\n position: \"bottom\",\r\n labels: {\r\n fontSize: 12,\r\n fontFamily: \"IRANSansX\",\r\n },\r\n },\r\n plugins: {\r\n labels: {\r\n render: (args) => {\r\n return this.labelEnabled ? args.value : \"\";\r\n },\r\n fontFamily: \"IRANSansX\",\r\n fontSize: 18,\r\n },\r\n },\r\n };\r\n\r\n for (let i = 0; i < this.legendLabels.length; i++) {\r\n this.datasetList[i] = { data: [], label: this.legendLabels[i] };\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.init();\r\n if (this.apiName && !this.data) {\r\n this.load();\r\n this.reloading();\r\n } else if (this.data) {\r\n this.isLoading = false;\r\n this.loaded(this.data);\r\n }\r\n }\r\n\r\n private reloading() {\r\n if (!this.reload) {\r\n return;\r\n }\r\n\r\n this.reloadSubscription = this.reload\r\n .pipe(\r\n debounceTime(300),\r\n tap((value) => {\r\n if (value) {\r\n this.load();\r\n }\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n private load() {\r\n this.labels.length = 0;\r\n this.dataList.length = 0;\r\n const params = this.buildParams();\r\n this.loadSubscription = this.httpClient\r\n .get(`${this.apiName}`, { params })\r\n .pipe(finalize(() => (this.isLoading = false)))\r\n .subscribe((data: any[]) => {\r\n this.loaded(data);\r\n });\r\n }\r\n\r\n buildParams(): HttpParams | undefined {\r\n if (!this.filters) {\r\n return;\r\n }\r\n let params = new HttpParams();\r\n this.filters.forEach((f) => (params = params.append(f.Name, f.Value)));\r\n return params;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.loadSubscription) {\r\n this.loadSubscription.unsubscribe();\r\n }\r\n if (this.reloadSubscription) {\r\n this.reloadSubscription.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes[\"legendLabels\"] && !changes[\"legendLabels\"].isFirstChange()) {\r\n this.datasetList.forEach((dataset, i) => (dataset.label = changes[\"legendLabels\"][\"currentValue\"][i]));\r\n }\r\n if (changes[\"data\"] && !changes[\"data\"].isFirstChange()) {\r\n this.labels.length = 0;\r\n this.dataList.length = 0;\r\n this.isLoading = false;\r\n if (changes[\"data\"][\"currentValue\"]) {\r\n this.loaded(changes[\"data\"][\"currentValue\"]);\r\n }\r\n }\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {ChartDataSets, ChartType} from 'chart.js';\r\nimport { ChartComponent } from './chart.component';\r\nimport { PersianService } from 'projects/sepidz-web-framework/src/lib/services/persian.service';\r\n\r\n@Component({\r\n selector: 'sepidz-doughnut-chart',\r\n template: `\r\n
\r\n
\r\n {{ title }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class DoughnutChartComponent extends ChartComponent {\r\n @Input() labelField = 'Name';\r\n @Input() valueField = 'Value';\r\n public type: ChartType = 'doughnut';\r\n\r\n constructor(httpClient: HttpClient, persian: PersianService) {\r\n super(httpClient, persian);\r\n }\r\n\r\n protected init() {\r\n super.init();\r\n this.options.legend.position = 'right';\r\n this.options.scales = undefined;\r\n this.options.plugins.labels.precision = 2;\r\n this.options.plugins.labels.fontColor = 'white';\r\n }\r\n\r\n protected loaded(data: any[]) {\r\n if (Array.isArray(data)) {\r\n for (const dataItem of data) {\r\n if (this.labels.indexOf(dataItem[this.labelField]) === -1) {\r\n this.labels.push(dataItem[this.labelField]);\r\n }\r\n }\r\n\r\n this.dataList = data.map(c => c[this.valueField]);\r\n } else {\r\n const dataset = {\r\n data: [],\r\n borderWidth: 0\r\n };\r\n this.datasetList.push(dataset);\r\n }\r\n }\r\n}\r\n","import { ChangeDetectionStrategy, Component, Input } from \"@angular/core\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { ChartType } from \"chart.js\";\r\nimport { ChartComponent } from './chart.component';\r\nimport { PersianService } from 'projects/sepidz-web-framework/src/lib/services/persian.service';\r\n\r\n@Component({\r\n selector: 'sepidz-line-chart',\r\n template: `\r\n
\r\n
\r\n {{ title }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class LineChartComponent extends ChartComponent {\r\n @Input() labelField: string = 'Name';\r\n @Input() valueField: string = 'Value';\r\n public type: ChartType = 'line';\r\n\r\n constructor(httpClient: HttpClient, persian: PersianService) {\r\n super(httpClient, persian);\r\n }\r\n\r\n protected init() {\r\n super.init();\r\n this.options.legend.position = 'bottom';\r\n this.options.legend.labels.padding = 10;\r\n }\r\n\r\n protected loaded(data: any[]) {\r\n if (this.legendLabels.length > 1) {\r\n const datasetList = [...this.datasetList];\r\n datasetList.forEach(dataset => dataset.data.length = 0);\r\n data.forEach((dataItem: Array) => {\r\n (dataItem as Array).forEach(item => {\r\n if (this.labels.indexOf(item[this.labelField]) === -1) {\r\n this.labels.push(item[this.labelField]);\r\n }\r\n });\r\n\r\n for (let i = 0; i < dataItem.length; i++) {\r\n datasetList[i].data.push(dataItem[i][this.valueField]);\r\n }\r\n }\r\n );\r\n this.datasetList = [...datasetList];\r\n } else {\r\n data.forEach(item => {\r\n if (this.labels.indexOf(item[this.labelField]) === -1) {\r\n this.labels.push(item[this.labelField]);\r\n }\r\n });\r\n this.datasetList[0].data = data.map(c => c[this.valueField]);\r\n }\r\n }\r\n}\r\n","import {ChangeDetectionStrategy, Component, Input} from '@angular/core';\r\nimport {HttpClient} from '@angular/common/http';\r\nimport {ChartType} from 'chart.js';\r\nimport { ChartComponent } from './chart.component';\r\nimport { PersianService } from 'projects/sepidz-web-framework/src/lib/services/persian.service';\r\n\r\n@Component({\r\n selector: 'sepidz-pie-chart',\r\n template: `\r\n
\r\n
\r\n {{ title }}\r\n
\r\n
\r\n \r\n
\r\n
\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class PieChartComponent extends ChartComponent {\r\n @Input() labelField: string = 'Name';\r\n @Input() valueField: string = 'Value';\r\n public type: ChartType = 'pie';\r\n\r\n constructor(httpClient: HttpClient, persian: PersianService) {\r\n super(httpClient, persian);\r\n }\r\n\r\n protected init() {\r\n super.init();\r\n this.options.legend.position = 'right';\r\n this.options.scales = undefined;\r\n this.options.plugins.labels.precision = 2;\r\n this.options.plugins.labels.fontColor = 'white';\r\n }\r\n\r\n protected loaded(data: any[]) {\r\n data.forEach(dataItem => {\r\n if (this.labels.indexOf(dataItem[this.labelField]) === -1) {\r\n this.labels.push(dataItem[this.labelField]);\r\n }\r\n });\r\n\r\n this.dataList = data.map(c => c[this.valueField]);\r\n }\r\n}\r\n","import { Component, OnInit, Input } from \"@angular/core\";\r\nimport { UntypedFormGroup, UntypedFormBuilder, AbstractControl, Validators } from \"@angular/forms\";\r\nimport { ReviewService } from \"src/app/review/review.service\";\r\nimport { ReviewCardComponent } from \"../review-card.component\";\r\nimport { ReviewFilter } from \"src/app/review/models/review-filter\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\nimport * as moment from \"moment\";\r\nimport { ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { AppInjector } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\n\r\n@Component({\r\n selector: \"date-filter-review\",\r\n templateUrl: \"./date-filter-review.component.html\",\r\n styleUrls: [\"./date-filter-review.component.scss\"],\r\n})\r\nexport class DateFilterReviewComponent extends ReviewCardComponent implements OnInit {\r\n form: UntypedFormGroup;\r\n isOk4Load: boolean = false;\r\n DateNow: string;\r\n DateYesterday: string;\r\n limitDateChanges: boolean = false;\r\n protected sts: ShowToastrService;\r\n @Input() hasIncludeTime: boolean = false;\r\n @Input() showAllDays: boolean = false;\r\n constructor(service: ReviewService, private fb: UntypedFormBuilder) {\r\n super(service);\r\n this.sts = AppInjector.get(ShowToastrService);\r\n this.name = \"default-date-filter\";\r\n }\r\n\r\n ngOnInit() {\r\n this.createForm();\r\n super.ngOnInit();\r\n\r\n this.service.startDate$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && this.form) {\r\n this.form.controls[\"StartDate\"].setValue(x, { emitEvent: false });\r\n this.service.startDate = x;\r\n this.isOk4Load = true;\r\n }\r\n });\r\n this.service.endDate$.pipe(takeUntil(this.ngUnsubscribe)).subscribe((x) => {\r\n if (x && this.form) {\r\n this.form.controls[\"EndDate\"].setValue(x, { emitEvent: false });\r\n this.service.endDate = x;\r\n this.isOk4Load = true;\r\n }\r\n });\r\n\r\n this.form\r\n .get(\"StartDate\")\r\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((s) => {\r\n if (s) this.applyFilter();\r\n });\r\n this.form\r\n .get(\"EndDate\")\r\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((s) => {\r\n if (s) this.applyFilter();\r\n });\r\n this.form\r\n .get(\"StartTime\")\r\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((s) => {\r\n if (s) this.applyFilter();\r\n });\r\n this.form\r\n .get(\"EndTime\")\r\n .valueChanges.pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe((s) => {\r\n if (s) this.applyFilter();\r\n });\r\n }\r\n\r\n createForm() {\r\n this.form = this.fb.group({\r\n StartDate: this.service.startDate,\r\n EndDate: this.service.endDate,\r\n StartTime: this.service.startTime,\r\n EndTime: this.service.endTime,\r\n includeTime: this.service.includeTime,\r\n });\r\n }\r\n\r\n private formatDateToYYYYMMDD(date) {\r\n const year = date.getFullYear();\r\n const month = (date.getMonth() + 1).toString().padStart(2, \"0\");\r\n const day = date.getDate().toString().padStart(2, \"0\");\r\n return `${year}/${month}/${day}`;\r\n }\r\n\r\n applyFilter() {\r\n const m = moment();\r\n const today = m.locale(\"fa\").format(\"YYYY/MM/DD\");\r\n const yesterday = m.locale(\"fa\").subtract(1, \"days\").format(\"YYYY/MM/DD\");\r\n const controls = this.form.controls;\r\n\r\n if (!this.showAllDays && controls[\"StartDate\"].value && controls[\"EndDate\"].value) {\r\n const startDateFormatted = this.formatDateToYYYYMMDD(new Date(controls[\"StartDate\"].value));\r\n const endDateFormatted = this.formatDateToYYYYMMDD(new Date(controls[\"EndDate\"].value));\r\n\r\n if (startDateFormatted > today || startDateFormatted < yesterday || endDateFormatted > today || endDateFormatted < yesterday) {\r\n this.sts.showDialog(\"کاربر گرامی شما تنها مجاز به انتخاب تاریخ دیروز و امروز هستید\", \"عدم دسترسی\");\r\n controls[\"StartDate\"].setValue(new Date(), { emitEvent: false });\r\n controls[\"EndDate\"].setValue(new Date(), { emitEvent: false });\r\n }\r\n }\r\n\r\n const startDateTime = this.appendTimeToDate(controls[\"StartDate\"].value, this.service.includeTime ? controls[\"StartTime\"].value : \"00:00\");\r\n const endDateTime = this.appendTimeToDate(controls[\"EndDate\"].value, this.service.includeTime ? controls[\"EndTime\"].value : \"00:00\");\r\n\r\n this.service.startDate = controls[\"StartDate\"].value;\r\n this.service.endDate = controls[\"EndDate\"].value;\r\n this.service.endTime = controls[\"EndTime\"].value;\r\n this.service.startTime = controls[\"StartTime\"].value;\r\n this.service.startDate$.next(this.service.startDate);\r\n this.service.endDate$.next(this.service.endDate);\r\n\r\n if (`${startDateTime}` !== \"Invalid Date\" && `${endDateTime}` !== \"Invalid Date\") {\r\n this.service.applyDateTimeFilter(this.name, startDateTime, endDateTime, this.service.includeTime);\r\n }\r\n }\r\n\r\n protected loadItems(filter: ReviewFilter): void {}\r\n\r\n private appendTimeToDate(date: string, time: string) {\r\n const dateTime = new Date(date);\r\n const [hours, minutes] = time\r\n .toString()\r\n .split(\":\")\r\n .map((x: string) => parseInt(x));\r\n\r\n dateTime.setHours(hours, minutes, 0, 0);\r\n return dateTime;\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {{ \"ClientApp.Review.ReviewCard.DateFilterReview.IncludesClockFilter\" | translate }}\r\n {{\r\n \"ClientApp.Review.ReviewCard.DateFilterReview.IncludesClockFilter\" | translate\r\n }}\r\n
\r\n
\r\n","import { ClearableCache } from \"projects/sepidz-web-framework/src/lib/models/clearablecache.model\";\r\nimport { Component, EventEmitter, Output } from \"@angular/core\";\r\nimport { REVIEW_DATE_TIME_KEYES } from \"./../../review-helper\";\r\nimport { ReviewCardComponent } from \"../review-card.component\";\r\nimport { ReviewFilter } from \"../../models/review-filter\";\r\nimport { ReviewFilterItem } from \"../../models/review-filter-item\";\r\nimport { ReviewService } from \"../../review.service\";\r\n\r\nimport * as moment from \"jalali-moment\";\r\n\r\n@Component({\r\n selector: \"sepidz-filter-item-review\",\r\n templateUrl: \"./filter-item-review.component.html\",\r\n styleUrls: [\"./filter-item-review.component.scss\"],\r\n})\r\nexport class FilterItemReviewComponent extends ReviewCardComponent {\r\n items: ReviewFilterItem[];\r\n @Output() filterStatusChange = new EventEmitter();\r\n\r\n constructor(service: ReviewService) {\r\n super(service);\r\n this.name = \"default-filter-item\";\r\n }\r\n\r\n protected loadItems(filter: ReviewFilter): void {\r\n this.items = filter.items.filter((item) => !REVIEW_DATE_TIME_KEYES.includes(item.key));\r\n this.filterStatusChange.emit(this.items.length > 0);\r\n }\r\n\r\n changed(item: ReviewFilterItem) {\r\n this.service.removeFilter(this.name, item.key, [item.value], item.valueType, true);\r\n this.items = this.items.filter((i) => !(i.key === item.key && (i.valueType === \"number\" || i.valueType === \"text\" || i.value === item.value)));\r\n this.filterStatusChange.emit(this.items.length > 0);\r\n }\r\n\r\n isValidDate(value: string) {\r\n if (!value || value === null) {\r\n return false;\r\n }\r\n return moment(value, \"YYYY-MM-DDTHH:mm:ss\", true).isValid() || moment(value, \"YYYY-MM-DD\", true).isValid();\r\n }\r\n\r\n clearAll() {\r\n this.items.forEach((x) => {\r\n this.service.removeFilter(this.name, x.key, [x.value], x.valueType, true);\r\n });\r\n this.items = [];\r\n this.filterStatusChange.emit(false);\r\n }\r\n\r\n isValidNumber(value: string) {\r\n return !isNaN(Number(value));\r\n }\r\n\r\n isActive(): boolean {\r\n return this.items && this.items.length > 0;\r\n }\r\n}\r\n","
0\">\r\n
x
\r\n
\r\n \r\n {{ item.title | persianDate }}\r\n \r\n \r\n {{ item.title }}\r\n \r\n \r\n {{ item.title }}\r\n \r\n
×
\r\n
\r\n
","import { AfterViewInit, ChangeDetectionStrategy } from \"@angular/core\";\r\n\r\nimport { Component, Input, TemplateRef, ViewChild, EventEmitter, Output } from \"@angular/core\";\r\n\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { ReviewCardComponent } from \"../review-card.component\";\r\nimport { ReviewFilter } from \"../../models/review-filter\";\r\nimport { ReviewFilterItem } from \"../../models/review-filter-item\";\r\nimport { ReviewHelper } from \"../../review-helper\";\r\nimport { ReviewService } from \"../../review.service\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { EntityListAction, form_control } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { GridFilter, AuthService, PagingDataResult } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { KGridComponent } from \"projects/sepidz-web-framework-data-grid/src/lib/kgrid.component\";\r\n\r\n@Component({\r\n selector: \"sepidz-grid-review\",\r\n templateUrl: \"./grid-review.component.html\",\r\n styleUrls: [\"./grid-review.component.scss\"],\r\n changeDetection: ChangeDetectionStrategy.Default,\r\n})\r\nexport class GirdReviewComponent extends ReviewCardComponent implements AfterViewInit {\r\n @ViewChild(\"grid\") kGrid: KGridComponent;\r\n\r\n reloadSubject = new BehaviorSubject(false);\r\n filters: GridFilter[];\r\n filterText: string;\r\n @Input() unSortableFilterable: string[] = [];\r\n @Input() onlyDefaultSortKey: boolean = false;\r\n @Input() columns: form_control[];\r\n @Input() displayNameColumn: string;\r\n @Input() valueNameColumn: string = \"Id\";\r\n @Input() filterTextPrefix = \"\";\r\n @Input() title: string;\r\n @Input() pathPreFix: string;\r\n @Input() actions: any[];\r\n @Input() customDataList: any[] = [];\r\n @Input() actionTregger: (\r\n action: EntityListAction,\r\n onRowSelected: any,\r\n onRowsSelected: any[],\r\n isAllSelected: boolean,\r\n gridFilter: GridFilter[]\r\n ) => void;\r\n @Input() isModal = true;\r\n @Input() filtering = true;\r\n @Input() groupable = true;\r\n @Input() selective = true;\r\n @Output() expanded: EventEmitter = new EventEmitter();\r\n @Output() collapsed: EventEmitter = new EventEmitter();\r\n @Input() public doubleClick: () => boolean;\r\n @Input() aggregatesColumnName: string;\r\n @Input() defaultSortKey: string;\r\n @Output() onRowSelected: EventEmitter = new EventEmitter();\r\n constructor(service: ReviewService, private authService: AuthService) {\r\n super(service);\r\n }\r\n\r\n ngOnInit() {\r\n super.ngOnInit();\r\n this.authService.currentFiscalYear;\r\n }\r\n\r\n async ngAfterViewInit() {\r\n this.kGrid.apiName = this.apiName;\r\n this.setInitialFilter();\r\n this.kGrid.ngOnInit();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.setDefaultFilters();\r\n super.ngOnDestroy();\r\n }\r\n\r\n onDoubleClick(data: any) {\r\n if (this.doubleClick) {\r\n this.applyFilter([data]);\r\n this.doubleClick();\r\n }\r\n }\r\n public applyFilter(data: any[]) {\r\n if (!data) return;\r\n if (data && !data.length && !this.selective) {\r\n this.onRowSelected.emit(data);\r\n if (!this.selective && !this.displayNameColumn) return;\r\n const filter = this.service.filterSubject.getValue();\r\n filter.items.forEach((x) => {\r\n if (x.key === this.key && data && data[this.valueNameColumn] !== x.value) {\r\n this.service.removeFilter(this.name, this.key, [x.value], \"array\");\r\n }\r\n });\r\n const filters = [{ key: this.key, value: data[this.valueNameColumn], title: this.filterTextPrefix + data[this.displayNameColumn] }];\r\n if (this.key) {\r\n this.service.addFilter(this.name, filters as ReviewFilterItem[]);\r\n }\r\n }\r\n if (data.length === 0) {\r\n const filter = this.service.filterSubject.getValue();\r\n filter.items.forEach((x) => {\r\n if (x.key === this.key) this.service.removeFilter(this.name, this.key, [x.value], \"array\");\r\n });\r\n return;\r\n } else if (data.length > 0) {\r\n this.onRowSelected.emit(data);\r\n if (!this.selective && !this.displayNameColumn) return;\r\n const filter = this.service.filterSubject.getValue();\r\n filter.items.forEach((x) => {\r\n if (x.key === this.key && data && data?.length > 0 && !data.some((d) => d[this.valueNameColumn] === x.value)) {\r\n const shouldUpdateFilterSubject = data.length > 1;\r\n this.service.removeFilter(this.name, this.key, [x.value], \"array\", shouldUpdateFilterSubject);\r\n }\r\n });\r\n const filters = data.map(\r\n (item) =>\r\n {\r\n key: this.key,\r\n value: item[this.valueNameColumn],\r\n title: this.filterTextPrefix + item[this.displayNameColumn],\r\n }\r\n );\r\n if (this.key) {\r\n this.service.addFilter(this.name, filters);\r\n }\r\n }\r\n }\r\n setFilterText() {\r\n this.filterText = \"\";\r\n const filter = this.service.filterSubject.getValue();\r\n if (filter?.items)\r\n filter.items.forEach((x) => {\r\n if (\r\n x.key !== \"StartDate\" &&\r\n x.key !== \"EndDate\" &&\r\n x.key !== \"StartNumber\" &&\r\n x.key !== \"EndNumber\" &&\r\n x.key !== \"IncludeTime\" &&\r\n x.key !== \"StartTime\" &&\r\n x.key !== \"EndTime\"\r\n ) {\r\n if (!this.filterText) this.filterText = x.title;\r\n else this.filterText += \",\" + x.title;\r\n }\r\n });\r\n }\r\n protected FillFilters(filters: NameValue[]) {\r\n this.filters = [];\r\n this.setFilterText();\r\n filters.forEach((x) => {\r\n if (x.Name === \"StartDate\") this.filters.push({ Type: \"F\", Filed: \"VoucherDate\", Value: x.Value, Operator: \"gte\" });\r\n else if (x.Name === \"EndDate\") this.filters.push({ Type: \"F\", Filed: \"VoucherDate\", Value: x.Value, Operator: \"lte\" });\r\n else if (x.Name === \"StartNumber\") this.filters.push({ Type: \"F\", Filed: \"VoucherNo\", Value: x.Value, Operator: \"gte\" });\r\n else if (x.Name === \"EndNumber\") this.filters.push({ Type: \"F\", Filed: \"VoucherNo\", Value: x.Value, Operator: \"lte\" });\r\n else if (x.Name.includes(\"Ids\")) this.filters.push({ Type: \"F\", Filed: x.Name, Value: x.Value, Operator: \"contains\" });\r\n else this.filters.push({ Type: \"F\", Filed: x.Name, Value: x.Value, Operator: \"eq\" });\r\n });\r\n }\r\n protected loadItems(filters: ReviewFilter): void {\r\n this.FillFilters([...ReviewHelper.generateNameValue(filters)]);\r\n this.reloadSubject.next(true);\r\n }\r\n\r\n private setDefaultFilters() {\r\n const gridFilters = this.kGrid.state?.filter?.filters;\r\n const defaultFilter = this.service.gridDefaultFilters?.find((x) => x.name === this.name);\r\n if (gridFilters?.length > 0) {\r\n if (defaultFilter) defaultFilter.filters = gridFilters;\r\n else this.service.gridDefaultFilters.push({ name: this.name, filters: gridFilters });\r\n } else {\r\n const index = this.service.gridDefaultFilters?.findIndex((x) => x.name === this.name);\r\n if (index !== -1) this.service.gridDefaultFilters.splice(index, 1);\r\n }\r\n }\r\n setInitialFilter() {\r\n const defaultFilter = this.service.gridDefaultFilters?.find((x) => x.name === this.name);\r\n if (defaultFilter?.filters?.length > 0) {\r\n const filterService = this.kGrid.grid[\"filterService\"];\r\n filterService.filter({\r\n logic: \"and\",\r\n filters: defaultFilter.filters,\r\n });\r\n }\r\n }\r\n}\r\n","\r\n\r\n","import { Input, OnDestroy, OnInit, Directive } from '@angular/core';\r\n\r\nimport { Subject, Subscription } from 'rxjs';\r\nimport { ReviewFilter } from '../models/review-filter';\r\nimport { ReviewService } from '../review.service';\r\nimport { REVIEW_DATE_TIME_KEYES } from '../review-helper';\r\nimport {takeUntil} from \"rxjs/operators\"; \r\n\r\n@Directive()\r\nexport abstract class ReviewCardComponent implements OnInit, OnDestroy {\r\n protected reloadSubscription: Subscription;\r\n protected lastFilter: ReviewFilter;\r\n protected loaded = false;\r\n ngUnsubscribe = new Subject();\r\n protected constructor(protected service: ReviewService) { }\r\n @Input() name: string;\r\n @Input() key: string;\r\n @Input() apiName : string;\r\n @Input() areaName: string;\r\n @Input() title: string;\r\n @Input() triggerKeys: string[];\r\n @Input()\r\n reload: (oldFilter: ReviewFilter, newFilter: ReviewFilter) => boolean;\r\n @Input()\r\n isList: boolean;\r\n ngOnInit() {\r\n this.reloading();\r\n this.initialize();\r\n }\r\n\r\n protected initialize(): void { }\r\n protected abstract loadItems(filter: ReviewFilter): void;\r\n protected filterChanging(filter: ReviewFilter): void { }\r\n\r\n private reloading() {\r\n this.service.filter$\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n (filter: ReviewFilter) => {\r\n this.filterChanging(filter);\r\n if (\r\n !this.loaded ||\r\n filter.changedKeys.length > 1 ||\r\n filter.changedKeys[0] !== this.key\r\n ) {\r\n if (\r\n !this.reload ||\r\n (this.reload(this.lastFilter, filter) &&\r\n this.checkTriggerChangedKeys(filter)) ||\r\n this.checkForceReload(filter)\r\n ) {\r\n this.prepareFilterAndLoadItems(filter);\r\n }\r\n }\r\n\r\n this.lastFilter = filter;\r\n }\r\n );\r\n }\r\n\r\n private prepareFilterAndLoadItems(filter: ReviewFilter) {\r\n const filterForLoad = this.prepareFilterForLoading(filter);\r\n this.loadItems(filterForLoad);\r\n this.loaded = true;\r\n }\r\n\r\n protected prepareFilterForLoading(filter: ReviewFilter) {\r\n const filterForLoad = { ...filter };\r\n filterForLoad.items = filter.items.filter(i => i.key !== this.key);\r\n return filterForLoad;\r\n }\r\n\r\n private checkForceReload(filter: ReviewFilter): boolean {\r\n return filter.changedKeys.some(c => REVIEW_DATE_TIME_KEYES.indexOf(c) >= 0);\r\n }\r\n\r\n private checkTriggerChangedKeys(filter: ReviewFilter) {\r\n return (\r\n !this.triggerKeys ||\r\n this.triggerKeys.some(c => filter.changedKeys.indexOf(c) >= 0)\r\n );\r\n }\r\n\r\n ngOnDestroy() {\r\n if(this.ngUnsubscribe)\r\n this.ngUnsubscribe.next();\r\n this.ngUnsubscribe.complete();\r\n }\r\n}\r\n","import { BehaviorSubject, Subject } from 'rxjs';\r\nimport { Input, Directive } from '@angular/core';\r\nimport { ReviewCardComponent } from './review-card.component';\r\nimport { ReviewFilter } from '../models/review-filter';\r\nimport { ReviewHelper } from '../review-helper';\r\nimport { ReviewService } from '../review.service';\r\nimport { finalize } from 'rxjs/operators';\r\nimport { HttpCommonService, LookupService, GridFilter, AuthService } from 'projects/sepidz-web-framework/src/lib/services';\r\nimport {takeUntil} from 'rxjs/operators';\r\n\r\n@Directive()\r\nexport abstract class ReviewDataCardComponent extends ReviewCardComponent {\r\n protected loadingSubject = new BehaviorSubject(false);\r\n public get loading$() {\r\n return this.loadingSubject.asObservable();\r\n }\r\n loading: boolean = false;\r\n @Input()\r\n apiName: string;\r\n @Input()\r\n systemName: string;\r\n @Input()\r\n category: string;\r\n @Input()\r\n isList: boolean;\r\n @Input()\r\n datasetList: any[] = [];\r\n protected constructor(\r\n service: ReviewService,\r\n protected fetchService: HttpCommonService,\r\n protected lookupservice: LookupService,\r\n protected authService: AuthService,\r\n ) {\r\n super(service);\r\n }\r\n\r\n protected abstract retrieved(data: any): void;\r\n protected FillFilters(filters: ReviewFilter): GridFilter[] {\r\n var basefilters = ReviewHelper.buildQuery(filters);\r\n let _filters = [];\r\n basefilters.filters.forEach(x => {\r\n if (x.Name === \"StartDate\")\r\n _filters.push({ Type: 'F', Filed: 'VoucherDate', Value: x.Value, Operator: 'gte' });\r\n else\r\n if (x.Name === \"EndDate\")\r\n _filters.push({ Type: 'F', Filed: 'VoucherDate', Value: x.Value, Operator: 'lte' });\r\n else\r\n if (x.Name === \"StartNumber\")\r\n _filters.push({ Type: 'F', Filed: 'VoucherNo', Value: x.Value, Operator: 'gte' });\r\n else\r\n if (x.Name === \"EndNumber\")\r\n _filters.push({ Type: 'F', Filed: 'VoucherNo', Value: x.Value, Operator: 'lte' });\r\n else\r\n if (x.Name.includes(\"Ids\"))\r\n _filters.push({ Type: 'F', Filed: x.Name, Value: x.Value, Operator: 'contains' });\r\n else\r\n _filters.push({ Type: 'F', Filed: x.Name, Value: x.Value, Operator: 'eq' });\r\n });\r\n _filters.forEach(x => { x.Take = 1000 });\r\n return _filters;\r\n }\r\n protected loadItems(filter: ReviewFilter): void {\r\n if (!this.apiName) return;\r\n if (!this.loading) {\r\n this.loading = true;\r\n this.loadingSubject.next(true);\r\n const query = this.FillFilters(filter);\r\n if (this.apiName) {\r\n this.fetchService\r\n .GetFilterGrid(this.apiName, query)\r\n .pipe(finalize(() => this.loadingSubject.next(false)))\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(\r\n result => {\r\n this.loading = false;\r\n this.retrieved(result);\r\n },\r\n error => { this.loading = false; console.log('fetch error: ' + error); }\r\n );\r\n }\r\n }\r\n }\r\n \r\n}\r\n","import { ReviewFilterItem } from \"./models/review-filter-item\";\r\nimport { ReviewFilter } from \"./models/review-filter\";\r\nimport { FilteredPagedQueryModel } from \"./models/filtered-paged-query-model\";\r\nimport { NameValue } from \"projects/sepidz-web-framework/src/lib/models/name-value\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\nexport const REVIEW_START_DATE_TIME_KEY = \"StartDate\";\r\nexport const REVIEW_END_DATE_TIME_KEY = \"EndDate\";\r\nexport const REVIEW_INCLUDE_TIME_KEY = \"IncludeTime\";\r\nexport const REVIEW_DATE_TIME_KEYES: string[] = [REVIEW_START_DATE_TIME_KEY, REVIEW_END_DATE_TIME_KEY, REVIEW_INCLUDE_TIME_KEY];\r\n\r\nexport interface Group {\r\n key: string;\r\n members: T[];\r\n valueType: \"array\" | \"boolean\" | \"joinedString\" | \"text\" | \"number\";\r\n}\r\n\r\nexport abstract class ReviewHelper {\r\n public static buildQuery(filter: ReviewFilter): FilteredPagedQueryModel {\r\n return {\r\n filters: ReviewHelper.generateNameValue(filter),\r\n };\r\n }\r\n\r\n public static generateNameValue(filter: ReviewFilter): NameValue[] {\r\n const dateFilters = filter.items.filter((c) => REVIEW_DATE_TIME_KEYES.indexOf(c.key) >= 0);\r\n\r\n const dateFiltersMap = dateFilters.map((d: any) => { Name: d.key, Value: d.value });\r\n const arrayFilters = filter.items.filter((c) => REVIEW_DATE_TIME_KEYES.indexOf(c.key) === -1);\r\n const arrayFiltersMap = ReviewHelper.groupBy(arrayFilters, (c) => c.key).map((group: Group) => {\r\n if (group.valueType === \"boolean\" && group.members.length > 1) {\r\n throw Error(\"Boolean ValueType Should Contain Just 1 Item\");\r\n }\r\n let value;\r\n if (group.valueType === undefined || group.valueType === \"array\") {\r\n value = group.members.map((item) => item.value);\r\n } else if (group.valueType === \"joinedString\") {\r\n value = group.members.map((item) => item.value).join(\",\");\r\n } else if (group.valueType === \"boolean\" && group.members && group.members.length) {\r\n value = true;\r\n } else if ((group.valueType === \"number\" || group.valueType === \"text\") && group.members && group.members.length) {\r\n value = group.members[0].value;\r\n }\r\n return {\r\n Name: group.key,\r\n Value: value,\r\n };\r\n });\r\n return dateFiltersMap.concat(arrayFiltersMap).filter((n) => n.Value !== undefined);\r\n }\r\n\r\n public static generateExportNameValue(filter: ReviewFilter, translate: TranslateService): NameValue[] {\r\n const dateFilters = filter.items.filter((c) => REVIEW_DATE_TIME_KEYES.indexOf(c.key) >= 0);\r\n\r\n const dateFiltersMap = dateFilters.map((d: ReviewFilterItem) => { Name: d.persianKey, Value: d.value });\r\n const arrayFilters = filter.items.filter((c) => REVIEW_DATE_TIME_KEYES.indexOf(c.key) === -1);\r\n const arrayFiltersMap = ReviewHelper.groupBy(arrayFilters, (c) => c.persianKey).map((group: Group) => {\r\n if (group.valueType === \"boolean\" && group.members.length > 1) {\r\n throw Error(\"Boolean ValueType Should Contain Just 1 Item\");\r\n }\r\n let value;\r\n if (group.valueType === undefined || group.valueType === \"array\") {\r\n value = group.members.map((item) => item.title).join(\"، \");\r\n } else if (group.valueType === \"joinedString\") {\r\n value = group.members.map((item) => item.title).join(\"، \");\r\n } else if (group.valueType === \"boolean\" && group.members && group.members.length) {\r\n value = translate.instant(\"ClientApp.Review.Yes\");\r\n }\r\n return {\r\n Name: group.key,\r\n Value: value,\r\n };\r\n });\r\n return dateFiltersMap\r\n .concat(arrayFiltersMap)\r\n .filter((n) => n.Value !== undefined && n.Value !== false)\r\n .map((f) => ({ Name: f.Name, Value: f.Value === true ? translate.instant(\"ClientApp.Review.Yes\") : f.Value, Operator: \"\" }));\r\n }\r\n\r\n public static groupBy(collection: T[], key: (x: T) => string): Group[] {\r\n // prevents the application from breaking if the array of objects doesn't exist yet\r\n if (!collection) {\r\n return null;\r\n }\r\n\r\n const groupedCollection = collection.reduce((previous, current) => {\r\n const groupName = key(current);\r\n if (!previous[groupName]) {\r\n previous[groupName] = [current];\r\n } else {\r\n previous[groupName].push(current);\r\n }\r\n return previous;\r\n }, {});\r\n\r\n // this will return an array of objects, each object containing a group of objects\r\n return Object.keys(groupedCollection).map(\r\n (key) =>\r\n >{\r\n key,\r\n members: groupedCollection[key],\r\n valueType: groupedCollection[key][0][\"valueType\"],\r\n }\r\n );\r\n }\r\n}\r\n","import { Component, OnInit, Input, OnDestroy, HostListener, ViewChild, AfterViewInit, ChangeDetectorRef } from \"@angular/core\";\r\nimport { UntypedFormControl, UntypedFormGroup, Validators } from \"@angular/forms\";\r\nimport { SimpleModalService } from \"projects/sepidz-web-framework/src/lib/services/sepidzmodal/simple-modal.service\";\r\nimport { FilterNameComponent } from \"./filter-name/filter-name.component\";\r\nimport { ReviewService } from \"./review.service\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { FilterItemReviewComponent } from \"./review-card/filter-item-review/filter-item-review.component\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n@Component({\r\n selector: \"sepidz-review\",\r\n templateUrl: \"./review.component.html\",\r\n styleUrls: [\"./review.component.scss\"],\r\n})\r\nexport class ReviewComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @Input() hasIncludeTime: boolean = false;\r\n @Input() showFilter: boolean = true;\r\n @Input() showDateFilter: boolean = true;\r\n @Input() hasSavebutton: boolean = true;\r\n @Input() showAllDays = true;\r\n selectedReviewReport: any;\r\n\r\n @ViewChild(\"filterItem\") filterItem: FilterItemReviewComponent;\r\n isFilterActive: boolean = false;\r\n\r\n gridClass: string = \"col-md-9 col-lg-10 col-xxxl-10\";\r\n @HostListener(\"window:resize\", [\"$event\"])\r\n onWindowResize() {\r\n if (window.innerWidth < 992) this.showFilter = false;\r\n }\r\n public formGroup: UntypedFormGroup;\r\n constructor(\r\n private dialogService: SimpleModalService,\r\n public reviewService: ReviewService,\r\n private cdr: ChangeDetectorRef,\r\n protected translate: TranslateService\r\n ) {}\r\n ngOnInit(): void {\r\n this.FillData();\r\n if (window.innerWidth < 992) this.showFilter = false;\r\n }\r\n ngOnDestroy() {\r\n this.dialogService = null;\r\n this.reviewService = null;\r\n this.hasSavebutton = !this.hasSavebutton;\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.filterItem.filterStatusChange.subscribe((status) => {\r\n this.isFilterActive = status;\r\n this.cdr.detectChanges();\r\n });\r\n\r\n this.isFilterActive = this.filterItem.isActive();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setValue(key: string, value: any, validator: boolean = false) {\r\n if (this.formGroup) {\r\n if (!this.formGroup.controls[key]) this.formGroup.addControl(key, new UntypedFormControl(value));\r\n else this.formGroup.controls[key].setValue(value);\r\n }\r\n if (validator && this.formGroup && this.formGroup.controls[key]) this.formGroup.controls[key].setValidators(Validators.required);\r\n }\r\n setShowFilter() {\r\n this.showFilter = !this.showFilter;\r\n if (this.showFilter) this.gridClass = \"col-md-9 col-lg-10 col-xxxl-10\";\r\n else this.gridClass = \"col-md-12 col-lg-12 col-xxxl-12\";\r\n }\r\n FillData() {\r\n const newGroup: any = {};\r\n this.formGroup = new UntypedFormGroup(newGroup);\r\n this.setValue(\"SaveFilters\", null);\r\n this.reviewService.getReviewReport();\r\n }\r\n ShowReportTitle() {\r\n const filter = this.reviewService.filterSubject.getValue();\r\n filter.ReportKey = this.reviewService.ReportKey;\r\n this.dialogService\r\n .open(\r\n FilterNameComponent,\r\n {\r\n errorMessage: \"NotFound!!!\",\r\n reviewFilter: filter,\r\n },\r\n {\r\n closeOnClickOutside: false,\r\n autoFocus: true,\r\n closeOnEscape: true,\r\n }\r\n )\r\n .pipe(take(1))\r\n .subscribe(() => {\r\n this.reviewService.getReviewReport();\r\n });\r\n }\r\n CustomFilterChange($event) {\r\n this.selectedReviewReport = $event;\r\n this.hasSavebutton = $event;\r\n if ($event) this.reviewService.setReviewReport($event);\r\n else {\r\n const filter = this.reviewService.filterSubject.getValue();\r\n filter.items = filter.items.splice(0, 3);\r\n this.reviewService.filterSubject.next(filter);\r\n }\r\n }\r\n onClearReviewReport() {\r\n if (this.selectedReviewReport.Id && this.hasSavebutton) {\r\n this.setValue(\"SaveFilters\", null);\r\n this.reviewService.deleteReviewReport(this.selectedReviewReport.Id);\r\n this.hasSavebutton = !this.hasSavebutton;\r\n setTimeout(() => {\r\n this.formGroup.markAsDirty();\r\n this.formGroup.markAllAsTouched();\r\n }, 500);\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { ReviewComponent } from \"./review.component\";\r\nimport { ChartReviewComponent } from \"./review-card/chart-review/bar-chart.component\";\r\nimport { GirdReviewComponent } from \"./review-card/grid-review/grid-review.component\";\r\nimport { DateFilterReviewComponent } from \"./review-card/date-filter-review/date-filter-review.component\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { SharedModule } from \"projects/sepidz-web-framework-shell/src/lib/shared/shared.module\";\r\nimport { SepidzGridModule } from \"projects/sepidz-web-framework-data-grid/src/lib/grid.module\";\r\nimport { FilterItemReviewComponent } from \"./review-card/filter-item-review/filter-item-review.component\";\r\nimport { ChartsModule } from \"ng2-charts\";\r\nimport { StaticSelectReviewComponent } from \"./static-select-review/static-select-review.component\";\r\nimport { RemoteSelectReviewComponent } from \"./remote-select-review/remote-select-review.component\";\r\nimport { KpiWidgetComponent } from \"./kpi-widget/kpi-widget.component\";\r\nimport { BarChartComponent } from \"./review-card/charts/bar-chart.component\";\r\nimport { LineChartComponent } from \"./review-card/charts/line-chart.component\";\r\nimport { DoughnutChartComponent } from \"./review-card/charts/doughnut-chart.component\";\r\nimport { PieChartComponent } from \"./review-card/charts/pie-chart.component\";\r\nimport { KpiReviewComponent } from \"./kpi-review/kpi-review.component\";\r\nimport { FilterNameComponent } from \"./filter-name/filter-name.component\";\r\n\r\nconst components = [\r\n ReviewComponent,\r\n ChartReviewComponent,\r\n GirdReviewComponent,\r\n DateFilterReviewComponent,\r\n FilterItemReviewComponent,\r\n StaticSelectReviewComponent,\r\n RemoteSelectReviewComponent,\r\n KpiWidgetComponent,\r\n BarChartComponent,\r\n LineChartComponent,\r\n DoughnutChartComponent,\r\n PieChartComponent,\r\n KpiReviewComponent,\r\n FilterNameComponent,\r\n];\r\n@NgModule({\r\n declarations: [...components],\r\n exports: [...components, ChartsModule],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, SharedModule.forRoot(), SepidzGridModule, ChartsModule],\r\n})\r\nexport class ReportReviewModule {}\r\n","import { BehaviorSubject, Observable } from \"rxjs\";\r\nimport { REVIEW_DATE_TIME_KEYES, REVIEW_END_DATE_TIME_KEY, REVIEW_INCLUDE_TIME_KEY, REVIEW_START_DATE_TIME_KEY } from \"./review-helper\";\r\n\r\nimport { Injectable, OnDestroy } from \"@angular/core\";\r\nimport { ReviewFilter } from \"./models/review-filter\";\r\nimport { ReviewFilterItem } from \"./models/review-filter-item\";\r\nimport { HttpCommonService, LocalStoreManager, ShowToastrService } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { DBkeys } from \"projects/sepidz-web-framework/src/lib/services/db-keys\";\r\nimport { ReviewReportModel } from \"./filter-name/filter-name.model\";\r\nimport { DialogType } from \"projects/sepidz-web-framework/src/lib/models/dialog.enum\";\r\nimport { take } from \"rxjs/operators\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\n\r\nexport declare type ValueType = \"array\" | \"boolean\" | \"booleanList\" | \"joinedString\" | \"text\" | \"number\";\r\n\r\ntype DefaultTypeFilter = {\r\n name: string;\r\n filters: any[];\r\n};\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class ReviewService implements OnDestroy {\r\n _DBkeys = DBkeys;\r\n valueType?: \"array\" | \"boolean\" | \"joinedString\" | \"text\" | \"number\";\r\n public startDate: Date = new Date();\r\n public endDate: Date = new Date();\r\n public endTime = \"23:59\";\r\n public startTime = \"00:00\";\r\n public ReportKey: string;\r\n oldFilter: ReviewFilter;\r\n public ReviewReportList: ReviewReportModel[] = [];\r\n startDate$: BehaviorSubject = new BehaviorSubject(null);\r\n endDate$: BehaviorSubject = new BehaviorSubject(null);\r\n public filterChangeSubject = new BehaviorSubject(null);\r\n includeTime: boolean = false;\r\n\r\n public filterSubject = new BehaviorSubject({\r\n issuer: \"INITIALIZE\",\r\n changedKeys: REVIEW_DATE_TIME_KEYES,\r\n items: [\r\n {\r\n key: REVIEW_START_DATE_TIME_KEY,\r\n title: this.translate.instant(\"ClientApp.Review.FromDate\"),\r\n persianKey: this.translate.instant(\"ClientApp.Review.FromDate\"),\r\n value: this.startDate,\r\n isDataFilter: false,\r\n },\r\n {\r\n key: REVIEW_END_DATE_TIME_KEY,\r\n title: this.translate.instant(\"ClientApp.Review.UntilDate\"),\r\n persianKey: this.translate.instant(\"ClientApp.Review.UntilDate\"),\r\n value: this.endDate,\r\n isDataFilter: false,\r\n },\r\n {\r\n key: REVIEW_INCLUDE_TIME_KEY,\r\n title: this.translate.instant(\"ClientApp.Review.IncludeClockFilter\"),\r\n persianKey: this.translate.instant(\"ClientApp.Review.IncludeClockFilter\"),\r\n value: false,\r\n isDataFilter: false,\r\n },\r\n ],\r\n });\r\n\r\n gridDefaultFilters: DefaultTypeFilter[] = [];\r\n\r\n constructor(\r\n protected localStorage: LocalStoreManager,\r\n private httpCommonService: HttpCommonService,\r\n private sts: ShowToastrService,\r\n private translate: TranslateService\r\n ) {}\r\n\r\n ngOnDestroy() {\r\n this.httpCommonService = undefined;\r\n }\r\n public get filter$(): Observable {\r\n const filter = this.filterSubject.getValue();\r\n let item = filter.items.find((o) => o.key === REVIEW_START_DATE_TIME_KEY);\r\n if (item && !item.value) item.value = this.startDate;\r\n let item2 = filter.items.find((o) => o.key === REVIEW_END_DATE_TIME_KEY);\r\n if (item2 && !item2.value) item2.value = this.endDate;\r\n this.filterSubject.next(filter);\r\n\r\n return this.filterSubject.asObservable();\r\n }\r\n\r\n public removeFilter(issuer: string, key: string, values: any[], valueType?: ValueType, shouldUpdateFilterSubject?: boolean) {\r\n const filter = this.filterSubject.getValue();\r\n const items = filter.items.filter(\r\n (item) => !(item.key === key && (valueType === \"number\" || valueType === \"text\" || values.some((value) => value === item.value)))\r\n );\r\n\r\n this.applyFilter(items, issuer, [key], shouldUpdateFilterSubject);\r\n if (shouldUpdateFilterSubject) this.filterChangeSubject.next(filter);\r\n this.localStorage.savePermanentData(filter, this._DBkeys.REVIEW_FILTER_INFO);\r\n }\r\n\r\n public addFilter(issuer: string, items: ReviewFilterItem[]) {\r\n const filter = this.filterSubject.getValue();\r\n items.forEach((x) => {\r\n if ((x.valueType === \"number\" || x.valueType === \"text\" || x.valueType === \"array\") && x.value) {\r\n let item = filter.items.find((o) => o.key === x.key);\r\n if (item) {\r\n item.value = x.value;\r\n }\r\n this.filterSubject.next(filter);\r\n }\r\n });\r\n const newItems = items.filter((item) => !filter.items.some((o) => o.key === item.key && o.value === item.value));\r\n this.applyFilter(\r\n filter.items.concat(newItems),\r\n issuer,\r\n newItems.map((i) => i.key)\r\n );\r\n this.filterChangeSubject.next(filter);\r\n this.localStorage.savePermanentData(filter, this._DBkeys.REVIEW_FILTER_INFO);\r\n }\r\n public applyDateTimeFilter(issuer: string, startValue: any, endValue: any, includeTime: boolean) {\r\n const filter = this.filterSubject.getValue();\r\n if (\r\n startValue?.toString() !== filter?.items?.find((f) => f.key === \"StartDate\")?.value?.toString() ||\r\n endValue?.toString() !== this.oldFilter?.items?.find((f) => f.key === \"EndDate\")?.value?.toString() ||\r\n includeTime !== filter?.items?.find((f) => f.key === \"IncludeTime\")?.value\r\n ) {\r\n setTimeout(() => {\r\n this.filterChangeSubject.next(filter);\r\n }, 200);\r\n }\r\n\r\n const start = filter.items.find((item) => item.key === REVIEW_START_DATE_TIME_KEY);\r\n start.value = startValue;\r\n\r\n const end = filter.items.find((item) => item.key === REVIEW_END_DATE_TIME_KEY);\r\n end.value = endValue;\r\n\r\n const includeTimeItem = filter.items.find((item) => item.key === REVIEW_INCLUDE_TIME_KEY);\r\n includeTimeItem.value = includeTime;\r\n\r\n this.applyFilter(filter.items, issuer, REVIEW_DATE_TIME_KEYES);\r\n }\r\n\r\n private applyFilter(items: ReviewFilterItem[], issuer: string, changedKeys: string[], shouldUpdateFilterSubject = true) {\r\n if (!changedKeys.length) {\r\n return;\r\n }\r\n const filter = this.filterSubject.getValue();\r\n filter.issuer = issuer;\r\n filter.changedKeys = changedKeys.filter((c) => changedKeys.indexOf(c) >= 0);\r\n filter.items = items;\r\n this.oldFilter = Object.assign({}, filter);\r\n if (shouldUpdateFilterSubject) {\r\n this.filterSubject.next(filter);\r\n }\r\n }\r\n /* Add For GetCustom Review Report */\r\n getReviewReport() {\r\n this.httpCommonService\r\n .getList(\"ReviewReport/GetAllByKey/\" + this.ReportKey)\r\n .pipe(take(1))\r\n .subscribe(\r\n (x: ReviewReportModel[]) => {\r\n const val = new ReviewReportModel();\r\n this.ReviewReportList = x;\r\n },\r\n (error) => {\r\n console.timeLog(error);\r\n }\r\n );\r\n }\r\n /* Set GetCustom Review Report */\r\n setReviewReport($event: any) {\r\n const res = JSON.parse($event.DataValue);\r\n this.filterSubject.next(res);\r\n }\r\n /* Delete GetCustom Review Report */\r\n deleteReviewReport(id: number) {\r\n this.sts.showDialog(\r\n this.translate.instant(\"ClientApp.Review.LikeDeleteReport\"),\r\n this.translate.instant(\"ClientApp.Review.Warning\"),\r\n DialogType.confirm,\r\n () => {\r\n this.httpCommonService\r\n .delete(\"ReviewReport/DeleteData\", id)\r\n .pipe(take(1))\r\n .subscribe(\r\n (x: ReviewReportModel[]) => {\r\n const filter = this.filterSubject.getValue();\r\n filter.items = filter.items.splice(0, 3);\r\n this.filterSubject.next(filter);\r\n this.getReviewReport();\r\n },\r\n (error) => {\r\n console.timeLog(error);\r\n }\r\n );\r\n }\r\n );\r\n }\r\n}\r\n","import { Component, Input } from '@angular/core';\r\nimport { ReviewCardComponent } from '../review-card/review-card.component';\r\nimport { ReviewCheckedItem } from '../models/review-checkedItem';\r\nimport { ReviewService } from '../review.service';\r\nimport { ReviewFilter } from '../models/review-filter';\r\nimport { ReviewFilterItem } from '../models/review-filter-item';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'sepidz-static-select-review',\r\n templateUrl: './static-select-review.component.html',\r\n styleUrls: ['./static-select-review.component.scss']\r\n})\r\nexport class StaticSelectReviewComponent extends ReviewCardComponent {\r\n @Input()\r\n items: ReviewCheckedItem[] = [];\r\n @Input() valueType: 'array' | 'boolean' | 'booleanList' | 'joinedString' | 'text' | 'number';\r\n @Input() form: UntypedFormGroup;\r\n @Input() apiName: string;\r\n @Input() systemName: string;\r\n @Input() category: string;\r\n @Input() textFieldName: string = \"Title\";\r\n @Input() valueFieldName: string = \"Id\";\r\n @Input() hasItemValue: boolean = false;\r\n\r\n constructor(service: ReviewService) {\r\n super(service);\r\n }\r\n\r\n protected prepareFilterForLoading(filter: ReviewFilter) {\r\n const filterForLoad = { ...filter };\r\n filterForLoad.items = filter.items;\r\n return filterForLoad;\r\n }\r\n\r\n protected filterChanging(filter: ReviewFilter): void {\r\n this.items.forEach(item => {\r\n item.checked = filter.items.some(\r\n filterItem =>\r\n filterItem.key === this.key && (this.valueType === 'number' || this.valueType === 'text' || filterItem.value === item.Value)\r\n );\r\n if (!item.checked) {\r\n if (this.valueType === 'boolean' && this.form.controls[this.key].value)\r\n this.form.controls[this.key].setValue(item.checked);\r\n //if (this.valueType === 'booleanList' && this.form.controls[this.key].value)\r\n // this.form.controls[this.key].setValue(item.checked);\r\n if ((this.valueType === 'number' || this.valueType === 'text') && this.form.controls[this.key].value)\r\n this.form.controls[this.key].setValue(item.Value);\r\n }\r\n });\r\n }\r\n\r\n changed(value: any, item: any) {\r\n if (this.valueType === 'booleanList') {\r\n if (value) {\r\n this.service.addFilter(this.name, [\r\n {\r\n key: this.key,\r\n value: value.Id,\r\n title: value.Title,\r\n persianKey: this.title,\r\n valueType: this.valueType,\r\n checked:false\r\n }\r\n ]);\r\n }\r\n }\r\n\r\n if (this.valueType === 'boolean') {\r\n item.checked = value.checked;\r\n if (value) {\r\n this.service.addFilter(this.name, [\r\n {\r\n key: this.key,\r\n value: value,\r\n title: item.Name,\r\n persianKey: this.title,\r\n checked: false,\r\n valueType: this.valueType\r\n }\r\n ]);\r\n item.Value = value;\r\n } else {\r\n this.service.removeFilter(this.name, this.key, [item.Value], this.valueType);\r\n }\r\n }\r\n if (this.valueType === 'text' || this.valueType === 'number' || this.valueType === 'array') {\r\n if (value) {\r\n item.Value = this.valueType === 'array' ? value[this.valueFieldName] : value;\r\n this.service.addFilter(this.name, [\r\n {\r\n key: this.key,\r\n value: this.valueType === 'array' ? value[this.valueFieldName] : value,\r\n title: item.Name,\r\n persianKey: this.title,\r\n checked: false,\r\n valueType: this.valueType === 'array' ? 'number' : this.valueType\r\n }\r\n ]);\r\n }\r\n else {\r\n this.service.removeFilter(this.name, this.key, [item.Value], this.valueType);\r\n }\r\n }\r\n }\r\n\r\n protected loadItems(filter: ReviewFilter): void {\r\n this.items.forEach(item => {\r\n item.checked = filter.items.some(\r\n filterItem =>\r\n filterItem.key === this.key && filterItem.value === item.Value\r\n );\r\n });\r\n }\r\n\r\n trackByValue(index, item) {\r\n return item.Value;\r\n }\r\n}\r\n","
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, OnDestroy, AfterViewInit, NgZone } from \"@angular/core\";\r\nimport { FormContainerModel } from \"projects/sepidz-web-framework-shell/src/lib/tabular/form-container-model\";\r\nimport { TabularService } from \"projects/sepidz-web-framework-shell/src/lib/tabular/tabular.service \";\r\nimport { ReportKind } from \"projects/sepidz-web-framework/src/lib/models/enums\";\r\nimport { ShowToastrService, HttpCommonService, AuthService, Utilities } from \"projects/sepidz-web-framework/src/lib/services\";\r\nimport { SaveReportFile } from \"projects/sepidz-web-framework/src/lib/models\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { PersianDatePipe } from \"projects/sepidz-web-framework/src/lib/pipes/persian-date.pipe\";\r\nimport { PersianNumberPipe } from \"projects/sepidz-web-framework/src/lib/pipes/persian-number.pipe\";\r\nimport { ThousandSeparatorPipe } from \"projects/sepidz-web-framework/src/lib/pipes/thousand-separator.pipe\";\r\ndeclare var Stimulsoft: any;\r\nimport * as moment from \"jalali-moment\";\r\n\r\nexport class Printer {\r\n id: number;\r\n name: string;\r\n active: boolean;\r\n blacklisted: boolean;\r\n default: boolean;\r\n}\r\nexport class ReportInfo {\r\n apiName: string;\r\n reportKind: ReportKind;\r\n reportName: string;\r\n oldReportName: string;\r\n reportTitle: string;\r\n pathPreFix: string;\r\n dataList: any[];\r\n saveReportFile: SaveReportFile;\r\n startDate?: Date;\r\n endDate?: Date;\r\n startNumber?: number;\r\n endNumber?: number;\r\n filterText?: string;\r\n includeTime: boolean = false;\r\n reportVariables: any;\r\n DataSourceName?: string = null;\r\n}\r\n@Component({\r\n selector: \"ngx-stimul-soft-report\",\r\n templateUrl: \"./stimul-soft-report.component.html\",\r\n styleUrls: [\"./stimul-soft-report.component.scss\"],\r\n providers: [PersianDatePipe, PersianNumberPipe, ThousandSeparatorPipe],\r\n})\r\nexport class StimulSoftReportComponent implements OnInit, OnDestroy, AfterViewInit {\r\n options: any;\r\n designer: any;\r\n viewer: any;\r\n report: any;\r\n @Input() saveReportFile: SaveReportFile;\r\n @Input() reportKind: ReportKind = ReportKind.newReport;\r\n @Input() apiName: string;\r\n @Input() pathPreFix: string;\r\n @Input() reportTitle: string;\r\n @Input() reportVariables: any;\r\n _dataList: any[];\r\n @Input()\r\n get dataList(): any[] {\r\n return this._dataList;\r\n }\r\n set dataList(value: any[]) {\r\n this._dataList = value;\r\n }\r\n translate(str: string): string {\r\n return this.translateText.instant(str);\r\n }\r\n\r\n constructor(\r\n private id: FormContainerModel,\r\n private sts: ShowToastrService,\r\n private hcs: HttpCommonService,\r\n private reportInfo: ReportInfo,\r\n private zone: NgZone,\r\n private authService: AuthService,\r\n private translateText: TranslateService,\r\n private persianDatePipe: PersianDatePipe,\r\n private persianNumberPipe: PersianNumberPipe,\r\n private tabsservice: TabularService\r\n ) {\r\n this.apiName = reportInfo.apiName;\r\n this.reportKind = reportInfo.reportKind;\r\n this.dataList = reportInfo.dataList;\r\n this.reportTitle = reportInfo.reportTitle;\r\n this.pathPreFix = reportInfo.pathPreFix;\r\n this.saveReportFile = reportInfo.saveReportFile;\r\n this.reportVariables = reportInfo.reportVariables;\r\n this.MiladiToShamsi = this.MiladiToShamsi.bind(this);\r\n this.MiladiToShamsi8 = this.MiladiToShamsi8.bind(this);\r\n this.MiladiToShamsiDayOfMonth = this.MiladiToShamsiDayOfMonth.bind(this);\r\n this.MiladiToShamsiMonth = this.MiladiToShamsiMonth.bind(this);\r\n this.MiladiToShamsiYear = this.MiladiToShamsiYear.bind(this);\r\n this.SetTimeToText = this.SetTimeToText.bind(this);\r\n this.FarsiMonthName = this.FarsiMonthName.bind(this);\r\n this.ReapeatChar = this.ReapeatChar.bind(this);\r\n this.PersianNumberThousandSeparator = this.PersianNumberThousandSeparator.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n let currentBranch = this.authService.currentBranch;\r\n this.loadDesigner();\r\n //setTimeout(() => this.zone.run(() => { this.loadDesigner(); }), 500);\r\n }\r\n ngOnDestroy(): void {\r\n this.options = undefined;\r\n this.designer = undefined;\r\n this.viewer = undefined;\r\n this.report = undefined;\r\n }\r\n ngAfterViewInit(): void {}\r\n getDataSourceName() {\r\n if (this.reportInfo.DataSourceName) return this.reportInfo.DataSourceName;\r\n if (this.pathPreFix === \"FrontOffice\" && this.apiName.split(\"/\")[0] === \"Invoice\") return \"InvoicePrintModel\";\r\n return this.apiName.split(\"/\")[0];\r\n }\r\n SetCaptions(report: any) {\r\n let index: number = 0;\r\n let preFix = \"\";\r\n if (this.pathPreFix === \"SALE\") preFix = \"FrontOffice\";\r\n if (\r\n this.pathPreFix === \"INV\" ||\r\n this.pathPreFix === \"ACC\" ||\r\n this.pathPreFix === \"TRS\" ||\r\n this.pathPreFix === \"HRM\" ||\r\n this.pathPreFix === \"SELL\"\r\n )\r\n preFix = \"BackOffice\";\r\n if (report.dictionary && report.dictionary.relations && report.dictionary.relations.list) {\r\n report.dictionary.relations.list.forEach((x) => {\r\n x.alias = this.saveReportFile.ReportTitle;\r\n x.name = x.name.replace(\"root\", this.getDataSourceName());\r\n x.nameInSource = x.nameInSource.replace(\"root\", this.getDataSourceName());\r\n });\r\n }\r\n report.reportAlias = this.saveReportFile.ReportTitle;\r\n if (report.dictionary.dataStore) {\r\n report.dictionary.dataStore.list.forEach((x) => {\r\n if (x.name.includes(\"root\")) {\r\n x.name = x.name.replace(\"root\", this.getDataSourceName());\r\n x.data.tableName = x.data.tableName.replace(\"root\", this.getDataSourceName());\r\n }\r\n });\r\n }\r\n if (report && report.dictionary && report.dictionary.dataSources) {\r\n if (report.dictionary.dataSources.list) {\r\n report.dictionary.dataSources.list.forEach((x) => {\r\n if (x.name.includes(\"root\")) {\r\n x.name = x.name.replace(\"root\", this.getDataSourceName());\r\n x.nameInSource = x.nameInSource.replace(\"root\", this.getDataSourceName());\r\n x.alias = this.saveReportFile.ReportTitle + (x.alias.includes(\"Items\") ? \"-\" + this.translate(\"ClientApp.StimulSoft.Items\") : \"\");\r\n }\r\n if (x.dataTable && x.dataTable.childRelations && x.dataTable.childRelations.list && x.dataTable.childRelations.list.length > 0) {\r\n x.dataTable.childRelations.list.forEach((r) => {\r\n r.relationName = r.relationName.replace(\"root\", this.getDataSourceName());\r\n });\r\n }\r\n x.columns.list.forEach((c) => {\r\n index++;\r\n let entityName: string = x.name;\r\n if (\r\n entityName.includes(\"_\") &&\r\n (entityName.substring(entityName.length - 1) === \"s\" || entityName.substring(entityName.length - 6) === \"s_Item\")\r\n ) {\r\n if (entityName.substring(entityName.length - 6) === \"s_Item\") entityName = entityName.substring(0, entityName.length - 6);\r\n else entityName = entityName.substring(0, entityName.length - 1);\r\n entityName = entityName.replace(\"_\", \"\");\r\n }\r\n if (preFix) c.alias = this.translate(`ClientApp.${preFix}.${this.pathPreFix}.${entityName}.${c.name}`);\r\n else c.alias = this.translate(`ClientApp.${this.pathPreFix}.${entityName}.${c.name}`);\r\n });\r\n });\r\n }\r\n }\r\n }\r\n setVariable() {\r\n if (!this.report.dictionary.variables.getByName(\"CompanyName\")) {\r\n var newVariable = new Stimulsoft.Report.Dictionary.StiVariable();\r\n newVariable.name = \"CompanyName\";\r\n newVariable.alias = this.translate(\"ClientApp.StimulSoft.CompanyName\");\r\n newVariable.valueObject = this.authService.currentBranch.CompanyTitle;\r\n this.report.dictionary.variables.add(newVariable);\r\n } else this.report.dictionary.variables.getByName(\"CompanyName\").valueObject = this.authService.currentBranch.CompanyTitle;\r\n if (!this.report.dictionary.variables.getByName(\"BranchTitle\")) {\r\n var newVariable = new Stimulsoft.Report.Dictionary.StiVariable();\r\n newVariable.name = \"BranchTitle\";\r\n newVariable.alias = this.translate(\"ClientApp.StimulSoft.BranchName\");\r\n newVariable.valueObject = this.authService.currentBranch.Title;\r\n this.report.dictionary.variables.add(newVariable);\r\n } else this.report.dictionary.variables.getByName(\"BranchTitle\").valueObject = this.authService.currentBranch.Title;\r\n\r\n if (!this.report.dictionary.variables.getByName(\"BranchId\")) {\r\n var newVariable = new Stimulsoft.Report.Dictionary.StiVariable();\r\n newVariable.name = \"BranchId\";\r\n newVariable.alias = this.translate(\"ClientApp.StimulSoft.BranchSeries\");\r\n newVariable.valueObject = this.authService.currentBranchId;\r\n this.report.dictionary.variables.add(newVariable);\r\n } else this.report.dictionary.variables.getByName(\"BranchId\").valueObject = this.authService.currentBranchId;\r\n\r\n let date = this.persianDatePipe.transform(new Date());\r\n if (!this.report.dictionary.variables.getByName(\"ShamsiDate\")) {\r\n var newVariable = new Stimulsoft.Report.Dictionary.StiVariable();\r\n newVariable.name = \"ShamsiDate\";\r\n newVariable.alias = this.translate(\"ClientApp.StimulSoft.ReportDate\");\r\n\r\n newVariable.valueObject = this.persianNumberPipe.transform(date);\r\n this.report.dictionary.variables.add(newVariable);\r\n } else this.report.dictionary.variables.getByName(\"ShamsiDate\").valueObject = this.persianNumberPipe.transform(date);\r\n if (!this.report.dictionary.variables.getByName(\"StartDate\")) {\r\n var newVariable = new Stimulsoft.Report.Dictionary.StiVariable();\r\n newVariable.name = \"StartDate\";\r\n newVariable.alias = this.translate(\"ClientApp.StimulSoft.StartDate\");\r\n if (this.reportInfo.startDate) newVariable.valueObject = moment(this.reportInfo.startDate).locale(\"fa\").format(\"YYYY/MM/DD\");\r\n this.report.dictionary.variables.add(newVariable);\r\n } else this.report.dictionary.variables.getByName(\"StartDate\").valueObject = moment(this.reportInfo.startDate).locale(\"fa\").format(\"YYYY/MM/DD\");\r\n if (!this.report.dictionary.variables.getByName(\"EndDate\")) {\r\n var newVariable = new Stimulsoft.Report.Dictionary.StiVariable();\r\n newVariable.name = \"EndDate\";\r\n newVariable.alias = this.translate(\"ClientApp.StimulSoft.EndDate\");\r\n if (this.reportInfo.endDate) newVariable.valueObject = moment(this.reportInfo.endDate).locale(\"fa\").format(\"YYYY/MM/DD\");\r\n this.report.dictionary.variables.add(newVariable);\r\n } else this.report.dictionary.variables.getByName(\"EndDate\").valueObject = moment(this.reportInfo.endDate).locale(\"fa\").format(\"YYYY/MM/DD\");\r\n\r\n if (!this.report.dictionary.variables.getByName(\"StartDateTime\")) {\r\n var newVariable = new Stimulsoft.Report.Dictionary.StiVariable();\r\n newVariable.name = \"StartDateTime\";\r\n newVariable.alias = this.translate(\"ClientApp.StimulSoft.StartTime\");\r\n if (this.reportInfo.startDate) newVariable.valueObject = moment(this.reportInfo.startDate).locale(\"fa\").format(\"HH:mm\");\r\n this.report.dictionary.variables.add(newVariable);\r\n } else {\r\n this.report.dictionary.variables.getByName(\"StartDateTime\").valueObject = moment(this.reportInfo.startDate).locale(\"fa\").format(\"HH:mm\");\r\n }\r\n\r\n if (!this.report.dictionary.variables.getByName(\"EndDateTime\")) {\r\n var newVariable = new Stimulsoft.Report.Dictionary.StiVariable();\r\n newVariable.name = \"EndDateTime\";\r\n newVariable.alias = this.translate(\"ClientApp.StimulSoft.EndTime\");\r\n if (this.reportInfo.endDate) newVariable.valueObject = moment(this.reportInfo.endDate).locale(\"fa\").format(\"HH:mm\");\r\n this.report.dictionary.variables.add(newVariable);\r\n } else {\r\n this.report.dictionary.variables.getByName(\"EndDateTime\").valueObject = moment(this.reportInfo.endDate).locale(\"fa\").format(\"HH:mm\");\r\n }\r\n\r\n if (!this.report.dictionary.variables.getByName(\"StartNumber\")) {\r\n var newVariable = new Stimulsoft.Report.Dictionary.StiVariable();\r\n newVariable.name = \"StartNumber\";\r\n newVariable.alias = this.translate(\"ClientApp.StimulSoft.StartNumber\");\r\n if (this.reportInfo.startNumber) newVariable.valueObject = this.reportInfo.startNumber.toString();\r\n this.report.dictionary.variables.add(newVariable);\r\n } else\r\n this.report.dictionary.variables.getByName(\"StartNumber\").valueObject = this.reportInfo.startNumber\r\n ? this.reportInfo.startNumber.toString()\r\n : \"\";\r\n\r\n if (!this.report.dictionary.variables.getByName(\"EndNumber\")) {\r\n var newVariable = new Stimulsoft.Report.Dictionary.StiVariable();\r\n newVariable.name = \"EndNumber\";\r\n newVariable.alias = this.translate(\"ClientApp.StimulSoft.EndNumber\");\r\n if (this.reportInfo.endNumber) newVariable.valueObject = this.reportInfo.endNumber.toString();\r\n this.report.dictionary.variables.add(newVariable);\r\n } else\r\n this.report.dictionary.variables.getByName(\"EndNumber\").valueObject = this.reportInfo.endNumber ? this.reportInfo.endNumber.toString() : \"\";\r\n if (!this.report.dictionary.variables.getByName(\"FilterText\")) {\r\n var newVariable = new Stimulsoft.Report.Dictionary.StiVariable();\r\n newVariable.name = \"FilterText\";\r\n newVariable.alias = this.translate(\"ClientApp.StimulSoft.FilterText\");\r\n\r\n newVariable.valueObject = this.reportInfo.filterText;\r\n this.report.dictionary.variables.add(newVariable);\r\n } else this.report.dictionary.variables.getByName(\"FilterText\").valueObject = this.reportInfo.filterText;\r\n if (!this.report.dictionary.variables.getByName(\"IncludeTime\")) {\r\n var newVariable = new Stimulsoft.Report.Dictionary.StiVariable();\r\n newVariable.name = \"IncludeTime\";\r\n newVariable.alias = this.translate(\"ClientApp.StimulSoft.IncludeTime\");\r\n\r\n newVariable.valueObject = this.reportInfo.includeTime;\r\n this.report.dictionary.variables.add(newVariable);\r\n } else this.report.dictionary.variables.getByName(\"IncludeTime\").valueObject = this.reportInfo.includeTime;\r\n\r\n if (this.reportVariables) {\r\n Object.keys(this.reportVariables).forEach((key) => {\r\n if (!this.report.dictionary.variables.getByName(key)) {\r\n var newVariable = new Stimulsoft.Report.Dictionary.StiVariable();\r\n newVariable.name = key;\r\n\r\n newVariable.valueObject = this.reportVariables[key];\r\n this.report.dictionary.variables.add(newVariable);\r\n } else this.report.dictionary.variables.getByName(key).valueObject = this.reportVariables[key];\r\n });\r\n }\r\n }\r\n loadDesigner() {\r\n this.setFunction();\r\n if (this.reportKind === ReportKind.newReport || this.reportKind === ReportKind.editReport) {\r\n this.setReportDesigner();\r\n this.report = new Stimulsoft.Report.StiReport();\r\n this.report.dictionary.dataStore.clear();\r\n if (this.saveReportFile.FileName && this.reportKind === ReportKind.editReport)\r\n this.report.loadFile(\r\n `assets/reports/${this.saveReportFile.SystemKindName.split(\"_\")[0]}/${this.fnGetRepoPath(\r\n !this.reportInfo.oldReportName ? this.saveReportFile.FileName : this.reportInfo.oldReportName\r\n )}`\r\n );\r\n if (!this.report.reportFile) this.report.reportFile = this.saveReportFile.FileName;\r\n else if (this.reportInfo.oldReportName) this.report.reportFile = this.saveReportFile.FileName;\r\n this.setVariable();\r\n this.report.dictionary.dataSources.clear();\r\n this.report.dictionary.databases.clear();\r\n this.report.dictionary.relations.clear();\r\n\r\n this.report.regData(this.getDataSourceName(), this.saveReportFile.ReportTitle, this.dataList);\r\n this.report.dictionary.synchronize();\r\n this.SetCaptions(this.report);\r\n this.designer.report = this.report;\r\n setTimeout(() => this.designer.renderHtml(\"content\"), 100);\r\n } else if (this.reportKind === ReportKind.preview) {\r\n this.report = new Stimulsoft.Report.StiReport();\r\n this.report.dictionary.dataStore.clear();\r\n if (this.saveReportFile.FileName)\r\n this.report.loadFile(\r\n `assets/reports/${this.saveReportFile.SystemKindName.split(\"_\")[0]}/${this.fnGetRepoPath(this.saveReportFile.FileName)}`\r\n );\r\n if (!this.report.reportFile) {\r\n this.sts.showDialog(this.translate(\"ClientApp.StimulSoft.PrintTemplateNotFound\"), this.translate(\"ClientApp.StimulSoft.ErrorMessage\"));\r\n this.tabsservice.closeById(this.id.metadata.id);\r\n } else {\r\n this.setVariable();\r\n this.report.dictionary.dataSources.clear();\r\n this.report.dictionary.databases.clear();\r\n this.report.dictionary.relations.clear();\r\n this.report.regData(this.getDataSourceName(), this.saveReportFile.ReportTitle, this.dataList);\r\n this.report.dictionary.synchronize();\r\n this.SetCaptions(this.report);\r\n this.viewer = new Stimulsoft.Viewer.StiViewer(this.options, \"StiViewer\", false);\r\n this.viewer.report = this.report;\r\n setTimeout(() => this.viewer.renderHtml(\"content\"), 100);\r\n }\r\n } else if (this.reportKind === ReportKind.print) {\r\n setTimeout(() => this.printRepot(), 200);\r\n } else if (this.reportKind === ReportKind.saveReport) {\r\n this.report = new Stimulsoft.Report.StiReport();\r\n this.report.dictionary.dataStore.clear();\r\n if (this.saveReportFile.FileName)\r\n this.report.loadFile(\r\n `assets/reports/${this.saveReportFile.SystemKindName.split(\"_\")[0]}/${this.fnGetRepoPath(this.saveReportFile.FileName)}`\r\n );\r\n if (this.report.reportFile) {\r\n this.SaveReport(this.report);\r\n }\r\n }\r\n }\r\n public printRepot(): void {\r\n const rep = new Stimulsoft.Report.StiReport();\r\n this.report = rep;\r\n this.report.dictionary.dataStore.clear();\r\n this.report.loadFile(`assets/reports/${this.saveReportFile.SystemKindName.split(\"_\")[0]}/${this.fnGetRepoPath(this.saveReportFile.FileName)}`);\r\n if (!this.report.reportFile)\r\n this.sts.showDialog(this.translate(\"ClientApp.StimulSoft.PrintTemplateNotFound\"), this.translate(\"ClientApp.StimulSoft.ErrorMessage\"));\r\n else {\r\n this.setVariable();\r\n this.report.dictionary.dataSources.clear();\r\n this.report.dictionary.databases.clear();\r\n this.report.dictionary.relations.clear();\r\n this.report.regData(this.getDataSourceName(), this.saveReportFile.ReportTitle, this.dataList);\r\n this.report.dictionary.synchronize();\r\n this.SetCaptions(this.report);\r\n this.report.renderAsync(() => rep.print(false));\r\n }\r\n setTimeout(() => this.tabsservice.closeById(this.id.metadata.id), 500);\r\n }\r\n public PersianNumberThousandSeparator = function (value: number) {\r\n return this.persianNumberPipe.transform(this.thousandSeparatorPipe.transform(value));\r\n };\r\n public MiladiToShamsi = function (value: Date) {\r\n return this.persianDatePipe.transform(value);\r\n };\r\n public MiladiToShamsi8 = function (value: Date) {\r\n return moment(value.toString()).format(\"jYYYYjMMjDD\");\r\n };\r\n public MiladiToShamsiDayOfMonth = function (value: Date) {\r\n const date = moment(value) || moment();\r\n return date.jDate();\r\n };\r\n public MiladiToShamsiMonth = function (value: Date) {\r\n const date = moment(value) || moment();\r\n return date.jMonth() + 1;\r\n };\r\n public MiladiToShamsiYear = function (value: Date) {\r\n const date = moment(value) || moment();\r\n return date.jYear();\r\n };\r\n public MiladiToAlphaShamsi = function (value: Date) {\r\n const date = moment(value) || moment();\r\n return date.jYear();\r\n };\r\n public FarsiMonthName = function (month: number) {\r\n let MonthsName = [\r\n this.translate(\"ClientApp.StimulSoft.April\"),\r\n this.translate(\"ClientApp.StimulSoft.May\"),\r\n this.translate(\"ClientApp.StimulSoft.June\"),\r\n this.translate(\"ClientApp.StimulSoft.July\"),\r\n this.translate(\"ClientApp.StimulSoft.August\"),\r\n this.translate(\"ClientApp.StimulSoft.September\"),\r\n this.translate(\"ClientApp.StimulSoft.October\"),\r\n this.translate(\"ClientApp.StimulSoft.November\"),\r\n this.translate(\"ClientApp.StimulSoft.December\"),\r\n this.translate(\"ClientApp.StimulSoft.January\"),\r\n this.translate(\"ClientApp.StimulSoft.February\"),\r\n this.translate(\"ClientApp.StimulSoft.March\"),\r\n ];\r\n return MonthsName[month - 1];\r\n };\r\n public ReapeatChar = function (character: string, count: number) {\r\n if (count <= 0) return \"\";\r\n return character.repeat(count);\r\n };\r\n public SetTimeToText = function (value: number, kind: number, dayBase: number = 0): string {\r\n if (kind <= 0 || kind > 3) {\r\n return value.toString();\r\n }\r\n if (kind > 0) kind--;\r\n if (!dayBase) dayBase = 440;\r\n let T: string = \"\";\r\n //if (V <= 0)\r\n // return T;\r\n let RC = \"\";\r\n let DD = 0;\r\n let Day = value % dayBase;\r\n let HH = 0;\r\n let MM = 0;\r\n switch (kind) {\r\n case 0:\r\n DD = Math.round(value / (dayBase * 1.0));\r\n T = DD.toString();\r\n break;\r\n case 1:\r\n DD = Math.round(value / dayBase);\r\n MM = Day % 60;\r\n HH = (Day - MM) / 60;\r\n RC = \"\";\r\n for (var i = 0; i < 3 - DD.toString().length; i++) RC += \"0\";\r\n T = RC + DD.toString();\r\n if (HH < 10) T += \":0\" + HH.toString();\r\n else T += \":\" + MM.toString();\r\n if (MM < 10) T += \":0\" + MM.toString();\r\n else T += \":\" + MM.toString();\r\n break;\r\n case 2:\r\n MM = value % 60;\r\n HH = (value - MM) / 60;\r\n\r\n RC = \"\";\r\n for (var i = 0; i < 3 - HH.toString().length; i++) RC += \"0\";\r\n T = RC + HH.toString();\r\n if (MM < 10) T += \":0\" + MM.toString();\r\n else T += \":\" + MM.toString();\r\n break;\r\n }\r\n if (value < 0) T = \"(\" + T.replace(\"-\", \"\") + \")\";\r\n return T;\r\n };\r\n setFunction() {\r\n Stimulsoft.Report.Dictionary.StiFunctions.addFunction(\r\n \"UserFunction\",\r\n \"SetTimeToText\",\r\n \"SetTimeToText\",\r\n this.translate(\"ClientApp.StimulSoft.ConvertTimeToString\"),\r\n \"\",\r\n String,\r\n \"\",\r\n [Number, Number, Number],\r\n [\"value, kind,dayBase\"],\r\n [\"مقدار,نوع تبدیل,مبنای روز\"],\r\n this.SetTimeToText\r\n );\r\n Stimulsoft.Report.Dictionary.StiFunctions.addFunction(\r\n \"UserFunction\",\r\n \"SetTimeToText\",\r\n \"SetTimeToText\",\r\n this.translate(\"ClientApp.StimulSoft.ConvertTimeToString\"),\r\n \"\",\r\n String,\r\n \"\",\r\n [Number, Number],\r\n [\"value, kind\"],\r\n [\"نوع تبدیل,مبنای روز\"],\r\n this.SetTimeToText\r\n );\r\n Stimulsoft.Report.Dictionary.StiFunctions.addFunction(\r\n \"UserFunction\",\r\n \"MiladiToShamsi\",\r\n \"MiladiToShamsi\",\r\n this.translate(\"ClientApp.StimulSoft.ConvertingGregorianDateSolar\"),\r\n \"\",\r\n String,\r\n \"\",\r\n [Date],\r\n [\"Date\"],\r\n [\"تاریخ\"],\r\n this.MiladiToShamsi\r\n );\r\n Stimulsoft.Report.Dictionary.StiFunctions.addFunction(\r\n \"UserFunction\",\r\n \"MiladiToShamsi8\",\r\n \"MiladiToShamsi8\",\r\n this.translate(\"ClientApp.StimulSoft.ConvertingGregorianDateSolar\"),\r\n \"\",\r\n String,\r\n \"\",\r\n [Date],\r\n [\"Date\"],\r\n [\"تاریخ\"],\r\n this.MiladiToShamsi8\r\n );\r\n Stimulsoft.Report.Dictionary.StiFunctions.addFunction(\r\n \"UserFunction\",\r\n \"MiladiToShamsiDayOfMonth\",\r\n \"MiladiToShamsiDayOfMonth\",\r\n this.translate(\"ClientApp.StimulSoft.NumberDaysSolarMonth\"),\r\n \"\",\r\n Number,\r\n \"\",\r\n [Date],\r\n [\"Date\"],\r\n [\"تاریخ\"],\r\n this.MiladiToShamsiDayOfMonth\r\n );\r\n Stimulsoft.Report.Dictionary.StiFunctions.addFunction(\r\n \"UserFunction\",\r\n \"MiladiToShamsiMonth\",\r\n \"MiladiToShamsiMonth\",\r\n this.translate(\"ClientApp.StimulSoft.SolarMonth\"),\r\n \"\",\r\n Number,\r\n \"\",\r\n [Date],\r\n [\"Date\"],\r\n [\"تاریخ\"],\r\n this.MiladiToShamsiMonth\r\n );\r\n Stimulsoft.Report.Dictionary.StiFunctions.addFunction(\r\n \"UserFunction\",\r\n \"MiladiToShamsiYear\",\r\n \"MiladiToShamsiYear\",\r\n this.translate(\"ClientApp.StimulSoft.SolarYear\"),\r\n \"\",\r\n Number,\r\n \"\",\r\n [Date],\r\n [\"Date\"],\r\n [\"تاریخ\"],\r\n this.MiladiToShamsiYear\r\n );\r\n Stimulsoft.Report.Dictionary.StiFunctions.addFunction(\r\n \"UserFunction\",\r\n \"FarsiMonthName\",\r\n \"FarsiMonthName\",\r\n this.translate(\"ClientApp.StimulSoft.MonthOfFarsi\"),\r\n \"\",\r\n String,\r\n \"\",\r\n [Number],\r\n [\"Month\"],\r\n [\"ماه\"],\r\n this.FarsiMonthName\r\n );\r\n Stimulsoft.Report.Dictionary.StiFunctions.addFunction(\r\n \"UserFunction\",\r\n \"ReapeatChar\",\r\n \"ReapeatChar\",\r\n this.translate(\"ClientApp.StimulSoft.WordRepetition\"),\r\n \"\",\r\n String,\r\n \"\",\r\n [String, Number],\r\n [\"Char,Count\"],\r\n [\"کلمه,تعداد\"],\r\n this.ReapeatChar\r\n );\r\n Stimulsoft.Report.Dictionary.StiFunctions.addFunction(\r\n \"UserFunction\",\r\n \"PersianNumberThousandSeparator\",\r\n \"PersianNumberThousandSeparator\",\r\n this.translate(\"ClientApp.StimulSoft.ThreeDigitSeparatorPersian\"),\r\n \"\",\r\n String,\r\n \"\",\r\n [Number],\r\n [\"Value\"],\r\n [\"مقدار\"],\r\n this.PersianNumberThousandSeparator\r\n );\r\n }\r\n setReportDesigner() {\r\n this.options = new Stimulsoft.Designer.StiDesignerOptions();\r\n this.options.appearance.fullScreenMode = false;\r\n this.options.toolbar.showFileMenuExit = true;\r\n this.options.appearance.showLocalization = true;\r\n this.options.toolbar.showAboutButton = true;\r\n this.options.toolbar.printDestination = Stimulsoft.Viewer.StiPrintDestination.Default;\r\n this.options.toolbar.showPrintButton = false;\r\n this.options.appearance.htmlRenderMode = Stimulsoft.Report.Export.StiHtmlExportMode.Table;\r\n Stimulsoft.Base.Localization.StiLocalization.localizationPath = \"../../assets/reports/locales\";\r\n Stimulsoft.Base.Localization.StiLocalization.addLocalizationFile(\"../../assets/reports/locales/fa.xml\", true, \"Farsi\");\r\n try {\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/iransans/woff/IRANSansX-Regular.woff\", \"IRAN Sans\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/BNAZANB.TTF\", \"B Nazanin\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/BNazanin.ttf\", \"B_Nazanin\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/TITR.TTF\", \"TITR\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/TITRB_SF.TTF\", \"TITR B\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/tahoma.ttf\", \"Tahoma_\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/tahomabd.ttf\", \"Tahoma bd\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/times.ttf\", \"times\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/timesbd.ttf\", \"timesbd\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/timesbi.ttf\", \"timesbi\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/timesi.ttf\", \"timesi\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/TRAF__SF.TTF\", \"TRAF__SF\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/trafb_sf.ttf\", \"trafb\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/BMitraBold_0.ttf\", \"BMitraBold_0\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/BMitra_0.ttf\", \"BMitra_0\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/BTitrBold_0.ttf\", \"BTitrBold_0\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/BROYA.TTF\", \"BROYA\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/BROYABD.TTF\", \"BROYABD\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/BTrafcBd_0.ttf\", \"BTrafcBd_0\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/BTraffic_2.ttf\", \"BTraffic_2\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/BYekan_0.ttf\", \"BYekan_0\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/framd_0.ttf\", \"framd_0\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/framdit_0.ttf\", \"framdit_0\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/frank.ttf\", \"frank\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/FRE3OF9X.TTF\", \"FRE3OF9X\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/FREE3OF9.TTF\", \"FREE3OF9\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/IranNastaliq_4.ttf\", \"IranNastaliq_4\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/IRANSans.ttf\", \"IRANSans\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/IRANSans_Bold.ttf\", \"IRANSans_Bold\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/IRANSans_Light.ttf\", \"IRANSans_Light\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/IRANSans_Medium.ttf\", \"IRANSans_Medium\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/IRANSans_UltraLight.ttf\", \"IRANSans_UltraLight\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/TRAF__SF.TTF\", \"TRAF__SF\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/trafb_sf.ttf\", \"trafb_sf\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/WINGDNG2.TTF\", \"WINGDNG2\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/YekanBakhFaNum-Regular.TTF\", \"YekanBakhFaNum-Regular\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/YekanBakhFaNum-Black.TTF\", \"YekanBakhFaNum-Black\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/YekanBakhFaNum-Bold.TTF\", \"YekanBakhFaNum-Bold\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/YekanBakh-Regular.TTF\", \"YekanBakh-Regular\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/YekanBakh-Black.TTF\", \"BYekanBakh-Black\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/YekanBakh-Bold.TTF\", \"YekanBakh-Bold\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/YekanBakhNoEn-Regular.TTF\", \"YekanBakhNoEn-Regular\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/YekanBakhNoEn-Black.TTF\", \"YekanBakhNoEn-Black\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n try {\r\n Stimulsoft.Base.StiFontCollection.addOpentypeFontFile(\"../../assets/fonts/YekanBakhNoEn-Bold.TTF\", \"YekanBakhNoEn-Bold\");\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n this.designer = new Stimulsoft.Designer.StiDesigner(this.options, \"StiDesigner\", false);\r\n this.designer.onSaveReport = this.SaveReport;\r\n this.designer.onCreateReport = this.CreateReport;\r\n }\r\n\r\n public LoadReport = (e) => {\r\n e.report.regData(() => this.getDataSourceName(), this.saveReportFile.ReportTitle, this.dataList);\r\n };\r\n public CreateReport = (e) => {\r\n if (!e.report.reportFile) e.report.reportFile = this.saveReportFile.FileName;\r\n };\r\n public SaveReport = (e) => {\r\n var jsonStr = e.report ? e.report.saveToJsonString() : e.saveToJsonString();\r\n this.saveReportFile.FileInfo = jsonStr;\r\n this.saveReportFile.FileName = this.fnGetRepoPath(this.saveReportFile.FileName);\r\n this.hcs.saveReportFile(this.apiName.split(\"/\")[0], this.saveReportFile).subscribe(\r\n (x) => {\r\n this.tabsservice.tabItemonRefreshData.next(this.apiName);\r\n this.sts.showToast(\"success\", \"\", this.translate(\"ClientApp.StimulSoft.ReportSaveSuccess\"));\r\n },\r\n (error) =>\r\n this.sts.showDialog(\r\n `${this.translate(\"ClientApp.StimulSoft.ReportSaveFaild\")}: ${Utilities.getHttpResponseMessage(error)}`,\r\n this.translate(\"ClientApp.StimulSoft.ReportSaveFaild\")\r\n )\r\n );\r\n };\r\n fnGetRepoPath(n: string): string {\r\n n = n.replace(\".mrt\", \"\").replace(\".xml\", \"\");\r\n return n + \".xml\";\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { StimulSoftReportComponent, ReportInfo } from './stimul-soft-report.component';\r\nimport { ThemeModule } from 'projects/sepidz-web-framework-shell/src/lib/@theme/theme.module';\r\nimport { TabularModule } from 'projects/sepidz-web-framework-shell/src/lib/tabular/tabular.module';\r\nimport { SharedModule } from 'projects/sepidz-web-framework-shell/src/lib/shared/shared.module';\r\nimport { SepidzGridModule } from 'projects/sepidz-web-framework-data-grid/src/lib/grid.module';\r\nconst components = [StimulSoftReportComponent]\r\n@NgModule({\r\n declarations: [...components,],\r\n exports: [...components],\r\n imports: [CommonModule,\r\n FormsModule,\r\n ThemeModule,\r\n TabularModule,\r\n SharedModule.forRoot(),\r\n SepidzGridModule],\r\n providers: [ReportInfo]\r\n})\r\nexport class StimulSoftReportModule { }","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\nexport const environment = {\r\n production: false,\r\n endpoint: 'api',\r\n baseUrl: null, //Change this to the address of your backend API if different from frontend address\r\n loginUrl: \"/Login\",\r\n EncryptKey : 1203199320052021,\r\n EncryptIV : 1203199320052021\r\n};\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\r\n","import \"hammerjs\";\r\nimport { enableProdMode } from \"@angular/core\";\r\nimport { platformBrowserDynamic } from \"@angular/platform-browser-dynamic\";\r\n\r\nimport { AppModule } from \"./app/app.module\";\r\nimport { environment } from \"./environments/environment\";\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic()\r\n .bootstrapModule(AppModule)\r\n .catch((err) => console.error(err));\r\n","var map = {\n\t\"./af\": 58685,\n\t\"./af.js\": 58685,\n\t\"./ar\": 254,\n\t\"./ar-dz\": 4312,\n\t\"./ar-dz.js\": 4312,\n\t\"./ar-kw\": 32614,\n\t\"./ar-kw.js\": 32614,\n\t\"./ar-ly\": 18630,\n\t\"./ar-ly.js\": 18630,\n\t\"./ar-ma\": 28674,\n\t\"./ar-ma.js\": 28674,\n\t\"./ar-sa\": 49032,\n\t\"./ar-sa.js\": 49032,\n\t\"./ar-tn\": 24730,\n\t\"./ar-tn.js\": 24730,\n\t\"./ar.js\": 254,\n\t\"./az\": 53052,\n\t\"./az.js\": 53052,\n\t\"./be\": 60150,\n\t\"./be.js\": 60150,\n\t\"./bg\": 63069,\n\t\"./bg.js\": 63069,\n\t\"./bm\": 13466,\n\t\"./bm.js\": 13466,\n\t\"./bn\": 18516,\n\t\"./bn-bd\": 90557,\n\t\"./bn-bd.js\": 90557,\n\t\"./bn.js\": 18516,\n\t\"./bo\": 26273,\n\t\"./bo.js\": 26273,\n\t\"./br\": 9588,\n\t\"./br.js\": 9588,\n\t\"./bs\": 19815,\n\t\"./bs.js\": 19815,\n\t\"./ca\": 83331,\n\t\"./ca.js\": 83331,\n\t\"./cs\": 21320,\n\t\"./cs.js\": 21320,\n\t\"./cv\": 72219,\n\t\"./cv.js\": 72219,\n\t\"./cy\": 68266,\n\t\"./cy.js\": 68266,\n\t\"./da\": 66427,\n\t\"./da.js\": 66427,\n\t\"./de\": 67435,\n\t\"./de-at\": 52871,\n\t\"./de-at.js\": 52871,\n\t\"./de-ch\": 12994,\n\t\"./de-ch.js\": 12994,\n\t\"./de.js\": 67435,\n\t\"./dv\": 82357,\n\t\"./dv.js\": 82357,\n\t\"./el\": 95649,\n\t\"./el.js\": 95649,\n\t\"./en-au\": 59961,\n\t\"./en-au.js\": 59961,\n\t\"./en-ca\": 19878,\n\t\"./en-ca.js\": 19878,\n\t\"./en-gb\": 3924,\n\t\"./en-gb.js\": 3924,\n\t\"./en-ie\": 70864,\n\t\"./en-ie.js\": 70864,\n\t\"./en-il\": 91579,\n\t\"./en-il.js\": 91579,\n\t\"./en-in\": 30940,\n\t\"./en-in.js\": 30940,\n\t\"./en-nz\": 16181,\n\t\"./en-nz.js\": 16181,\n\t\"./en-sg\": 44301,\n\t\"./en-sg.js\": 44301,\n\t\"./eo\": 85291,\n\t\"./eo.js\": 85291,\n\t\"./es\": 54529,\n\t\"./es-do\": 53764,\n\t\"./es-do.js\": 53764,\n\t\"./es-mx\": 12584,\n\t\"./es-mx.js\": 12584,\n\t\"./es-us\": 63425,\n\t\"./es-us.js\": 63425,\n\t\"./es.js\": 54529,\n\t\"./et\": 35203,\n\t\"./et.js\": 35203,\n\t\"./eu\": 70678,\n\t\"./eu.js\": 70678,\n\t\"./fa\": 83483,\n\t\"./fa.js\": 83483,\n\t\"./fi\": 96262,\n\t\"./fi.js\": 96262,\n\t\"./fil\": 52521,\n\t\"./fil.js\": 52521,\n\t\"./fo\": 34555,\n\t\"./fo.js\": 34555,\n\t\"./fr\": 63131,\n\t\"./fr-ca\": 88239,\n\t\"./fr-ca.js\": 88239,\n\t\"./fr-ch\": 21702,\n\t\"./fr-ch.js\": 21702,\n\t\"./fr.js\": 63131,\n\t\"./fy\": 267,\n\t\"./fy.js\": 267,\n\t\"./ga\": 23821,\n\t\"./ga.js\": 23821,\n\t\"./gd\": 71753,\n\t\"./gd.js\": 71753,\n\t\"./gl\": 4074,\n\t\"./gl.js\": 4074,\n\t\"./gom-deva\": 92762,\n\t\"./gom-deva.js\": 92762,\n\t\"./gom-latn\": 5969,\n\t\"./gom-latn.js\": 5969,\n\t\"./gu\": 82809,\n\t\"./gu.js\": 82809,\n\t\"./he\": 45402,\n\t\"./he.js\": 45402,\n\t\"./hi\": 315,\n\t\"./hi.js\": 315,\n\t\"./hr\": 10410,\n\t\"./hr.js\": 10410,\n\t\"./hu\": 38288,\n\t\"./hu.js\": 38288,\n\t\"./hy-am\": 67928,\n\t\"./hy-am.js\": 67928,\n\t\"./id\": 71334,\n\t\"./id.js\": 71334,\n\t\"./is\": 86959,\n\t\"./is.js\": 86959,\n\t\"./it\": 34864,\n\t\"./it-ch\": 51124,\n\t\"./it-ch.js\": 51124,\n\t\"./it.js\": 34864,\n\t\"./ja\": 36141,\n\t\"./ja.js\": 36141,\n\t\"./jv\": 29187,\n\t\"./jv.js\": 29187,\n\t\"./ka\": 42136,\n\t\"./ka.js\": 42136,\n\t\"./kk\": 94332,\n\t\"./kk.js\": 94332,\n\t\"./km\": 18607,\n\t\"./km.js\": 18607,\n\t\"./kn\": 84305,\n\t\"./kn.js\": 84305,\n\t\"./ko\": 70234,\n\t\"./ko.js\": 70234,\n\t\"./ku\": 16003,\n\t\"./ku.js\": 16003,\n\t\"./ky\": 75061,\n\t\"./ky.js\": 75061,\n\t\"./lb\": 32786,\n\t\"./lb.js\": 32786,\n\t\"./lo\": 66183,\n\t\"./lo.js\": 66183,\n\t\"./lt\": 50029,\n\t\"./lt.js\": 50029,\n\t\"./lv\": 24169,\n\t\"./lv.js\": 24169,\n\t\"./me\": 68577,\n\t\"./me.js\": 68577,\n\t\"./mi\": 68177,\n\t\"./mi.js\": 68177,\n\t\"./mk\": 50337,\n\t\"./mk.js\": 50337,\n\t\"./ml\": 65260,\n\t\"./ml.js\": 65260,\n\t\"./mn\": 52325,\n\t\"./mn.js\": 52325,\n\t\"./mr\": 14695,\n\t\"./mr.js\": 14695,\n\t\"./ms\": 75334,\n\t\"./ms-my\": 37151,\n\t\"./ms-my.js\": 37151,\n\t\"./ms.js\": 75334,\n\t\"./mt\": 63570,\n\t\"./mt.js\": 63570,\n\t\"./my\": 97963,\n\t\"./my.js\": 97963,\n\t\"./nb\": 88028,\n\t\"./nb.js\": 88028,\n\t\"./ne\": 86638,\n\t\"./ne.js\": 86638,\n\t\"./nl\": 50302,\n\t\"./nl-be\": 66782,\n\t\"./nl-be.js\": 66782,\n\t\"./nl.js\": 50302,\n\t\"./nn\": 33501,\n\t\"./nn.js\": 33501,\n\t\"./oc-lnc\": 50563,\n\t\"./oc-lnc.js\": 50563,\n\t\"./pa-in\": 50869,\n\t\"./pa-in.js\": 50869,\n\t\"./pl\": 65302,\n\t\"./pl.js\": 65302,\n\t\"./pt\": 49687,\n\t\"./pt-br\": 74884,\n\t\"./pt-br.js\": 74884,\n\t\"./pt.js\": 49687,\n\t\"./ro\": 79107,\n\t\"./ro.js\": 79107,\n\t\"./ru\": 33627,\n\t\"./ru.js\": 33627,\n\t\"./sd\": 30355,\n\t\"./sd.js\": 30355,\n\t\"./se\": 83427,\n\t\"./se.js\": 83427,\n\t\"./si\": 11848,\n\t\"./si.js\": 11848,\n\t\"./sk\": 54590,\n\t\"./sk.js\": 54590,\n\t\"./sl\": 20184,\n\t\"./sl.js\": 20184,\n\t\"./sq\": 56361,\n\t\"./sq.js\": 56361,\n\t\"./sr\": 78965,\n\t\"./sr-cyrl\": 81287,\n\t\"./sr-cyrl.js\": 81287,\n\t\"./sr.js\": 78965,\n\t\"./ss\": 25456,\n\t\"./ss.js\": 25456,\n\t\"./sv\": 70451,\n\t\"./sv.js\": 70451,\n\t\"./sw\": 77558,\n\t\"./sw.js\": 77558,\n\t\"./ta\": 51356,\n\t\"./ta.js\": 51356,\n\t\"./te\": 73693,\n\t\"./te.js\": 73693,\n\t\"./tet\": 21243,\n\t\"./tet.js\": 21243,\n\t\"./tg\": 42500,\n\t\"./tg.js\": 42500,\n\t\"./th\": 55768,\n\t\"./th.js\": 55768,\n\t\"./tk\": 77761,\n\t\"./tk.js\": 77761,\n\t\"./tl-ph\": 35780,\n\t\"./tl-ph.js\": 35780,\n\t\"./tlh\": 29590,\n\t\"./tlh.js\": 29590,\n\t\"./tr\": 33807,\n\t\"./tr.js\": 33807,\n\t\"./tzl\": 93857,\n\t\"./tzl.js\": 93857,\n\t\"./tzm\": 60654,\n\t\"./tzm-latn\": 8806,\n\t\"./tzm-latn.js\": 8806,\n\t\"./tzm.js\": 60654,\n\t\"./ug-cn\": 30845,\n\t\"./ug-cn.js\": 30845,\n\t\"./uk\": 19232,\n\t\"./uk.js\": 19232,\n\t\"./ur\": 47052,\n\t\"./ur.js\": 47052,\n\t\"./uz\": 77967,\n\t\"./uz-latn\": 32233,\n\t\"./uz-latn.js\": 32233,\n\t\"./uz.js\": 77967,\n\t\"./vi\": 98615,\n\t\"./vi.js\": 98615,\n\t\"./x-pseudo\": 12320,\n\t\"./x-pseudo.js\": 12320,\n\t\"./yo\": 31313,\n\t\"./yo.js\": 31313,\n\t\"./zh-cn\": 64490,\n\t\"./zh-cn.js\": 64490,\n\t\"./zh-hk\": 55910,\n\t\"./zh-hk.js\": 55910,\n\t\"./zh-mo\": 98262,\n\t\"./zh-mo.js\": 98262,\n\t\"./zh-tw\": 44223,\n\t\"./zh-tw.js\": 44223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","/* (ignored) */"],"names":["DropdownDirective","DropdownMenuDirective","constructor","dropdown","selectors","hostVars","hostBindings","ElementRef","DropdownToggleDirective","elementRef","toggleElement","nativeElement","hostAttrs","ctx","EventEmitter","TemplateRef","TreeviewI18n","TreeviewConfig","TreeviewComponent","DropdownTreeviewComponent","i18n","defaultConfig","config","getText","treeviewComponent","selection","onSelectedChange","values","selectedChange","emit","onFilterChange","text","filterChange","viewQuery","i0","$event","isNil","isOpen","internalOpen","onKeyupEsc","close","onDocumentClick","event","button","isEventFromToggle","open","openChange","toggle","contains","target","hasDivider","hasFilter","hasAllCheckBox","hasCollapseExpand","create","fields","Object","assign","factory","TreeviewEventParser","DefaultTreeviewEventParser","getSelectedChange","component","checkedItems","map","item","value","DownlineTreeviewEventParser","items","result","forEach","links","getLinks","concat","parent","children","link","child","checked","OrderDownlineTreeviewEventParser","newDownlines","parser","currentDownlines","length","intersectDownlines","downline","foundIndex","i","push","splice","pull","TreeviewHelper","findItem","findItemInList","findParent","removeItem","concatSelection","root","undefined","foundItem","list","correctChecked","unchecked","uncheckedItems","getSelection","TreeviewSelection","TreeviewI18nDefault","getAllCheckboxText","getFilterPlaceholder","getFilterNoItemsFoundText","getTooltipCollapseExpandText","isCollapse","TreeviewItem","TreeviewItemComponent","collapsed","decoupleChildFromParent","setCheckedRecursive","checkedChange","onChildCheckedChange","itemChecked","childItem","inputs","template","outputs","decls","vars","consts","styles","isBoolean","isString","autoCorrectChecked","Error","disabled","internalChecked","internalDisabled","indeterminate","internalChildren","internalCollapsed","setCollapsedRecursive","getCorrectChecked","SimpleChanges","includes","item_r7","item_r20","FilterTreeviewItem","refItem","updateRefChecked","refChecked","refChild","eventParser","allItem","createHeaderTemplateContext","rtl","hasFilterItems","filterItems","maxHeight","ngOnChanges","changes","itemsSimpleChange","updateFilterItems","updateCollapsedOfAll","raiseSelectedChange","onAllCollapseExpand","onFilterTextChange","filterText","onAllCheckedChange","onItemCheckedChange","updateCheckedOfAll","generateSelection","headerTemplateContext","onCheckedChange","onCollapseExpand","toLowerCase","newItem","filterItem","isMatch","newChild","hasItemExpanded","headerTemplate","itemTemplate","features","ModuleWithProviders","FormsModule","CommonModule","TreeviewPipe","TreeviewModule","forRoot","ngModule","providers","provide","useClass","declarations","imports","exports","transform","objects","textField","object","pure","CalendarNavComponent","leftNavClicked","onLeftNav","leftSecondaryNavClicked","onLeftSecondaryNav","rightNavClicked","onRightNav","rightSecondaryNavClicked","onRightSecondaryNav","labelClicked","onLabelClick","DomHelper","setYAxisPosition","element","container","anchor","drops","anchorRect","getBoundingClientRect","containerRect","bottom","top","style","scrollHeight","setXAxisPosition","dimElem","opens","left","offsetWidth","isTopInView","el","isBottomInView","window","innerHeight","isLeftInView","isRightInView","right","innerWidth","appendElementToPosition","position","visibility","setTimeout","setElementPosition","ECalendarValue","moment","Moment","unitOfTime","UtilsService","debounce","func","wait","timeout","context","args","arguments","clearTimeout","apply","createArray","size","Array","fill","convertToMoment","date","format","locale","m","clone","isDateValid","isValid","getDefaultDisplayDate","current","selected","allowMultiSelect","minDate","isAfter","getInputType","isArray","MomentArr","StringArr","isMoment","String","convertToMomentArray","v","filter","Boolean","convertFromMomentArray","convertTo","convertToString","tmpVal","join","clearUndefined","obj","keys","key","updateSelected","isMultiple","currentlySelected","granularity","isSelected","d","isSame","closestParent","selector","match","querySelector","parentElement","onlyTime","granularityFromType","calendarType","createValidator","maxDate","minTime","maxTime","validators","md","_isValid","every","val","isSameOrAfter","isSameOrBefore","inputVal","given","errors","reduce","err","datesStringToStringArray","split","trim","getValidMomentArray","shouldShowCurrent","showGoToCurrent","mode","min","max","isDateInRange","from","to","isBetween","convertPropsToMoment","props","prop","hasOwnProperty","shouldResetCurrentView","prevConf","currentConf","getNativeElement","elem","document","ECalendarMode","DatePickerComponent","DatePickerDirective","DayCalendarComponent","MonthCalendarComponent","TimeSelectComponent","DayTimeCalendarComponent","DpDatePickerModule","DatePickerDirectiveService","utilsService","convertToHTMLElement","attachTo","baseElement","getConfig","_config","hideInputContainer","native","inputElementContainer","DayCalendarService","DayTimeCalendarService","TimeSelectService","DatePickerService","ChangeDetectorRef","forwardRef","Renderer2","UntypedFormControl","NG_VALIDATORS","NG_VALUE_ACCESSOR","ValidationErrors","isNullOrUndefined","dayPickerService","domHelper","elemRef","renderer","cd","showCalendars","bind","hideCalendar","moveCalendarTo","ngAfterViewChecked","inputElementValue","isshow","show","focusFunction","focusOutFunction","getElementById","name","innerText","_selected","componentConfig","processOnChangeCallback","onChangeCallback","onChange","areCalendarsShown","_areCalendarsShown","openOnFocus","openOnClick","startGlobalListeners","appendToElement","calendarWrapper","popupElem","stopGlobalListeners","pickerClosed","currentDateView","_currentDateView","dayCalendarRef","monthCalendarRef","dayTimeCalendarRef","onClick","isFocusedTrigger","hideStateHelper","onBodyClick","hideOnOutsideClick","onScroll","writeValue","inputValue","init","markForCheck","registerOnChange","fn","_","changedByInput","registerOnTouched","validate","formControl","validateFn","returnedValueType","inputValueType","initValidators","ngOnInit","isInitialized","ngAfterViewInit","setElementPositionInDom","setDisabledState","isDisabled","calendarContainer","setInputElementContainer","handleInnerElementClick","appendTo","appendChild","body","handleInnerElementClickUnlisteners","listen","displayDate","dayCalendarConfig","getDayConfigService","dayTimeCalendarConfig","getDayTimeConfigService","timeSelectConfig","getTimeConfigService","inputFocused","onOpenDelay","timeSelectRef","api","triggerChange","toggleCalendarMode","Day","onViewDateChange","inputElement","strVal","isValidInputDateValue","convertInputValueToMomentArray","filteredStrVal","filterInvalidCharacters","validChars","char","test","dateSelected","ignoreClose","onDateClick","closeOnSelect","closeOnSelectDelay","onKeyPress","keyCode","momentDate","onLeftNavClick","change","onRightNavClick","globalListnersUnlisteners","e","changeLocale","ul","ngOnDestroy","removeChild","useExisting","multi","ComponentFactoryResolver","ViewContainerRef","NgControl","viewContainerRef","componentFactoryResolver","service","updateDatepickerConfig","_attachTo","theme","_theme","datePicker","_mode","_minDate","_maxDate","_minTime","_maxTime","_displayDate","createDatePicker","attachModelToDatePicker","resolveComponentFactory","createComponent","instance","valueChanges","subscribe","setup","isMultiselectEmpty","control","setValue","markAsDirty","onlySelf","setErrors","onFocus","onGoToCurrent","disableKeypress","setAttribute","removeAttribute","timeSelectService","daytimeCalendarService","showNearMonthDays","showWeekNumbers","enableMonthSelector","gregorianExtensionConfig","getDefaultFormatByMode","pickerConfig","isDayDisabledCallback","weekDayFormat","firstDayOfWeek","monthFormat","monthFormatter","yearFormat","yearFormatter","dayBtnFormat","dayBtnFormatter","dayBtnCssClassCallback","monthBtnFormat","monthBtnFormatter","monthBtnCssClassCallback","multipleYearsNavigateBy","showMultipleYearsNavigation","unSelectOnClick","onPickerClosed","datesStrArr","dateFormat","timeFormat","showSeconds","SimpleChange","dayCalendarService","moveCalendarsBy","weeks","generateMonthArray","navLabel","getHeaderLabel","showLeftNav","shouldShowLeft","showRightNav","shouldShowRight","isInited","weekdays","generateWeekdays","monthCalendarConfig","getMonthCalendarConfig","_shouldShowCurrent","isFarsi","handleConfigChange","dayClicked","day","onSelect","getDayBtnText","getDayBtnCssClass","cssClasses","currentMonth","prevMonth","nextMonth","currentDay","customCssClass","onMonthCalendarLeftClick","onMonthCalendarRightClick","onMonthCalendarSecondaryLeftClick","onMonthCalendarSecondaryRightClick","getWeekdayName","weekday","weekDayFormatter","currentCalendarMode","onNavHeaderBtnClick","monthSelected","month","onMonthSelect","amount","add","goToCurrent","previousValue","currentValue","removeNearMonthWeeks","monthArray","find","slice","DEFAULT_CONFIG","GREGORIAN_CONFIG_EXTENTION","generateDaysMap","firstDayIndex","DAYS","indexOf","daysArr","index","firstDayOfWeekIndex","firstDayOfBoard","startOf","subtract","today","daysOfCalendar","array","selectedDay","isDateDisabled","weekIndex","Math","floor","weekdayNames","acc","daysMap","dayKey","isBefore","currentMonthView","generateDaysIndexMap","isNavHeaderBtnClickable","dayTimeCalendarService","updateDay","emitChange","timeChange","time","updateTime","DAY_FORMAT","TIME_FORMAT","COMBINED_FORMAT","updated","MonthCalendarService","monthCalendarService","toggleCalendar","yearMonths","generateYear","showSecondaryLeftNav","showSecondaryRightNav","monthClicked","onLeftSecondaryNavClick","navigateBy","isOutsideRange","year","onRightSecondaryNavClick","getMonthBtnCssClass","cssClass","GREGORIAN_DEFAULT_CONFIG","s","isMonthDisabled","getMonthBtnText","calculateTimeParts","showDecHour","shouldShowDecrease","showDecMinute","showDecSecond","showIncHour","shouldShowIncrease","showIncMinute","showIncSecond","showToggleMeridiem","shouldShowToggleMeridiem","momentValue","getTimeFormat","decrease","unit","increase","toggleMeridiem","hours","getHours","minutes","getMinutes","seconds","getSeconds","meridiem","getMeridiem","FIRST_PM_HOUR","hours12Format","hours24Format","meridiemFormat","minutesFormat","minutesInterval","secondsFormat","secondsInterval","showTwentyFourHours","timeSeparator","timeConfigs","t","newTime","NgZone","UntypedFormGroup","Validators","ColumnComponent","DataStateChangeEvent","GridComponent","GridDataResult","PageChangeEvent","SelectAllCheckboxState","SelectionEvent","PopupComponent","process","SelectorService","isNumber","DialogType","NumberType","RowState","HttpCommonService","LocalStoreManager","LookupService","ShowToastrService","MonthsNameService","Subject","pairwise","take","takeUntil","EditableGridComponent","lookupservice","sts","monthsnameService","ngZone","selectorService","_httpCommonService","storage","logic","filters","group","dataList","_dataList","fitColumns","gridData","x","State","Delete","Detached","filtering","dataStateChange","state","getIdName","getColumnIndex","colIndex","ColumnName","grid","columns","toArray","isVisible","dmu","hidden","formGroup","getSelected","clickedCellElement","currentColumnIndex","valid","saveCurrent","addRowAfterClickOutSideRow","addHandler","currentColumns","columnsContainer","allColumns","col","leafIndex","cellIndex","editable","cs","altKey","shiftKey","preventDefault","ctrlKey","addRowAfterClickOutSideRowColumnName","lastIndex","activeCell","onGridSelectionChange","listVisible","columnWidth","apiName","hasMultiColumns","columnsName","setDropdownlist","systemName","category","setColumnWith","paging","pagingSize","skip","some","replace","gridView","sort","data","clearFilter","setChanges","pipe","ngUnsubscribe","isValueChanging","prev","next","formGroupValueChanges","newValue","oldValue","field","LookupData","controls","addControl","GetLookupData","keyName","getDataList","setFormGroup","entity","textType","required","inputMask","getMaskedAmount","Date","New","NoChange","RowNumberName","DefaultValues","withComma","toUpperCase","newdefaultRowTregger","isNew","rowIsEditing","get","addRow","editedRowIndex","onRowSelected","cancelHandler","afterDeleted","closeEditor","getDateValue","toString","getDataFromFormGroup","model","saveHandler","rowIndex","markAllAsTouched","setIsDefault","mask","getDeMaskedAmount","Modify","afterSaved","closeRow","showDialog","alert","deleteFormHelper","dataItem","Id","removeHandler","sender","confirm","cancelCell","setIsFreeDelivery","c","isReadOnly","onOpen","ddl","popupService","nodes","popupComponentRef","offset","rootViewContainerNode","getComponentRootNode","cellClickHandler","column","columnIndex","isEdited","isAdd","isEdit","rowEditableKeyNotAllow","setMaskedInfo","checkDropdownlist","rowseleted","selectionChange","custom","setValidation","editRow","MonthList","loadingData","getLookupbyCategory","getList","getValue","getItemDisplayById","id","displayMember","valueMember","columnName","isMultiSelect","ind","getLookupbyId","Title","f","complete","disable","enable","updateValueAndValidity","getcheckedKeys","checkedKeys","multiSelectValueChange","isSelector","valueChange","onDropdownClose","console","log","isCustom","onLookupChanges","currentLookup","noReduplicative","UnitId","DefaultUnitId","UnitTitle","DefaultUnitTitle","Ratio","DefaultUnitRatio","Category","NumberTypeCode","setPhoneValidators","Code","CourierShippingCost","ShippingCost","code","clearValidators","Mobile","setValidators","pattern","refreshform","repeat","temp","MM","temp1","temp2","DD","Number","substr","setColumnInfo","title","minResizableWidth","width","focus","noAutoFitColumns","onStable","asObservable","autoFitColumns","pageChange","ColumnsName","onRowsSelected","getColumnAggregates","b","setAggregates","aggregatesColumnName","hasAggregate","setSelectedRows","selectedRows","onSelectedKeysChange","len","selectAllState","isMulti","SelectById","mySelection","onRows_Selected","onSelectAllChange","checkedState","PopupAnchorDirective","exportAs","Type","Permission","TreeListComponent","Utilities","AccountService","SimpleModalService","EditabeltreelistComponent","accountService","dialogService","ParentIdName","IdName","gethasChildren","validactions","_actions","ngAfterContentInit","toFormGroup","question","fg","detectChanges","setColumns","refreshData","setvalidactions","actions","userHasPermission","areaName","permission","managePermission","onToolbarItemClick","action","actionTregger","inputEditorform","currentrow","parentrow","label","autoFocus","closeOnClickOutside","closeOnEscape","isRefreshing","treelist","expand","editHandler","editedItem","reload","rootData","row","showToast","delete","results","error","getHttpResponseMessage","getControlsList","a","order","maxLength","SharedModule","ErrorDialogModule","KGridComponent","GridModule","ExcelModule","PDFModule","SepidzMessageService","MessageService","TreeListModule","DropDownListModule","ReactiveFormsModule","PopupModule","ThemeModule","ReportCopyComponent","ReportSelectorComponent","components","SepidzGridModule","AppTranslationService","PagingDataResult","CorrectYeKeService","TabularService","Datatransfer","VoucherKindInfo","of","EntityBase","GridColumnInfo","GridColumnInfoDetail","MisSetupService","delay","DomSanitizer","FormControlTypes","StimulSoftReportComponent","ReportInfo","ReportKind","SystemKind","Router","ReportKindInfo","CommonService","AppInjector","PersianService","SplashFormService","missetup","commonService","router","sanitizer","tabsservice","persianService","splashFormService","Promise","resolve","reportKinds","allData","_filters","_columns","setColumnWidth","total","setGridData","isMobileMode","currentReport","changeReport","gridViewData","_gridViewData","Data","TotalPage","defaultFilterKey","_defaultFilterKey","setDefaultFilterKey","replaceDigits","innerHTML","$0","groups","createPermission","editPermission","isDelete","deletePermission","setDefaultSortKey","loadReports","tabItemonRefreshData","refresh_Data","checkAccessToExcel","controllerName","hasAccessToExcel","getmodelName","Name","operator","Operator","Value","defaultSortKey","dir","defaultSortKeyKind","removeDefaultSortKey","hasReport","pathPreFix","toPromise","reportList","then","hasBracketForNegativeValues","onRefreshData","refreshingTime","modalIsLoaded","SelectRow","onDataStateChanged","getGridFilter","noToolBar","notLoadData","loadItems","showLoadingMessage","getLookupByCategory","onGetDataComplete","validActions","columnInfos","leaftindex","orderIndex","orderindex","isFirstLoad","firstCol","scrollTo","setDefaultColumnInfo","VoucherKindId","_GridColumnInfo","JSON","parse","ColumnInfo","authService","currentUser","Group","GetPagining","filtrableFields","loadAllData","aggregatesInfo","AggregatesInfo","isPageSizes","exportKind","toLocaleUpperCase","saveAsPDF","saveAsExcel","onlyDefaultSortKey","Filed","Skip","Take","modelName","tempFilters","x2","getCorrectYeKe","Logic","isPersianNumber","toEnglishNumber","gridFilters","GetFilterGrid","pluskey","p","datatrasfer","editFromForm","onCreate","isModal","menu","isCloseable","icon","active","responsive","componentType","useValue","onHeaderSave","dialogIsloaded","onSave","reloadCurrentRoute","currentUrl","url","navigateByUrl","skipLocationChange","navigate","onEdit","isLoading","userRoles","UserName","menuIsRefreshed","VoucherKindIdName","IgnoreDeletePermission","deleteMessage","useCustomDelete","onDelete","deleteList","message","isMultiDelete","AccVoucherKindCode","SystemKindCode","ACC","IsTakingOfInventory","bulkDelete","rowsCache","onDeleteCompleted","onrowSelect","requireSelectedrows","Form_Component","saveGridColumnInfo","Key","stringify","CreatedUserId","updateItem","exportToPDF","exportToExcel","customExportExcelUrl","params","getParamsForExportExcelWithPostMethod","openDialog","getExcel","response","downloadExcelFile","closeLoading","contentDisposition","headers","filename","filenameRegex","matches","exec","reportName","dataType","type","binaryData","downloadLink","createElement","href","URL","createObjectURL","Blob","click","onRowClick","onDblClick","_e","onDoubleClick","disableOnDoubleClick","colorCode","bypassSecurityTrustStyle","getFilterParameter","reprtName","saveReportFile","ReportTitle","FileName","SystemKindName","CategoryName","setReport","saveCurrentReport","reportInfo","reportKind","saveReport","deleteReport","print","preview","editReport","copyReport","_data","hasManageAccess","copyNewReport","deleteByParameter","onColumnVisibilityChange","DataSourceName","startDate","endDate","startNumber","endNumber","includeTime","reportTitle","oldReportName","getCurrentTabInfo","getActiveTab","isGrouped","filed","filterChanges","copy","preCopy","ngContentSelectors","BaseFormComponent","samePermission","controlType","textbox","formVisible","orignalColumns","save","closeModal","setDataList","onChanged","messages","getMessage","AuthService","backUpComponent","translate","httpCommonService","hasAccess","BackUpFolderDirectory","SetTimerBackUp","fullBackup","res","CallinfoComponent","currentInformation","OrderPageComponent","DelinoNotificationComponent","showNoti","branchId","saleMethodDelinoId","saleMethodTitleName","SaleMethodTitle","orderOnlinePage","hasbadge","onlineOrderTabIndex","tabItemSubject","findIndex","z","setSelectedTab","DOCUMENT","LayoutService","ClearableCache","SoftWareLicenseKind","ConfigurationService","AnalyticsService","IndexedDbService","NotificationService","tap","StockInWebKind","DriverAssignmentComponent","ExternalNotificationKindEnum","DashboardComponent","ResetPasswordComponent","MenuService","CurrentBranchFormComponent","ImportAndExportComponent","UpdateWebAppComponent","TranslateService","ctx_r40","ctx_r42","HeaderComponent","indexedDbService","layoutService","analyticsService","configurationService","misSetupService","translationService","menuService","notification","commmon","accountservice","currentBranch","RestaurantCallCenter","BranchingAdvancedEnabled","BranchingLightEnabled","now","MENU_ITEMS","displayName","DisplayName","fiscalYear","currentFiscalYear","Year","currentLanguage","languageList","startTimer","DateString","TimeString","changeDirection","getUserAvatar","user","documentElement","source$","getboolean","isFullScreen","fullScreen","getLocalSetting","GetFirstLogin","getNotifications","info","isLight","SepidzWebKind","RestaurantLightWeb","loadWareHouseStockItems","put","HealthCheckDelino","loadLeaflet","PaymentPanelAVA","HealthCheckClub","pushSubscription","closed","unsubscribe","interval","pauseTimer","openFullscreen","closeFullscreen","stateChange","onStateChange","toggleSidebar","changeLayoutSize","toggleSettings","startSearch","trackEvent","changeTheme","themeName","closeNotification","_IsShowNotifications","closeSetting","_IsShowSeting","closeAction","_IsShowAction","branchSelect","showNotification","instant","setTheme","updateSettings","updateDialog","closeTheme","_IsShowTheme","direction","LocalSetting","Language","Isrtl","changeLanguage","setDirection","closeSystem","closeAllForce","stop","fleetNotify","Kind","Fleet","fleetNotificationCount","delinoNotify","Delino","ImportanceLevel","delinoIgnoredOrdersInfos","groupBy","groupedObj","cur","count","branchTitle","BranchTitle","openTab","level1","level2","level3","level4","openLevel","selectedMenu","selectedMenu1","selectedMenu2","selectedMenu3","findIdex","BookMarkMenu","setLocalSetting","hasPermission","actionName","showDesk","ShowCallInfo","errorMessage","showPasswordForm","isLink","currentBranchId","smartConnection","linkPaymentConnection","fleetConnectionTest","fleetConnection","hasAnyDelinoSaleMethodBranch","delinoConnection","ImportAndExport","openBackUpDialog","showDelino","setEmptyDelinoNotif","notification$","handleNotifyAction","currentInfo","Message","SafirCourierFleetManagement","SmartEvaluation","handleAutoDelinoFactor","updateVersion","handleDelinoNotify","updateWareHouseStockItems","msg","clearAllStorage","location","hasAnyShowOnlineInvoiceSetting","hasAnyShowOnlineInvoice","canShowDelinoNotify","showOnlineInvoice","isCallCenter","AccessToAllBranches","increasingTheNumberOfDelinoNotifications","playSound","delinoDialogIsOpened","receiveOnlineInvoice","BranchId","autoDelinoInvoiceId","firstCall","computerName","getData","ComputerName","savePermanentData","ShowOnlineInvoice","ReceiveOnlineInvoice","NoDisplayDashboard","hour","minute","formattedHour","formattedMinute","UserEnterTime","openImageUpload","fileToUpload","files","max_size","max_height","max_width","formData","FormData","append","reader","FileReader","onload","image","Image","src","rs","img_height","currentTarget","img_width","upload","userAvatar","imagePath","getRandom","readAsDataURL","getTime","setInterval","timeLeft","refreshTime","clearInterval","requestFullscreen","mozRequestFullScreen","webkitRequestFullscreen","msRequestFullscreen","exitFullscreen","mozCancelFullScreen","webkitExitFullscreen","msExitFullscreen","goodsInfo","newInfo","GoodsId","Amount","MinAmount","WasteAmount","PrevRemainAmount","EntryAmount","CancelAmount","SaleAmount","updateStockInWebByInvSignal","eventName","localStorage","warehouseStockItems","allCategories","updateItems","updateItemNotAvailableGoodIds","itemBranch","Branches","notAvailableGoodIds","StockInWeb","Available","UnAvailableOnSite","UnAvailableFromInv","UnAvailable","ele","Items","it","usedGoodsInItem","ItemsInRelation","ItemChild","script","head","rel","play","ImportAndExportModel","ImportOrExportId","FilePath","PathUpload","IsUpload","isUpload","downloadFile","theJSON","encodeURIComponent","display","submitted$","submitted","SaveReportFile","SaveReportFileString","handleUpload","selectedFile","fileReader","readAsText","onerror","GetData","UpdateInfo","HasLocalService","LocalServiceIp","getCustom","closeDialog","flag","isCanceling","_id","metadata","tabItemOnCanClosing","isClosing","CapitalizePipe","input","charAt","NumberWithCommasPipe","Intl","NumberFormat","PluralPipe","pluralLabel","RoundPipe","round","TimingPipe","initZero","BASE_MODULES","COMPONENTS","ENTRY_COMPONENTS","PIPES","_tabularService","setdefault","FiscalYearId","saveFiscalYear","closeAll","CurrentBranchModule","SsgMaskDirective","onKeyup","_SsgMask","PrevValue","toEnglishNumberString","isNaN","valor","pad","valorMask","substring","valorMaskPos","parseInt","retornoKzMask","onBlur","BaseControlComponent","email","mobile","telephone","nationalcode","lockserial","number","minMax","onSubmited","height","defaultHeight","marginbottom","valueChangeWithName","valueChangeByApiName","KeyName","BehaviorSubject","ActivatedRoute","FormCanDeactivate","XLSX","route","translateText","afterDataLoaded","isMultiBranch","tabItemOnCloseableIds","tabItemOnClosing","canDeactivate","noLoadData","newRow","getItem","isNewRow","afterDefult","setColumnAttribute","detailName","ignoreFormGroupWithDetailName","markAsPristine","getFailedHelper","setUserSystemLog","actionList","ReportSelectorForm","ReportCopyForm","str","validator","patternKey","UserId","SystemName","FormName","FormTitle","getFormTitle","timeLog","customColumnInfoApi","tabOrder","DetailControlModels","setColumnNumber","columnNumber","defaultCoumnNumber","isFloat","userClass","getDetailControlModels","detailControlModels","setMaxCode","preSave","isSaving","beforupdate","isSaved","saveSuccessHelper","saveFailedHelper","update","showValidationErrors","changesSavedCallback","afterupdate","changesFailedCallback","saveHasError","errr","cancel","selectedValues","NoMaxCode","closeById","getColumnCaption","hasOut","minLength","setFormGroupErrors","controlErrors","keyError","caption","getSumWithKey","closeForm","setAllUnTouched","touched","markAsUntouched","dirty","changeNoCheck","VoucherKind","parseExcelDoc","file","reject","bstr","wb","read","wsname","SheetNames","ws","Sheets","utils","sheet_to_json","header","readAsArrayBuffer","BaseListComponent","NoLog","filterColumns","view","filterObject","main","groupCustom","BaseService","requiredvalidator","newGroup","providedIn","CurrencyMask","onInputChange","backspace","newVal","rawValue","valueAccessor","rawChange","ComponentCanDeactivate","ValidatorFn","AbstractControl","MinDirective","_validator","MaxDirective","onDataListChanged","onParetnIdValueChanged","setTakeValue","takeValue","getTakeValue","getColumns","setHasDefaultValue","hasDefaultValue","getHasDefaultValue","setPathsValue","pathsValue","getPathsValue","setDataStateChange","getDataStateChange","setDisabledValue","DisabledValue","getDisabledValue","setisMultiValue","isMultiValue","getisMultiValue","setParetnIdValue","ParetnIdValue","getParetnIdValue","setIsFloat","isFloatValue","getIsFloat","ButtonComponent","CheckboxListComponent","selist","_list","valueFieldName","textFieldName","Selected","isSelect","_items","checkboxLlist","ids","userClass1","userClass2","SepCheckboxComponent","NgModel","elRef","gregorianSystemDefaults","jalaliConfigExtension","selectedDate","lastDate","_selectedDate","setStyle","_dateValue","datetime","setHours","validateJuriNameFactory","JuriNameValidator","QueryList","ErrorDialogService","DynamicFormComponent","errorDialogService","onsubmitChange","onFocused","isSubmitted","canManageForms","isloaded","inputElems","first","headerLabel","formViewCaption","noChangeLabel","form","erroremessage","invalid","submitChange","onCancelChange","cancelChange","ControlContainer","NgForm","FormControlModelComponent","stylestring","groupColumns","diff","j","hasfocus","focusEle","findFocusElement","isShowModal","hasDefault","hasCheckBoxLookUpTree","filterLookUp","CompleteData","juriName","formatNumber","InputDataModel","ctx_r11","InputComponent","autocomplete","ctrl","isNumberOnly","inputDataModel","FormControlValue","inputValueCustomizeChange","isDecimal","addValidators","hasValidator","inputFocus","finItem","select","markAsTouched","focusout","_isPassword","testHasValue","getInputValue","isInputValue","isNullable","replaceAll","setLastValue","handleDecimal","toPersianNumber","oninput","onEnterKeyDown","onEnter","onIconClick","iconClick","onPasswordClick","onExternalIconClick","externalIconClick","onRightIconClick","rightIconClick","onClear","clear","numberOnly","charCode","which","changeEvent","inpElement","isValidValue","isValidDecimalValue","regex","CheckableSettings","TreeViewComponent","LookupTreeComponent","parentIdName","currentPos","closePopOver","customWidth","clientWidth","_currentValue","filterdList","setCurrentValue","_parentIdName","checkableSettings","checkChildren","checkParents","enabled","multiple","checkOnClick","filterKey","_checkedKeys","addEventListener","scroll","loading","isFiltering","onkeyup","search","term","newItems","handleCollapse","node","k","handleExpand","showClear","searchValue","clearValue","setChildren","xx","hasChildren","openPopover","openToggle","seleted","onResize","closeout","inside","isInside","handleSelection","currentValueChange","LookupComponent","setPositionPopover","idName","_idName","handleKeyboardEvent","cArrowDown","activeElement","returnValue","stopPropagation","setGrid_View","bindable","orignalData","textColumnsName","_isMulti","_orignalColumns","removeEventListener","onDataStateChange","pageHeight","defaultPageHeight","isPaging","groupsName","groupable","setDataFromFunction","_calculateCurrentPosition","dropdownEl","onlyOpen","shouldBeChangedData","getdataList","orignalList","temporaryData","loadTime","onUserRowSelect","dataStateChanged","minColumnWidth","onFilter","filterTimeout","getMilliseconds","onKey","OkClicked","CancelClicked","getSelctedChange","gridGroupHeader","NgSelectConfig","ConsoleService","warn","newId","random","searchHelper","isDefined","isFunction","isObject","ItemsList","_ngSelect","_selectionModel","filteredItems","_filteredItems","markedIndex","_markedIndex","selectedItems","markedItem","noItemsToSelect","hideSelected","maxItemsSelected","maxSelectedItems","repeatable","lastSelectedItem","setItems","mapItem","_groups","_groupBy","_flatten","Map","set","clearSelected","selectableGroupAsModel","_hideSelected","unselect","isIconClick","limitSelection","_showSelected","isSelectedAll","findBy","compareWith","bindValue","resolveNested","bindLabel","addItem","option","marked","resetFilteredItems","findByLabel","stripSpecialChars","toLocaleLowerCase","searchFn","_defaultSearchFn","matchedItems","searchItem","isMultiColumns","last","unmarkItem","markNextItem","_stepToItem","markPreviousItem","markItem","markSelectedOrDefault","markDefault","indexOfLastSelected","excludeGroupsFromDefaultSelection","$ngOptionLabel","$ngOptionValue","htmlId","mapSelectedItems","parentExists","opt","_getNextItemIndex","steps","isFn","withoutGroup","selectableGroup","groupKey","groupValue","WindowService","VirtualScrollService","fromEvent","merge","TOP_CSS_CLASS","BOTTOM_CSS_CLASS","NgDropdownPanelComponent","_renderer","_zone","_virtualScrollService","_window","_elementRef","_document","_dropdown","handleMousedown","tagName","_select","_handleScroll","capture","_destroy$","_handleOutsideClick","_isScrolledToMarked","_handleItemsChange","_disposeDocumentResizeListener","_disposeScrollListener","parentNode","_whenContentReady","_appendDropdown","_handleDocumentResize","updateDropdownPosition","refresh","runOutsideAngular","requestAnimationFrame","_updateItems","scrollInto","_calculateDimensions","virtualScroll","scrollEl","scrollElementRef","buffer","viewHeight","childHeight","scrollTop","contentEl","contentElementRef","childrenHeight","n","clientHeight","scrollIntoTag","itemsLength","_currentPosition","addClass","removeClass","_updateAppendedDropdownPosition","opacity","path","composedPath","shadowRoot","outsideClick","_fireScrollToEnd","_scrollToEndFired","_previousStart","_previousEnd","_startupLoop","assertNotInAngularZone","run","_scrollToMarked","loop","calculateItems","bufferAmount","paddingElementRef","topPadding","start","end","padding","scrollToEnd","calculateDimensions","selectRect","offsetTop","pageYOffset","dropdownHeight","boundingRect","offsetLeft","topDelta","minWidth","ready","ngOption","NgOptionHighlightDirective","_canHighlight","_highlightLabel","_setInnerHtml","indexOfTerm","html","setProperty","NgOptionComponent","_disabled","_isDisabled","stateChange$","InjectionToken","startWith","debounceTime","NgOptionTemplateDirective","NgLabelTemplateDirective","NgHeaderTemplateDirective","NgFooterTemplateDirective","NgOptgroupTemplateDirective","NgNotFoundTemplateDirective","NgTypeToSearchTemplateDirective","NgLoadingTextTemplateDirective","NgMultiLabelTemplateDirective","NgTagTemplateDirective","isPromise","KeyCode","SELECTION_MODEL_FACTORY","NgSelectComponent","classes","tabIndex","newSelectionModel","_cd","_console","_mergeGlobalConfig","itemsList","_compareWith","clearSearchOnAdd","_clearSearchOnAdd","filtered","filterValue","searchable","filterSelectionList","hasValue","_handleKeyPresses","_setItems","_manualOpen","_setItemsFromNgOptions","handleKeyDown","ArrowDown","_handleArrowDown","ArrowUp","_handleArrowUp","Space","_handleSpace","Enter","_handleEnter","Tab","_handleTab","Esc","Backspace","_handleBackspace","_keyPress$","classList","handleClearClick","handleArrowClick","focused","clearModel","_clearSearch","_isTypeahead","typeahead","clearEvent","clearable","_updateNgModel","_handleWriteValue","_onChange","_onTouched","addTag","markFirst","openEvent","closeEvent","toggleItem","dropdownId","getComputedStyle","addEvent","filterInput","removeEvent","selectTag","tag","_primitive","handleTag","catch","showAddTag","searchEvent","onInputFocus","focusEvent","onInputBlur","remove","blurEvent","onItemHover","destroyed","dropdownPanel","firstItem","_defaultLabel","handleNgOptions","options","handleOptionChange","changedOrDestroyed","ngOptions","_isValidWriteValue","validateBinding","ngModel","isValObject","isPrimitive","letter","_pressedKeys","_scrollToTag","selectOnTab","openOnEnter","_nextItemIsTag","nextStep","nextIndex","clearOnBackspace","observers","placeholder","notFoundText","typeToSearchText","addTagText","loadingText","clearAllText","disableVirtualScroll","selectAll","onSelectAll","unselectAll","onDeSelectAll","contentQueries","DefaultSelectionModelFactory","NgSelectModule","diacritics","DefaultSelectionModel","childrenCount","selectedCount","_setChildrenSelectedState","_removeChildren","_removeParent","Function","indexByScrollTop","ceil","itemsPerCol","maxStartEnd","maxStart","panelEl","panelRect","itemRect","viewWidth","childWidth","handler","SSGPopOverComponent","currentPosition","zIndex","selectContains","onSelectItem","bod","offsetRight","RadioboxComponent","Currentvalue","AngularResizeElementDirection","AngularResizeElementDirective","renderer2","listenMouseDownEvent","useDrag","mouseClickListener","mouseUpListener","mouseMoveListener","evt","onMouseDown","targetNativeElement","setOriginalData","resizeStart","generateValuesForEvent","onMouseUp","onMouseMove","applyClass","eventValues","resize","resizeEnd","originalEvent","targetElement","dataSource","targetElementWidthValue","targetElementHeightValue","offsetHeight","targetElementTopValue","targetElementLeftValue","originalXValue","clientX","originalYValue","clientY","diffWidthValue","diffHeightValue","diffTopValue","diffLeftValue","TOP","TOP_RIGHT","RIGHT","BOTTOM_RIGHT","BOTTOM","BOTTOM_LEFT","LEFT","TOP_LEFT","currentWidthValue","currentHeightValue","proportionalResize","currentTopValue","currentLeftValue","rect","originalWidthValue","originalHeightValue","originalTopValue","originalLeftValue","differenceWidthValue","differenceHeightValue","differenceTopValue","differenceLeftValue","AngularResizeElementModule","MenuPackage","MenuInjector","activeContextMenu","parentInjector","menuContext","token","notFoundValue","flags","ContextMenuService","ContextMenuTriggerDirective","contextMenuService","handleMenu","preventOpen","beforeOpen","contextMenuTrigger","menuClose","menuAction","visible","handleMouseDown","holdToDisplay","touches","mouseDownTimeoutId","handleMouseUp","sub","OverlayModule","PortalModule","ContextSubmenuTriggerDirective","MenuComponent","ContextMenuModule","Overlay","ScrollStrategyOptions","ComponentPortal","Injector","overlay","scrollStrategy","injector","menuComponent","submenu","level","y","toJSON","positionStrategy","flexibleConnectedTo","withFlexibleDimensions","withPositions","originX","originY","overlayX","overlayY","isMenuHovered","isTriggerHovered","menuInjector","componentPortal","overlayRef","panelClass","attach","menus","getCurrentLevel","idx","destroyMenu","_state","lazy","_animationDone","toState","detach","dispose","menuIndex","checkOutsideClick","clickedInside","closeSubMenu","handleSubMenuClick","openTimer","closeTimer","contextSubmenuTrigger","handleSubMenuEnter","openDelay","handleSubMenuExit","hoverDelay","menuPackage","handleMouseover","handleMouseleave","handleWindowClick","FormControl","FormGroup","SelectorComponent","PaginationEnum","paretnIdValue","_paretnIdValue","_filterdItems","_filterValue","totalPage","trunc","mainMultiDataKey","multiDataKeyTitle","columnsTitleName","firstDatakey","multiDataKey","setDefault","paginationData","SortColumn","IsEqual","getDataValueWhenValueIsNotExistInDataList","disabledList","isfocus","hasCheckBox","MultiColumnsFilter","valueClear","pagination","PaginationNumber","previous","mainDataList","setValuePagination","copyDatalist","dropdownPosition","hasSelectAll","readonly","SepidzColorPickerComponent","cpToggle","SepidzMenuComponent","openPopOver","appearance","up","SwichBoxComponent","buttontype","check","UntypedFormBuilder","TagInputComponent","fb","tags","_tags","focusTagInput","tagInputRef","onKeyUp","FirstBackspace","removeTag","TemplateInputComponent","textValue","_textValue","setInputControlValue","replaceItemValues","replaceItemNames","wrap","selectionStart","selectionEnd","textValueChange","rows","cols","hint","validationRules","TextareaComponent","cyk","numberValue","parts","numberValueChange","class","TimePickerComponent","defaultOptions","placement","trigger","displayMobile","backwardCompatibilityOptions","TooltipComponent","setPosition","_show","hostClassShow","elementPosition","tooltipOffset","setStyles","setHostStyle","setPlacementClass","placements","isSvg","SVGElement","tooltip","isCustomPosition","elementHeight","elementWidth","tooltipHeight","tooltipWidth","scrollY","topStyle","leftStyle","topEdge","bottomEdge","leftEdge","rightEdge","bodyHeight","bodyWidth","hostStyleTop","hostStyleLeft","setAnimationDuration","hostStyleTransition","hostClassLight","isThemeLight","EmbeddedViewRef","ApplicationRef","TooltipDirective","appRef","isTooltipDestroyed","componentRef","hostView","destroyTooltip","showTimeOutId","getElementPosition","createTooltip","appendComponentToBody","showTooltipElem","hideTooltip","detachView","destroy","tooltipValue","attachView","domElem","rootNodes","TooltipModule","initOptions","HexadecimalValueValidator","expression","hexadecimal","ValidationComponent","AutoFocusDirective","invalidControl","FormDirective","onFormSubmit","HasPermissionDirective","templateRef","viewContainer","applyPermission","subscription","permissions","createEmbeddedView","InCellTabDirective","unsubKeydown","onKeydown","activeRow","isEditingCell","closeCell","nav","focusPrevCell","focusNextCell","createFormGroup","editCell","dataRowIndex","AuthGuard","TranslateModule","TranslateLoader","TreeViewModule","HTTP_INTERCEPTORS","HttpClientModule","AlertService","CacheInterceptor","TranslateLanguageLoader","AuthInterceptor","ColorPickerModule","PersianDatePipe","RequestCacheService","PersianNumberPipe","CanDeactivateGuard","SplashFormModule","SsgTabsetModule","SimpleModalModule","GroupByPipe","ClickOutsideDirective","JwtHelper","MapObjectPipe","FilterPipe","SSGDraggable","ErrorInterceptor","EncryptDecryptAuthInterceptor","ThousandSeparatorPipe","TranslateEnum","MyDefaultTooltipOptions","autoPlacement","loader","SplashFormComponent","loadingMessage","hasCancelButton","openDialogwithCancelButton","removeAllLoading","removeModal","SplashScreenService","_loading","loadingStatus","startLoading","stopLoading","SimpleModalComponent","FormContainerModel","convertToBoolProperty","ctx_r6","ctx_r9","ctx_r13","SsgTabComponent","activeValue","SsgTabsetComponent","changeDetectorRef","fullWidth","fullWidthValue","selectTab","tabs","tab","routeParam","activeTab","selectedTab","changeTab","tabChange","closeTab","oncloseTab","enableBtn","widgetsContent","scrollWidth","scrollRight","scrollLeft","behavior","closeAllTabs","oncloseAllTab","SSG_TABSET_COMPONENTS","TabularComponent","activeTabs","tabItems","closeAllTab","onBookMarkClick","onBookMark","TabularModule","ValueProvider","lodash","require","guid","r","tabItemOnClose","tabItemonCloseAll","tabItemActive","newTab","openInternal","setTabTitle","cloneDeep","newTabItem","modulePath","getComponent","module","moduleFactory","cmpFactory","gettab","selectedTabId","_tab","getActiveTabIndex","closeActiveTab","canCloasTab","gettabById","cloaseableIndex","changeActiveTabIndex","getActiveIndex","getMaxLength","BrowserAnimationsModule","ToastrModule","throwIfAlreadyLoaded","NB_CORE_PROVIDERS","CoreModule","parentModule","moduleName","getElementHeight","marginTop","getPropertyValue","marginBottom","PlayerService","share","layoutSize$","onChangeLayoutSize","Track","artist","cover","playlist","getNextTrack","getPrevTrack","unloadNotification","HttpErrorResponse","HttpEvent","HttpHandler","HttpRequest","throwError","catchError","TokenService","tokenService","intercept","request","getRawToken","performance","handle","status","retryTime","logApiTimes","css","HttpResponse","LoadingScreenService","finalize","cache","loadingScreenService","auth","freeUrls","testRequest","handleError","getTTL","req","isValidUrl","isCachable","hasValidCachedValue","removeurl","cachedResponse","sendRequest","method","getUrls","setUrls","statusText","DeveloperMessage","deleteData","loggingUserName","logout","findModal","getElementsByTagName","findModal2","EncryptDecryptService","encryptDecryptService","configurations","apiBaseUrl","baseUrl","ExcludeURLList","exludeFound","encriptURL","encryptUsingAES256","cloneReq","environment","CryptoJS","enc","Utf8","EncryptKey","EncryptIV","encrypted","AES","encrypt","keySize","iv","CBC","Pkcs7","decryptUsingAES256","decString","decrypted","decrypt","defineProperty","prototype","o","prefixStr","has","output","destination","source","arr","logOute","sessionStorage","tuple","expires","httpResponse","ttl","setSeconds","setItem","Branch","TaxPercentage","TollPercentage","ServicePercentage","StandardDelayTimeForPreparation","AlertDelayTimeForPreparation","RoundingAmount","ParticipationPercentage","StencilBranchId","Latitude","Longitude","DetailLedgerId","InvWarehouseId","BranchDataTransferInfo","City","SideMenuState","DetailLedger","DetailLedgerKind","MessageSeverity","EntityListAction","Gender","PersonalityKind","InformationKind","ProductKind","SoftWareKind","GoodsKind","GoodsUnit","OrderStateKind","CreditEffect","CreditState","PaymentKind","LockKind","LockSateKind","TelephoneKind","CalculationKind","OrderKind","ControlTypes","WebKind","AccStatusKind","AccountBalanceKind","InvStatusKind","SellStatusKind","IncrementalKind","ItemAdjustmentKind","InvGoodsKind","RowAccessKind","FiscalYear","FormPosition","form_control","actionInfo","GeneralLedger","GroupLedger","Lookup","Notification","Parameters","Role","ngxMenuItem","UserEdit","UserLogin","User","Province","MisSetUp","LicenseInformation","InfoValidation","Status","getParents","parents","unshift","isParent","possibleChild","Create","parseDate","PeopleInfo","groupName","description","viewPermission","access","username","Description","Access","ssgGlobalLogicalPosition","ssgGlobalPhysicalPosition","ssgToastrConfig","oldPassword","newPassword","confirmPassword","OldPassword","NewPassword","ConfirmPassword","userName","password","rememberMe","roles","Password","RememberMe","Roles","OrderSettingModel","UserSettingModel","LocalSettingModel","isPinned","OrderSetting","filterKeys","RegExp","collection","property","notNull","negate","isNull","groupedCollection","note","pick","second","Englishtransform","nStr","x1","rgx","enumObj","enumToEnumModelArray","getIsLoggedIn","controller","actionId","createactionId","editactionId","deleteactionId","viewactionId","isOk","accessList","Controllers","Actions","getCurrentUser","roleAddedOperation","roleDeletedOperation","roleModifiedOperation","HttpResponseBase","okCallback","cancelCallback","okLabel","cancelLabel","defaultValue","onClose","showMessage","separatorOrDetail","severity","default","captionAndMessageSeparator","msgObject","splitInTwo","showMessageHelper","firstPart","secondPart","showStickyMessage","safeStringify","logInfo","success","logMessage","logError","logWarning","logTrace","summary","detail","isSticky","stickyMessages","startLoadingMessage","_isLoading","loadingMessageId","stopLoadingMessage","resetStickyMessage","logDebug","debug","trace","getDialogEvent","dialogs","getMessageEvent","getStickyMessageEvent","isLoadingInProgress","AlertDialog","AlertMessage","NavigationEnd","Location","trackPageViews","events","ga","hitType","page","animate","transition","fadeInOut","flyInOut","duration","onLanguageChanged","setDefaultLanguage","defaultLanguage","addLanguages","lang","addLangs","setDefaultLang","getDefaultLanguage","defaultLang","getBrowserLanguage","getBrowserLang","useBrowserLanguage","browserLang","language","currentLang","use","getTranslationList","getTranslation","interpolateParams","getTranslationAsync","ActivatedRouteSnapshot","RouterStateSnapshot","Route","canActivate","checkLogin","canActivateChild","canLoad","loginRedirectUrl","HttpClient","HttpHeaders","HttpParams","mergeMap","switchMap","DBkeys","http","getDataObject","CURRENT_BRANCH","getBranchById","CURRENT_USER","reevaluateLoginStatus","currentUserInfo","CURRENT_USER_INFO","currentFiscalYearobsr","currentFiscalYear$","CURRENT_FISCAL_YEAR","loginUrl","_loginUrl","homeUrl","logoutUrl","_logoutRedirectUrl","refreshToken","REFRESH_TOKEN","initializeLoginStatus","ACTIVE_URLS","list2","_urls","saveSessionData","CURRENT_INFORMATION","isCurrentInformationLoading","getCurrentInformation","USER_ROLES","getLoginUserRoles","getRequestHeaders","getBranchUsers","isLoadingUserRoles","getMvcController","isMvcControllerLoading","controlers","USER_CONTROLLERS","processLoginResponse","setRememberMe","storeToken","tokenExpiryDate","getTokenExpirationTime","accessTokenExpiry","getUserId","getName","getDisplayName","Email","CurrentBranchId","getRole","saveUserDetails","getHrmPayCurentYearMonth","refreshLogin","getRefreshLoginEndpoint","continuation","isRefreshingLogin","pauseTask","resumeTasks","refreshLoginError","reLogin","redirectLogoutUser","redirect","login","userLogin","objectEnum","pro","current_information","clearLocalChanges","userControllers","absMvcControllerInfo","branchIdLoading","branch","currentYear","isCurrentFiscalYear","fiscalYearLoop","StartDate","EndDate","hasLocalSetting","absRole","HAS_LOCAL_SETTING","PAY_CURENTYEAR_MONTH","saveHrmPayCurentYearMonth","PayCurrentYearMonthIsRead","isLoggedIn","previousIsLoggedInCheck","_loginStatus","accessToken","idToken","expiresIn","ACCESS_TOKEN","ID_TOKEN","TOKEN_EXPIRES_IN","saveSyncedSessionData","redirectForLogin","redirectLoginUser","getInitEvent","defaultHomeUrl","urlParamsAndFragment","urlAndParams","navigationExtras","fragment","queryParams","getQueryParamsFromString","queryParamsHandling","requestBody","post","taskPauser","continueOp","clickOutside","getUserSetting","getSetting","setting","DataValue","sidemenuState","setPinned","Theme","className","pinned","isrtl","getFormSetting","settingUrl","FormSetting","getDriverSettlementFormSetting","getDepositFormSetting","loadLocalChanges","exists","_DBkeys","LANGUAGE","_language","resetLanguage","HOME_URL","_homeUrl","THEME","SHOW_DASHBOARD_STATISTICS","_showDashboardStatistics","SHOW_DASHBOARD_NOTIFICATIONS","_showDashboardNotifications","SHOW_DASHBOARD_TODO","_showDashboardTodo","SHOW_DASHBOARD_BANNER","_showDashboardBanner","saveToLocalStore","import","jsonValue","importValue","JSonTryParse","showDashboardStatistics","showDashboardNotifications","showDashboardTodo","showDashboardBanner","export","changesOnly","exportValue","defaultTheme","defaultShowDashboardStatistics","defaultShowDashboardNotifications","defaultShowDashboardTodo","defaultShowDashboardBanner","appVersion","fromCharCode","USER_PERMISSIONS","CURRENT_BRANCH_ID","LOOK_UP_INFO","REVIEW_FILTER_INFO","POLICY_INFO","SMARTWIFI_POLICY_INFO","PRICE_LIST_INFO","TAX_DUTY","REMEMBER_ME","_allowDrag","topStart","leftStart","onTouchStart","changedTouches","onTouchEnd","onTouchMove","allowDrag","EncrDecrService","secretKey","ErrorDialogComponent","isConfirm","dialogType","submit","onClose$","_type","ReplaySubject","GridFilter","stringifyModel","handleRequest","postCustom","bulkUpdate","models","bulkInsert","createlist","getListWithParameter","parameter1","parameter2","getMaxCode","getMaxCodeWithParameter","getLookup","lookupName","parentId","parentName","URLSearchParams","GetPaginingCount","searchMember","pageSize","searchToLookup","searchField","searchText","responseType","observe","observable","exist","isItOnTheList","requestQueueList","replySubject","subject","queue","randomNumber","handleSuccess","handleFailure","deleteAndUnsubscribeQueueItem","queueItem","VERSION","indexedDB","openRequest","onsuccess","db","onupgradeneeded","objectStoreNames","createObjectStore","area","transaction","store","objectStore","getRequest","records","onError","putRequest","deleteRequest","urlBase64Decode","b64DecodeUnicode","decodeURIComponent","call","atob","charCodeAt","decodeToken","decoded","getTokenExpirationDate","setUTCSeconds","exp","isTokenExpired","offsetSeconds","valueOf","encrdecr","localStorageSetItem","syncKeys","loadSyncKeys","syncKeysContains","sessionStorageSetItem","onInit","addToSessionStorageHelper","removeFromSessionStorageHelper","clearInstanceSessionStorage","addToSyncKeysHelper","removeFromSyncKeysHelper","initialiseStorageSyncListener","syncListenerInitialised","sessionStorageTransferHandler","syncSessionStorage","deinitialiseStorageSyncListener","clearAllSessionsStorage","clearLocalStorage","DBKEY_SYNC_KEYS","addToSessionStorage","addToSyncKeysBackup","removeFromSessionStorage","keyToRemove","removeFromSyncKeysBackup","testForInvalidKeys","reservedKeys","getSyncKeysFromStorage","localStorageGetItem","addToSyncKeys","storedSyncKeys","removeFromSyncKeys","DBKEY_USER_DATA","moveDataToSessionStorage","moveDataToSyncedSessionStorage","moveDataToPermanentStorage","sessionStorageGetItem","isDateType","secretKeys","encryptdaya","encryp","initEvent","Observable","getall","saveall","dataloding","abs","getLookupbyCode","getLookupId","isLoding","setTimeOut","newList","editList","l","KeyValue","rules","getnumber","getstring","hasAccVoucher","hasSubLedger","hasGeneralLedger","getAllInventorySave","signalR","HttpTransportType","notificationSubject","started","hubConnection","HubConnectionBuilder","withUrl","WebSockets","withAutomaticReconnect","configureLogging","LogLevel","Information","build","on","onclose","regexp","NaN","wordify","num","toEnglishDigits","yekan","dahgan","sadgan","dah","faDigits","arDigits","ipos","faIndex","arIndex","DefaultSimpleModalOptionConfig","SimpleModalWrapperComponent","SimpleModalHolderComponent","resolver","defaultSimpleModalOptions","addModal","modalWrapper","_component","addComponent","modalClasses","wrapperDefaultClasses","modals","toggleWrapperClass","wrapper","wrapperClass","toggleBodyClass","bodyClass","animationDuration","autoFocusFirstElement","markAsReady","onClosing","modal","configureCloseOnClickOutside","mapDataObject","setupObserver","closingModal","removeModalFromArray","restorePreviousFocus","removeAllModals","all","removeAllLoadingModals","bodyClassItems","onClickOutsideModalContent","content","componentWrapper","focusable","querySelectorAll","previousActiveElement","modalWrapperEl","wrapperClassList","wrapperClassItems","ms","ReflectiveInjector","fromResolvedProviders","insert","callback","containerEl","clickOutsideCallback","observer","closerCallback","onKeydownHandler","ready$","_ready$","SimpleModalServiceConfig","defaultModalOptions","applicationRef","modalHolderComponent","createSimpleModalHolder","removeAll","_container","componentRootViewContainer","componentFactory","componentRootNode","onDestroy","ToastrService","toastr","TOP_END","TOP_START","BOTTOM_END","BOTTOM_START","setCurrentTimeOut","timeOut","positionClass","currentTimeOut","closeButton","warning","isLoadingTimeOut","OverlayContainer","_containerElement","getContainerElement","_createContainer","OverlayRef","_portalHost","portal","newestOnTop","DomPortalHost","_overlayContainer","_componentFactoryResolver","_appRef","overlayContainer","_createOverlayRef","getPaneElement","_paneElements","_createPaneElement","pane","_createPortalHost","BasePortalHost","_hostDomElement","attachComponentPortal","setDisposeFn","insertBefore","_getComponentRootNode","firstChild","host","_attachedHost","isAttached","setAttachedHost","_attachedPortal","_disposeFn","DefaultNoComponentGlobalConfig","ToastPackage","TOAST_CONFIG","ToastNoAnimation","toastrService","toastPackage","originalTimeout","toastClasses","toastType","toastClass","toastRef","afterActivate","activateToast","sub1","manualClosed","sub2","timeoutReset","resetTimeout","sub3","countDuplicate","duplicatesCount","displayStyle","intervalId","disableTimeOut","hideTime","progressBar","updateProgress","onActivateTick","tick","remaining","progressAnimation","toastId","tapToast","triggerTap","tapToDismiss","stickAround","delayedHideToast","extendedTimeOut","DefaultNoAnimationsGlobalConfig","toastComponent","ToastNoAnimationModule","ToastRef","_overlayRef","manualClose","_manualClose","_resetTimeout","_countDuplicate","_afterClosed","_activate","afterClosed","isInactive","isStopped","activate","onDuplicate","Toast","easeTime","easing","outsideTimeout","outsideInterval","runInsideAngular","ToastContainerDirective","ToastContainerModule","_onAction","_onTap","onTap","triggerAction","onAction","maxOpened","autoDismiss","preventDuplicates","countDuplicates","resetTimeoutOnDuplicate","includeTitleDuplicates","iconClasses","enableHtml","titleClass","messageClass","payload","DefaultGlobalConfig","ToastrComponentlessModule","ComponentRef","SecurityContext","_injector","toastrConfig","override","_preBuildNotification","applyConfig","toast","toasts","found","_findToast","activeToast","currentlyActive","findDuplicate","resetOnDuplicate","hasDuplicateTitle","_buildNotification","duplicate","previousToastMessage","keepInactive","sanitizedMessage","sanitize","HTML","toastInjector","componentInstance","ins","onShown","onHidden","TOKEN_KEY","helper","isEmptyString","deleteToken","getToken","decodedToken","expirationDate","isExpired","hasValidToken","getSerialNumber","getIsHeadOffice","getBranchId","responses","checkNoNetwork","noNetworkMessageCaption","noNetworkMessageDetail","responseObject","getResponseBody","itemName","checkAccessDenied","accessDeniedMessageCaption","accessDeniedMessageDetail","findHttpResponseMessage","messageToFind","seachInCaptionOnly","includeCaptionInResult","searchString","httpMessages","fullMessage","Messages","checkNotFound","checkIsLocalHost","base","hostname","paramString","param","keyValue","separator","separatorIndex","part1","part2","simpleObject","TestIsObjectEmpty","TestIsUndefined","TestIsString","capitalizeFirstLetter","toTitleCase","subString","loweredRoles","uniqueId","origin","protocol","port","printDateOnly","dayNames","monthNames","dayOfWeek","getDay","dayOfMonth","getDate","sup","getMonth","getFullYear","dateString","printTimeOnly","period","timeString","printDate","printFriendlyDate","yesterday","setDate","toDateString","printShortDate","dateTimeSeparator","printDuration","delta","days","printedDays","getAge","birthDate","otherDate","years","searchArray","searchTerm","caseSensitive","strValue","moveArrayItem","oldIndex","newIndex","expandCamelCase","testIsAbsoluteUrl","convertToAbsoluteUrl","removeNulls","immediate","args_","later","callNow","cookies","sKey","cookie","sValue","vEnd","sPath","sDomain","bSecure","sExpires","Infinity","toUTCString","hasItem","aKeys","nIdx","RouterModule","AuthComponent","LoginComponent","LogoutComponent","routes","loadChildren","PagesModule","redirectTo","pathMatch","useHash","AppRoutingModule","AppComponent","analytics","mamad","navigator","userAgent","APP_BASE_HREF","RTL","LayoutModule","BrowserModule","MissetupModule","CityModule","ProvinceModule","FiscalYearModule","UserModule","RoleModule","CompanyModule","BranchModule","PartiesModule","CatalogModule","StimulSoftReportModule","SalesModule","MessagingModule","GroupMessageModule","MessageListModule","AccVoucherModule","DetailLedgerModule","GroupLedgerModule","GeneralLedgerModule","SubLedgerModule","DetailLedgerKindModule","AccVoucherKindModule","UnitModule","WarehouseModule","GoodsGroupModule","GoodsModule","InvVoucherKindModule","InvvoucherModule","PrintPolicyModule","SalonModule","OrderModule","ChartsModule","InventpryReviewModule","DashboardModule","SecurityReviewModule","CustomerReviewModule","SalesReviewModule","TakingOfInventoryModule","InventoryClosingModule","ResetPasswordModule","SaleReportDesinerModule","DriverAssignmentModule","GeneralLedgerVoucherModule","MovementVoucherModule","VoucherApproveModule","BarCodeReaderFormatModule","BankModule","CashModule","BankBranchModule","BankAccountModule","TrsConcernModule","ChequeBookModule","TrsVoucherKindModule","TrsVoucherModule","TreasuryReviewModule","ReportReviewModule","AccCloseProfitandLossAccountsModule","CreateOpeningJournalVoucherModule","CreateClosingJournalVoucherModule","InvBalanceModule","AccVoucherDetailCommentModule","InvVoucherPricingModule","InvNoReferenceVoucherModule","FinancialModule","SellKindModule","SellCustomerModule","SellCustomerGroupModule","PriceListHeaderModule","SellVoucherKindModule","SellVoucherModule","CustomerReceiptPaymentModule","DataCenterProcessModule","LocalSettingModule","CostCenterModule","PayCompaniesModule","ElementModule","EmploymentKindModule","JobClassificationModule","JobsModule","OrganizationalPostsModule","OrganizationalUnitModule","WorkHoursImportHeaderModule","WorkplaceModule","JobBaseModule","JobGroupModule","JobRankingModule","AcademicOrientationModule","CitizenshipKindModule","CourseTitleModule","FaithKindModule","FieldOfStudyModule","FluencyInReadingTheLanguageModule","FluencyInLanguageConversationModule","LanguageKindModule","MartyrFamilayKindModule","NationalityKindModule","ProficiencyInWritingModule","ReasonForDismissalModule","ReligionKindModule","RetirementKindModule","TaxGroupModule","VeteranWorkShiftKindModule","ControlContraryNatureAccountModule","AccountReviewModule","EducationDegreeModule","HrmLoanToPersonnelModule","HrmWorkCalendarModule","HrmTaxTableModule","HrmBankModule","HrmBankAccountModule","ProjectModule","HrmPersonnelModule","HRNotificationHeaderModule","FinanceNotificationHeaderModule","HRNotificationKindModule","MonthlyWorkInformationModule","MonthlySalaryCalculationInformationModule","HrmPayCurentYearMonthModule","ChangePayCurentYearMonthModule","HrmMapReportModule","BillPayReportModule","HrmReviewModule","ManagementMessageModule","MessageManagementTelephoneModule","UserSystemLogModule","CostModule","MeasurementUnitModule","PeopleInfoModule","SellCustomerReviewModule","HrmDiskFormatModule","TaxPayerSystemModule","HrmPersonnelElementInitialModule","CostsSpentReviewModule","HrmAccVoucherModule","DebtorCreditorNoticesHeaderModule","InvModule","ProductConversionModule","WarehouseGoodsReportModule","AccountReportModule","InventoryReportModule","OrderReviewModule","accModule","AppModule","bootstrap","AuthBlockComponent","AuthModule","authenticated","lookupService","customHeight","setGroup","getLoginRefresh","getUsers","setToday","onDisplayNameChanges","IdValue","isSepidzUser","users","onSendCode","invalidInfo","PhoneNumber","getRawValue","FindLoginUser","getComputerName","offerAlternateHost","onBranchChanged","allUser","fe","IsEnabled","IsActive","onBranchClear","completeBranchData","showInfo","onShowPassword","showPassword","onShowNumber","showNumber","clearIndexedDbItems","_branchFilterUser","prompt","VoucherInfo","AccCloseProfitandLossAccountsFormComponent","datatransfer","__id","_tabsservice","UnSelectAccounts","RowForSelect","RowForDelete","LookupIsLoading","currentSubLedger","AccCloseProfitandLossAccountsDetails","setAccVoucherKind","VoucherDate","setDefaultValues","getUnSelectAccounts","_detailLedgerLevel","AccVoucherHeaderId","setRemainValue","SubLedgerId","DetailLedger2Id","DetailLedger3Id","DetailLedger4Id","DetailLedger5Id","DetailLedger6Id","DetailLedger7Id","DebitRemain","CreditRemain","setUnSelectAccounts","voucherInfo","HasDetailLedger1","checkbox","setAccCloseProfitandLossAccountsDetails","AccCloseProfitandLossAccountsDetailsList","_UnSelectAccounts","onSeletedDoubleClick","onUnSeletedDoubleClick","moveLeft","moveright","moveLeftAll","moveRightAll","onValueChangeByApiName","getDetailLedgerParameter","columName","p1","PrevSubLedgerId","vk","IsOperating","newVoucher","TotalCredit","TotalDebit","deletVoucher","AccCloseProfitandLossAccountsListComponent","filterInfo","detailLedgerLevel","AccVoucherDetailCommentComponent","VoucherKindTitle","TrsVoucherKindId","InvVoucherKindId","comments","IsWarehouse","DebitCommentFormat","CreditCommentFormat","isOkForLoad","dinput","cinput","currentSeletedColumnKey","deleteDetailComment","lookups","AccVoucherDetailFilterComponent","formGroupIsOk","StatusKindIds","SystemKindIds","AccVoucherKindIds","GroupLedgerIds","GeneralLedgerIds","SubLedgerIds","DetailLedger1Ids","DetailLedger2Ids","DetailLedger3Ids","DetailLedger4Ids","DetailLedger5Ids","AccVoucherHeaderImportExcelFormComponent","setData","hColumns","StatusKindId","Inspection","StatusKindCode","StatusKindTitle","SystemKindId","SystemKindTitle","BranchList","SubLedgerList","DetailLedgerList","onFileChange","SetAccVoucherHeaderInfo","excelData","VoucherNo","VoucherHeader","FixNo","DailyNo","AccVoucherDetails","VoucherDetail","ErroeMessage","gridInfo","isFirtsRow","VoucherHeaderList","g","AccVoucherKindId","FiscalMonth","TotalPrice","ShamsiVoucherDate","TrackDate","ShamsiTrackDate","gg","BranchCode","BrandId","SubLedgerCode","DetailLedgerCode","DetailLedger2Code","DetailLedger3Code","DetailLedger4Code","DetailLedger5Code","VoucherState","RowNumber","saveVoucher","_vk","AccVoucherKindTitle","AccVoucherDetailComponent","triggerShowDetail","showDetail","filterddata","gridheight","_gridheight","getTaxRate","getGridCell","copyHandler","pasetHandler","stLookup","changeDebit","setDisableColumn","saveSubLedgerStandardComment","isEditing","debit","credit","Credit","Debit","_comment","headerTitleToDetailTitle","Comment","isDisablelingColumn","HasDetailLedger2","HasDetailLedger3","HasDetailLedger4","HasDetailLedger5","HasDetailLedger6","HasDetailLedger7","HasTrackNo","RequireTrackNo","setRowNumber","editedRow","rowinserted","cellCloseHandler","doubleclic","setSubLedgerStandardComent","subLedger","ListItems","LatinListItems","SubLedgerComment","SubLedgerLatinComment","GroupLedgerCode","GroupLedgerTitle","GeneralLedgerCode","GeneralLedgerTitle","dataReadedColumns","hasdatForPaset","copyAll","movableUp","movableDown","moveUp","tempRow","moveDown","insertRow","currentRow","AccVoucherKind","AccvoucherModalListComponent","AccVoucherFormComponent","deleteVoucher","accountConfirm","accountWrite","statusKindChanging","isNewVoucher","setDetailColumns","getVoucherDate","isLoadingDate","isLoadingMaxNUmber","confirmLabel","Confirm","getjMonth","isNoValidForEdit","accVoucerherDetailcolumns","OtherInfoColumns","getcolumns","FixNoColumns","DailyNoColumns","SubLedgerColumns","DetailLedger2Columns","DetailLedger5Columns","SummeryDebitcolumns","SummeryCreditcolumns","settemp","onValueChange","copyHeaderTitleToDetailTitle","detailcolumns","onValueChanges","arrowIcon","setSummery","accountInf","Write","rws","notCloseForm","accountInspection","delete_Voucher","setSelected","loadVoucherList","columnsOrder","InvVoucherFormComponent","SellVoucherFormComponent","TrsVoucherFormComponent","VoucherApproveComponent","AccVoucherListComponent","onActionClick","setactions","isAllSelected","gridFilter","FromStatusKindCode","sk","AccountingSubSystemsRelationships","INV","InvVoucherHeaderId","TRS","TrsVoucherHeaderId","SELL","iconName","getGridInfo","Ids","GridInfo","Filters","currentVoucher","voucher","DropDownsModule","AccVoucherKindFormComponent","AccVoucherKindListComponent","apiname","ControlContraryNatureAccountListComponent","getVoucher","CreateClosingJournalVoucherFormComponent","saveData","CreateVoucher","ClosingJournalVoucherIsLoading","CreateClosingJournalVoucherListComponent","CreateOpeningJournalVoucherFormComponent","loadingIndicator","CreateOpeningJournalVoucherListComponent","DetailLedgerImportExcelFormComponent","DetailLedgerKindList","SetDetailLedgerInfo","DetailLedgerKindId","DetailLedgerKindCode","DetailLedgerLiist","DetailLedgerFormComponent","selecteddetailLedgeerkindId","selecteddetailLedgeerkindStartCode","StartCode","selecteddetailLedgeerkindEndCode","EndCode","Active","maxformat","DetailLedgerCodeLen","RowAccessComponent","DetailLedgerListComponent","HasRowAccess","SelectedRows","RowKindId","DetailLedgerKindImportExcelFormComponent","DetailLedgerKindLiist","SetDetailLedgerKindInfo","DetailLedgerKindFormComponent","DetailLedgerKindListComponent","GeneralLedgerVoucherFormComponent","GeneralLedgerVoucherDetails","createVoucher","removeVoucher","getMaxDateNumber","GeneralLedgerId","EndVchDate","EndVchNum","GeneralLedgerVoucherListComponent","GeneralLedgerImportExcelFormComponent","GroupLedgerList","SetGeneralLedgerInfo","ProfiteLossKindCode","gk","ProfiteLossKindId","GroupLedgerId","GeneralLedgerLiist","GeneralLedgerFormComponent","setlen","selectedgeneralLedgerCodeLen","selectedGroupLedgerCodeLen","GroupLedgerKindId","customerror","minfprmat","maxfprmat","GeneralLedgerListComponent","GroupLedgerImportExcelFormComponent","SetGroupLedgerInfo","GroupLedgerKindCode","GroupLedgerLiist","GroupLedgerFormComponent","minformat","isOk4Load","GroupLedgerListComponent","MovementVoucherComponent","setHeaderColumns","isOk4Loading","headerColumns","datalist","preRow","_Save","nextId","voucherRenumber","AccBalance4Component","getAccountLevel","setGridColumns","gridColumns","loadData","onFormChange","formValue","StartVoucherDate","EndVoucherDate","entitys","AccBalance6Component","AccBalance8Component","AccBalanceSheetCompareWithPrevYearGeneralLedgerFilterdByDetailLedgerComponent","AccBalanceSheetCompareWithPrevYearSubLedgerFilterdByDetailLedgerComponent","AccBalanceSheetCompareWithPrevYearComponent","AccBalanceSheetComponent","AccDetailLedegerSubledgerBalancSheetComponent","GeneralLedgerDailyVoucherComponent","GeneralLedgerVoucherComponent","GeneralLedgerVoucherDocumentComponent","GeneralLedgerDailyVoucherDocumentComponent","TrsVoucherModalListComponent","GirdReviewComponent","ReviewService","InvVoucherModalListComponent","AccountReviewComponent","_translate","_GetVoucherDetailColumns","filterSubject","ShowBeforeRemain","RunningTotal","GetVoucherDetailColumns","sepidzgrid","startDate$","fystartDate","endDate$","BranchIds","addFilter","persianKey","AccStatusKindIds","DetailLedgerKindIds","ShowRunningTotal","NotShowWithRemain","SlaveNo","StartNumber","EndNumber","populateGridColumns","setColumnVisiblty","GetGroupLedgerColumns","GetGeneralLedgerColumns","GetSubLedgerColumns","GetDetailLedger1Columns","GetDetailLedger2Columns","GetDetailLedger3Columns","GetDetailLedger4Columns","GetDetailLedger5Columns","GetDetailLedger6Columns","GetDetailLedger7Columns","GetDetailLedgerColumns","GetAcoountAnalysticColumns","isActveTab","activeTabTitle","tabTitle","detailLedgerLevelValidate","_apiName","permisionList","showVoucher","ssgTabset","setSelectedFilter","lookup","entities","SubLedgerImportExcelFormComponent","GeneralLedgerList","SetSubLedgerInfo","BalanceKindCode","BalanceKindId","SubLedgerLiist","SubLedgerFormComponent","selectedLevel1Ids","_selectedLevel1Ids","SubLedgerDetailLedgerKinds","DetailLedgerLevel","valuse","selectedLevel2Ids","_selectedLevel2Ids","selectedLevel3Ids","_selectedLevel3Ids","selectedLevel4Ids","_selectedLevel4Ids","selectedLevel5Ids","_selectedLevel5Ids","selectedLevel6Ids","_selectedLevel6Ids","selectedLevel7Ids","_selectedLevel7Ids","neutral","BalanceKindTitle","selectedSubLedgerCodeLen","isValidDetailLedgerKind","DetailLedger1","sdk","DetailLedger2","DetailLedger3","DetailLedger4","DetailLedger5","DetailLedger6","DetailLedger7","dlLevel","SubLedgerListComponent","SubLedger","VoucherApprove","HrmAccVoucherCodeFormComponent","HrmAccVoucherCodeComponent","rk","HrmVouchrKind","HrmPayCurentYearMonthComponent","HrmAccVoucherHeaderComponent","CurentYear","CurentMonth","setHrmPayCurentYearMonth","IssueYear","IssueMonth","HrmAccVoucherColimns","HrmAccVoucherHeaderIds","AccVoucherHeaderFixNo","deleteAccVoucher","onvalueChangeByApiName","HrmAccVoucherDateFormComponent","HrmAccVoucherComponent","PersonnelIds","HrmPersonnelId","CostCenterFormComponent","CostCenterListComponent","EffectBase","ElementGroup","ElementKind","ElementFormulaComponent","ElementPropertyFormComponent","ElementFormComponent","ElementGroupTitle","ElementGroupCode","Loan","Computational","ElementKindTitle","ElementKindCode","ElementKindId","onDeleteElementProperty","ElementFormulas","ElementPropertys","TempRowNumber","onEditElementProperty","makeFormula","ShowInBillPay","onCreateElementProperty","ElementId","EffectYear","EffectMonth","editFormula","PropertyInfo","_elementFormula","InputForm","ElementPropertyId","Formula","EmploymentOrder","Coefficien","ProportionalWorkEffect","EffectBaseCode","WithoutBase","ProportionalwithElementId","FixedWork","EffectBaseAmount","StandardWork","CalendarWork","ProportionalwithElementTitle","CalcBaseId","CalcBaseTitle","setFormulaInfo","filterFormula","_filterFormula","formulaInfo","elements","getpersonelInfo","getElement","getTaxTable","getCurrentMontBackpay","getEmploymentOrderElement","getComputationalElement","getPrevMonthComputationalElement","getPrevYearMonthComputationalElement","getMonthlyInputElement","getLoanElement","getSystemsInfo","getPersonnelElementInitial","TaxTable","Bonus","getNode","Deduct","Boss","Others","Other","RewardPaymentBonus","RwrdPay","VacationPaymentBonus","VacationBuy","CurrentMontBackpay","EMP","FMEMP","LMEMP","DEMP","FMDEMP","LMDEMP","BEMP","FMBEMP","LMBEMP","Works","WEMP","FMWEMP","LMWEMP","Work","OEMP","FMOEMP","LMOEMP","Row","Node","kind","PreYearComputational","EndYearBonus","RewardSaveBonus","RwrdSave","Buy","EstablishmentTheReserveOfYearsOfService","Vacation","VacationSaveBonus","VacationSave","PreComputational","MonthlyInput","LoanInstallments","LoanPyed","LoanOrignal","getEmployment","empKind","StnWorkDays","YearDays","YearMonths","GroupCode","BaseCode","JobLevel_Code","PersonnalCount","CCPersonnalCount","LPersonnalCount","OPersonnalCount","PPersonnalCount","EMPPersonnalCount","WorkYears","WorkMonths","AllWorkDays","JobCode","PositionCode","OrgCode","PersEMPKind","PersWorkplace","PersCostCenter","BuyDelayWork","BuyInitAmount","CurWorkDays","GrpAmount","BaseAmount","JobLevelAmount","PersonnelElementInitial","ActiveAdjustmentElemenet","CurrentYearMonth","personelInfo","getIDCard","systems","monthDays","InsurableItems","TaxableContinues","TaxableUnContinues","BonusSum","DeductSum","BossSum","LoanPaymentSum","MonthlyStandardWorks","MonthlycalendardWorks","MonthEffectWork","YearDaysCount","RewardEffectWork","VacationBuyAmount","PersonnelCount","BuyToutalDays","IssueSickLeave","IssueUnpaidVacationDays","IDCard","Marage","PersDateDIFFYear","PersDateDIFFMonth","PersDateDIFFDay","SexualityCode","PersCode","onDeleteElementFormula","elementFormula","onEditElementFormula","onCreateElementFormula","Condition","finput","lengh","ElementPriorityFormComponent","ElementListComponent","_VoucherKindInfo","PriorityName","EffectOnEffectWrk","EffectStatuteKind","EffectWorkKind","ElemntshowKind","RoundKind","onvalueChangeWithName","EffectBaseTitle","EmploymentKindTitle","EmploymentKindCode","EffectWorkKindId","EffectWorkKindTitle","ElemntshowKindId","HHMM","ElemntshowKindTitle","EffectOnEffectWrkId","Neutral","EffectOnEffectWrkTitle","EffectStatuteKindId","Monthly","EffectStatuteKindTitle","RoundKindId","Normal","RoundKindTitle","LeaveRemain","EmploymentKindFormComponent","EmploymentKindListComponent","HrmBankAccountFormComponent","FirstName","LastName","HrmBankAccountListComponent","HrmBankFormComponent","HrmBankListComponent","HrmMapReportFormComponent","HrmMapReportListComponent","HrmTaxTableFormComponent","HrmTaxTableDetails","HrmTaxTableListComponent","HrmWorkCalendarFormComponent","HrmWorkCalendarDetails","DayBase","HrmWorkCalendarListComponent","HRNotificationKindFormComponent","HRNotificationKindListComponent","JobClassificationFormComponent","JobClassificationListComponent","JobsFormComponent","JobCount","JobsListComponent","OrganizationalPostsFormComponent","OrganizationalPostsRelatedJobss","OrganizationalPostsListComponent","OrganizationalUnitFormComponent","OrganizationalUnitListComponent","PayCompaniesFormComponent","PayCompaniesBranchs","IsInsurance","PayCompaniesListComponent","ProjectFormComponent","ProjectListComponent","WorkHoursImportHeaderFormComponent","WorkHoursImportHeaderListComponent","WorkplaceFormComponent","WorkplaceListComponent","ChangePayCurentYearMonthComponent","_save","FinanceNotificationHeaderFormComponent","DeductColumns","BossColumns","WorkColumns","OtherColumns","ActiveElement","FinanceNotificationDetails","EmploymentKindId","IsGroupedIssue","FinanceNotificationHeaderId","populateElement","ElementTitle","EffectDate","ElementGroupId","MonthAmount","DayAmount","HourAmount","elmnt","EffectStatuteKindCode","Daily","Hourly","FinanceNotificationHeader","FinanceNotificationHeaderListComponent","HRNtificationItems","_HRNtificationItems","editingName","HRNtificationItemColumns","selectedRow","hRNotificationHeader","HrmPersonnelElementInitialComponent","HrmPersonnelElementInitials","_dColumns","cCount","ElemntshowKindCode","DDHHMM","dColumns","HrmPersonnelFormComponent","PersCodeLen","PersonnelPhotocolumns","PersonnelFightercolumns","formGroupPhoto","formGroupPersonnelFighter","PersonnelOtherInfos","PersonnelServiceds","PersonnelWorkRecordss","PersonnelStudyRecords","PersonnelLanguages","PersonnelRecommenders","PersonnelRelativess","PersonnelAddresss","PersonnelEducations","PersonnelPhoto","setPersonnelPhotocolumns","PersonnelFighter","setPersonnelFightercolumns","HrmPersonnelListComponent","HRNotificationHeaderFormComponent","DetaileLedgerColumns","_customDataList","HRNotificationDetails","HrmPersonnelCompanyAssigns","setDetaileLedgerColumns","setPayCompaniesBranchs","NotificationStatusKindCode","GroupedIssue","HRNotificationHeaderId","IssueDay","EffectDay","IssueDate","IssueYearMonth","PayCompaniesId","PayCompaniesTitle","Active4Calculation","TaxGroupId","InsueID","PayCompaniesBranchTitle","TaxGroupTitle","HRNotificationHeaderListComponent","HrmLoanDeduct","HrmLoanDeductFormComponent","selectedModel","HrmLoanEdit","HrmLoanEditFormComponent","HrmLoanKindFormComponent","IsLoanType","HrmLoanKindListComponent","LoanPaymentKind","HrmLoanToPersonnelFormComponent","LoanPaymentKindId","LastPayment","LoanPaymentKindTitle","LoanStartYear","LoanYear","LoanTop","LoanAmount","LoanStartRemain","LoanTopControl","onvalueChange","LoanLeftOver","LoanPaymentCount","HrmLoanToPersonnelListComponent","inputEditorform2","VacationBaseBuyKind","VacationBuyKind","HrmReportPrintKind","FinanceNotificationDetail","EstablishmentTheReserveOfYearsOfServiceFormComponent","isRefreshingData","HasCalculate","MonthlySalaryCalculationInformationComponent","RewardPaymentEffectWorkFormComponent","VacationBuyInformationFormComponent","RemainDays","calculate","calculateEffectWork","GetRemainDays","VacationBuyKindCode","VacationBaseBuyKindCode","VacationBaseBuyKindTitle","VacationBuyKindTitle","groupAssignment","BaseBuyAmount","MonthlyWorkInformationComponent","ElementGroupCodes","MonthlyWorkInformations","checkboxList","JobBaseFormComponent","JobBaseListComponent","JobGroupFormComponent","JobGroupListComponent","JobRankingFormComponent","JobRankingListComponent","AcademicOrientationFormComponent","AcademicOrientationListComponent","CitizenshipKindFormComponent","CitizenshipKindListComponent","CourseTitleFormComponent","CourseTitleListComponent","EducationDegreeFormComponent","EducationDegreeListComponent","FaithKindFormComponent","FaithKindListComponent","FieldOfStudyFormComponent","FieldOfStudyListComponent","FluencyInLanguageConversationFormComponent","FluencyInLanguageConversationListComponent","FluencyInReadingTheLanguageFormComponent","FluencyInReadingTheLanguageListComponent","LanguageKindFormComponent","LanguageKindListComponent","MartyrFamilayKindFormComponent","MartyrFamilayKindListComponent","NationalityKindFormComponent","NationalityKindListComponent","ProficiencyInWritingFormComponent","ProficiencyInWritingListComponent","ReasonForDismissalFormComponent","ReasonForDismissalListComponent","ReligionKindFormComponent","ReligionKindListComponent","RetirementKindFormComponent","RetirementKindListComponent","TaxGroupFormComponent","TaxGroupListComponent","VeteranWorkShiftKindFormComponent","VeteranWorkShiftKindListComponent","BillPayReportComponent","HrmInsuranceDskComponent","HrmInsuranceReportComponent","HrmTaxReportComponent","PayMVPersReportComponent","BillPayAll","BillPayWithOuteBackPay","BillPayOnlyBackPay","HrmDiskFormatExportComponent","ANSICode","HasRowHeader","HrmBankIds","EmploymentKindIds","OrganizationalUnitIds","WorkplaceIds","TaxPayCompaniesIds","InsPayCompaniesIds","saveTextAsFile","blob","createEvent","msSaveOrOpenBlob","download","dataset","downloadurl","dispatchEvent","HrmDiskFormatOutPutKindCode","getFilter","Text","HrmDiskFormatFormComponent","HrmDiskItemFormatFormComponent","HrmDiskFormatListComponent","HrmDiskItemFormulaFormComponent","HrmDiskItemFormats","_model","IsConst","SortID","IsParam","IsCodepage","FarsiName","FieldName","HrmDiskFormatDateKindCode","getBankAccountInfo","BankTitle","AccountType","BankAccount","BankAccount2","BankAccount3","BankAccount4","BankAccount5","getTaxInfo","PostCode","EducationCode","SerialCode","TaxFreeCode","MeliatCode","TaxBranchTitle","TB_BranchID","TB_CompName","TB_farm","TB_adrs","EconomicNumber","TB_ZipCode","TB_PhoneNumber","TB_OwnerNationalNumber","TB_OwnerFirstName","TB_OwnerLastName","TB_OwnerPost","OrganizationUnitTitle","JobTitle","PositionTitle","PersWorkplaceTitle","PersCostCenterTitle","InsBranchTitle","IB_BranchID","EMPStartDate","EmpEndDate","CurrentDate","CurrentYear","CurrentMonth","SanavatYear","SanavatMonth","SanavatDays","FatherName","CertificateID","BirthDate","NationalID","HrmDiskFormatDateKindTitle","ConstFarsiField","httpClient","pcColumns","saveText","PayCompaniesIds","DSKKARProps","DSKWORProps","apiDownloadUrl","reportProgress","HrmReviewComponent","CostCenterIds","ElementGroupIds","StartYear","EndYear","StartMonth","EndMonth","_HrmReviewColumns","HrmReviewColumns","valueType","unSortableFilterable","HrmPersonnelIds","BackPayHrmPersonnelIds","TotallHrmPersonnelIds","GoodsGroupFormComponent","ParentId","TreeCode","TreePath","GoodsGroupImportExportFormComponent","onloadend","fileContent","GoodsGroupList","exportData","GoodsGroupListComponent","Goods","GoodsFormComponent","GoodsUnits","GoodsBarCodes","isloading","GoodsGroupId","DefaultUnitCode","IsGoods","IsMarketable","HasTracing","HasTaxDuty","HasExpiryDate","goodsBarCodes","defaultUnit","IsDefault","defaultunit","UnitCode","GoodsFormulaFormComponent","GoodsCode","GoodsTitle","GoodsKindCode","GoodsKindTitle","HeaderGoodsId","GoodsFormulaViewFormComponent","datList","goodsFormulaView","Product","HalfMade","GoodsFormulaDetailsColumns","isNullOrEmptyString","GoodsSimilarFormComponent","GoodsFormulaComponent","onanalysisActionClick","DetailDefaultValues","setGoodsSimilarColumns","keyboardBinded","goodsFormulaHeaders","GoodsFormulaHeaders","GoodsFormulaDetails","HeaderRowSelected","onCreateGoodsFormulaHeader","GoodsUnitTitle","GoodsFormulaHeadersColumns","onDeleteGoodsFormulaHeader","onEditGoodsFormulaHeader","onCreateGoodsFormulaDetail","CurrentGoodsFormulaHeader","GoodsFormulaHeaderId","PriceRatio","LossPercent","LossAmount","goodsFormulaDetail","onDeleteGoodsFormulaDetail","GoodsSimilars","gfh","gfd","onEditGoodsFormulaDetail","StandardAmount","CurrentGoodsFormulaDetail","DetailRowSelected","h","setRowIndex","isOkforEdit","GoodsSimilarColumns","analysisActions","ShowList","CostPrice","UnitPrice","pop","GoodsFormulaDetail","GoodsFormulaHeader","onCreateGoodsSimilar","GoodsFormulaDetailId","Priority","goodsSimilar","onDeleteGoodsSimilar","gs","onEditGoodsSimilar","GoodsImportExcelFormComponent","SetGoodsInfo","goodsUnitList","goodsGroupList","goodsKindList","isFirst","excelRow","colName","goodsKind","GoodsKindId","goodsGroup","GoodsGroupTreeCode","goodsUnit","u","CreatedDate","notExistBefore","goodsList","GoodsImportExportFormComponent","GoodsList","GoodsListComponent","tabsService","InventoryKind","InventoryWeb","InventoryAdvancedWeb","InventoryToAdvancedWeb","SaleInventory","saveGoodsFormula","onGetGoodsFormulaActionClick","onRowAccessActionClick","onImportExportActionClick","onCopyGoodsFormulaActionClick","clipBoard","onPasteGoodsFormulaActionClick","onSendAllGoodsToRahkaranActionClick","_gfd","dataTransfer","getReportFilter","InvBalanceFormComponent","hcolumns","currentWarehouse","WarehouseId","WarehouseTitle","WarehouseCode","InvBalanceListComponent","currentData","InvVoucherKindFormComponent","sellColumns","sgColumns","invDetailColumns","ReferenceVoucherKinds","VoucherKindDetailLedgerKinds","VoucherKindGoodss","systemKind","OrderByNumber","Increment","Debtor","Decrement","HasWarehouseTransfer","HasOpositeParty","InvVoucherKindImportExportFormComponent","InvVoucherKindList","InvVoucherKindListComponent","FillData","information","HasJournalVoucher","accVoucherDetailComment","InvVoucherPricingFormComponent","set_Columns","isLoadingLastDate","PrevUpdateDate","fillData","LastUpdateDate","WarehouseIds","voucherColumns","InvVoucherPricingListComponent","splashScreenService","hasScroll","closeOnBackdropClick","closeOnEsc","InvVoucherPricingIds","InventoryClosingFormComponent","iscCreatingVoucher","maxCodeLoading","fiscalYearId","currentVoucherKind","InvVoucherDetailList","Registered","IsDetailValid","Deleting","deleteClosingVoucher","IsCalculated","InventoryClosingListComponent","FormOperationKind","InvVoucherKind","InvSubledgerDetailLedgerFormComponent","prepareColumns","Columns","startsWith","CurrentVoucherKind","FormOperationKindCode","IsPurchaseService","IsConsumptionVoucher","InvVoucherDetailFilterComponent","filterList","DetailLedgerIds","ReferenceVoucherKindIds","VoucherKindIds","InvVoucherHeaderImportExcelFormComponent","setInvVoucherKind","setWarehouse","SetInvVoucherHeaderInfo","VoucherKindCode","WarehouseList","currentVoucherKindId","ReferenceVoucherByVoucherKindFilterInfo","orderBy","InvVoucherDetailComponent","filterEntity","_filterEntity","ReferencedVoucherKindId","WarehouseTransferId","invReferenceVoucherLoded","CurrentReferenceVoucherKind","ReferenceVoucherKindId","fillCollectionsKind","setelementByVoucherKindList","_ReferenceVoucherKindId","_CurrentVoucherKind","CurrentWarehouseId","_CurrentWarehouseId","getHasTaxDuty","hasTaxDuty","hasReference","CanChangeRefereAmount","isPriceable","Priceable","hasDiscount","HasDiscount","HasTransportInterface","HasTraceElement","hasReferenceRequired","setLastUnitPrice","isLoadingLastUnitPrice","ShowLastUnitPrice","GoodsUnitRatio","errore","isLoadingReferenceVoucherKind","isvalid","Tax","Surplusage","Deduction","ReferenceId","BaseGoodsId","SellReferenceId","_setChanges","valueIsChanging","Price","DiscountAmount","SetBOMAnalystic","SingleOrIngredients","IncrementalKindCode","ReferenceVoucherList","forGoodsGroupBy","hasNewRecord","MainUnitId","GoodsMainUnitCode","GoodsMainUnitTitle","PriceUnitId","GoodsUnitId","BasedOnBOM","ReferenceVoucherChange","BaseRemainAmount","RemainAmount","RemainMainAmount","PreRemainAmount","ExpiryDate","PackageRatio","MainAmount","StandardMainAmount","MainUnitTitle","GoodsUnitCode","TaxRate","CostSubLedgerId","CostSubLedgerCode","CostSubLedgerTitle","CostSubLedgerLatinTitle","DetailLedgerTitle","DetailLedgerLatinTitle","DetailLedger2Title","DetailLedger2LatinTitle","DetailLedger3Title","DetailLedger3LatinTitle","DetailLedger4Title","DetailLedger4LatinTitle","DetailLedger5Title","DetailLedger5LatinTitle","CostDetailLedgerId","CostDetailLedger1Id","CostDetailLedgerCode","CostDetailLedgerTitle","CostDetailLedger1LatinTitle","CostDetailLedgerLatinTitle","CostDetailLedger2Id","CostDetailLedger2Code","CostDetailLedger2Title","CostDetailLedger2LatinTitle","CostDetailLedger3Id","CostDetailLedger3Code","CostDetailLedger3Title","CostDetailLedger3LatinTitle","CostDetailLedger4Id","CostDetailLedger4Code","CostDetailLedger4Title","CostDetailLedger4LatinTitle","CostDetailLedger5Id","CostDetailLedger5Code","CostDetailLedger5Title","CostDetailLedger5LatinTitle","IsPurchaseInvoice","IsReturnPurchaseInvoice","DiscountRate","ReferenceCode","TeloranceAmount","TraceElement","PriceUnitCode","PriceUnitTitle","isLoadingData","setGoods","GoodsGroupDetailLedgerId","GoodsGroupDetailLedgerCode","GoodsGroupDetailLedgerTitle","rowChanges","removeGoods","setGoodUnitList","goods","du","getFilters","GoodsGroupIds","setGoodsUnitLookUp","sortChange","editSubledgerDetailLedger","onCellClick","clickTimeout","isDoubleClick","handleDoubleClick","handleSingleClick","mouseEvent","stopImmediatePropagation","saveCell","ctx_r28","onReferenceVoucherChange","stockListLoaded","voucherConfirm","lvl","ReferenceVoucherKindIsRequired","ShowStockAmount","InvBalanceColumnswidth","getGridHeight","setlocalColumns","footerColumns","transportColumns","DiscountColumns","setReferenceVoucherColumn","filterdDataList","ReferenceVoucherKindCode","setStockInfoColumns","setCurrentVoucherKind","GetGoodsFormulaDetail","setStatusKind","setConfirmStatusKind","Confirmed","OrignalDetail","Invoicecredit","ToDayDate","SumDeduction","SumPrice","SumSurplusage","TotalDeduction","TotalSurplusage","TransportPrice","TransportTax","AccountRegistered","accVoucherCaption","setReferenceToVoucherKind","WarehouseTransferCode","WarehouseTransferTitle","SendToInvDailyVoucher","setReferenceVoucherColumns","EditStatusKindCode","isNonValidEdit","HasReferencedVoucherTo","OpositePartyWarehouseCaption","HasCheckVoucherDate","ShowWarehouse","NoChangeRefereWarehouseDetailLedger","WarehouseCaption","HasSubledger","OpositePartyCaption","HasReceiptDate","HasCredit","setReferenceVoucherKind","HasSlaveNo","SlaveNoCaption","voucherConfirmDisable","InvVoucherDetailColumns","Calculated","changeReferenceToVoucherKind","ReferenceToVoucherKinds","rvk","CreateVoucherKindReferencedTo","CurrentReferenceToVoucherKindId","DefaultSubLedgerId","DefaultWarehouseId","hasPriceRefresh","HasPriceRefresh","isFristReplaceGoodsSimilar","SetTransportPrice","TransportInterfaceSharingKindCode","TransportInterfaceSharingKindLatinTitle","goodsId","isReadable","stockList","voucherdate","GoodsIds","setGoodsValidation","isValidating","getStockList","SoftDelete","goodsError","stockinfo","StockAmount","OrignalMainAmount","HasError","isValueValid","isChanged","AutoFocusedDocumentIssuance","AutoCreateVoucherKindId","HasAutoConfirm","dLkids","AccVoucherFixNumber","HasJournalVoucherAuto","TotalAmount","EqualPrice","sumTransportPrice","sumTransportTax","StockInfoColumns","CreateInvVoucherReferencedTo","saveReferenceVoucher","CreatedVoucherKindReferencedTo","SellVoucherDetailList","refVoucher","InvReferenceVoucherId","ReferenceVoucherId","IncrementalKindTitle","ReferenceVoucherKindTitle","vd","InvReferenceId","ReserveBalance","HasInventoryControl","SaleAvailable","InvVoucherHeaderIds","isDeleteCreatingAccVoucher","createAccVoucher","submitButtonDisabled","ReferenceVoucherStatusKindCode","voucherRefrenceTo","accountAccVoucher","isCreatingAccVoucher","viewAccVoucher","deleteRowsWithoutValues","DelteZeroAmount","goodsFormulaDetailList","ReplaceGoodsSimilar","editableList","stock","PrevAmount","_stockList","PrevGoodsId","OrignalSaleAvailable","CurrentAmount","GoodsSimilar","CurrentSimarValue","gsRemainAmount","StandardValue","OrignalAmount","FirstOutAmount","SumSaleAmount","SumInventoryAmount","SumReserveAmount","DefaultStockAmount","DefaultSumSaleAmount","DefaultSumInventoryAmount","DefaultSumReserveAmount","DefaultSaleAvailable","SetInvVoucherGoodsSimilar","SetGoodsGroupBy","VoucherDetails","IsGroupByWithGoods","InvVoucherGoodsSimilarRelationList","SimilarGoodsId","item2","similar","PriceRefresh","rightSideColumns","bodyColumns","subLedgerColumns","leftSideColumns","ReportGoodsFormulaDetailList","CurrentGoodsList","ReceivedFromRahkaranFormComponent","ReferenceVoucherListComponent","InvVoucherListComponent","inValid_InventoryList","isCancelled","onRowsSelected1","Closing","Cancelled","VoucherId","TakingOfInventoryHeader","GoodsBarCode","ReferenceVoucherKind","VoucherKindDetailLedgerKind","VoucherKindGoods","ProductConversionFormComponent","readableStandardInfo","WastesVoucherId","IncrementVoucherId","DecrementVoucherId","VoucherCreatable","ProductConversionDetails","VoucherDeleteable","setAvragePurchaseByWarehouse","setGoodsProductConversionFormPrice","onformGroupValueChanges","changedData","AmountRate","PriceRate","BaseUnitPrice","WastesAmount","setGoodsUnit","ProductConversionDate","setDetailValue","setAmountValue","ProductConversionDetailColumns","getStandardInfo","BaseMainAmount","ProductConversionListComponent","ProductConversionStandardFormComponent","ProductConversionStandardDetails","ProductConversionStandardDetailColumns","ProductConversionStandardListComponent","AverageGoodsReportCompareComponent","AverageGoodsReportComponent","CirculationOfGoodsReportComponent","CostPriceOfManufacturedProductsReportComponent","FinishedPriceOfProductsBeforeSaleReportComponent","GeneralMonthlyFoodCostReportComponent","MaterialUseInProductReportComponent","NegativeRemainOfGoodsDalyReportComponent","NewDailyPurchaseInvoiceReportComponent","PriceChangeInPurchaseReportComponent","PurchaseInvoiceReportComponent","PurchaseReportWithTaxComponent","getWarehouse","InvNoReferenceVoucherFormComponent","voucherKind","onRow_Selected","SelectedRow","ReferenceTo","Reference","InventoryReviewComponent","InvVoucherKindIds","OnlySupplier","IsService","ReceiptDate","ShowBeginingOfTheCoursResidue","filter$","AmountRemain","GetGoodsFormulaColumns","GetInvVoucherKindColumns","GetWarehouseColumns","GetGoodsGroupColumns","GetGoodsColumns","GetVoucherHeaderColumns","GetGoodsCardAmountColumns","GetGoodsCardPriceColumns","GetProductConsumptionReport","VoucherHeaderId","onFormChanges","fiscalYearIdIndex","GetPurchaseInvoiceReport","WarehouseGoodsReportComponent","WarehouseGoodsColumns","TakingOfInventoryFormComponent","TakingOfInventoryDetailList","InventoryBalancingDate","dataiIsLOaded","preparation","inCreament","InventoryReceiptId","InventoryDeliveryId","InventoryDeliveryVoucherKindId","InventoryReceiptVoucherKindId","FinalMainRemainAmount","InventoryReceiptVoucherKindCode","InventoryDeliveryVoucherKindCode","InventoryReceiptVoucherKindTitle","InventoryDeliveryVoucherKindTitle","FinalRemainAmount","InventoryReceiptNo","notPrintable","notCreatable","notDeleteable","createInvVoucher","deCreament","InCreamentVoucher","DeCreamentVoucher","deleteInvVoucher","isDetailValid","HasPricing","hasFirstVoucher","Orignal","TagNumber","MainQuantity","patchValue","emitEvent","Quantity","ValueChanges","MainRemainAmount","TakingOfInventoryHeaderId","printTag","Tagnumber","editablegrid","setButtonEnable","SaveTakingOfInventoryDetail","json","entityList","btnExport","jYear","jsondata","jMonth","jDay","openFile","TakingOfInventoryListComponent","UnitFormComponent","UnitImportExcelFormComponent","UnitLiist","SetUnitInfo","UnitListComponent","WarehouseFormComponent","goodsIds","WarehouseGoodss","Quarantine","setGoodsColumn","WarehouseGoodsColumn","WarehouseListComponent","Warehouse","DebtorCreditorNoticesKind","DebtorCreditorNoticesHeaderFormComponent","DebtorCreditorNoticesDetailList","DebtorCreditorKindId","DebtorCreditorKindCode","DebtorCreditorKindTitle","DebtorCreditorNoticesDetailColumns","DebtorCreditorNoticesHeaderIds","DebtorCreditorNoticesHeaderListComponent","CreditFunctionKind","PriceListHeaderFormComponent","onNewdefaultRowTregger","averagePurchase","PriceListDetailList","PricelistDate","SellKindId","CustomerGroupId","GetGoodsAvragePurchase","averagePurchaseId","checkAllUnitValueChange","IsFinal","checkAllDiscountValueChange","DiscountIsFinal","onRowSelectedGroup","currentSellCustomerGroup","currentSellKind","price","DefaultUnitPrice","AvrageUnitPrice","increaseUnitPrice","UnitPriceratio","sr","replaceUnitPrice","changeGroup","SellKindTitle","CustomerGroupTitle","PriceListHeaderId","PriceListHeaderListComponent","SellCustomerReviewComponent","SellVoucherKindIds","CustomerIds","SellerIds","SellKindIds","GetSellVoucherKindColumns","GetSellKindColumns","GetCustomerColumns","GetSellerColumns","SellCustomerGroupFormComponent","SellCustomerGroupListComponent","SellCustomerFormComponent","IsPermanent","IsBlacklist","ConsumedCredit","DocumentCredit","SellCustomerListComponent","SellKindFormComponent","TimeOfReceipt","IsOk4Load","SellKindListComponent","SellKind","SellVoucherKindListComponent","SellVoucherDetailComponent","CanChangeReferePrice","WarehouseIsInHeader","keyboardEvent","KeyboardEvent","bubbles","SellVoucherModalListComponent","setLoaclColumns","getDetailLedgerColumn","CustomerColumns","CustomerVoucherColumns","columnnumber","setDetaiLedgerVisble","DetailLedgerColumnDetailLedger","DetailLedgerColumnSellDetailLedger","SellVoucherDetailColumns","SetHasPricelist","setCustomerInfo","CheckCredit","isCheckingCredit","CustomerRemain","Customer","ConsumedCreditRemain","DocumentCreditRemain","BasedReputationCode","CreditFunctionKindCode","Stop","CustomerTitle","CustomerDisplayName","getCustomerRemain","CustomerVouchers","CustomerId","SetDeliveryPlace","HasPricelist","ResetPriceUnit","SellkindId","DefaultSellKindId","HasChangeInvoicecredit","valueIsSetting","ReceiptDays","UTC","SetPriceUnit","PeopleInfoAddresss","DeliveryPlaceId","DeliveryPlaceTitle","Address","CreatedVoucherKindReferencedToHasError","CreatingAccVoucherHasError","GetVoucherKind","SellReferenceVoucherId","SellVoucherHeaderIds","IsOverWriteable","CurrentPriceList","SellVoucherHeaderImportExcelFormComponent","SellKindList","SetSellVoucherHeaderInfo","SellKindCode","SellVoucherHeaderId","SellVoucherListComponent","BankAccountFormComponent","BankAccountListComponent","BankBranchFormComponent","BankBranchListComponent","BankFormComponent","BankListComponent","CashFormComponent","CashListComponent","ChequeStatusKind","ChequeBookFormComponent","ChequeBookDetails","chequeBook","isCreatable","DocumentNo","cancelChequeBook","_selectedChequeBookRow","Canceled","returnCancelChequeBook","NotUsed","createChequeBook","ChequeBookHeaderId","selectedChequeBookRow","ChequeBookListComponent","DurationKind","TrsStatusKind","TrsReferenceVoucherByVoucherKindFilterInfo","TrsVoucherKind","CheckBookComponent","TreasuryReviewComponent","GetTrsVoucherKindColumns","GetCashColumns","GetTreasuryDetailLedgerColumns","GetTreasuryHistoryColumns","TrsVoucherKindIds","BankAccountIds","TrsConcernIds","VoucherHeaderIds","OperationKindIds","DocumentKindIds","CashIds","IsEstablishment","TrsConcernFormComponent","IsCost","DurationKindId","DurationKindCode","DurationKindTitle","TrsConcernImportExcelFormComponent","TrsConcernLiist","TrsConcernListComponent","TrsVoucherKindFormComponent","TrsReferenceVoucherKinds","TrsVoucherKindDetailLedgerKinds","TrsVoucherKindTreasuryDetailLedgerKinds","TrsVoucherKindConcerns","invColumns","detailsColumns","Concern","VoucherKindTreasuryDetailLedgerKind","saveDetailInfo","TrsVoucherKindImportExportFormComponent","TrsVoucherKindList","TrsVoucherKindListComponent","ChequeBookInfoFormComponent","ChequeBookDescription","TrsReferenceVoucherListComponent","TrsVoucherDetailFilterComponent","ConcernIds","TreasuryDetailLedgerIds","PayerDetailLedgerIds","BankIds","TrsVoucherDetailComponent","TreasuryDetailLedgerId","treferenceVoucherLoded","setreferenceVoucherByVoucherKindList","ShowBank","DocumentKindCode","RequireBank","BankCaption","ShowSubLedger","SubledgerInHeader","ConcernInHeader","DetailLedgerInHeader","RequireDetailLedger","DetailLedgerCaption","TreasuryDetailLedgerInHeader","ShowTreasuryDetailLedger","RequireTreasuryDetailLedger","TreasuryDetailLedgerCaption","OperationKindCode","EffectKindCode","IsCheckBook","ShowDocumentNo","Guarantee","DocumentNoCaption","RequireDocumentNo","DocumentDateCaption","ShowBranchCode","BranchCodeCaption","RequireBranchCode","BranchTitleCaption","ShowTag1","TagCaption1","RequireTag1","ShowTag2","TagCaption2","RequireTag2","ShowTag3","TagCaption3","RequireTag3","ShowTag4","TagCaption4","RequireTag4","ShowTag5","TagCaption5","RequireTag5","ShowTag6","TagCaption6","RequireTag6","ConcernId","ConcernCode","ConcernTitle","referenceVoucher","voucherDetail","BankAccountId","BankAccountNo","BankBranchTitle","BankCode","BankId","BankBranchCode","ChequeId","PayerDetailLedgerId","TreasuryDetailLedger1Id","TreasuryDetailLedger2Id","TreasuryDetailLedger3Id","TreasuryDetailLedger4Id","TreasuryDetailLedger5Id","TreasuryDetailLedger6Id","TreasuryDetailLedger7Id","DetailLedger1Id","ReferenceNo","DocumentDate","Tag1","Tag2","Tag3","Tag4","Tag5","Tag6","TreasuryDetailLedgerCode","TreasuryDetailLedgerTitle","isLOading","TrsConcernId","InvVoucherId","setBankAccountDataList","setChequeDataList","finditem","cheqIds","ci","chid","cid","getColumnSum","isDetailLedgerKind","currentSettlementConcern","_currentSettlementConcern","TrsVoucherDetails","currentDetailLedger","_currentDetailLedger","isVoucherConfirmed","setTrsVoucherDetailsColumns","TrsVoucherHeaderIds","TrsVoucherKindTitle","VoucherSelectionChanged","TrsVoucherKindCode","setConcernVoucherKind","concern","TrsVoucherDetailsColumns","onHeaderValueChange","currentSelectedRow","SetSettlementChecked","RowCheckStateChanged","Totalvalue","RemainValue","TrsVoucherTotal","SetSettlementVoucher","TrsSettlementVouchers","SetInvSellVoucher","hasChequeBookPrint","chequeBookPrint","reportyKind","reportVariables","chequeBookAverage","GetSettelemntDetailLedgherId","grdSettlementVoucher","record","vh","SellVoucherId","SettlementValue","SetCurrentSettlementConcern","SelectedSettlement","GetInvVoucher","GetSellVoucher","FromVoucherDate","InvVoucherKindDate","TrsSettlementVoucherColumns","TrsVoucherListComponent","TaxPayerSystemFormComponent","GetColumns","btn","Button","SetInvoiceFactor","invoiceList","controlName","DateDialogComponent","TaxPayerSystemListComponent","confirmValue","taxPayer","HasGetResponese","HasGetResponse","ResendFactors","SendStatusCode","StatusCode","setFilter","autoCancel","hasResponse","hasResendFactors","statusList","currentFilter","AdditiveFormComponent","hasBranchCommunication","hbc","IgnoredItems","Categories","ItemIds","CategoryId","ItemId","ItemTitle","ItemWithCategory","IgnoredItemsWithCategory","AdditiveId","ignoredItem","TransferKindCode","HasCommunication","BranchCount","deactivateSave","haserror","AdditiveListComponent","IgnoreDelete","MeasurementUnitFormComponent","MeasurementUnitListComponent","SalePriceTypeFormComponent","SalePriceTypeListComponent","ItemFormComponent","ItemListComponent","ItemCategoryFormComponent","ItemCategoryListComponent","DescriptionFormComponent","DescriptionListComponent","ItemPriceChangeFormComponent","ItemPriceChangeListComponent","ItemCategorySelectFormComponent","SaleFormulaComponent","SaleItemFormComponent","SaleItemListComponent","DescriptionId","TaxServiceApplyType","openImagesForm","TaxApplyTypeId","NotApply","TaxApplyTypeCode","TaxApplyTypeTitle","ServiceApplyTypeId","ServiceApplyTypeCode","ServiceApplyTypeTitle","addBtn","buttonIcon","AccountingKind","AccountingAdvancedWeb","AccountingToAdvancedWeb","AccountingWeb","HasProtel","onDynamicFormChanges","getImages","selectedImage","onSubmit","images","Item","ItemType","ItemDependencySaleMethodBranch","ChangeCachEnum","changeCachEnum","ItemCategoryData","ItemCategoryLookup","Itemcategory","SalePriceTypeData","SalePriceType","SalePriceTypeLookup","salePriceTypeId","SalePriceTypeId","getSalePriceType","MeasurementUnit","MeasurementUnitId","mu","MeasurementUnitTitle","ItemDependencySaleMethodBranchIds","newData","Ins","SaleMethodId","ItemDependencyId","DependentItemId","added","Dependents","existDependent","Prices","Barcodes","Calories","CookingTime","Toll","PackingPrice","UsedInInvDailyVoucherClone","UsedInInvDailyVoucher","ApplyFromGroup","ItemTypeId","ItemTypeTitle","populateBranch","DataDaysWeekTitle","isUsed","previousDependents","Title_En","Ingredients","Ingredients_En","Description_En","ItemSerial","IsOrganizationalDiscount","OrganizationalDiscount","br","listBranch","showBranch","setHeaderInfo","havePricesItem","haveIsDefaultNumber","defaultPrice","isFound","DataDaysWeek","dependent","previousDependent","isItemExists","itemCategory","priceValue","codeIsValid","onGoodsIdChanges","disabledTitle","onGoodsClear","IsMultiSelect","activeSaleMethodBranches","saleMethod","showOrganizationalDiscount","columnsToExclude","itemTitle","formulas","ItemPriceChangeDetail","RateIncreaseChange","RoundingTypeChange","itemPriceChangeDetail","IncreaseRateValue","AmountTypeIdValue","AmountType","Percent","IncreaseRateOfAmount","Rial","populateItem","CategoryIdValue","SalePriceTypeIdsValue","RoundingAmountValue","SalePriceTypeIdValue","itemPriceChangeDetailCopy","CategoryTitle","OldAmount","selectedPrice","SalePriceTypeTitle","ItemPriceId","newAmount","RoundingType","Standard","RoundingUp","RoundingDown","NewAmount","RoundingTypeId","AmountTypeId","categories","CategoryTitles","categoryIdValue","categoryTitles","MealEnum","DeliveryEnum","ClearEnum","DeliveryEnumEng","DepositModel","InvoiceId","Invoice","ServingFoodDate","ServingFoodTime","MealTime","DeliveryType","ClearType","NumberOfCooks","NumberOfPeople","DepositPersonnelList","DepositAmount","FoodPricePerson","ServicesAmount","RowVersion","DepositPersonnelModel","DepositHistoryModel","DepositPersonnelHistoryModel","DepositChanges","DepositChangedFieldEnum","ItemCategory","ItemPriceChange","ItemBarcode","ItemDependency","ItemPrice","ItemBranch","BarCodeType","CategoryPopupState","CostGroupFormComponent","CostGroupListComponent","CostSpentListComponent","CostFormComponent","CostListComponent","CostSpentFormComponent","CostspentsettingFormComponent","CostSpentMenuComponent","costGroupTab","BranchDataTransferInfos","TranslateCost","CostSpent","common","handleClick","onfulfilled","onrejected","hasActiveItem","PersonnelRolesEnum","checkBranching","checkTheRole","isCashier","RolesTitle","Cashier","fillSubDetailLedger","costSpentFormSettingModel","Subledger","SettlementId","DriverSettlementId","changValue","costGroupId","FindList","costList","CostGroupId","CostSpentFormSettingModel","costSpentformsetting","_svgFillCodes","refreshSetting","StatusEnum","HasInvoiceService","statusDataList","setDefaultDate","nowDate","DateValueFormGroup","submitValue","DescriptionAssignmentFormComponent","formColumns","UnAssignmentDesceription","ExternalNotificationStateKindEnum","DriverNotificationPipe","NotificationState","Seen","DriverAssignementFormSettingFormComponent","DriverAssignementService","SimpleMenuComponent","ContextMenuEnum","SaleMethodNature","ctx_r4","ctx_r15","driverservice","Token","BranchDes","BranchLng","BranchLat","SystemCode","inputSearch","inputBarCode","setFormGroupValue","LockNumber","safirToken","SafirToken","getExternalNotification","mapForm","deliverySaleMethodData","SaleMethodNatureCode","Delivery","onMapClick","showFleetMap","submitEl","onNotificationClick","selectNotification","notificationList","notificationIndex","PersonnelId","seenNotification","scrollTarget","scrollIntoView","notificationTrackBy","LocalSettingService","InvoicePrintService","DeleteDriverAssignment","DriverAssignGetInvoiceViewModel","DriverAssignment","DriverAssignmentStatus","InvoiceCommand","InvoiceStatus","UpdateClientFactorState","OrderService","CreditControlType","DriverAssignDeliverd","DriverAttendanceStatus","DriverStatus","DriverStatusShow","PersonnelState","PrintPolicyPrintTimeEnum","invoicePrint","DriverIn","hasFastAccess","DriverOut","DriverReadyToWork","All","hasCourierFleet","DateNow","GetAllDrivers","searchInput","barcodeInput","refreshWithNotification","GetAllInvoices","accessToGetDrivers","getDriverById","drivers","driver","PersonnelName","UserDisplayName","PersonnelImage","flatNotification","newNotificationCount","notifications","sourceItem","getDriverStateLookupItem","formsetting","PreData","isReadAPICalled","UntilDate","invoices","SaleMethodBranchId","changeInvoiceBystatus","saleMethodBranchChanges","invoiceFilterByStatus","selectedList","invoiceFilter","tempCurrentInvoices","currentInvoices","isAssign","isShowAssignInvoice","Assigned","hasSelectItem","CurrentBranch","getDriverCounts","currentDriverFilter","DriverFilter","driverFilterByStatus","DriverAttendanceStatusLookup","DriverStatusLookup","selectedDriver","currentDrivers","DriverAttendanceStatusCode","Present","DriverStatusCode","In","ModifiedDate","Out","personnelBranch","IsFleet","VehicleId","ReturnOfDelivery","Freeze","FilterDate","DriverStatusId","invoicesIds","DriverAssignments","DriverReturnDate","driverInfo","InvoiceIds","DriverId","currentIndex","ChangeDriverStatus","DriverAttendanceStatusId","DriverAttendanceStatusTitle","Absent","findItemActive","Deactive","findItemDeactive","DriverStatusTitle","branchIndex","normalizeBarcodeInput","barCodeFinder","normalizedEvent","numberingInDateCode","invoiceByBarCode","NumberingInDate","driverNumberCode","driveIdByBarCode","InvoiceAssigned","selectedInvoice","invoice","selectedDrive","SelectDriverInDontSent","hasExit","AutoExitCourier","numberOfInvAssign","numberInvSameTimeAssignToCourier","selectedInvoices","multiOrder","SelectedInvoicesTotal","mapper","DriverDisplayName","CustomerNumber","HasLocalPrtinter","HasLocalPrint","PayableTotal","OriginalValue","terminate","_opened","printInvoices","InvoiceList","inv","WebId","setClientFactorState","DeliveryCustomerPrintTimeCode","CommandCode","Assign","CustomerAddres","PrintPolicyPrintTime","CustomerPrint","HasTotalDebit","CustomerTotalDebit","PrintLocalInvoice","CancelAssignment","ctrls","getDescriptionControls","mod","des","GetAllInvoicesByDate","isFastAccess","CreditControlTypeCode","Warning","AssignmentInvoicesTotal","CreditLimit","ok","Inhibit","refreshTableTimeLeft","FactorStringTime","calculateDiff","currentDate","chaneDate","Days","DelinoId","SentToCustomer","personnelId","ExternalNotification","AccountingDocumentFormSettingComponent","AccountingDocumentSettingMenuComponent","ConfirmDateValue","AccountingDocumentFormComponent","dialog","swipeGrid","showAccountingDocument","formMenuContextVisible","GetAccColumns","GetTrsColumns","AfterViewInit","accountingDocumentSetting","BranchLookUp","gridColumnsAccounting","visibleListCols","nonVisibleListCols","settingChanges$","visibleCols","nonVisibleCols","gridColumnsTrsVoucher","GetList","TrsDetailLedgerList","accVoucherHeaderList","confirmDateValue","ErrorMessage","Voucher","FilterDateList","trsVoucherHeaderList","TrsVoucher","calcRemain","sumDebit","sumCredit","attrs","AccountingDocumentListComponent","GetSystemKindLookup","SendVoucherFromCenter","findLookup","SALE","dataFilter","DeleteAccVoucher","AccountingSettingFormComponent","subLedgerType","AccountingSettingListComponent","showMessageAndCloseForm","accountSettingTab","ReceiptPaymentModel","CustomerSettlementModel","SettlementType","CustomerReceiptPaymentFormComponent","settlementType","receiptPaymentType","settlement","onCustomerIdChanges","ReceiptPayments","receipt","SettlementTypeId","CustomerSettlement","debitTitle","CustomerReceiptPaymentListComponent","ReceiptPaymentTypeEnum","SettlementInvoiceModel","SettlementReadInvoiceEnum","SettlementReadInvoiceModel","SettlementReferenceModel","InvoicesModalComponent","CashierSettlementFormComponent","ClearedInvoicesTotal","PendingInvoicesTotal","PassiveInvoicesTotal","DeletedInvoicesTotal","CancelledInvoicesTotal","CustomerClearedInvoicesTotal","PersonnelClearedInvoicesTotal","PersonnelReceiptPaymentPaid","UntilTime","userLookup","SettledPersonnelId","InvoiceCredit","TipTotal","TotalDeposit","InvoicesDiscount","InvoiceDebit","Remain","OldRemain","TotalPayment","AllowedDeficit","TotalAccount","CashierSpentCost","PaymentLink","ReceiptPaymentTypeTitle","PaymentMethodTitle","getCurrentDate","AddSettlementForUnpaidAndSuspendedInvoices","AddSettlementForPending","deactiveForm","getUserLookup","getPaymentMethod","PaymentMethod","changeUser","reciveInformation","SettledUserlId","checkValidation","addGroup","openInvoicesModal","invoicekind","ReadInvoiceModel","defaultFilters","Cleard","ClearedInvoiceIds","Pending","PendingInvoiceIds","CancelledInvoiceIds","Passive","PassiveInvoiceIds","Deleted","DeletedInvoiceIds","CustomerClearedIds","Personnel","PersonnelClearedIds","PaymentPersonnel","Payment","DebitInvoiceIds","CreditInvoiceIds","Discount","DiscountInvoiceIds","CostSpentIds","PaymentLinkIds","removePayment","Index","removeControl","TotalReciptPayment","ReceiptModel","PaymentMethodId","addPayment","SettlementDetail","isSavedFinish","Invoices","NotDisplay","SettlementReferences","SettlementRefrenceId","PayableTotalPrice","CashierFirstNameTitle","CashierLastNameTitle","SettlementFormSettingFormComponent","CasheirSettlementListComponent","CasheirSettlementIds","cashier","AccFixNo","AccVoucherId","DriversettlementsettingFormComponent","DriverSettlementMenuComponent","ShippingCostReducedKind","DriverSettlementFormSettingModel","PaymentMethodType","ctx_r41","DriverSettlementFormComponent","hasAccountingModule","PayableWithCourierShippingCost","PayableWithShippingCost","TerminalNumber","OnlinePayment","NewRemainValue","ShippingCostReducePrice","FillFormSetting","ShippingCostReducedKindId","ShippingCostReducedKindCode","driverSettlementFormSettingModel","CostSpentFormSettingViewModel","hasDetailLedger","confirmDialog","getReceiptPaymentType","receiveId","Receipt","checkIsPosPayment","receiveInformation","DriverShippingCostReduced","DriverShippingCostReducedIds","OnlinePaymentIds","isPosPaymentMethod","selectedPersonnelId","selectedPersonnel","hasTerminalNumber","money","paymentMethodId","receiptPaymentId","isPayment","selectedPaymentMethod","pm","PaymentMethodCode","Pos","hasTerminal","ReceiptPaymentType","ReceiptPaymentTypeId","paymentLink","totalDeposit","onlinePayment","totalPayment","payableTotal","allowedDeficit","combinedPayment","saveSettlement","DriverFirstNameTitle","DriverLastNameTitle","NoReduced","CostId","hasDefaultCostId","DeductionForSettlement","DriverSettlementListComponent","driverSettlementformsetting","saveForm","PaymentLinkState","setPaymentLinkStateString","reciptpayment","Settlements","CostSpents","hasColumns","getPaymentLinkStateString","paymentLinkState","paymentLinkStateString","getStatusOfLinkPayment","Nothing","SentLink","DeliveredLink","Paying","Paid","FailPayment","OpenFactorLink","numberStr","restOfDigitsStr","PaymentMethodFormComponent","PaymentMethodListComponent","UserSettlementModel","DriverSettlementModel","CashierSettlementModel","SettlementDateViewModel","hasRahkaranSetting","PaymentMethodTypeId","paymentMethodTypeItems","cashData","paymentMethodType","Cash","PaymentMethodTypeCode","PaymentMethodTypeTitle","onPaymentMethodTypeIdChanges","PaymentTerminalProviderId","IsWebService","showHideIpAndPort","accountingInstalled","isPos","isTabletPos","TabletPos","isCash","isCheck","Check","isInternet","Internet","controlsNameToShowInPosMode","ipPattern","portPattern","hasRahkaran","findData","InvDailyFormComponent","InvDailyListComponent","InvDailyRemainFormComponent","InvDailyRemainListComponent","InvDailyWasteFormComponent","InvDailyWasteListComponent","InvDailyWarehouseComponent","InvDailyWasteSettingComponent","InvDailyWasteMenuComponent","InvDailyListDialogComponent","InvCreateInvVoucherListComponent","InvCreateInvVoucherFormComponent","InvDailyBalanceComponent","InvDailySettingComponent","InvDailyHeaderMenuComponent","InvCreateInVoucherMenuComponent","InvCreateInVoucherSettingComponent","InvDailyUsageComponent","FromDate","ToDate","SendBranchId","SendInvDepositWareHouse","branchFilter","allBranchesExceptCallCenter","onBranchFilterClear","InvCreateInVoucherSetting","loadInvDailyBalances","goodsIdControl","goodsTitleControl","InvDailyKindEnum","InvDailyDetails","itemColumns","onLookupRowSelect","InvDailyHeaderId","removeEmptyValues","details","Reject","onBranchChanges","goodsWithBranchZero","goodsToRemove","good","equivalentGood","goodToRemove","onBranchFilterChanged","branches","filterBranchWithOrOperator","InvDailyHeaderSetting","selectedRowDetails","InvDailyRemainDetaillList","onGridValueChanges","BalanceAmount","InvDailyRemainId","toISOString","itemLists","getItemColumns","InvDailyWasteDetailList","InvDailyWasteId","invDailyWasteSetting","_VoucherKIndInfo","itemId","headersColumns","onDetailRowChanges","SaleFormulaId","onHeaderChanges","showHideActions","SaleFormulaDetails","openGoodsForm","formula","hasEditAndInsertDetail","addGoods","headerGrid","codingList","onFieldsChanges","deleteGoods","LocalSettingKind","TabletPosService","LocalSettingFormComponent","tabletPosService","LocalSettingKindCode","PosScale","LocalSettingKindId","LocalSettingKindTitle","setComputerName","ConnectionTest","tabletPosTest","getPrinters","tabletPosConnectionTest","testBtn","Printer","LocalSettingListComponent","printData","PrintTemplateName","GROUP_ITEMS","GroupMessageComponent","PurchaseFilterTypeId","purchaseFilterTypeList","rl","getContactInfo","messageInput","ExpirationTime","HasShortMessage","GenderIds","ZoneIds","CustomerCategoryIds","FromPurchaseAmount","ToPurchaseAmount","FromTotalPurchaseAmount","ToTotalPurchaseAmount","FromPurchaseCount","ToPurchaseCount","MessageTypeId","PurchaseEndTime","PurchaseStartTime","RegistrationStartTime","RegistrationEndTime","RemainCredit","PurchaseFilterTypeCode","PurchaseFilterTypeTitle","toggleDirection","tryToSendSgain","submitForm","SendMessage","ApplayFilter","onPageChanged","ManagementMessageListComponent","account","MessageListComponent","messageFilteredQuery","StatusList","TypeList","StartTime","EndTime","To","event1","filteredQuery","MessageManagementTelephoneListComponent","OCCASION_ITEMS","MessageTemplateType","MessageTemplateFormComponent","NumberOfDaysBeforeSending","MessageTemplateTypeTitle","occasionMessageTemplate","occasion","groupMessageTemplate","MessageTemplateTypeId","MessageTemplateTypeCode","MessageTemplateListComponent","deleteHandler","loadMessageTemplate","CustomerAddress","CustomerAddressOrderComponent","_zoneId","_address","_isDefault","customer","customerAddress","Addresses","_AddressId","ZoneId","AddNewCustomerAddress","CustomerNumberOrderComponent","CustomerOrderService","CustomerDetailsOrderComponent","customerOrder","ShowMinutesToDelivery","address","currentCustomer","SelectedAddressId","MinutesToDelivery","ShowAddressDialog","GetCustomerDetails","ShowAddressEditDialog","SetSelectedPhoneId","phone","SelectedPhoneId","ShowPhoneDialog","ShowEditPhoneDialog","numbers","Numbers","_numberTypeId","NumberTypeId","_number","_PhoneId","CustomerContactNumber","customerNumbers","SetPattern","SetPatternKey","CustomerDetailsEnum","CustomerFormComponent","CustomerOrderComponent","customerService","CurrentCallNumber","CallerIdNumber","ReadListCallerIdNotification","_customers","currentCustomerDetailsEnum","Details","calls","logInBranch","Line","answer","currentGridFilter","hasCallerIdNumber","customerId","setCostomerInfo","getRowSelectedData","customerDetailsIsLoaded$","customerLoadModel","doubleClickUnsubscribe$","clearFilters","FillSelectedAddressId","FillSelectedPhoneId","filterService","ActivePageEnum","AddressPhoneFormComponent","DiscountTypeEnum","groupmodel","loadCostomerInfo","_showNewCustomerForm","Order","phoneNumber","defaultAddress","getMinutesToDelivery","DebitRate","DefaultBranchId","zoneBranch","Zone","defaultMinutesToDelivery","MinimumPurchaseForFreeShipping","Total","DiscountPrice","TotalDiscount","IsDiscountPercent","IgnoreShippingCost","freeShippingCostDiscount","isActiveCategory","customerInActiveCategory","DeactivationReason","setCustomerInfoAfterSelectAddress","AddressId","MultiPhoneNumber","PhoneId","invoiceChanged","setDefaultBranchId","setInvoiceHasFactorAndHasPaymentLink","setDefaultCosts","setActivePage","OrderItem","PercentDiscount","customerDiscountValue","DiscountType","Subscription","Party","AutomaticDebtor","currentSaleMethodNature","branchFromZone","defaultBranch","Suspend","ChangeBranch","itemCategoryListAll","defaultBranchId","GenderEnum","PersonalityKindEnum","NewCustomerOrderComponent","numbersVisibility","Occasions","zone","saleMethodBranch","customerCategory","personalityKind","Realperson","gender","Male","customerDetailsEnum","GenderId","PersonalityKindId","numberType","findIndexOfCurrentAddress","findIndexOfCurrentPhone","onNumberTypeChanged","setPatternKey","DeleteSelectedPhone","phoneFindIndex","onRefresh","InvoiceDelivered","InvoiceDeliveredItem","DeliveredInvoiceTypeEnum","item_r9","DeliveredComponent","PrintPolicies","SaleMethodBranchIds","checkBoxValue","loadInvoices","loadSaleMethods","loadPrintPolicies","getInvoiceDelivered","focusInput","BarCode","foundInvoicePending","foundInvoiceKitchen","foundInvoiceDriver","normalizedBarCode","DeliveredListInvoicePending","DeliveredListInvoiceDriver","DeliveredListInvoiceKitchen","deliveredInvoice","changeTabAction","showDriverGrid","showKitchenGrid","showCustomerGrid","getElapsedTime","DeliverStringTime","MaxCookingTime","HasExpired","itemOnChange","Checked","shouldBeSetValueCheckboxes","DeliveredInvoiceType","DeliveredKitchen","directDeliver","sendData","InvoiceItemId","InvoiceDeliveredItemList","SaleMethodChange","PrintSettingChange","selectedPolicies","PrintPoliciesList","policy","filteredData","filterIsPassed","SaleMethodBranches","Salons","SalonId","invoiceDeliveredList","filteredPrinterList","PrintTimeCode","PreparationPrint","SaleMethodBranchList","isActiveTab","FormatTimeFromBackendPipe","formatTimeFromBackend","formattedTime","utc","asMilliseconds","SaleMethodBranchModel","InvoiceEntry","InvoiceActionService","DataCenterProcess","TotalPriceService","InvoicesComponent","localSettingService","invoiceAction","totalPriceService","Ordering","Clearing","Cleared","currentTabId","HasAccess","HasDeposit","depositListGridFilter","depositFilterIsSelected","SaleMethod","InvoiceGridInfo","invoiceGrid","ItemGridInfo","itemGrid","currentSaleMethodBranch","MainTableName","setDefaultBranch","getDataTransferInfo","MealTimeDataList","colorPicker","getBgColor","StatusTitle","linkCol","InvoiceItemColumns","OrderServices","sendInvoiceSms","invoiceDeposit","Deposit","afterActionClick","checkInvoiceState","SaveInvoice","changePrintTemplate","IsReceiptPrint","saveEnd","commond","Restaurant","ReprintForCustomer","ReprintForPreparation","ReceiptPrint","FastFood","HasDelino","depositFormGroup","depositPersonnelList","depositServiceAmountSummary","depositServiceAmount","isShowDeposit","getDepositValue","IsPaymentLink","newInvoice","ShowDescInvCustomer","ShowDescInvKitchen","desResult","DescKitchen","DescCustomer","RowDiscount","showPercent","SaleMethodBranch","saleMethodList","setValueformGroupControl","shouldActivateSalonPage","shouldActivateInvoicesPage","GetItemCategoryList","selectedInvoiceItem","selectedOrderItemIndex","shouldCalculateFreeShippingCost","itemQuantityChanged","depositModel","mappedData","CustomMap","originalDeposit","calcDepositServiceAmount","showDepositDateFilter","startDateFilter","endDateDateFilter","HasInvoiceServiceFilter","startAndEndDateFilters","hasDeposit","retryLink","getInvoiceById","InvoiceItems","selectedFilter","invoiceFilterClear","GetInvoices","isFinishedData","onMealTimeChanged","mealTime","mealTimeFilter","SaleMethodFilter","SaleMethodBranchFilter","pritFactors","invoicePrintService","deleteInvoiceExtra","Organization","updateCustomer","InvoiceItemPrintModel","Free","HasDecimal","PrintDisplayOrder","UnitAdditive","UnitPriceDiscount","UnitDiscount","UnitToll","UnitService","UnitTax","NewQuantity","ParentCategoryId","InvoicePrintModel","OldSaleMethodBranchId","TotalCalories","PrintDescription","RestaurantTitle","RestaurantEconomicalNumber","IsMultiPrint","RestaurantPostalCode","MealTimeTitle","RestaurantAddress","RestaurantPhoneNumber","CurrencyCode","CurrencyTitle","CustomerPhoneNumber","NumberOfGuests","ShippingAddress","DaysOfWeek","TotalNet","TotalService","TotalTax","TotalToll","CreatedUserPhoneNumber","ShamsiCreatedDate","CreatedDateTime","OldNumberingInDate","WaiterName","CreatedUserName","TableTitle","OldTableTitle","DependentPrintPolicyTitles","Corrective","RePrint","PrintTime","DisplayLogoInPrintTemplates","PolicyTitle","IgnoreBlackBackground","FreeShipping","DisplayAddressInInvoice","Logo","BranchNationalCode","CustomerRegistrationNumber","CustomerEconomicCode","CustomerNationalCode","CustomerNationalId","CustomerPostalCode","RemainingAmount","PrintDocumentInvoiceModel","lists","printerName","templateName","localServiceIp","PrinterName","TemplateName","ItemOrder","ApplyTax","ApplyService","Additive","Desctiption","ItemDetailsOrders","ItemDependencyType","UnitKindEnum","ActionStateModel","temporaryRegister","preparationPrint","customerPrint","clearWithoutPrint","mixClear","delivered","SaleElementSize","ClubEnum","ClubConfirmationEnum","CustomerFilter","DelinoCheckCustomerAddressModel","DeliveredListInvoice","DeliveredListInvoiceItem","DeliveredTime","InvoiceDeliveredId","FastAccessEnum","ClubCode","HasClub","isDebit","LastInvoiceCode","SettlementCode","SettlementTypeTitle","CurrentUserId","ClubPrice","LastInvoiceAmount","CommandId","CommandTitle","hasChangedTable","Changes","PayableChangeId","PayableChangeTitle","PayableChangeCode","TollRate","ServiceRate","ServiceTax","ApplyTaxForService","ApplyTaxForShippingCost","IgnoreService","ShippingCostTax","StatusId","TotalWidthRowDiscount","RoundingTypeTitle","DelinoFactor","RoundingTypeCode","Tip","DriverAssingDate","StartTimeTrip","ShamsiDriverReturnDate","ShamsiDriverExitDate","DriverReturnTime","NewNumberingInDate","WaiterId","CustomerName","TableId","Completed","TabId","CustomerPrintCount","PreparationPrintCount","CreateDateTime","ModifiedDateTime","LastModifiedUserId","HasPaymentLink","HasFactorLink","DeliverCustomerTime","OrderConfigurationTime","PrintPolicyId","OtherPrintTemplateId","DriverAssignInvoiceViewModel","AssignInvoiceViewModel","LastInvoiceInformation","DriverAssignmentInvoices","InvoiceItem","IsClubItem","AdditiveUnitDiscount","UnitAdditiveRowDiscountPrice","additivePrice","RowDiscountPrice","Additives","Descriptions","IsDependent","InvoiceItemAdditive","InvoiceItemDescription","InvoiceReceiptPaymentEntry","InvoiceItemDescriptionEntry","InvoiceItemAdditiveEntry","InvoiceItemEntry","InvoiceChangesLookup","Rounding","DriverAssignmentRead","ItemStateEnum","InvoiceChanges","InvoicePayableChange","InvoiceMode","CurrentTime","InvoicePrintLocal","PosPaymentResponse","InvoiceHistory","SettlementRefrenceCode","IsValidRemain","HasChange","PaymentMethodTypeIndex","TableRead","SaleMethodBranchTitle","ShamsiDateTime","DateTime","SalonTitle","CustomerLastName","posPaymentIndex","DepositHistory","ClearedUserId","ClearedUserName","InvoiceItemHistory","InvoiceHistoryCompare","OrderItemCategory","Color","categoryPopupState","AllAvailable","favoriteIndex","activeItem","ItemDescription","OrderDescription","OrderAdditive","OrderSizeEnum","OrderActionControlModel","OrderActionEnum","IsShowTotalBox","IsShowDescriptionBox","IsShowActionBox","showComplate","changeView","changeCatView","hideFastAccess","salonTableSize","OrderSizeModel","PaymentEnum","PaymentMethodEnum","UntilDateClear","ShowPospayment","TransactionNumber","CustomerCode","IsRemain","DebitTotal","NonBalance","SaleMethodBranchItemEnum","SmartClubModel","codeOrMobile","posUserId","orderType","retry","usedCredit","usedDiscountPercent","factorId","usedProductDiscounts","UsedProductDiscountModel","ClubViewModel","AvailableCredit","CreditPrice","OperatorPhone","UseCreditPrice","ClubTotalDiscount","BranchCloudConsumerId","DiscountPercent","MaxUsablePriceFromDiscountPercent","MinFactorPriceToActiveDiscountPercent","Phone","ProductDiscounts","Wallet","ProductDiscount","UsedProductDiscount","DepositComponent","ItemComponent","FastAccessComponent","OrderHeaderComponent","CustomerFastAccessComponent","SalonFastAccessComponent","DescriptionComponent","PagerFastAccessComponent","DriverAssignmentFastAccessComponent","WaiterFastAccessComponent","InvoiceChangeFastAccess","TotalPriceComponent","PaymentComponent","SalonOrderComponent","OrderFooterComponent","OrderInvoiceComponent","ClubFastAccessComponent","OrderonlineComponent","CausecancelComponent","SuccessOrderComponent","CallSupportComponent","ClubConfirmationComponent","PaymentLinkFastAccessComponent","CustomerPrintTemplateFormComponent","DelinoOfflineFactorcomponent","PreparationDeliveryTimeFormComponent","DepositMenuComponent","DepositSelectShowHideComponent","ReserveOnlineComponent","ReserveOnlineSettingComponent","ReserveOnlineSettingMenuComponent","ScrollingModule","PosScaleService","DepositFormSettingModel","posScaleService","formGroupControl","checkPermissions","showChangeFactor","salePricePermission","setApplySnapValue","InPerson","setValueQuantity","oldSaleMethodBranchId","controlsVisibility","HasClearType","HasDeliveryType","HasNumberOfCooks","HasNumberOfPeople","HasDepositAmount","HasServicesAmount","itemCategoryList","Clear","InvoiceQty","Increase","Decrease","findchild","withSetActivePage","customerFormIsShowBefore","actionState","itemHasParent","oldinvoice","selectedOrderItem","itemChanged","defaultCustomerId","DefultCustomer","waiterMobile","waiterId","getItemCategory","changeSaleMethodBranch","currentsaleMethodList","isPackingDisable","isDebitDisable","findDefault","SalePriceTypes","salePriceType","findDefaultItemCategory","ItemCategories","selectedItemCategory","validHappyHour","validFreeService","happyHourDiscountValidation","SalePriceChange","getMaxInvoiceCode","HappyHour","Service","HasHappyHour","nowWeekDay","nowTime","startTime","HappyHourStart","endTime","HappyHourEnd","HappyHourFromDate","HappyHourToDate","containWeek","unselectedWeek","validFreeShipping","FreeService","callGetItemCategory","isFirstGet","lastInformationIsLoading","lastInvoiceInformation","DelinoInvoiceCount","hasDependents","IncludeItemDependency","IncludeFreeItemDependency","salepricetypeid","ic","setDefultPrice","additive","find_price","MainPrice","itemchild","DetaultPrice","find_Additive_PriceType","find_invoice_item","fi","InvoiceDependentList","fr","DependentItem","ItemDependencyTypeCode","bundle","fs","findParentIncludeDependent","find_add","findAdditivePriceType","isNewCalculate","clearDiscount","shouldCalculate","roundingTemp","PackingPriceTax","UnitAdditiveServicePrice","UnitItemtaxPrice","UnitItemServicetaxPrice","UnitAdditiveServicetollPrice","UnitAdditivetaxPrice","UnitItemRowDiscountPrice","UnitItemServicePrice","ApplyPackingPrice","HasAuditorInSalesAmounts","parseFloat","toFixed","UnitAdditiveApplyTaxPrice","ItemTotal","addi","UnitRowDiscount","sumRowPackingPrice","ModifysumRowPackingPrice","isPackingAutoCalc","applyOrganizationDiscount","None","calculateDiscount","AdditiveServiceUnitDiscount","RowAfterDiscountValue","additivediscountPrice","itemToll","UnitItemServicetollPrice","addToll","hasChangePrice","servicetax","servicetoll","sumUnitDiscount","curr","sumUnitTax","sumUnitToll","FinalDiscount","FinalTax","PayableTotalLess","DiffDiscount","payableTotalLess","PayableTotalLessDiscount","dis","ApplyTaxForPackingPrice","pTax","calculateMoreOneTime","clubcount","ClubCalculate","minutesToDelivery","maxTimeCookingmodel","ClubDiscount","getClubDiscountPrice","isDisableusedCredit","discount","discountPrice","sum","depositServiceRemain","depositServiceRemainSummary","depositValidation","depositControls","errMessage","focusOnServicesAmount","closeSidebar","filterItembyBranchId","favItem","favoriteItems","sortingArrayByFav","getCategoryPopUpState","DayOfWeek","findChild","callSelfMethod","hasAnyBundle","bundleStates","bundleItems","flatArray","anyItemsUnAvailable","anyItemsAvailable","Multi","AllNonAvailable","w","ActivePage","currentActivePage","customerHasOpenInvoice","TableIsRequired","Salon","shouldActivateReserveOnlinePage","ReserveOnline","HasKeyboardOrder","addressId","CustomerCategories","cd_Description","cd_DescCustomer","cd_DescKitchen","cd_FastAccess","cd_Invoice","cd_Salons","cd_Total","cd_Header","cd_FastAccessClub","cd_FastAccessCustomer","cd_FastAccessDriverAssignment","cd_FastAccessInvoiceChange","cd_FastAccessPager","cd_FastAccessSalon","cd_FastAccessWaiter","cd_Footer","cd_Deposit","Action","setDefaultPriceType","changeListBySalemethodBranch","changeControlsDependentOnSaleMethodBranchId","setDailyInventoryList","dailyInventoryList","checkActivationOfInvoiceItem","clearAllAdditivesAndDescriptions","setShippingCost","getSaleMethodType","salePriceTypesAll","hasDefult","itemCategoryListIgnore","isNewCustomer","newCustomerCondition","HasPaymentLinkForNewCustomer","hasAutomaticChecked","FailurePaymentLink","AutomaticLinks","isNotFastFood","checkOtherCustomerPrintAccess","printTemplateId","otherCustomerPrintAccess","ApplySnap","HasSnap","AutoApplySnap","FilterSaleMethodBranch","en","isfirstGet","canSeeFavorites","getFavoriteItems","ItemcategoryList","fillDataAfterGetFirstData","OnlineFactor","hasForbiddenItems","find_item","find_itemchild","applyHappyHourDiscount","applyFreeShippingDiscount","applyFreeServiceDiscount","applyCustomerDiscount","totalDiscountAmount","totalNumber","priceAfterDisount","customerDiscountAmount","remainedDiscountOfCustomer","RemainedOrganizationDiscount","remainedDays","RemainingDays","organizationItems","allOrganizationItemCount","categoryDiscount","invoiceTotalPrice","totalPrice","formControlName","nonOrganizationItems","DiscountOrganization","totalDiscountPrice","discountPercent","customerDiscountPrice","applyPercentDiscount","applyFixedDiscount","setToDefaultPriceOrganization","setFavorite","fav","setIndexOnItems","getItemInBundles","deleteFav","indexInArray","itemInBundle","deleteFromAllCategory","sortByFavs","defaultSort","favorites","nonFavorites","orderItem","bundles","indexAll","searchItemId","getBundles","SuccessModel","jalaliMoment","tabService","dateTimeFactorFilter","InsertInFactorList","PrintToKitchen","CancelByCustomer","getAndAcceptDelinoFactor","jalaliNow","applyDateFilter","factorList","OrderItems","currentRowCanNotInsertAgain","ClientFactorStateID","updateCookingDeliveryDuration","CookingDuration","DeliveryDuration","orderItemsColumns","showSuccessOrder","AutoFactor","getCurrentRowPhone","handleSaveInvoice","showCreateCustomerComponent","showSupport","ShowCauseCancel","setInvoiceHeader","setInvoiceItems","getLinkAddress","AddressLink","filterCustom","cancel1","cancel2","CancelForNoFoodRemain","cancel3","CanceledForAddress","Tel","factor","webKind","WebKinds","RegisteredInDelino","Vendo","Totaldiscount","IsPickUp","IsPickupOrder","WebKindId","setClubOfDelinoFactor","setReceiptPayment","setSalePriceTypeId","setFiscalYearId","smartUsedCreditRequestId","creditUsedRial","creditUsedPersent","creditPersent","UsedCreditResponseId","chl","defaultReceiptPaymentTypeId","stringPayment","PaymentType","cashPayment","paymentMethodTypeLookup","rc","findDefaultSalePrice","customerModel","Lat","Lng","checkCustomerAddress","showSuccessOrderComponentAndSaveInvoice","getCookingAndSendTimeFromItemAndSaveInvoice","isPickup","SendingTime","cookingTime","tollPercentage","packingPrice","onCookingTimeChange","successModel","controllers","onPaymentLinkChanges","onFactorLinkChanges","radioList","ItemOrderService","itemService","LongMobile","club","SendCodeToCustomer","mobileNumber","GetCustomerInquiry","reset","clubModel","CustomerInquiryResponseStatus","CalculatePayableTotla","Save","Cancel","Reset","Replace","ProductId","findOrderItem","setSelectedItem","QuantityRemain","Percentage","findInvoiceIndex","usedProductDiscount","UsedCount","payable","showCustomerForm","hasClubCustomer","nameIsNotNecessary","HasNecessaryName","UseCredit","minimumPriceWithComma","CreditPriceChange","ChangeInput","SetInputNumber","clubAction","SupportNumber","DeleteInputNumber","BackInputNumber","EndString","NeedSmartSupport","GetCustomerByFilter","ClubCodeChange","UseMobileInValidation","GetCustomersPagination","getRingingMissCallList","getToDayCallList","_isCreateFormGroup","numberOfCustomer","customers","toDayCallList","_ToDayCallList","ringingMissCallList","_RingingMissCallList","FilterName","inputName","inputNumber","inputPhone","inputAddress","customerFilter","SetInvoiceCustomerName","StayOnFastAccessPage","StayOnPage","setselectedItem","moreInfo","fillPaymentMethodType","PaymentTypeData","paymentTypeId","SaveDelinoFactor","onDelinoPaymentMethodChanges","shouldCloseSidebar","item_r4","FastAccessService","fastaccessservcie","hasClub","hasLinkPayment","_toggleOpened","fastAccessName","selectedFastAccess","clickEvent","GetProtelInfo","roomNumber","protel","FullName","reservationNumber","ReservationNumber","rmNumber","RoomNumber","SalonOrderService","itemOrder","salonService","getSaleMethod","changeSaleMethod","setChangeSaleMethod","setStateOfInvoice","saleMethodBranchChanged","tableFilter","itemDependentQty","getSalon","SaleMethodNatureTitle","currentSaleMethodNatureCode","newSaleMethodNatureCode","currentStatusCode","InvoiceService","invoiceservice","SetInputPager","BackSpaceInputPager","inputPagerValue","newInputPagerValue","ClearInputPager","SetInvoicePager","SetInvoicePagerDestCustomerKitchen","item_r6","ctx_r14","salonorder","getWaiters","waiters","SetInvoiceWaiter","personnel","showFastAccess","setDestinationPage","timer","ctx_r7","ctx_r19","printService","timerSubscription","PrinterQueue","printerQueue","printers","PrintPolicy","Printers","printersList","HasLocalSetting","onInvoicesListClick","onBtnClicked","onOrderClick","onSalonClick","fillOtherCustomerPrintTemplates","otherCustomerPrintTemplates","ctx_r29","ctx_r59","things","destroy$","scrollToItem","scrollParentToChild","parentRect","parentViewableArea","childRect","isViewable","scrollBot","afterChangeBranchFromView","checkDescription","InvDailyBalanceInhibitorValueEnum","clearInvoice","setItemQuantity","changeQuantity","ItemState","hasNoActionOnQuantity","qty","NoAction","goodsStockInfo","goodsFormulaQty","DecreaseAmount","quantity","oldQuantity","notStock","goodsTitle","neededAmount","InvDailyBalanceInhibitorId","Inhibitor","changeSelectItem","Remove","addFreeCustomer","hasAddFastCustomer","selectedItem","findItemHasChild","IsSelected","changeNumberOfGuests","OnChangedDescription","openFastAccess","DeleteWaiter","DeleteCustomer","invoiceItem","addRowDiscount","isDigitalMenu","clearDescription","findItemSelected","RowDiscountChange","ShowRowDiscount","closeHeader","showHeader","clearRowDiscount","ctx_r10","saveEndSubscription","defaultPayment","PaymentMethods","hasDebitTransfer","receiptPayments","getReceiptPaymentTypeLookUp","paymentMethodCode","hasForbidden","posPaymentMethodIds","shouldUpdateInvoice","beforeSaveData","depositAmount","rp","isDeposit","rpType","findTitle","BeforeSaveCheck","isFinished","localSettings","selectRow","localSetting","rowState","deactivateClose","commandCode","PosPayment","isClearWithoutPrint","ClearWithoutPrint","tabletPosPayment","openFromPaymentForm","hasAutorecord","existReceiptLst","ModifiedUserId","savePaymentClicked","isStartAction","ActionFinish","hasChange","findPayment","posOrTabletPos","posOrTabletPosReciptPayment","receiptPayment","paymentMethod","remain","hasCreditTransfer","hasTipTransfer","tip","transfer","IsSuccess","findPaymentCode","changeInputValue","nonBalanceValidation","nonBalanceChangedManualy","PreprationDeliveryTime","ctx_r21","ctx_r25","ctx_r37","setShowChangeClearingButton","checkContentWidth","divElement","clearButton","contentWidth","divWidth","isContentFitting","changeClearing","openMixClearingDialog","onApplySnapChanges","invoiceIsCleared","isFastFood","isRestaurant","isSalonOrFastFood","showChangeClearing","DeliveryCustomerPrintTime","hasPermissionDiscount","HasTemporaryRegistration","showPrintButton","showDiscount","applyDiscount","readOnlyRent","hasDefultPayment","DefultPaymentId","isPosPayment","isTabletPosPayment","onDiscountfocus","applyPackingPrice","clearPackingPrice","inputChange","isPercent","changed","changeDiscountType","discountValue","RialDiscount","oldDiscountPercent","clearDiscountFlag","applyShippingCost","clearShippingCost","applyDebit","clearAndPrintTabletPos","tabletPos","tabletPosPrint","BrandName","debitTransfer","stockDialogIsOpened","notStockList","getNotStockList","PreprationTimeRequired","preparationDeliveryTime","invoicesAction","invoiceCommand","TemporaryRegister","CustomerTabletPrint","Print","CustomerFinancialPrint","CustomerA5Print","CustomerFinancialA5Print","getValueFromObservable","MobileLookupId","PhoneTypeLookup","HasNecessaryMobile","setDeliveryTime","hasTemporary","DeliveryTypeDataList","ClearTypeDataList","enumToArray","afterSavedList","otherRows","setChangesOnInvoice","afterDeletedList","onDeliveryTypeChanges","cooking","numberOfCooksIsRequired","itemservice","justInBasket","initializeInvColumns","dailyInventory","OrderDescriptionBox","_rotate","addAdditive","AdditiveTitle","find_PriceType","findInvoiceItem","find_description_Index","mainstring","refreshItemDescription","addDescription","orderDescription","DescriptionTitle","invoiceitem","addCustomDescription","CustomDescriptionId","showBox","desc","removeItemDescription","ClearCustomDescription","ShowDescription","onShowMinimumJustInBasketChanges","showMinimumJustInBasket","stockItems","dailyInventoryShow","enum","isCategory","hasPermissionChangeStockInWeb","showStockInWeb","hasStockInWebIndeposit","showStockInWebDeposit","ctx_r22","ctx_r27","Resize","orderSize","saleBranchId","OrderSize","changeCategoryView","changeItemView","depositShowHide","ClearItemNameInput","checkfavorite","updateArray","tempArr","backOfBundle","itemCategoryAll","changeItemCategory","UnitKind","NormalItem","hasPosScale","isConnected","getWeight","PosScaleItem","goodsStockInfos","currentItem","addInvoiceItem","shouldContinue","dependentQty","hasValidSaleMethodBranch","find_Item","hasItemChild","addDependentItem","Related","isFreeDependent","find_Dependent_Item","dependentCondition","find_Club_Item","addItemToInvoiceItems","setValueQuantityAndScrollToItem","find_item_index","isNotFreeDependent","find_free_Item","findPrice","oldSelectedItemCategory","findItemByName","START_INDEX","END_INDEX","fixValue","barcodeWithoutFlag","findOrderItemByCode","findChildItemCategory","findOrderItemByBarCodes","barcodeFinder","allBarCodesFormat","barCodeReaderFormat","barCode","FixValue","BarCodeLength","productCode","CodeStart","CodeLength","digitCode","DigitStart","DigitLength","decimalCode","DecimalStart","DecimalLength","WithoutDECIMAL","WithDECIMAL","tempItemsCategory","setQuantity","changeInvoiceQuantity","findInvocieItem","isDescription","totalService","saleMethodBranchId","GetCachState","getWarehouseStock","checkHasPosScale","getCurrentBranchId","GetAllDataAfterSaleMethod","GetFirstData","getDelinoWebId","getBarcodeReaderFormat","WaiterIsRequired","getLookUp","getBranch","getDefultCustomer","Ip","Port","Url","connect","connection","fidUserGarson","invoiceStatusLookups","invoiceChangesLookups","invoiceCommandLookups","invoicePayableChangeLookups","receiptPaymentTypeLookup","PaymentMethodLookUp","setCallCenterLookup","CallCenterLookUp","ChangeShowWaiterFastAccess","Waiter","selectedWaiterFastAccess","ChangeShowCustomerFastAccess","selectedCustomerFastAccess","screen","activePageEnum","currentInvoicesFilter","ordersize","OrderPage","GetDefalultCustomer","refreshInvoicesGrid","invoicesElement","headerClickHandler","salon","selectedSalons","getTablesRead","_salons","lkp","updateInvoiceOnWareHouseChanges","activePage","notAvailableGoods","nearToNotAvailableGoods","canShowMessage","hasCallCenterLicence","NonValidation","SetInvoice","deposit","setDepositChanges","originalDate","newHours","newMinutes","setMinutes","paymentModalIsOpened","beforeUpdate","saveOrCheckRemain","UpdateInvoice","InsertInvoice","checkRemainCredit","BeforUpdateInvoice","NumberOfGuestsIsRequired","PrintForOnlineOrderForNewCustomer","inputDate","todaysDate","statusCode","SetInvoiceDefaults","SetInvoiceChanges","SetInvoiceStatuses","Update","Insert","addCashReceiptPayment","DefaultPaymentId","ReceiptPaymentTypeCode","find_Receipt","result_Receipt","accumulator","find_Payment","result_Payment","hasDefaultPayment","defaultPaymentToSaving","originalValue","invoiceChange","LookupId","PreventChangeClear","Club","LookupCode","Table","hasDeletedComment","hasNewEmptyComment","ReceiptPayment","originItem","ItemQuantityNegative","ItemAdditivePositive","ItemAdditiveNegative","ItemQuantityPositive","addDepositChange","addedItems","item1","deletedItems","editedItems","correspondingItem1","personnelChanged","amountChanged","addDepositPersonnelChange","depositChange","addToChanges","ChangedFieldCode","invoiceMode","OldStatusCode","Command","invoicePositivePayable","Positive","invoiceNegativePayable","Negative","isCustomerPrint","PrintData","printList","checkPosPayment","posPaymentInvoice","createdUserPhoneNUmber","DefultPayment","isSamanPos","isSuccess","tabletPosClearing","ER","hasError","reviewEntity","FoodTruck","OldTableId","invoicePrintLocal","saleMethodTitle","printDescription","posRes","userUpdateConfirm","userInsertConfirm","re","invoiceId","PersonnelRolesCodeEnum","checkForHasLocalPrint","printPolicyData","printTemplateData","PrintTemplate","hasSelfPrint","withPrint","printDocuments","currentUserPhoneNumber","allowPrint","invoiceModel","PrintLocal","FilterList","hasReturn","oldStatusCode","printTimeCode","personals","customerTotalDebit","uniqueIds","Invoiceoutput","descResult","printPolicies","smb","NonDefaultPrinting","PrintTemplateId","printPoliciesLocal","InvoiceItemoutput","Catogorys","IsBarCodeInvoice","ItemCountDisplay","toLocaleTimeString","CreateDate","ItemCount","EconomicalNumber","EconomicCode","itemIds","PostalCode","PayableAmountToPersian","cookDisplayNames","courierDisplayNames","cooksServicesAmountVariable","courierServicesAmountVariable","cooksPersonnel","PersonnelRole","Cooks","driverPersonnel","Driver","cook","CooksServicesAmount","courier","CourierServicesAmount","servingFoodDateWeekDay","RemainingAmountToPersian","NationalCode","NationalId","RegistrationNumber","IsOrderPrint","ItemCategoryId","dp","DependentPrintPolicy","printer","printed","final","HasPrintDescription","checkConnection","tare","weight","WebSocketSubject","CONNECTION_URL","TabletPosPaymentModel","CompanyName","RequestType","AM","paymentType","ID","GovID","SC","TabletPosInfoModel","TabletPosPaperModel","TabletPosReceiptBitMapModel","TabletPosResponseModel","TabletPosInvoiceModel","sumQty","sumPrice","discountAmount","serviceAmount","taxAmount","roundedAmount","tableName","customerName","waiterName","guestQty","creationTime","invoiceDetail","creditPrice","farsiDate","TabletPosInvoiceDetailsModel","sumUnitPrice","unitPrice","toz","translateService","socket$","responseSubject","sendMessageAndWaitForResponse","CP","payment","RS","GI","brandName","mapInvoice","lastIndexOf","restaurantName","ctx_r17","ctx_r24","salonOrder","_changeTable","updateActivityPageStatus","refreshTables","changeTableSize","TableStatus","_tables","_tableReads","_tempTableReads","salons","Illegal","tableRead","RelativeInvoiceTime","MaximumTimeForStay","TimeOver","tableFilterByStatus","SelectTable","Locked","paymentLinkValidation","ChangeInvoiceTable","LoadInvoice","ClearingInvoice","InvoiceStatusCode","isFinish","CustomerPrintInvoice","trackByFn","CustomerCategoryFormComponent","CustomerCategoryListComponent","MapComponent","splash","addCustomerFormGroup","hasCreditCustomar","cacheState","zonesLookup","showDefaultBranch","showZone","GetZone","branchLookUp","PersonalityKindLookup","GenderLookup","NumberTypeLookup","customerCategories","zones","defaultBranchIsInit","accountingKind","isAcc","inventoryKind","numberRow","reloadCustomer","PartyId","DeactiveHasCreate","setAddressesInfo","defaultZone","setValuesForOrderOnline","PersonalityKindTitle","PersonalityKindCode","GenderTitle","CreditControlTypeId","CreditControlTypeTitle","personalityKindEnum","Legalperson","hasLegalCustomer","DefaultBranchTitle","showAddressGrid","oldGridShippingCost","PartyAccountChange","MobileNumber","numberTypeId","haveNumbersItem","zoneId","haveAddressesItem","haveIsDefaultAddress","ctrlName","hasCredit","checkByPersonalityKindValidation","messageStr","isFindCustomer","HaspreFix","disableNumber","MaxCode","DefaultBranches","nationalCodePattern","nationalIdPattern","RegistrationDate","CreatedUserTitle","ModifiedUserTitle","shippingCost","numberTypeCode","controlsIsAdded","completeAddressGridValue","completePhoneNumberGridValue","afterSaveAddressRow","gridShippingCostHasChanged","onShippingCostChanges","IsDefaultRow","gridFormGroup","currentAddress","selectedZone","branchInfo","ZoneIdChange","headerEvent","gridEvent","selectedZoneId","DefaultId","onPhoneNumberChanges","getByPhoneNumber","CreditCourierChange","PersonalityKindChange","onAddressFormGroupValueChanges","onPhoneListFormGroupValueChanges","telephoneListGridEl","showMapDialog","dA","formattedAddress","lng","lat","onAddressGridRowSelected","currentAddressGridRow","editLocation","relatedAddress","onWrapperEnter","zoneBranchInfo","defaultNumber","isNationalIdRequired","isNationalCodeRequired","hasPostalCode","hasEconomicCode","hasRegistrationNumber","hasRegistrationDate","NationalLabel","creditCustmer","CustomerListComponent","FilterDriversByCodeComponent","tbService","applyFilter","startCode","endCode","sortedData","filteredEmployees","employee","employeeNumber","lastReportId","FileInfo","server","MapApiKey","defaultLat","defaultLng","myMap","L","maptype","poi","traffic","center","zoom","confirmButton","marker","draggable","autoPan","addTo","legend","attribution","onAdd","div","DomUtil","labels","onMarkerDragEnd","latLng","latlng","setLatLng","markerLatLng","getLatLng","reverseGeocoding","ApiKey","formatted_address","popupContent","popup","setContent","bindPopup","openPopup","geocoding","flyTo","onAddressKeyPress","openModalButton","openModal","CustomerGridViewModel","CustomerDetailInfoViewModel","CustomerOccasion","MaxCodeViewModel","ZoneLookup","PersonnelBranch","PersonnelDocuments","PersonnelRoles","FilterDriversByCode","ZonePriceAnnouncement","ZonePriceAnnouncementForm","ZoneFormComponent","ZoneListComponent","PersonnelFormComponent","PersonnelListComponent","ZonePriceAnnouncementFormComponent","ZonePriceAnnouncementListComponent","documents","UserList","Documents","RolesId","DocumentsId","rolesIsLodes","documentsIsLodes","isSelectedDriverRoles","isSelectedWaiterRoles","BailTypeId","CopyList","selectedCashier","checkByBailTypeId","ChangeRoles","isFoundDriverRoles","isFoundCashier","setpatternKey","setPattern","doc","role","activeAllDriverForBranch","isActiveCount","license","CreditControlTypeChange","ChangeBailPrice","BailPriceTypeCode","disabledBailPrice","RateIncrease","RoundingTypeAnnouncement","zonePriceAnnouncementForm","Zones","populateZone","branchIdValue","ZoneList","filterZones","addZonesToList","zoneList","selectedBranchIds","increaseRate","roundingAmount","selectedBranchId","zonePriceAnnouncementFormCopy","ZoneBranch","ZoneBranchId","ZoneTitle","OldAmountDriver","newAmountDriver","calculateNewAmount","NewAmountDriver","Paths","IsFreeDelivery","shippingCostController","accept","afterSaveRow","onPermissionDelete","ConnectOnlineMenuComponent","valueChangeBranch","testConnection","showBtn","isRegister","ShowInfo","ResInfo","GetInfo","Urls","Register","SendItemCategoryInfo","showItem","SendItemInfo","copyInputMessage","execCommand","setSelectionRange","PortalService","ItemCategoriesSelectComponent","ItemCategoriesImageComponent","ps","openSelector","imageIndex","itemCategoryId","itemCategoryImages","ItemImageUploaderComponent","imagePaths","slideImages","itemImages","onMainImageChange","maxSize","maxWidth","imgHeight","imgWidth","mainImageElement","onSlideImageChange","checkImageSize","filedName","addSlide","removeSlide","fieldName","indexInSlideImages","formDataImages","getAll","ItemImageComponent","openUploader","MenuSettingComponent","getMenuSetting","setValues","uploadLogo","logoFormData","saveMenuSetting","ShowAllCategories","Instagram","Telegram","Twitter","Facebook","WhatsApp","Website","RahkaranFormComponent","RahkaranListComponent","RahkaranSettingComponent","conf","baseURL","getItemCategories","getItemImages","getItemCategoriesImages","CashId","AccountingOperationId","CashFlowFactorId","GetProductInfo","PrintPolicyPrinter","PrintTemplateType","PrintPolicyItem","PrintPolicyItemCategory","PrintPolicyIgnoredItem","PrintPolicySaleMethodBranch","PrintPolicySalon","PrintPolicyDependency","PrintTemplateModel","PrintPolicyValidationInfo","PrintPolicyFormComponent","islightVersion","PrinterPolicyList","islightVersionLimitation","FillFirstData","PrintTimeId","printTime","PrintTimeTitle","PrinterList","ReadPrintPolicies","DependentPrintPolicyId","onPrintTimeIdChanges","showLocalSetting","PrintPolicyStencil","printPolicyPrinter","printPolicySaleMehod","printPolicySalon","printPolicyDependency","PrintPolicyDependencies","Connectionbtn","findCode","clearDisableFields","PrintPolicyListComponent","SaleReportDesinerComponent","PrintTemplateTypeName","PrintTemplateTypeTitle","createReport","printReport","List","previewReport","CostsSpentReviewComponent","CostsCategoryIds","CostsIds","ReportKey","GetCostsSpentListColumns","GetTotalCostsListByDateColumns","GetCostsCategoryListColumns","GetCostsListColumns","CustomerReviewComponent","SecurityReviewInfoColumns","SaleMethodIds","InvoiceCommandIds","InvoiceStatusIds","InvoiceChangesIds","InvoicePayableChangeIds","GetCustomerCategorySummaryListColumns","GetCustomerSummaryListColumns","GetCustomercategoryColumns","GetInvoiceSummaryListColumns","GetInvoiceItemSummaryListColumns","GetItemSummaryColumns","GetInvoiceReceiptPaymentSummaryListColumns","GetCustomerReceiptPaymentSummaryListColumns","IncludeCancelled","accountstatus","ContactUsModalComponent","Weekly","Yearly","load","timeInterval","hasBranch","branchComparisonSalePermission","BranchAmountSaleComparisonSummary","BranchQuantitySaleComparisonSummary","logoFilePath","Info","LogoFilePath","openContactUsModal","ReviewHelper","OrderReviewComponent","isDepositReview","unSortableFilterableScheduleList","ItemCategoryIds","WaiterListIds","UserListIds","DriverIds","SalePriceTypeIds","SalonIds","Months","GetSaleMethodSummaryColumns","GetMmonthSummaryColumns","GetDaySummaryColumns","GetHourSummaryColumns","GetUserSummaryColumns","GetDriverSummaryColumns","GetWaiterSummaryColumns","GetItemCategorySummaryColumns","GetInvoiceSummaryColumns","GetInvoiceScheduleListColumns","GetInvoiceItemSummaryColumns","GetUserSettlementSummaryColumns","GetDriverSettlementSummaryColumns","GetPaymentMethodSaleSummaryColumns","GetReceiptPaymentSummaryColumns","GetItemAdditiveSummaryColumns","GetItemDescriptionSummaryColumns","ReceiptPaymentColumns","UserSettlementReceipt","DriverSettlementReceipt","SMSType","PaymentState","Cook","filterChangeSubject","changedKeys","GetSaleChartData","GetMonthChart","ItemSalesSummaryList","GetBranchSaleComparisonColumns","depositSalesSummaryColumns","invoiceItemSummaryColumns","personnelServicesSummaryColumns","depositSummaryColumns","GetBranchSaleComparisonChartData","onDriverRowSelected","FillFilters","chartData","basefilters","buildQuery","applyDepositDateFilter","filterByDepositCreatedDate","removeFilter","SalesReviewComponent","GetSaleQuantitySummaryColumns","GetItemsNumberSummaryColumns","kpiBundles","GetUserSalesChart","ItemCategorySalesSummaryList","hasUserSalesSummaryList","hasBranchSaleComparisonSummaryList","hasViewReportAllDays","BranchSaleComparisonSummary","showAllDays","onSaleQuantityRowSelected","customDataList","hasUserSalesSummary","SecurityReviewService","DetailSecurityReviewComponent","securityService","CompareList","AllInvoice","history","checkChange","changeCompare","findItemIndex","TotalTaxup","TotalTaxDown","TotalServiceup","TotalServiceDown","TotalDiscountup","TotalDiscountDown","ShippingCostup","ShippingCostDown","PackingPriceup","PackingPriceDown","PayableTotalup","PayableTotalDown","Totalup","TotalDown","Debitup","DebitDown","Creditup","CreditDown","DescriptionChange","deletedItem","DeleteList","tempItem","QuantityUp","QuantityDown","RowDiscountPriceUP","RowDiscountPriceDown","TotalPriceUp","TotalPriceDown","IsDelino","SecurityReviewComponent","InvoiceHistoryColumnInfo","selectedInvoiceId","hasWebId","goToCompareList","showGrid","onDetailRowSelected","hasBirthdayDate","hasMarriageDate","IsCustomreFastAccess","IsDriverAssignmentFastAccess","IsChangeTheSalesMethod","IsPagerFastAccess","IsClubFastAccess","IsSalonFastAccess","IsWaiterFastAccess","ShowSalonName","ShowCustomerInfo","ShowNumberOfGuests","ShowWaiterName","PrintForOnlineOrder","SaleMethodBranchItemCategory","SaleMethodBranchPaymentMethod","SaleMethodBranchSalePriceType","SaleMethodBranchSalon","SaleMethodBranchCustomerCategory","SaleMethodBranchPrintTemplate","SaleMethodBranchUser","ctx_r45","ctx_r47","SaleMethodBranchForm","authservice","getRelative","controlActiveDelino","getAccessDelino","firstcol","decimalsLength","Branchescolumns","secondcol","hasInv","OriginalApplyTax","depositVisibilityIsCalled","SaleMethodList","isStartGetData","IsActivePreparationTime","PreprationTimeIsActive","oldmodel","ItemCategoryIdList","PaymentMethodIdList","PrintTemplates","PrintTemplateIdList","SalePriceTypeIdList","SalonLookup","CustomerCategoriesLookup","oldSaleMethodNatureId","SaleMethodNatureId","ItemCategoriesDefaultId","PaymentMethodDefaultId","SalePriceTypeDefaultId","HasDelinoOfflineFactor","PaymentId","InvWareHouseId","InvDepositVoucherKindId","InvDepositWareHouseId","HasAccessOrderOnline","ReservedKind","waiterIsRequiredvalueChange","TableIsRequiredvalueChange","NumberOfGuestsIsRequiredvalueChange","delinoIsRequiredvalueChange","clearHappyHourForm","HappyHourValueChange","HappyHourStratValueChange","HappyHourEndValueChange","FillItemCategory","ItemCategoriesDefaultList","onHasFactorChanges","onInPersonChanges","onApplySnap","onAutomaticLinksChanges","onHasPaymentLinkForNewCustomerChanges","FillPaymentMethod","PaymentMethodLookup","PaymentMethodDefaultList","FillPrintTemplate","PrintTemplateLookup","PrintTemplateDefaultList","FillSalePriceType","SalePriceTypeDefaultList","SalonLookupList","DetailLedgerLookupList","clearForm","onMasterChanged","detailId","onAddItem","onRemoveItem","PreprationTimeIsActiveValueChange","_saleMethodNature","AllBranches","TaxApplyIsChanged","delinoActiveControl","getPaymentMethodData","controlDelino","controlIdDelino","HasOrderOnline","isAccessToAllBranches","branchShow","PaymentMethodData","SaleMethodFormComponent","checkAccessToChangeSaleMethodNature","SaleMethodListComponent","InvoiceTotal","RelativeInvoiceTimeString","SalonFormComponent","Tables","ngCreateTables","newTableName","table","tables","tableTitleArray","isDuplicateTitle","tableCodeArray","isDuplicateCode","SalonListComponent","BarCodeReaderFormatFormComponent","IsWeight","BarCodeReaderFormatListComponent","BranchDataTransferInfoComponent","OrignalOppositeBranchId","OppositeBranchId","OppositeBranchTitle","isOkforLoad","OppositeBranchUrl","testConection","Currency","TypeOfDocument","InvDailyBalanceInhibitorEnum","BranchFormComponent","commonservice","isAccounting","InvDailyBalanceInhibitorEnumDataList","InvWarehouseDataList","getSaleMethodBranchOnlineOrder","TimeForChange","roundingType","shippingCostReducedKind","ShippingCostReducedKindTitle","TransferDebtorsTypeId","Separation","TransferDebtorsTypeCode","TransferDebtorsTypeTitle","SendingSalesTypeId","SendingSalesTypeCode","SendingSalesTypeTitle","CurrencyId","currency","CustomerTitles","SendingSalesTitle","ShowTotalCalories","EnableCreateCustomerSms","EnableAssignToDriverSms","ReadyToReceiveOnlineOrders","AutoPrintOnline","CustomerPrintOrderOnile","AutoPrintCash","SmsAdvertisingNumber","SmsServiceNumber","HasAccounting","DebtorsSubLedgerId","hasLocal","hasAccounting","SendingSalesType","TransferDebtorsType","accumulative","onHasOrderOnline","checkAccounting","TransferDebtorsTypeChange","AggregateAndSeparateData","SendingSalesTypeChange","bdti","InterruptTime","IsCentralOffice","TopRecordCount","TransferAccountingCode","StartHour1","EndHour1","StartHour2","EndHour2","StartHour3","EndHour3","isAccessToActivation","CheckHasOrderOnline","hasOrderOnline","isActive","sendingSalesTitleCTRL","showLocal","showFleetService","hasFleetService","onAggregateAndSeparateLoad","BranchListComponent","CityFormComponent","CityListComponent","CompanyFormComponent","CompanyListComponent","DataCenterProcessFormComponent","DataCenterProcessListComponent","FiscalYearFormComponent","FiscalYearListComponent","MissetupComponent","translateservice","SettingresourceComponent","SettingDetailResourceComponent","_route","misSetup","cdr","resouceId","snapshot","formSettingResources","_formSettingResources","formSettingResourcesChange","formSettingPermissions","tempListData","setResouce","resource","isShowBg","getRuleElements","setDisable","checkInventoryData","isCheckboxDisabled","makeruleelement","checkNoChanges","IsCheckBox","controlKind","getTextBoxType","NumericTextBox","TimeTextBox","IsTextBox","TextBox","IsRadio","Radio","IsDropDown","DropDown","IsLookup","IsGrid","Grid","IsNumericTextBox","IsTimeTextBox","IsCheckAndNumericTextBox","CheckAndNumericTextBox","IsBreak","Break","getCheckboxValue","getCheckAndNumericTextBoxCheckValue","getCheckAndNumericTextBoxNumberValue","setCheckAndNumericTextBoxCheckValue","setCheckAndNumericTextBoxNumberValue","checkboxChangeValue","getLookupValue","ControlType","ctx_r2","onResouceClicked","activeSystemName","makeSettingResources","AddressFromComponent","PeopleInfoId","treelookup","reMoveRepeated","AddressKindTitle","ProvinceId","CityTitle","ProvinceTitle","CityId","AddressListComponent","innerModel","uid","setDetailControlModels","PeopleInfoAddresssColumns","PeopleInfoListComponent","PeopleInfoFormComponent","TelephoneListComponent","TelephoneFormComponent","RelatedFormComponent","RelatedListComponent","peopleinfos","IsEmployee","IsBroker","IsCustomer","IsDetailLedger","IsSupplier","ContactKindByTelegram","ContactKindBySMS","ContactKindByEmail","PeopleInfoTelephones","PeopleInfoRelateds","Real","Legal","_Columns","changedValue","CompanyKindTitle","CompanyKindCode","chkeckSum","num3","TelephoneKindCode","TelephoneKindId","stateKind","TelephoneKindTitle","Telephone","ProvinceFormComponent","ProvinceListComponent","ResetPasswordListComponent","RoleFormComponent","pupulateitems","getAccessList","_values","currentArea","AreaName","children1","a2","RoleListComponent","populateData","RowId","UserSystemLogListComponent","UserFormComponent","ApplicationRoleId","SerialNumber","isOk4View","ApplicationUserId","confirmPass","roleChanged","UserListComponent","FilterNameComponent","reviewFilter","ReviewReportModel","ReviewDataCardComponent","KpiReviewComponent","fetchService","retrieved","KpiWidgetComponent","reloading","buildParams","background","RemoteSelectReviewComponent","relatedFilter","setDefaultFilterValue","filtersValue","prepareFilterForLoading","filterForLoad","filterChanging","loaded","loadingSubject","ChartReviewComponent","persian","chartColors","datasetList","keyColumn","aggregateColumns","aggregateColumnTitle","seriesTitle","dataItems","borderWidth","initialize","populateDefaultOption","chartOptions","tooltips","intersect","titleFontFamily","titleFontStyle","titleFontSize","bodyFontFamily","bodyFontSize","scales","xAxes","gridLines","color","zeroLineColor","stacked","ticks","beginAtZero","fontSize","fontFamily","yAxes","ratio","plugins","render","chartLegend","chartType","backgroundColor","borderColor","pointBackgroundColor","pointBorderColor","pointHoverBackgroundColor","pointHoverBorderColor","ChartComponent","BarChartComponent","legendLabels","labelField","valueField","labelPlugin","arc","tooltipEnabled","stackedX","stackedY","countable","labelEnabled","reloadSubscription","loadSubscription","isFirstChange","colors","DoughnutChartComponent","precision","fontColor","LineChartComponent","PieChartComponent","ReviewCardComponent","ctx_r5","DateFilterReviewComponent","createForm","formatDateToYYYYMMDD","padStart","startDateFormatted","endDateFormatted","startDateTime","appendTimeToDate","endDateTime","applyDateTimeFilter","dateTime","hasIncludeTime","REVIEW_DATE_TIME_KEYES","FilterItemReviewComponent","filterStatusChange","isValidDate","clearAll","isValidNumber","kGrid","setInitialFilter","setDefaultFilters","doubleClick","selective","displayNameColumn","valueNameColumn","filterTextPrefix","shouldUpdateFilterSubject","setFilterText","generateNameValue","reloadSubject","defaultFilter","gridDefaultFilters","lastFilter","checkTriggerChangedKeys","checkForceReload","prepareFilterAndLoadItems","triggerKeys","isList","loading$","query","REVIEW_START_DATE_TIME_KEY","REVIEW_END_DATE_TIME_KEY","REVIEW_INCLUDE_TIME_KEY","dateFilters","dateFiltersMap","arrayFilters","arrayFiltersMap","members","generateExportNameValue","ReviewComponent","reviewService","onWindowResize","showFilter","hasSavebutton","isFilterActive","setShowFilter","gridClass","getReviewReport","ShowReportTitle","CustomFilterChange","selectedReviewReport","setReviewReport","onClearReviewReport","deleteReviewReport","StaticSelectReviewComponent","issuer","isDataFilter","startValue","endValue","oldFilter","includeTimeItem","ReviewReportList","trackByValue","hasItemValue","hcs","persianDatePipe","persianNumberPipe","newReport","thousandSeparatorPipe","jDate","MonthsName","character","dayBase","T","RC","HH","report","regData","getDataSourceName","reportFile","jsonStr","saveToJsonString","fnGetRepoPath","MiladiToShamsi","MiladiToShamsi8","MiladiToShamsiDayOfMonth","MiladiToShamsiMonth","MiladiToShamsiYear","SetTimeToText","FarsiMonthName","ReapeatChar","PersianNumberThousandSeparator","loadDesigner","designer","viewer","SetCaptions","preFix","dictionary","relations","alias","nameInSource","reportAlias","dataStore","dataSources","dataTable","childRelations","relationName","entityName","setVariable","variables","getByName","newVariable","Stimulsoft","Report","Dictionary","StiVariable","valueObject","CompanyTitle","setFunction","setReportDesigner","StiReport","loadFile","databases","synchronize","renderHtml","Viewer","StiViewer","printRepot","SaveReport","rep","renderAsync","StiFunctions","addFunction","Designer","StiDesignerOptions","fullScreenMode","toolbar","showFileMenuExit","showLocalization","showAboutButton","printDestination","StiPrintDestination","Default","htmlRenderMode","Export","StiHtmlExportMode","Base","Localization","StiLocalization","localizationPath","addLocalizationFile","StiFontCollection","addOpentypeFontFile","StiDesigner","onSaveReport","onCreateReport","CreateReport","production","endpoint","enableProdMode","__NgCli_bootstrap_1","bootstrapModule"],"sourceRoot":"webpack:///","x_google_ignoreList":[1460]}