Compare commits

...

3 Commits

Author SHA1 Message Date
Cleison Freitas 15a4b01573 Add params "debtor" 2023-01-27 16:06:25 -03:00
Cleison Freitas 39c90d1edc This feature allows the user to change the company name and debtor. 2023-01-27 15:55:38 -03:00
sharifcse57 d91e0e56c3 Create option: Update customer name by pop up modal 2023-01-12 22:37:59 +06:00
5 changed files with 81 additions and 2 deletions
@@ -60,7 +60,9 @@ class UpdateCompanyNameLogic extends AbstractControllerLogic
{
$query = $this->fetchesCompany->execute(['id' => $request->route('id')]);
$object = new CompanyObject($request->input('name'), $query->reference, $query->type);
$debtor = $request->input('debtor') ?? $query->debtor;
$object = new CompanyObject($request->input('name'), $query->reference, $debtor, $query->type);
$this->updatesCompanyName->execute($query, $object);
@@ -23,16 +23,21 @@ class CompanyObject implements DataTransferObject
/** @var string */
private $unity_hash_id;
/** @var string */
private $debtor;
/**
* CompanyObject constructor.
* @param string $name
* @param string $reference
* @param string $debtor
* @param int|null $type
* @param int|null $status
*/
public function __construct(
string $name,
string $reference,
?string $debtor,
?int $type = BusinessType::IMPORTER,
?int $status = ApprovalStatus::PENDING_SUBMISSION
) {
@@ -40,6 +45,7 @@ class CompanyObject implements DataTransferObject
$this->reference = $reference;
$this->type = $type;
$this->status = $status;
$this->debtor = $debtor;
}
/**
@@ -74,4 +80,12 @@ class CompanyObject implements DataTransferObject
return $this->status;
}
/**
* @return string
*/
public function getDebtor(): string
{
return $this->debtor;
}
}
@@ -18,7 +18,7 @@ class UpdatesCompanyName extends AbstractUpdateRecord
public function execute(Company $model, CompanyObject $object)
{
$model->name = $object->getName();
$model->debtor = $object->getDebtor();
return $this->handler($model);
}
}
@@ -13,6 +13,12 @@
<div class="col-auto">
<div class="row">
<div class="col">
<div class="btn btn-xs btn-outline-danger b-rad-none pointer requestModal align-items-center d-flex" data-type="changeCustomerName" >
<i class="fa fa-edit pointer fa-fw m-l-5"></i> Edit name
</div>
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="changeCustomerName">
<change-customer-name-form-component :section="'customerProfileSection'" :data="item"></change-customer-name-form-component>
</modal-component>
<div class="font-heading fs-20 light">{{item.name}}</div>
</div>
</div>
@@ -0,0 +1,57 @@
<template>
<div class="row" style="width: 450px; margin: auto;" @keyup.enter="submitForm">
<div class="col bg-white padding-40 b-rad-lg">
<div class="row m-b-10">
<div class="col text-center">
<p>Please enter customer name.</p>
</div>
</div>
<div class="row">
<div class="col">
<validation-wrapper-component class="m-b-15" :validator="$v.parameters.name">
<label class="text-primary">Name</label>
<input class="form-control" v-model="parameters.name">
</validation-wrapper-component>
</div>
</div>
<div class="row m-t-15">
<div class="col-auto p-r-5">
<div class="btn btn-lg btn-default b-rad-none" data-dismiss="modal">Cancel</div>
</div>
<div class="col p-l-5">
<div class="btn btn-primary w-100 btn-lg" @click="submit(route('api.company.update.name', data.id), 'put', section, true, true)">Confirm</div>
</div>
</div>
</div>
</div>
</template>
<script>
import modalFormHandler from '../../../general/mixins/modalFormHandler';
import { required, minLength } from "vuelidate/lib/validators";
export default {
data() {
return {
parameters: {
id: this.data.id,
name: this.data.name,
}
};
},
validations: {
parameters: {
name: {
required,
minLength: minLength(8)
},
}
},
methods: {
successHandler(response) {
window.location.replace(this.route('customers', response.payload.data.reference));
}
},
mixins: [modalFormHandler]
}
</script>