Jooyeshgar / moadian

GNU General Public License v3.0
30 stars 10 forks source link

تغییر در کلاس های پایه #5

Closed CyberDepot closed 1 year ago

CyberDepot commented 1 year ago

سلام، من با توجه به تغییرات دستور العمل صدور صورتحساب الکترونیکی نسخه 6.3 کلاس های پایه رو اصلاح کردم، من فورک نزدم و در قالب issue همینجا تغییرات رو براتون میزارم.

پیشنهاد می کنم حتما این موارد رو اعمال بفرمایید.

کلاس InvoiceHeader.php

    /**
     * MOADIAN_USERNAME
     */
    public string $clientId;

    /**
     * unique tax ID (should be set by setTaxID )
     */
    public string $taxid;

    /**
     * invoice timestamp (milliseconds from epoch)
     */
    public int $indatim;

    /**
     * invoice creation timestamp (milliseconds from epoch)
     */
    public ?int $indati2m;

    /**
     * invoice type
     */
    public int $inty;

    /**
     * internal invoice number
     */
    public ?string $inno;

    /**
     * invoice reference tax ID
     */
    public ?string $irtaxid;

    /**
     * invoice pattern
     */
    public int $inp;

    /**
     * invoice subject
     */
    public int $ins;

    /**
     * seller tax identification number
     */
    public string $tins;

    /**
     * type of buyer
     */
    public ?int $tob;

    /**
     * buyer ID
     */
    public ?string $bid;

    /**
     * buyer tax identification number
     */
    public ?string $tinb;

    /**
     * seller branch code
     */
    public ?string $sbc;

    /**
     * buyer postal code
     */
    public ?string $bpc;

    /**
     * buyer branch code
     */
    public ?string $bbc;

    /**
     * flight type
     */
    public ?int $ft;

    /**
     * buyer passport number
     */
    public ?string $bpn;

    /**
     * seller customs licence number
     */
    public ?string $scln;

    /**
     * seller customs code
     */
    public ?string $scc;

    /**
     * شماره کوتاژ اظهارنامه گمرکی
     */
    public ?string $cdcn;

    /**
     * تاریخ کوتاژ اظهارنامه گمرکی
     */
    public ?int $cdcd;

    /**
     * contract registration number
     */
    public ?string $crn;

    /**
     * billing ID
     */
    public ?string $billid;

    /**
     * total pre discount
     */
    public ?float $tprdis;

    /**
     * total discount
     */
    public ?float $tdis;

    /**
     * total after discount
     */
    public ?float $tadis;

    /**
     * total VAT amount
     */
    public float $tvam;

    /**
     * total other duty amount
     */
    public ?float $todam;

    /**
     * total bill
     */
    public float $tbill;

    /**
     * مجموع وزن خالص
     */
    public ?float $tonw;

    /**
     * مجموع ارزش ریالی
     */
    public ?float $torv;

    /**
     * مجموع ارزش ارزی
     */
    public ?float $tocv;

    /**
     * settlement type
     */
    public ?int $setm;

    /**
     * cash payment
     */
    public ?float $cap;

    /**
     * installment payment
     */
    public ?float $insp;

    /**
     * total VAT of payment
     */
    public ?float $tvop;

    /**
     * tax17
     */
    public ?float $tax17;

