<?php

//region urusan tanggal-menanggal
date_default_timezone_set('asia/jakarta');
$date = new DateTime(date("Y-m-d")); // Y-m-d
$date->add(new DateInterval('P30D'));
//endregion

$config["coTransaksiCore"] = array(
    "582" => array(
        "counters" => array(
            "stepCode|tokoID",
            "stepCode|tokoID|placeID",
            "stepCode|tokoID|olehID",
            "stepCode|tokoID|placeID|olehID",
            "stepCode|tokoID|customerID",
            "stepCode|tokoID|placeID|customerID",
        ),
        "formatNota" => "stepCode|tokoID",
        "valueGates" => array(//==sumber nilai yang dikirim kemana2
            "master" => array(//==sumber nilai utama
                "customerID" => "pihakID",
                "customerName" => "pihakName",
                //                "sellerID" => "olehID",
                //                "sellerName" => "olehName",
            ),
            "detail" => array(//===sumber nilai berupa rincian

                // "harga"=>"jual_nppn",
//                "harga_nett1" => "harga",
//                "harga_net" => "((harga_nett1*qty_unit)-disc)",
//                "harga_disc" => "harga-disc",
//                "ppn" => "(harga_disc*(ppnFactor/100))",
//                "harga_nppn" => "harga_disc+ppn",
//                "ppn_net" => "ppn*ppnFactor",
//                "harga_nett2" => "(harga_nett1-disc)",

            ),
            "master_dependent" => array(
                "paymentMethod" => array(
                    "credit" => array(
                        "nilai_cash" => "0",
                        "nilai_credit" => "tagihan",
                    ),
                ),
            ),
        ),
        "valueBuilders" => array(
//            "harga_nett3" => "harga_nett2-diskon_tambahan_nilai-creditAmount",
            "grand_total" => "harga_nett2-diskon_tambahan_nilai-creditAmount",
            "tagihan" => "grand_total-diskon_tambahan_nilai-dp-nilai_cia",
            "grand_hutang" => "",
            "kembali" => "bayar-grand_total",
        ),
        "additionalMainBuilders" => array(//==per-item
            "harga_nett3" => "harga_nett2-diskon_tambahan_nilai",
        ),
        "externalValues" => array(
            //            "ongkir" => array(
            //                "mdlName" => "MdlCourier",
            //                "label" => "freight cost",
            //                "startAt" => 1,
            //                "useAt" => 5,
            //                "taxFactor" => 10,
            //                "viewedAtReceipt" => true,
            //            ),
            //            "install" => array(
            //                "label" => "installation",
            //                "startAt" => 1,
            //                "useAt" => 5,
            //                "taxFactor" => 10,
            //                "viewedAtReceipt" => true,
            //            ),
        ),
        "preValidator" => array(
            //            1 => array(
            //                "LockerStock",
            //            ),
        ),
        "preProcessor" => array(

        ),
        "tableIn" => array(
            "master" => array(
                "jenis_master" => "jenisTrMaster",
                "jenis_top" => "jenisTrTop",
                "jenis" => "jenisTr",
                "jenis_label" => "jenisTrName",
                "dtime" => "dtime",
                "fulldate" => "fulldate",
                "oleh_id" => "olehID",
                "oleh_nama" => "olehName",
                "div_id" => "divID",
                "div_nama" => "divName",
                "customers_id" => "pihakID",
                "customers_nama" => "pihakName",

                "cabang_id" => "placeID",
                "cabang_nama" => "placeName",
                "toko_id" => "tokoID",
                "toko_nama" => "tokoName",
                "transaksi_nilai" => "harga_nett2",
                "transaksi_jenis" => "jenisTr",
                "keterangan" => "description",

                "gudang_id" => "gudangID",
                "gudang_nama" => "gudangName",

                "pembayaran_sys" => "paymentMethod",
                "bank_rekening_id" => "paymentMethod_debit_card_cash_account",
                "bank_rekening_nama" => "bank_rekening_nama",

                "seller_id" => "sellerID",
                "seller_nama" => "sellerName",
            ),
            "mainValues" => array(
                "harga" => "harga",
                "jual_nppn" => "jual_nppn",
                "hpp" => "hpp",
                "disc" => "disc",
                "ppn" => "ppn",
                "harga" => "harga",
                "harga_nett" => "harga_nett",
                "diskon_tambahan_nilai" => "diskon_tambahan_nilai",
                "tagihan" => "tagihan",
                "bayar" => "bayar",
            ),
            "detail" => array(
                "dtime" => "dtime",
                "produk_id" => "id",
                "produk_kode" => "code",
                "produk_label" => "label",
                "produk_nama" => "name",
                "produk_ord_jml" => "jml",
                "produk_ord_hrg" => "harga_nett2",
                "satuan" => "satuan",

            ),
            "detailValues" => array(
                "harga" => "harga",
                "jual_nppn" => "jual_nppn",
                "hpp" => "hpp",
                "disc" => "disc",
                "ppn" => "ppn",
                "harga_nett" => "harga_nett",
            ),
        ),
        "tableIn_static" => array(
            "master" => array(
                "trash" => 0,
            ),
            "detail" => array(
                "trash" => 0,
                "produk_jenis" => "produk",
            ),
        ),
        "components" => array(
            "582" => array(
                "master" => array(
                    array(
                        "comName" => "Jurnal",
                        "loop" => array(
                            "kas" => "nilai_cash",
                            "piutang dagang" => "nilai_credit",
                            "hutang ke konsumen" => "-creditAmount",

                            "penjualan" => "harga2",
                            "ppn out" => "ppn",
                            "hpp" => "hpp",
                            "persediaan produk" => "-hpp",
                            "diskon" => "add_disc",
                        ),
                        "static" => array(
                            "cabang_id" => "placeID",
                            "jenis" => "jenisTr",
                            // "transaksi_no" => "nomer",
                        ),
                        "srcGateName" => "main",
                        "srcRawGateName" => "main",
                    ),
                    //<editor-fold desc="com-rekening">
                    array(
                        "comName" => "Rekening",
                        "loop" => array(
                            "kas" => "nilai_cash",
                            "piutang dagang" => "nilai_credit",
                            "hutang ke konsumen" => "-creditAmount",

                            "penjualan" => "harga2",
                            "ppn out" => "ppn",
                            "hpp" => "hpp",
                            "persediaan produk" => "-hpp",
                            "diskon" => "add_disc",
                        ),
                        "static" => array(
                            "cabang_id" => "placeID",
                            "jenis" => "jenisTr",
                            // "transaksi_no" => "nomer",

                        ),
                        "srcGateName" => "main",
                        "srcRawGateName" => "main",
                    ),
                    //</editor-fold>

                    //<editor-fold desc="com-rekening-pembantu">
                    array(
                        "comName" => "RekeningPembantuKas",
                        "loop" => array(
                            "kas" => "nilai_cash",
                        ),
                        "static" => array(
                            "cabang_id" => "placeID",
                            "extern_id" => "cash_account",// diisi id bank
                            "extern_nama" => "cash_account__label",// diisi nama bank
                            "jenis" => "jenisTr",
                            // "transaksi_no" => "nomer",
                        ),
                        "srcGateName" => "main",
                        "srcRawGateName" => "main",
                    ),
                    array(
                        "comName" => "RekeningPembantuCustomer",
                        "loop" => array(
                            "piutang dagang" => "nilai_credit",
                        ),
                        "static" => array(
                            "cabang_id" => "placeID",
                            "extern_id" => "pihakID",
                            "extern_nama" => "pihakName",
                            "jenis" => "jenisTr",
                            // "transaksi_no" => "nomer",
                        ),
                        "srcGateName" => "main",
                        "srcRawGateName" => "main",
                    ),
                    array(
                        "comName" => "RekeningPembantuCustomer",
                        "loop" => array(
                            "hutang ke konsumen" => "-creditAmount",
                        ),
                        "static" => array(
                            "cabang_id" => "placeID",
                            "extern_id" => "pihakID",
                            "extern_nama" => "pihakName",
                            "jenis" => "jenisTr",
                            // "transaksi_no" => "nomer",
                        ),
                        "srcGateName" => "main",
                        "srcRawGateName" => "main",
                    ),
                    array(
                        "comName" => "RekeningPembantuCustomer",
                        "loop" => array(
                            "ppn out" => "ppn",
                        ),
                        "static" => array(
                            "cabang_id" => "placeID",
                            "extern_id" => "pihakID",
                            "extern_nama" => "pihakName",
                            "jenis" => "jenisTr",
                            // "transaksi_no" => "nomer",
                        ),
                        "srcGateName" => "main",
                        "srcRawGateName" => "main",
                    ),

                    //</editor-fold>


                ),
                "detail" => array(
                    array(
                        "comName" => "RekeningPembantuProduk",
                        "loop" => array(
                            "persediaan produk" => "-sub_hpp",
                        ),
                        "static" => array(
                            "cabang_id" => "placeID",
                            "extern_id" => "id",
                            "extern_nama" => "name",
                            "produk_qty" => "-qty",
                            "produk_nilai" => "hpp",
                            "gudang_id" => "gudangID",
                            "jenis" => "jenisTr",
                            // "transaksi_no" => "nomer",
                        ),
                        "srcGateName" => "items",
                        "srcRawGateName" => "items",
                    ),
                ),
            ),
        ),
        "postProcessor" => array(
            "582" => array(
                "master" => array(
                    array(
                        "comName" => "Signature",
                        "loop" => array(
                            "transaksi_id" => "references",
                        ),
                        "static" => array(
                            "nomer" => "nomer",
                            "step_number" => ".2",
                            "step_code" => ".581",
                            "step_name" => ".order process",
                            "group_code" => ".sys",
                            "oleh_id" => "olehID",
                            "oleh_nama" => "olehName",
                            "keterangan" => ".autostep by other transaction",
                        ),
                        "srcGateName" => "main",
                        "srcRawGateName" => "main",
                    ),
                    array(
                        "comName" => "PaymentAntiSource",
                        "loop" => array(),
                        "static" => array(
                            "cabang_id" => "placeID",
                            "cabang_nama" => "placeName",
                            "transaksi_id" => "creditAmount__transaksi_id",
                            "jenis" => "creditAmount__jenis",
                            //                            "nomer"        => "referenceNomer",
                            "extern_id" => "pihakID",
                            "extern_nama" => "pihakName",
                            "label" => ".piutang dagang",
                            "terbayar" => "creditAmount",
                        ),
                        "reversable" => true,
                        "srcGateName" => "main",
                        "srcRawGateName" => "main",
                    ),

//                    array(
//                        "comName" => "LockerValue",
//                        "loop" => array(),
//                        "static" => array(
//                            "cabang_id" => "placeID",
//                            "gudang_id" => ".0",
//                            "state" => ".active",
//                            "jenis" => ".kas",
//                            "produk_id" => "cash_account",
//                            "nama" => "cash_account__label",
//                            "nilai" => "nilai_cash",
//                            "transaksi_id" => ".0",
//                            "oleh_id" => ".0",
//                        ),
//                        "srcGateName" => "main",
//                        "srcRawGateName" => "main",
//                    ),
//
//                    array(
//                        "comName" => "LockerStock_releaser",
//                        "loop" => array(),
//                        "static" => array(
//                            "cabang_id" => "placeID",
//                            "gudang_id" => "gudangID",
//                            "jenis" => ".produk",
//                            "singleReference" => "singleReference",
//                            "transaksi_id" => "singleReference",
//
//                        ),
//                        "srcGateName" => "main",
//                        "srcRawGateName" => "main",
//                    ),
//                    array(
//                        "comName" => "Transaksi_releaser",
//                        "loop" => array(),
//                        "static" => array(
//                            "cabang_id" => "placeID",
//                            "gudang_id" => "gudangID",
//                            "jenis" => ".produk",
//                            "singleReference" => "singleReference",
//                            "transaksi_id" => "singleReference",
//                            "intoStep" => ".2",
//                        ),
//                        "srcGateName" => "main",
//                        "srcRawGateName" => "main",
//                    ),
                ),
                "detail" => array(
//                    array(
//                        "comName" => "PriceProtector",
//                        "loop" => array(),
//                        "static" => array(
//                            "cabang_id" => "placeID",
//                            "jenis" => ".produk",
//                            "produk_id" => "id",
//                            "nama" => "name",
//                            "harga" => "harga",
//                        ),
//                        "srcGateName" => "items",
//                        "srcRawGateName" => "items",
//                    ),
//                    array(
//                        "comName" => "LockerStock",
//                        "loop" => array(),
//                        "static" => array(
//                            "cabang_id" => "placeID",
//                            "jenis" => ".produk",
//                            "state" => ".hold",
//                            "jumlah" => "-qty",
//                            "produk_id" => "id",
//                            "nama" => "name",
//                            "satuan" => "satuan",
//                            "transaksi_id" => ".0",
//                            "oleh_id" => "olehID",
//                            "gudang_id" => "gudangID",
//                        ),
//                        "srcGateName" => "items",
//                        "srcRawGateName" => "items",
//                    ),
//                    array(
//                        "comName" => "LockerStock",
//                        "loop" => array(),
//                        "static" => array(
//                            "cabang_id" => "placeID",
//                            "jenis" => ".produk",
//                            "state" => ".sold",
//                            "jumlah" => "qty",
//                            "produk_id" => "id",
//                            "nama" => "name",
//                            "satuan" => "satuan",
//                            "transaksi_id" => ".0",
//                            "oleh_id" => ".0",
//                            "gudang_id" => "gudangID",
//                        ),
//                        "srcGateName" => "items",
//                        "srcRawGateName" => "items",
//                    ),
//                    array(
//                        "comName" => "LockerStockMutasi",
//                        "loop" => array(),
//                        "static" => array(
//                            "cabang_id" => "placeID",
//                            "extern_id" => "id",
//                            "extern_nama" => "name",
//                            "qty_debet" => "-qty",
//                            "produk_nilai" => "hpp",
//                            "gudang_id" => "gudangID",
//                            "jenis" => "jenisTr",
//                            // "transaksi_no" => "nomer",
//                        ),
//                        "srcGateName" => "items",
//                        "srcRawGateName" => "items",
//                    ),

                ),
            ),
        ),
    ),
    "982" => array(
        "counters" => array(
            "stepCode|placeID",
            "stepCode|olehID",
            "stepCode|placeID|olehID",
        ),
        "formatNota" => "stepCode|placeID",
        "valueGates" => array(//==sumber nilai yang dikirim kemana2
            "master" => array(//==sumber nilai utama

            ),
            "detail" => array(//===sumber nilai berupa rincian
            ),
        ),
        "valueBuilders" => array(),
        "preProcessor" => array(),
        "tableIn" => array(
            "master" => array(
                "jenis_master" => "jenisTrMaster",
                "jenis_top" => "jenisTrTop",
                "jenis" => "jenisTr",
                "jenis_label" => "jenisTrName",
                "div_id" => "divID",
                "div_nama" => "divName",
                "dtime" => "dtime",
                "fulldate" => "fulldate",
                "oleh_id" => "olehID",
                "oleh_nama" => "olehName",

                "cabang2_id" => "placeID",
                "cabang2_nama" => "placeName",

                "cabang_id" => "placeID",
                "cabang_nama" => "placeName",
                //                "transaksi_nilai" => "srcDefValue",
                "transaksi_nilai" => "nilai_cancel",
                "transaksi_jenis" => "jenisTr",
                "keterangan" => "description",

                "gudang_id" => "gudangID",
                "gudang_nama" => "gudangName",
                "gudang2_id" => "gudang2ID",
                "gudang2_nama" => "gudang2Name",
//                "nomers_prev" => "referenceNomer",
            ),
            "mainValues" => array(
                "debet" => "debet",
                "kredit" => "kredit",
            ),
            "detail" => array(
                "dtime" => "dtime",
                "produk_id" => "id",
                "produk_kode" => "code",
                "produk_label" => "label",
                "produk_nama" => "name",
                "produk_ord_jml" => "jml",
                "produk_ord_hrg" => "harga",
                "hpp" => "harga",
                "satuan" => "satuan",
            ),
            "detailValues" => array(
                "debet" => "debet",
                "kredit" => "kredit",
            ),

        ),
        "tableIn_static" => array(
            "master" => array(
                "trash" => 0,
            ),
            "detail" => array(
                "trash" => 0,
                "produk_jenis" => "account",
            ),
        ),
        "components" => array(//kosong baca dari builder helper lihat he_accounting
        ),
        "relativeComponets" => true,//untuk baca dari session builder helper relative jurnal
        "postProcessor" => array(//kosong baca dari builder helper lihat he_accounting
        ),
    ),
);