public function save(Request $request) { if (!$this->hasPermission($this->menuPermissionName)) { return view($this->viewPermissiondeniedName); } $this->validate($request, ['bookno' => 'required', 'no' => 'required', 'date' => 'required', 'bookingcustomerid' => 'required_if:customer-type,0', 'bookingcustomerfirstname' => 'required_if:customer-type,1', 'bookingcustomerphone1' => 'required', 'carobjectivetype' => 'required', 'carmodelid' => 'required', 'carsubmodelid' => 'required', 'colorid' => 'required', 'pricelistid' => 'required', 'discount' => 'required', 'subdown' => 'required', 'accessories' => 'required', 'cashpledge' => 'required', 'cashpledgepaymenttype' => 'required', 'cashpledgechargepercent' => 'required_if:cashpledgepaymenttype,1', 'purchasetype' => 'required', 'finacecompanyid' => 'required_if:purchasetype,1', 'interestratetypeid' => 'required_if:purchasetype,1', 'interestratemode' => 'required_if:purchasetype,1', 'interest' => 'required_if:purchasetype,1', 'down' => 'required_if:purchasetype,1', 'subsidise' => 'required_if:purchasetype,1', 'installments' => 'required_if:purchasetype,1', 'cashpledgeredlabel' => 'required_if:carobjectivetype,0', 'registrationtype' => 'required_if:carobjectivetype,0', 'registrationfee' => 'required_if:carobjectivetype,0', 'insurancefee' => 'required', 'compulsorymotorinsurancefee' => 'required', 'accessoriesfee' => 'required', 'giveawaywithholdingtax' => 'required', 'otherfee' => 'required', 'otherfee2' => 'required', 'otherfee3' => 'required', 'implementfee' => 'required', 'datewantgetcar' => 'required', 'giveawayadditionalcharges' => 'required', 'buyercustomerid' => 'required_if:buyertype,1', 'buyercustomerfirstname' => 'required_if:buyertype,2', 'buyercustomerphone1' => 'required_if:buyertype,1,2', 'salesmanemployeeid' => 'required', 'salesmanageremployeeid' => 'required', 'approversemployeeid' => 'required', 'approvaldate' => 'required', 'customertype' => 'required'], ['bookno.required' => 'ข้อมูล เล่มที่ จำเป็นต้องกรอก', 'no.required' => 'ข้อมูล เลขที่ จำเป็นต้องกรอก', 'date.required' => 'ข้อมูล วันที่ จำเป็นต้องกรอก', 'bookingcustomerid.required_if' => 'ผู้สั่งจอง กรุณาเลือกชื่อลูกค้า', 'bookingcustomerfirstname.required_if' => 'ผู้สั่งจอง ชื่อ จำเป็นต้องกรอก', 'bookingcustomerphone1.required' => 'ผู้สั่งจอง เบอร์โทร 1 จำเป็นต้องกรอก', 'carobjectivetype.required' => 'รายละเอียดรถยนตร์ใหม่ รถใหม่/รถบริษัท จำเป็นต้องเลือก', 'carmodelid.required' => 'รายละเอียดรถยนตร์ใหม่ กรุณาเลือกแบบ', 'carsubmodelid.required' => 'รายละเอียดรถยนตร์ใหม่ กรุณาเลือกรุ่น', 'colorid.required' => 'รายละเอียดรถยนตร์ใหม่ กรุณาเลือกสี', 'pricelistid.required' => 'รายละเอียดรถยนตร์ใหม่ กรุณาเลือกราคา', 'discount.required' => 'รายละเอียดรถยนตร์ใหม่ ส่วนลด จำเป็นต้องกรอก', 'subdown.required' => 'รายละเอียดรถยนตร์ใหม่ Sub Down จำเป็นต้องกรอก', 'accessories.required' => 'รายละเอียดรถยนตร์ใหม่ บวกอุปกรณ์ จำเป็นต้องกรอก', 'cashpledge.required' => 'รายละเอียด/เงื่อนไขการชำระเงิน เงินมัดจำ จำเป็นต้องกรอก', 'cashpledgepaymenttype.required' => 'รายละเอียด/เงื่อนไขการชำระเงิน ประเภทการจ่ายเงินมัดจำ จำเป็นต้องเลือก', 'cashpledgechargepercent.required_if' => 'รายละเอียด/เงื่อนไขการชำระเงิน % ค่าธรรมเนียม จำเป็นต้องเลือก', 'purchasetype.required' => 'รายละเอียด/เงื่อนไขการชำระเงิน ประเภทซื้อรถยนต์ จำเป็นต้องเลือก', 'finacecompanyid.required_if' => 'รายละเอียด/เงื่อนไขการชำระเงิน ชื่อบริษัทเช่าซื้อ จำเป็นต้องเลือก', 'interestratetypeid.required_if' => 'รายละเอียด/เงื่อนไขการชำระเงิน ประเภทอัตราดอกเบี้ย จำเป็นต้องเลือก', 'interestratemode.required_if' => 'รายละเอียด/เงื่อนไขการชำระเงิน Mode อัตราดอกเบี้ย จำเป็นต้องเลือก', 'interest.required_if' => 'รายละเอียด/เงื่อนไขการชำระเงิน ดอกเบี้ย จำเป็นต้องกรอก', 'down.required_if' => 'รายละเอียด/เงื่อนไขการชำระเงิน ดาวน์ จำเป็นต้องกรอก', 'installments.required_if' => 'รายละเอียด/เงื่อนไขการชำระเงิน จำนวนงวด จำเป็นต้องกรอก', 'cashpledgeredlabel.required_if' => 'รายละเอียด/เงื่อนไขการชำระเงิน ค่ามัดจำป้ายแดง จำเป็นต้องกรอก', 'registrationtype.required_if' => 'รายละเอียด/เงื่อนไขการชำระเงิน ประเภทจดทะเบียน จำเป็นต้องเลือก', 'registrationfee.required_if' => 'รายละเอียด/เงื่อนไขการชำระเงิน ค่าจดทะเบียน จำเป็นต้องกรอก', 'insurancefee.required' => 'รายละเอียด/เงื่อนไขการชำระเงิน ค่าประกันภัย จำเป็นต้องกรอก', 'compulsorymotorinsurancefee.required' => 'รายละเอียด/เงื่อนไขการชำระเงิน ค่า พ.ร.บ. จำเป็นต้องกรอก', 'accessoriesfee.required' => 'รายละเอียด/เงื่อนไขการชำระเงิน ค่าอุปกรณ์ จำเป็นต้องกรอก', 'giveawaywithholdingtax.required' => 'รายละเอียด/เงื่อนไขการชำระเงิน ภาษีหัก ณ ที่จ่าย (กรณีลูกค้าได้รับของแถม เช่น ทอง) จำเป็นต้องกรอก', 'otherfee.required' => 'รายละเอียด/เงื่อนไขการชำระเงิน ค่าอื่นๆ (1) จำเป็นต้องกรอก', 'otherfee2.required' => 'รายละเอียด/เงื่อนไขการชำระเงิน ค่าอื่นๆ (2) จำเป็นต้องกรอก', 'otherfee3.required' => 'รายละเอียด/เงื่อนไขการชำระเงิน ค่าอื่นๆ (3) จำเป็นต้องกรอก', 'subsidise.required_if' => 'รายละเอียด/เงื่อนไขการชำระเงิน SUBSIDISE จำเป็นต้องกรอก', 'implementfee.required' => 'รายละเอียด/เงื่อนไขการชำระเงิน ค่าดำเนินการ จำเป็นต้องกรอก', 'datewantgetcar.required' => 'รายละเอียด/เงื่อนไขการชำระเงิน วันที่ต้องการรับรถ จำเป็นต้องกรอก', 'giveawayadditionalcharges.required' => 'รายละเอียดอื่นๆ ลูกค้าจ่ายเพิ่มเติ่มค่าของแถม จำเป็นต้องกรอก', 'buyercustomerid.required_if' => 'ผู้ซื้อ กรุณาเลือกชื่อลูกค้า', 'buyercustomerfirstname.required_if' => 'ผู้ซื้อ ชื่อ จำเป็นต้องกรอก', 'buyercustomerphone1.required_if' => 'ผู้ซื้อ เบอร์โทร 1 จำเป็นต้องกรอก', 'salesmanemployeeid.required' => 'พนักงานขาย กรุณาเลือกชื่อพนักงาน', 'salesmanageremployeeid.required' => 'ผู้จัดการฝ่ายขาย กรุณาเลือกชื่อพนักงาน', 'approversemployeeid.required' => 'ผู้อนุมัติ กรุณาเลือกชื่อพนักงาน', 'approvaldate.required' => 'วันที่อนุมัติ จำเป็นต้องกรอก', 'customertype.required' => 'ประเภทลูกค้า จำเป็นต้องเลือก']); $input = $request->all(); if ($request->has('id')) { $model = CarPreemption::find($input['id']); if ($model == null) { return "ขออภัย!! ไม่พบข้อมูลที่จะทำการแก้ไขในระบบ เนื่องจากอาจถูกลบไปแล้ว"; } } else { $model = new CarPreemption(); } $model->bookno = $input['bookno']; $model->no = $input['no']; $model->date = date('Y-m-d', strtotime($input['date'])); if ($input['customer-type'] == 0) { $customer = Customer::find($input['bookingcustomerid']); } else { $customer = new Customer(); if (Auth::user()->isadmin) { $customer->provinceid = $input['provincebranchid']; } else { $customer->provinceid = Auth::user()->provinceid; } $customer->title = $input['bookingcustomertitle']; $customer->firstname = $input['bookingcustomerfirstname']; $customer->lastname = $input['bookingcustomerlastname']; } $customer->address = $input['bookingcustomeraddress']; $customer->addprovinceid = $input['bookingcustomerprovinceid']; $customer->amphurid = $input['bookingcustomeramphurid']; $customer->districtid = $input['bookingcustomerdistrictid']; $customer->zipcode = $input['bookingcustomerzipcode']; $customer->phone1 = $input['bookingcustomerphone1']; $customer->phone2 = $input['bookingcustomerphone2']; $customer->occupationid = $input['bookingcustomeroccupationid']; if ($input['bookingcustomerbirthdate'] != null && $input['bookingcustomerbirthdate'] != '') { $customer->birthdate = date('Y-m-d', strtotime($input['bookingcustomerbirthdate'])); } if ($customer->save()) { $model->bookingcustomerid = $customer->id; } else { //hack returning error $this->validate($request, ['bookno' => 'alpha'], ['bookno.alpha' => 'ไม่สามารถทำการบันทึกข้อมูลผู้จองได้ กรุณาติดต่อผู้ดูแลระบบ!!']); } $model->carobjectivetype = $input['carobjectivetype']; $model->carmodelid = $input['carmodelid']; $model->carsubmodelid = $input['carsubmodelid']; $model->colorid = $input['colorid']; $model->pricelistid = $input['pricelistid']; $model->colorprice = $input['colorprice']; $model->totalcarprice = $input['totalcarprice']; $model->discount = $input['discount']; $model->subdown = $input['subdown']; $model->accessories = $input['accessories']; $model->oldcarbrandid = $input['oldcarbrandid']; $model->oldcarmodelid = $input['oldcarmodelid']; $model->oldcargear = $input['oldcargear']; $model->oldcarcolor = $input['oldcarcolor']; $model->oldcarenginesize = $input['oldcarenginesize']; $model->oldcarlicenseplate = $input['oldcarlicenseplate']; $model->oldcaryear = $input['oldcaryear']; $model->oldcarprice = $input['oldcarprice']; $model->oldcarbuyername = $input['oldcarbuyername']; $model->oldcarother = $input['oldcarother']; $model->cashpledge = $input['cashpledge']; $model->cashpledgepaymenttype = $input['cashpledgepaymenttype']; $model->cashpledgechargepercent = $input['cashpledgechargepercent']; $model->cashpledgechargeamount = $input['cashpledgechargeamount']; if ($request->has('cashpledgechargefree')) { $model->cashpledgechargefree = $input['cashpledgechargefree']; } else { $model->cashpledgechargefree = 0; } $model->purchasetype = $input['purchasetype']; $model->finacecompanyid = $input['finacecompanyid']; $model->interestratetypeid = $input['interestratetypeid']; $model->interestratemode = $input['interestratemode']; $model->interest = $input['interest']; $model->down = $input['down']; $model->installments = $input['installments']; $model->financingfee = $input['financingfee']; $model->transferfee = $input['transferfee']; $model->transferoperationfee = $input['transferoperationfee']; $model->cashpledgeredlabel = $input['cashpledgeredlabel']; $model->registerprovinceid = $input['registerprovinceid']; $model->registrationtype = $input['registrationtype']; $model->registrationfee = $input['registrationfee']; if ($request->has('registrationfeefree')) { $model->registrationfeefree = $input['registrationfeefree']; } else { $model->registrationfeefree = 0; } $model->insurancefee = $input['insurancefee']; if ($request->has('insurancefeefree')) { $model->insurancefeefree = $input['insurancefeefree']; } else { $model->insurancefeefree = 0; } $model->compulsorymotorinsurancefee = $input['compulsorymotorinsurancefee']; if ($request->has('compulsorymotorinsurancefeefree')) { $model->compulsorymotorinsurancefeefree = $input['compulsorymotorinsurancefeefree']; } else { $model->compulsorymotorinsurancefeefree = 0; } $model->accessoriesfee = $input['accessoriesfee']; $model->giveawaywithholdingtax = $input['giveawaywithholdingtax']; $model->otherfee = $input['otherfee']; $model->otherfeedetail = $input['otherfeedetail']; $model->otherfee2 = $input['otherfee2']; $model->otherfeedetail2 = $input['otherfeedetail2']; $model->otherfee3 = $input['otherfee3']; $model->otherfeedetail3 = $input['otherfeedetail3']; $model->subsidise = $input['subsidise']; if ($request->has('subsidisefree')) { $model->subsidisefree = $input['subsidisefree']; } else { $model->subsidisefree = 0; } $model->implementfee = $input['implementfee']; if ($request->has('implementfeefree')) { $model->implementfeefree = $input['implementfeefree']; } else { $model->implementfeefree = 0; } $model->datewantgetcar = date('Y-m-d', strtotime($input['datewantgetcar'])); $model->giveawayadditionalcharges = $input['giveawayadditionalcharges']; $model->totalfree = $input['totalfree']; if ($input['buyertype'] == 0) { $model->buyercustomerid = $model->bookingcustomerid; } else { if ($input['buyertype'] == 1) { $customer = Customer::find($input['buyercustomerid']); } else { $customer = new Customer(); if (Auth::user()->isadmin) { $customer->provinceid = $input['provincebranchid']; } else { $customer->provinceid = Auth::user()->provinceid; } $customer->title = $input['buyercustomertitle']; $customer->firstname = $input['buyercustomerfirstname']; $customer->lastname = $input['buyercustomerlastname']; } $customer->address = $input['buyercustomeraddress']; $customer->addprovinceid = $input['buyercustomerprovinceid']; $customer->amphurid = $input['buyercustomeramphurid']; $customer->districtid = $input['buyercustomerdistrictid']; $customer->zipcode = $input['buyercustomerzipcode']; $customer->phone1 = $input['buyercustomerphone1']; $customer->phone2 = $input['buyercustomerphone2']; $customer->occupationid = $input['buyercustomeroccupationid']; if ($input['buyercustomerbirthdate'] != null && $input['buyercustomerbirthdate'] != '') { $customer->birthdate = date('Y-m-d', strtotime($input['buyercustomerbirthdate'])); } if ($customer->save()) { $model->buyercustomerid = $customer->id; } else { //hack returning error $this->validate($request, ['bookno' => 'alpha'], ['bookno.alpha' => 'ไม่สามารถทำการบันทึกข้อมูลผู้ซื้อได้ กรุณาติดต่อผู้ดูแลระบบ!!']); } } $model->salesmanemployeeid = $input['salesmanemployeeid']; $model->salesmanageremployeeid = $input['salesmanageremployeeid']; $model->approversemployeeid = $input['approversemployeeid']; $model->approvaldate = date('Y-m-d', strtotime($input['approvaldate'])); if ($request->has('place')) { $model->place = $input['place']; } else { $model->place = 0; } if ($request->has('showroom')) { $model->showroom = $input['showroom']; } else { $model->showroom = 0; } if ($request->has('booth')) { $model->booth = $input['booth']; } else { $model->booth = 0; } if ($request->has('leaflet')) { $model->leaflet = $input['leaflet']; } else { $model->leaflet = 0; } if ($request->has('businesscard')) { $model->businesscard = $input['businesscard']; } else { $model->businesscard = 0; } if ($request->has('invitationcard')) { $model->invitationcard = $input['invitationcard']; } else { $model->invitationcard = 0; } if ($request->has('phone')) { $model->phone = $input['phone']; } else { $model->phone = 0; } if ($request->has('signshowroom')) { $model->signshowroom = $input['signshowroom']; } else { $model->signshowroom = 0; } if ($request->has('spotradiowalkin')) { $model->spotradiowalkin = $input['spotradiowalkin']; } else { $model->spotradiowalkin = 0; } if ($request->has('recommendedby')) { $model->recommendedby = $input['recommendedby']; } else { $model->recommendedby = 0; } $model->recommendedbyname = $input['recommendedbyname']; if ($request->has('recommendedbytype')) { $model->recommendedbytype = $input['recommendedbytype']; } if ($request->has('customertype')) { $model->customertype = $input['customertype']; } $model->documentstatus = $input['documentstatus']; $model->remark = $input['remark']; if ($model->oldcarbrandid == '') { $model->oldcarbrandid = null; } if ($model->oldcarmodelid == '') { $model->oldcarmodelid = null; } if ($model->oldcargear == '') { $model->oldcargear = null; } if ($model->oldcarcolor == '') { $model->oldcarcolor = null; } if ($model->oldcarenginesize == '') { $model->oldcarenginesize = null; } if ($model->oldcarlicenseplate == '') { $model->oldcarlicenseplate = null; } if ($model->oldcaryear == '') { $model->oldcaryear = null; } if ($model->oldcarprice == '') { $model->oldcarprice = null; } if ($model->oldcarbuyername == '') { $model->oldcarbuyername = null; } if ($model->oldcarother == '') { $model->oldcarother = null; } if ($model->cashpledgepaymenttype == 0) { $model->cashpledgechargepercent = null; $model->cashpledgechargeamount = null; } if ($model->purchasetype == 0) { $model->finacecompanyid = null; $model->interestratetypeid = null; $model->interest = null; $model->down = null; $model->installments = null; $model->subsidise = null; $model->interestratemode = null; } if ($model->recommendedby == false) { $model->recommendedbyname = null; $model->recommendedbytype = null; } if ($input['contractdate'] != null && $input['contractdate'] != '') { $model->contractdate = date('Y-m-d', strtotime($input['contractdate'])); } else { $model->contractdate = $input['contractdate']; } if ($model->save()) { $giveawayFreeData = $request->giveawayFreeData; $giveawayBuyData = $request->giveawayBuyData; $giveawayFreeData = json_decode($giveawayFreeData, true); $giveawayBuyData = json_decode($giveawayBuyData, true); foreach ($giveawayFreeData as $data) { $obj = new CarPreemptionGiveaway(); $obj->carpreemptionid = $model->id; $obj->giveawayid = $data["giveawayid"]; $obj->free = true; $obj->price = $data["price"]; $obj->save(); } foreach ($giveawayBuyData as $data) { $obj = new CarPreemptionGiveaway(); $obj->carpreemptionid = $model->id; $obj->giveawayid = $data["giveawayid"]; $obj->free = false; $obj->save(); } return redirect()->action('CarPreemptionController@edit', ['id' => $model->id]); } else { //hack returning error $this->validate($request, ['bookno' => 'alpha'], ['bookno.alpha' => 'ไม่สามารถทำการบันทึกข้อมูลการจองได้ กรุณาติดต่อผู้ดูแลระบบ!!']); } }