کلاس InvoiceItem.php

     /**
     * service stuff ID
     */
    public string $sstid;

    /**
     * service stuff title
     */
    public ?string $sstt;

    /**
     * amount
     */
    public float $am;

    /**
     * measurement unit
     */
    public ?string $mu;

    /**
     * مبلغ سایر مالیات و عوارض
     */
    public ?float $nw;

    /**
     * fee (pure price per item)
     */
    public float $fee;

    /**
     * fee in foreign currency
     */
    public ?float $cfee;

    /**
     * currency type
     */
    public ?string $cut;

    /**
     * exchange rate
     */
    public ?float $exr;

    /**
     * موضوع سایر وجوه قانونی
     */
    public ?float $ssrv;

    /**
     * نرخ سایر وجوه قانونی
     */
    public ?float $sscv;

    /**
     * pre discount
     */
    public ?float $prdis;

    /**
     * discount
     */
    public ?float $dis;

    /**
     * after discount
     */
    public ?float $adis;

    /**
     * VAT rate
     */
    public float $vra;

    /**
     * VAT amount
     */
    public ?float $vam;

    /**
     * over duty title
     */
    public ?string $odt;

    /**
     * over duty rate
     */
    public ?float $odr;

    /**
     * over duty amount
     */
    public ?float $odam;

    /**
     * other legal title
     */
    public ?string $olt;

    /**
     * other legal rate
     */
    public ?float $olr;

    /**
     * other legal amount
     */
    public ?float $olam;

    /**
     * construction fee
     */
    public ?float $consfee;

    /**
     * seller profit
     */
    public ?float $spro;

    /**
     * broker salary
     */
    public ?float $bros;

    /**
     * total construction profit broker salary
     */
    public ?float $tcpbs;

    /**
     * cash share of payment
     */
    public ?float $cop;

    /**
     * vat of payment
     */
    public ?float $vop;

    /**
     * buyer register number
     */
    public ?string $bsrn;

    /**
     * total service stuff amount
     */
    public float $tsstam;

کلاس Payment.php

    /**
     * Iin number
     */
    public ?string $iinn;

    /**
     * acceptor number
     */
    public ?string $acn;

    /**
     * terminal number
     */
    public ?string $trmn;

    /**
     * payment Type
     */
    public ?int $pmt;

    /**
     * tracking number
     */
    public ?string $trn;

    /**
     * payer card number
     */
    public ?string $pcn;

    /**
     * payer id
     */
    public ?string $pid;

    /**
     * payment DateTime
     */
    public ?int $pdt;

    /**
     * مبلغ پرداختی
     */
    public ?float $pv;
aghasi commented 1 year ago

سلام در مورد فیلدهایی که فرمودید float کردید (مثلا vam) درسته که در سند گفته نوع اعشار هست ولی از اون طرف نوشته که تعداد ارقام اعشار صفر هست که در واقع همون int میشه. در جایی از سند هم قاعده کلی در مورد اعداد ریالی رو ذکر کرده که کلا اعداد ریالی فاقد ممیز هستند و اعداد دلاری تا 4 رقم اعشار. البته سند تناقض های زیادی هم داره. یه نکته دیگه اینکه سرور سامانه مودیان حساسیتی روی نحوه ارسال داده نداره. مثلا 3 و 3.0 و '3' رو قبول میکنه.

hadi60 commented 1 year ago

ممنون از کمک فورک بزنید خیلی بهتره حتی چک کردنش برای اینکه بتونیم کد ها تست کنیم یکم زمان نیاز داره ولی چک می کنم

CyberDepot commented 1 year ago

من فدات شم، عذر خواهی میکنم، نرسیدم فورک بزنم لینک مستندات مربوطه رو هم برات میزارم اگر دوست داشتی ReCheck کن، هر چند خودم سعی کردم دقیق انجامش بدم

دستور العمل صدور صورتحساب الکترونیکی نسخه 6.3.pdf

CyberDepot commented 1 year ago

سلام در مورد فیلدهایی که فرمودید float کردید (مثلا vam) درسته که در سند گفته نوع اعشار هست ولی از اون طرف نوشته که تعداد ارقام اعشار صفر هست که در واقع همون int میشه. در جایی از سند هم قاعده کلی در مورد اعداد ریالی رو ذکر کرده که کلا اعداد ریالی فاقد ممیز هستند و اعداد دلاری تا 4 رقم اعشار. البته سند تناقض های زیادی هم داره. یه نکته دیگه اینکه سرور سامانه مودیان حساسیتی روی نحوه ارسال داده نداره. مثلا 3 و 3.0 و '3' رو قبول میکنه.

بله حق با شماست، اما همونطور که فرمودین واقعا معلوم نیست چقدر تغییرات در آینده داشته باشیم ممکنه این برنامه حذف صفر ها و ریال اجرا بشه و ما هم اعشاری بشیم، به نظرم بهتره طبق مستندات پیش بریم که بعدا دوباره کاری نشه ممنون بابت اطلاعاتی که به اشتراک گذاشتین