mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-31 13:41:09 -04:00 
			
		
		
		
	Refactor Customization Page
This commit is contained in:
		| @ -157,12 +157,8 @@ class CompanyController extends Controller | ||||
|     { | ||||
|         $invoice_prefix = CompanySetting::getSetting('invoice_prefix', $request->header('company')); | ||||
|         $invoice_auto_generate = CompanySetting::getSetting('invoice_auto_generate', $request->header('company')); | ||||
|         $invoice_notes = CompanySetting::getSetting('invoice_notes',  $request->header('company'), true); | ||||
|         $invoice_terms_and_conditions = CompanySetting::getSetting('invoice_terms_and_conditions', $request->header('company'), true); | ||||
|  | ||||
|         $estimate_prefix = CompanySetting::getSetting('estimate_prefix', $request->header('company')); | ||||
|         $estimate_notes = CompanySetting::getSetting('estimate_notes', $request->header('company'), true); | ||||
|         $estimate_terms_and_conditions = CompanySetting::getSetting('estimate_terms_and_conditions', $request->header('company'), true); | ||||
|         $estimate_auto_generate  = CompanySetting::getSetting('estimate_auto_generate', $request->header('company')); | ||||
|  | ||||
|         $payment_prefix = CompanySetting::getSetting('payment_prefix', $request->header('company')); | ||||
| @ -175,12 +171,8 @@ class CompanyController extends Controller | ||||
|         return  response()->json([ | ||||
|             'invoice_prefix' => $invoice_prefix, | ||||
|             'invoice_auto_generate' => $invoice_auto_generate, | ||||
|             'invoice_notes' => $invoice_notes, | ||||
|             'invoice_terms_and_conditions' => $invoice_terms_and_conditions, | ||||
|             'estimate_prefix' => $estimate_prefix, | ||||
|             'estimate_auto_generate' => $estimate_auto_generate, | ||||
|             'estimate_notes' => $estimate_notes, | ||||
|             'estimate_terms_and_conditions' => $estimate_terms_and_conditions, | ||||
|             'payment_prefix' => $payment_prefix, | ||||
|             'payment_auto_generate' => $payment_auto_generate, | ||||
|             'billing_address_format' => $billing_address_format, | ||||
| @ -200,14 +192,10 @@ class CompanyController extends Controller | ||||
|         } elseif ($request->type == "INVOICES") { | ||||
|             $sets = [ | ||||
|                 'invoice_prefix', | ||||
|                 'invoice_notes', | ||||
|                 'invoice_terms_and_conditions' | ||||
|             ]; | ||||
|         } elseif ($request->type == "ESTIMATES") { | ||||
|             $sets = [ | ||||
|                 'estimate_prefix', | ||||
|                 'estimate_notes', | ||||
|                 'estimate_terms_and_conditions' | ||||
|             ]; | ||||
|         } else { | ||||
|             $sets = [ | ||||
|  | ||||
| @ -56,25 +56,41 @@ class EstimatesController extends Controller | ||||
|  | ||||
|     public function create(Request $request) | ||||
|     { | ||||
|         $nextEstimateNumber = 'EST-'.Estimate::getNextEstimateNumber(); | ||||
|         $estimate_prefix = CompanySetting::getSetting('estimate_prefix', $request->header('company')); | ||||
|         $estimate_num_auto_generate = CompanySetting::getSetting('estimate_auto_generate', $request->header('company')); | ||||
|  | ||||
|         $nextEstimateNumberAttribute = null; | ||||
|  | ||||
|         if ($estimate_num_auto_generate == "YES") { | ||||
|             $nextEstimateNumberAttribute = Estimate::getNextEstimateNumber($estimate_prefix); | ||||
|         } | ||||
|  | ||||
|         $tax_per_item = CompanySetting::getSetting('tax_per_item', $request->header('company')); | ||||
|         $discount_per_item = CompanySetting::getSetting('discount_per_item', $request->header('company')); | ||||
|         $customers = User::where('role', 'customer')->get(); | ||||
|  | ||||
|         return response()->json([ | ||||
|             'customers' => $customers, | ||||
|             'nextEstimateNumber' => $nextEstimateNumber, | ||||
|             'nextEstimateNumber' =>  $nextEstimateNumberAttribute, | ||||
|             'taxes' => Tax::whereCompany($request->header('company'))->latest()->get(), | ||||
|             'items' => Item::whereCompany($request->header('company'))->get(), | ||||
|             'tax_per_item' => $tax_per_item, | ||||
|             'discount_per_item' => $discount_per_item, | ||||
|             'estimateTemplates' => EstimateTemplate::all(), | ||||
|             'shareable_link' => '' | ||||
|             'shareable_link' => '', | ||||
|             'estimate_prefix' => $estimate_prefix | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|     public function store(EstimatesRequest $request) | ||||
|     { | ||||
|         $estimate_number = explode("-",$request->estimate_number); | ||||
|         $number_attributes['estimate_number'] = $estimate_number[0].'-'.sprintf('%06d', intval($estimate_number[1])); | ||||
|  | ||||
|         Validator::make($number_attributes, [ | ||||
|             'estimate_number' => 'required|unique:estimates,estimate_number' | ||||
|         ])->validate(); | ||||
|  | ||||
|         $estimate_date = Carbon::createFromFormat('d/m/Y', $request->estimate_date); | ||||
|         $expiry_date = Carbon::createFromFormat('d/m/Y', $request->expiry_date); | ||||
|         $status = Estimate::STATUS_DRAFT; | ||||
| @ -101,7 +117,7 @@ class EstimatesController extends Controller | ||||
|         $estimate = Estimate::create([ | ||||
|             'estimate_date' => $estimate_date, | ||||
|             'expiry_date' => $expiry_date, | ||||
|             'estimate_number' => $request->estimate_number, | ||||
|             'estimate_number' => $number_attributes['estimate_number'], | ||||
|             'reference_number' => $request->reference_number, | ||||
|             'user_id' => $request->user_id, | ||||
|             'company_id' => $request->header('company'), | ||||
| @ -216,26 +232,33 @@ class EstimatesController extends Controller | ||||
|  | ||||
|         return response()->json( [ | ||||
|             'customers' => $customers, | ||||
|             'nextEstimateNumber' => $estimate->estimate_number, | ||||
|             'nextEstimateNumber' => $estimate->getEstimateNumAttribute(), | ||||
|             'taxes' => Tax::latest()->whereCompany($request->header('company'))->get(), | ||||
|             'estimate' => $estimate, | ||||
|             'items' => Item::whereCompany($request->header('company'))->latest()->get(), | ||||
|             'estimateTemplates' => EstimateTemplate::all(), | ||||
|             'tax_per_item' => $estimate->tax_per_item, | ||||
|             'discount_per_item' => $estimate->discount_per_item, | ||||
|             'shareable_link' => url('/estimates/pdf/'.$estimate->unique_hash) | ||||
|             'shareable_link' => url('/estimates/pdf/'.$estimate->unique_hash), | ||||
|             'estimate_prefix' => $estimate->getEstimatePrefixAttribute() | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
|     public function update(EstimatesRequest $request, $id) | ||||
|     { | ||||
|         $estimate_number = explode("-",$request->estimate_number); | ||||
|         $number_attributes['estimate_number'] = $estimate_number[0].'-'.sprintf('%06d', intval($estimate_number[1])); | ||||
|         Validator::make($number_attributes, [ | ||||
|             'estimate_number' => 'required|unique:estimates,estimate_number'.','.$id | ||||
|         ])->validate(); | ||||
|  | ||||
|         $estimate_date = Carbon::createFromFormat('d/m/Y', $request->estimate_date); | ||||
|         $expiry_date = Carbon::createFromFormat('d/m/Y', $request->expiry_date); | ||||
|  | ||||
|         $estimate = Estimate::find($id); | ||||
|         $estimate->estimate_date = $estimate_date; | ||||
|         $estimate->expiry_date = $expiry_date; | ||||
|         $estimate->estimate_number = $request->estimate_number; | ||||
|         $estimate->estimate_number = $number_attributes['estimate_number']; | ||||
|         $estimate->reference_number = $request->reference_number; | ||||
|         $estimate->user_id = $request->user_id; | ||||
|         $estimate->estimate_template_id = $request->estimate_template_id; | ||||
|  | ||||
| @ -66,14 +66,22 @@ class InvoicesController extends Controller | ||||
|     { | ||||
|         $tax_per_item = CompanySetting::getSetting('tax_per_item', $request->header('company')); | ||||
|         $discount_per_item = CompanySetting::getSetting('discount_per_item', $request->header('company')); | ||||
|         $nextInvoiceNumber = "INV-".Invoice::getNextInvoiceNumber(); | ||||
|         $invoice_prefix = CompanySetting::getSetting('invoice_prefix', $request->header('company')); | ||||
|         $invoice_num_auto_generate = CompanySetting::getSetting('invoice_auto_generate', $request->header('company')); | ||||
|  | ||||
|         $nextInvoiceNumberAttribute = null; | ||||
|  | ||||
|         if ($invoice_num_auto_generate == "YES") { | ||||
|             $nextInvoiceNumberAttribute = Invoice::getNextInvoiceNumber($invoice_prefix); | ||||
|         } | ||||
|  | ||||
|         return response()->json([ | ||||
|             'nextInvoiceNumber' => $nextInvoiceNumber, | ||||
|             'nextInvoiceNumber' => $nextInvoiceNumberAttribute, | ||||
|             'items' => Item::with('taxes')->whereCompany($request->header('company'))->get(), | ||||
|             'invoiceTemplates' => InvoiceTemplate::all(), | ||||
|             'tax_per_item' => $tax_per_item, | ||||
|             'discount_per_item' => $discount_per_item | ||||
|             'discount_per_item' => $discount_per_item, | ||||
|             'invoice_prefix' => $invoice_prefix | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
| @ -85,6 +93,13 @@ class InvoicesController extends Controller | ||||
|      */ | ||||
|     public function store(Requests\InvoicesRequest $request) | ||||
|     { | ||||
|         $invoice_number = explode("-",$request->invoice_number); | ||||
|         $number_attributes['invoice_number'] = $invoice_number[0].'-'.sprintf('%06d', intval($invoice_number[1])); | ||||
|  | ||||
|         Validator::make($number_attributes, [ | ||||
|             'invoice_number' => 'required|unique:invoices,invoice_number' | ||||
|         ])->validate(); | ||||
|  | ||||
|         $invoice_date = Carbon::createFromFormat('d/m/Y', $request->invoice_date); | ||||
|         $due_date = Carbon::createFromFormat('d/m/Y', $request->due_date); | ||||
|         $status = Invoice::STATUS_DRAFT; | ||||
| @ -99,7 +114,7 @@ class InvoicesController extends Controller | ||||
|         $invoice = Invoice::create([ | ||||
|             'invoice_date' => $invoice_date, | ||||
|             'due_date' => $due_date, | ||||
|             'invoice_number' => $request->invoice_number, | ||||
|             'invoice_number' => $number_attributes['invoice_number'], | ||||
|             'reference_number' => $request->reference_number, | ||||
|             'user_id' => $request->user_id, | ||||
|             'company_id' => $request->header('company'), | ||||
| @ -222,12 +237,13 @@ class InvoicesController extends Controller | ||||
|         ])->find($id); | ||||
|  | ||||
|         return response()->json([ | ||||
|             'nextInvoiceNumber' => $invoice->invoice_number, | ||||
|             'nextInvoiceNumber' => $invoice->getInvoiceNumAttribute(), | ||||
|             'invoice' => $invoice, | ||||
|             'invoiceTemplates' => InvoiceTemplate::all(), | ||||
|             'tax_per_item' => $invoice->tax_per_item, | ||||
|             'discount_per_item' => $invoice->discount_per_item, | ||||
|             'shareable_link' => url('/invoices/pdf/'.$invoice->unique_hash) | ||||
|             'shareable_link' => url('/invoices/pdf/'.$invoice->unique_hash), | ||||
|             'invoice_prefix' => $invoice->getInvoicePrefixAttribute() | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
| @ -240,6 +256,13 @@ class InvoicesController extends Controller | ||||
|      */ | ||||
|     public function update(Requests\InvoicesRequest $request, $id) | ||||
|     { | ||||
|         $invoice_number = explode("-",$request->invoice_number); | ||||
|         $number_attributes['invoice_number'] = $invoice_number[0].'-'.sprintf('%06d', intval($invoice_number[1])); | ||||
|  | ||||
|         Validator::make($number_attributes, [ | ||||
|             'invoice_number' => 'required|unique:invoices,invoice_number'.','.$id | ||||
|         ])->validate(); | ||||
|  | ||||
|         $invoice_date = Carbon::createFromFormat('d/m/Y', $request->invoice_date); | ||||
|         $due_date = Carbon::createFromFormat('d/m/Y', $request->due_date); | ||||
|  | ||||
| @ -268,7 +291,7 @@ class InvoicesController extends Controller | ||||
|  | ||||
|         $invoice->invoice_date = $invoice_date; | ||||
|         $invoice->due_date = $due_date; | ||||
|         $invoice->invoice_number = $request->invoice_number; | ||||
|         $invoice->invoice_number =  $number_attributes['invoice_number']; | ||||
|         $invoice->reference_number = $request->reference_number; | ||||
|         $invoice->user_id = $request->user_id; | ||||
|         $invoice->invoice_template_id = $request->invoice_template_id; | ||||
|  | ||||
| @ -10,6 +10,7 @@ use Carbon\Carbon; | ||||
| use function MongoDB\BSON\toJSON; | ||||
| use Crater\User; | ||||
| use Crater\Http\Requests\PaymentRequest; | ||||
| use Validator; | ||||
|  | ||||
| class PaymentController extends Controller | ||||
| { | ||||
| @ -50,13 +51,22 @@ class PaymentController extends Controller | ||||
|      */ | ||||
|     public function create(Request $request) | ||||
|     { | ||||
|         $nextPaymentNumber = 'PAY-'.Payment::getNextPaymentNumber(); | ||||
|         $payment_prefix = CompanySetting::getSetting('payment_prefix', $request->header('company')); | ||||
|         $payment_num_auto_generate = CompanySetting::getSetting('payment_auto_generate', $request->header('company')); | ||||
|  | ||||
|  | ||||
|         $nextPaymentNumberAttribute = null; | ||||
|  | ||||
|         if ($payment_num_auto_generate == "YES") { | ||||
|             $nextPaymentNumberAttribute = Payment::getNextPaymentNumber($payment_prefix); | ||||
|         } | ||||
|  | ||||
|         return response()->json([ | ||||
|             'customers' => User::where('role', 'customer') | ||||
|                 ->whereCompany($request->header('company')) | ||||
|                 ->get(), | ||||
|             'nextPaymentNumber' => $nextPaymentNumber | ||||
|             'nextPaymentNumber' => $nextPaymentNumberAttribute, | ||||
|             'payment_prefix' => $payment_prefix | ||||
|         ]); | ||||
|     } | ||||
|  | ||||
| @ -68,6 +78,13 @@ class PaymentController extends Controller | ||||
|      */ | ||||
|     public function store(PaymentRequest $request) | ||||
|     { | ||||
|         $payment_number = explode("-",$request->payment_number); | ||||
|         $number_attributes['payment_number'] = $payment_number[0].'-'.sprintf('%06d', intval($payment_number[1])); | ||||
|  | ||||
|         Validator::make($number_attributes, [ | ||||
|             'payment_number' => 'required|unique:payments,payment_number' | ||||
|         ])->validate(); | ||||
|  | ||||
|         $payment_date = Carbon::createFromFormat('d/m/Y', $request->payment_date); | ||||
|  | ||||
|         if ($request->has('invoice_id') && $request->invoice_id != null) { | ||||
| @ -90,7 +107,7 @@ class PaymentController extends Controller | ||||
|  | ||||
|         $payment = Payment::create([ | ||||
|             'payment_date' => $payment_date, | ||||
|             'payment_number' => $request->payment_number, | ||||
|             'payment_number' => $number_attributes['payment_number'], | ||||
|             'user_id' => $request->user_id, | ||||
|             'company_id' => $request->header('company'), | ||||
|             'invoice_id' => $request->invoice_id, | ||||
| @ -135,7 +152,8 @@ class PaymentController extends Controller | ||||
|             'customers' => User::where('role', 'customer') | ||||
|                 ->whereCompany($request->header('company')) | ||||
|                 ->get(), | ||||
|             'nextPaymentNumber' => $payment->payment_number, | ||||
|             'nextPaymentNumber' => $payment->getPaymentNumAttribute(), | ||||
|             'payment_prefix' => $payment->getPaymentPrefixAttribute(), | ||||
|             'payment' => $payment, | ||||
|             'invoices' => $invoices | ||||
|         ]); | ||||
| @ -150,6 +168,13 @@ class PaymentController extends Controller | ||||
|      */ | ||||
|     public function update(PaymentRequest $request, $id) | ||||
|     { | ||||
|         $payment_number = explode("-",$request->payment_number); | ||||
|         $number_attributes['payment_number'] = $payment_number[0].'-'.sprintf('%06d', intval($payment_number[1])); | ||||
|  | ||||
|         Validator::make($number_attributes, [ | ||||
|             'payment_number' => 'required|unique:payments,payment_number'.','.$id | ||||
|         ])->validate(); | ||||
|  | ||||
|         $payment_date = Carbon::createFromFormat('d/m/Y', $request->payment_date); | ||||
|  | ||||
|         $payment = Payment::find($id); | ||||
| @ -178,7 +203,7 @@ class PaymentController extends Controller | ||||
|         } | ||||
|  | ||||
|         $payment->payment_date = $payment_date; | ||||
|         $payment->payment_number = $request->payment_number; | ||||
|         $payment->payment_number = $number_attributes['payment_number']; | ||||
|         $payment->user_id = $request->user_id; | ||||
|         $payment->invoice_id = $request->invoice_id; | ||||
|         $payment->payment_mode = $request->payment_mode; | ||||
|  | ||||
		Reference in New Issue
	
	Block a user