UNPKG

mst-scm-server-core

Version:
1 lines 3.79 kB
const e=require("mongoose"),{CustomError:r}=require("../helpers"),{InvoiceNumber:n}=require("../models/base"),{Organization:t,OrganizationBranch:a,CustomerBranch:o}=require("../models/master"),{helpers:{numberHelper:i,checksumHelper:s,utilHelper:c}}=require("mst-server-common"),u="81",d="82",m=async e=>{try{const r={upsert:!0,new:!0,setDefaultsOnInsert:!0};return(await n.findOneAndUpdate({invoiceType:e},{$inc:{value:1}},r)).value}catch(e){return 1}},w=async()=>{try{let e=await m("MerchantCode");if(e<1e3||e>=8e3)throw new r("Мерчантын код буруу байна. Та систем админд хандана уу!");return s.appendChecksumLocal(e)}catch(e){return 10001}},h=async n=>{try{const a=await t.findOne({_id:new e.Types.ObjectId(n)});if(!a)throw new r("Мерчантын мэдээлэл олдсонгүй");const o={upsert:!0,new:!0,setDefaultsOnInsert:!0},i=await t.findOneAndUpdate({_id:a._id},{$inc:{"invoiceNumberInfo.branchNumber":1}},o);let s=`${a.code}${i?.invoiceNumberInfo?.branchNumber}`;return parseInt(s)}catch(e){return console.log("error: getLastMerchantBranchCode: "+e.message),-1}},l=()=>d,p=()=>u,b=async n=>{try{const t=p(),o=await a.findOne({_id:new e.Types.ObjectId(n)});if(!o)throw new r("Үйлчилгээний цэгийн мэдээлэл олдсонгүй");const i={upsert:!0,new:!0,setDefaultsOnInsert:!0},s=await a.findOneAndUpdate({_id:o._id},{$inc:{"invoiceNumberInfo.orderNumber":1}},i);let c=`${t}${o.code}${s?.invoiceNumberInfo?.orderNumber}`;return parseInt(c)}catch(e){throw console.log("error: getOrderNumberByBranch: "+e.message),new r(e.message)}},f=async n=>{try{const a=p(),i=await o.findOne({_id:new e.Types.ObjectId(n)});if(!i)throw new r("Үйлчилгээний цэгийн мэдээлэл олдсонгүй");if(i?.merchantBranchUuid)return b(i.merchantBranchUuid.toString());const s={upsert:!0,new:!0,setDefaultsOnInsert:!0};if(c.isEmpty(i?.organizationUuid))throw new r("Байгууллагын мэдээлэл тохируулаагүй байна.");const u=i.organizationUuid,d=await t.findOneAndUpdate({_id:u},{$inc:{"invoiceNumberInfo.customerOrderNumber":1}},s);let m=`${a}${d.code}${d?.invoiceNumberInfo?.customerOrderNumber}`;return parseInt(m)}catch(e){throw console.log("error: getOrderNumberByCustomerBranch: "+e.message),new r(e.message)}},g=async n=>{try{const t=l(),o=await a.findOne({_id:new e.Types.ObjectId(n)});if(!o)throw new r("Үйлчилгээний цэгийн мэдээлэл олдсонгүй");const i={upsert:!0,new:!0,setDefaultsOnInsert:!0},s=await a.findOneAndUpdate({_id:o._id},{$inc:{"invoiceNumberInfo.loanNumber":1}},i);let c=`${t}${o.code}${s?.invoiceNumberInfo?.loanNumber}`;return parseInt(c)}catch(e){throw console.log("error: getLoanNumberByBranch: "+e.message),new r(e.message)}},y=async n=>{try{const a=await t.findOne({_id:new e.Types.ObjectId(n)});if(!a)throw new r("Нийлүүлэгчийн мэдээлэл олдсонгүй");const o={upsert:!0,new:!0,setDefaultsOnInsert:!0},i=await t.findOneAndUpdate({_id:a._id},{$inc:{"invoiceNumberInfo.rePaymentNumber":1}},o);let s=`${a.code}${i?.invoiceNumberInfo?.rePaymentNumber}`;return parseInt(s)}catch(e){throw console.log("error: getRePaymentNumberBySupplier: "+e.message),new r(e.message)}},N=async()=>{try{let e=await m("SupplierCode");if(e<8e3||e>=9999)throw new r("Нийлүүлэгчийн код буруу байна. Та систем админд хандана уу!");return s.appendChecksumLocal(e)}catch(e){return 80008}};module.exports={getInvoiceNumber:m,getLastMerchantCode:w,getLastMerchantBranchCode:h,getOrderNumberPrefix:p,getLoanNumberPrefix:l,getOrderNumberByBranch:b,getOrderNumberByCustomerBranch:f,getLoanNumberByBranch:g,getRePaymentNumberBySupplier:y,getLastSupplierCode:N};