|
|
@@ -6,7 +6,7 @@ use Livewire\Component;
|
|
|
class RecordOUT extends Component
|
|
|
{
|
|
|
|
|
|
- protected $listeners = ['setCausal' => 'setCausal'];
|
|
|
+ protected $listeners = ['setCausal' => 'setCausal','refreshMembers' => 'refreshMembers'];
|
|
|
|
|
|
public $sortField ='date';
|
|
|
public $sortAsc = false;
|
|
|
@@ -59,15 +59,26 @@ class RecordOUT extends Component
|
|
|
|
|
|
public $selectId = 0;
|
|
|
|
|
|
+ public $parent = null;
|
|
|
+ public $newMemberFirstName = '';
|
|
|
+ public $newMemberLastName = '';
|
|
|
+ public $newMemberEmail = '';
|
|
|
+ public $newMemberToComplete = false;
|
|
|
+ public $newMemberFiscalCode = '';
|
|
|
+ public $newMemberFiscalCodeExist = false;
|
|
|
+ public $newMemberExists = false;
|
|
|
+
|
|
|
public $causals = array();
|
|
|
public $payments = array();
|
|
|
public $banks = array();
|
|
|
+ public $members = array();
|
|
|
public $suppliers = array();
|
|
|
|
|
|
public $rows = array();
|
|
|
|
|
|
protected $rules = [
|
|
|
- 'supplier_id' => 'required',
|
|
|
+ 'member_id' => ['nullable', 'required_without:supplier_id'],
|
|
|
+ 'supplier_id' => ['nullable', 'required_without:member_id'],
|
|
|
'payment_method_id' => 'required',
|
|
|
'rows.*.causal_id' => 'required',
|
|
|
'rows.*.amount' => 'required'
|
|
|
@@ -76,7 +87,8 @@ class RecordOUT extends Component
|
|
|
];
|
|
|
|
|
|
protected $messages = [
|
|
|
- 'supplier_id.required' => 'Il fornitore è obbligatorio',
|
|
|
+ 'member_id.required_without' => 'Devi compilare almeno uno tra membro e fornitore',
|
|
|
+ 'supplier_id.required_without' => 'Devi compilare almeno uno tra membro e fornitore',
|
|
|
'payment_method_id.required' => 'Il metodo di pagamento è obbligatorio',
|
|
|
'rows.*.amount.required' => 'L\'importo è obbligatorio',
|
|
|
'rows.*.causal_id.required' => 'La causale è obbligatoria'
|
|
|
@@ -114,6 +126,15 @@ class RecordOUT extends Component
|
|
|
$this->type = 'OUT';
|
|
|
//$this->note = '';
|
|
|
//$this->amount = null;
|
|
|
+ $this->newMemberFiscalCodeExist = false;
|
|
|
+ $this->parent = '';
|
|
|
+ $this->newMemberFirstName = '';
|
|
|
+ $this->newMemberLastName = '';
|
|
|
+ $this->newMemberEmail = '';
|
|
|
+ $this->newMemberToComplete = false;
|
|
|
+ $this->newMemberFiscalCode = '';
|
|
|
+ $this->newMemberFiscalCodeExist = false;
|
|
|
+ $this->newMemberExists = false;
|
|
|
$this->commercial = 1;
|
|
|
$this->rows = array();
|
|
|
$this->rows[] = array('causal_id' => null, 'when' => array(array('month' => date("n"), 'year' => date("Y"), 'period' => '')), 'amount' => null, 'note' => '', 'commercial' => 0);
|
|
|
@@ -158,11 +179,50 @@ class RecordOUT extends Component
|
|
|
|
|
|
$this->getCausale(\App\Models\Causal::select('id', 'name')->where('parent_id', null)->where('type', 'OUT')->orderBy('name')->get(), 0);
|
|
|
|
|
|
+ $this->refreshMembers();
|
|
|
$this->suppliers = \App\Models\Supplier::select('name','id')->orderBy('name')->get();
|
|
|
$this->payments = \App\Models\PaymentMethod::select('id', 'name')->whereIn('type', array('ALL', 'OUT'))->where('enabled', true)->orderBy('name')->get();
|
|
|
$this->banks = \App\Models\Bank::select('id', 'name')->where('enabled', true)->whereIn('visibility', array('ALL', 'OUT'))->orderBy('name')->get();
|
|
|
}
|
|
|
|
|
|
+ public function refreshMembers()
|
|
|
+ {
|
|
|
+ if ($this->add || $this->update)
|
|
|
+ {
|
|
|
+ if($this->commercial){
|
|
|
+ $this->members = \App\Models\Member::select(['id', 'first_name', 'last_name', 'fiscal_code'])
|
|
|
+ ->where(function($query) {
|
|
|
+ $query->where('is_archived', false)
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
+ })
|
|
|
+ ->where(function($query) {
|
|
|
+ $query->where('is_deleted', false)
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
+ })->orderBy('last_name')->orderBy('first_name')->get();
|
|
|
+ } else {
|
|
|
+ $this->members = \App\Models\Member::select(['id', 'first_name', 'last_name', 'fiscal_code'])->where('current_status', 2)->orWhere('current_status', 1)
|
|
|
+ ->where(function($query) {
|
|
|
+ $query->where('is_archived', false)
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
+ })
|
|
|
+ ->where(function($query) {
|
|
|
+ $query->where('is_deleted', false)
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
+ })->orderBy('last_name')->orderBy('first_name')->get();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ $this->members = \App\Models\Member::select(['id', 'first_name', 'last_name', 'fiscal_code'])
|
|
|
+ ->where(function($query) {
|
|
|
+ $query->where('is_archived', false)
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
+ })
|
|
|
+ ->where(function($query) {
|
|
|
+ $query->where('is_deleted', false)
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
+ })->orderBy('last_name')->orderBy('first_name')->get();
|
|
|
+ }
|
|
|
+
|
|
|
public function updatedPaymentMethodId() {
|
|
|
if ($this->payment_method_id) {
|
|
|
$payment_method = \App\Models\PaymentMethod::findOrFail($this->payment_method_id);
|
|
|
@@ -170,6 +230,11 @@ class RecordOUT extends Component
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public function updatedCommercial($value)
|
|
|
+ {
|
|
|
+ $this->emitSelf('refreshMembers');
|
|
|
+ }
|
|
|
+
|
|
|
public function getCausal($causal)
|
|
|
{
|
|
|
$ret = '';
|
|
|
@@ -385,6 +450,7 @@ class RecordOUT extends Component
|
|
|
session()->flash('error','Movimento non trovato');
|
|
|
} else {
|
|
|
$this->member_id = $record->member_id;
|
|
|
+ $this->parent = $record->member->parent;
|
|
|
$this->supplier_id = $record->supplier_id;
|
|
|
//$this->causal_id = $record->causal_id;
|
|
|
$this->payment_method_id = $record->payment_method_id;
|
|
|
@@ -482,7 +548,7 @@ class RecordOUT extends Component
|
|
|
\App\Models\Record::find($id)->delete();
|
|
|
session()->flash('success',"Movimento eliminato");
|
|
|
}catch(\Exception $e){
|
|
|
- session()->flash('error','Errore (' . $ex->getMessage() . ')');
|
|
|
+ session()->flash('error','Errore (' . $e->getMessage() . ')');
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@@ -494,7 +560,7 @@ class RecordOUT extends Component
|
|
|
\App\Models\Record::find($id)->delete();
|
|
|
}
|
|
|
}catch(\Exception $e){
|
|
|
- session()->flash('error','Errore (' . $ex->getMessage() . ')');
|
|
|
+ session()->flash('error','Errore (' . $e->getMessage() . ')');
|
|
|
}
|
|
|
$this->multipleAction = '';
|
|
|
}
|
|
|
@@ -632,4 +698,91 @@ class RecordOUT extends Component
|
|
|
$this->multiP = false;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ public function createMember()
|
|
|
+ {
|
|
|
+ $this->newMemberFiscalCodeExist = false;
|
|
|
+ $this->validate([
|
|
|
+ // 'newMemberFiscalCode'=>'required|max:16',
|
|
|
+ 'newMemberFirstName'=>'required',
|
|
|
+ 'newMemberLastName'=>'required',
|
|
|
+ //'newMemberEmail'=>'required',
|
|
|
+ ]);
|
|
|
+
|
|
|
+ // Check fiscal code exist
|
|
|
+ $exist = false;
|
|
|
+ if ($this->newMemberFiscalCode != '')
|
|
|
+ {
|
|
|
+ $check = \App\Models\Member::where('fiscal_code', $this->newMemberFiscalCode)
|
|
|
+ ->where(function($query) {
|
|
|
+ $query->where('is_deleted', false)
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
+ })->get();
|
|
|
+ $exist = $check->count() > 0;
|
|
|
+ }
|
|
|
+ if (!$exist)
|
|
|
+ {
|
|
|
+ $member = \App\Models\Member::create([
|
|
|
+ 'first_name' => strtoupper($this->newMemberFirstName),
|
|
|
+ 'last_name' => strtoupper($this->newMemberLastName),
|
|
|
+ 'email' => strtoupper($this->newMemberEmail),
|
|
|
+ 'to_complete' => $this->newMemberToComplete,
|
|
|
+ 'fiscal_code' => $this->newMemberFiscalCode,
|
|
|
+ 'status' => true
|
|
|
+ ]);
|
|
|
+ $this->member_id = $member->id;
|
|
|
+ $this->members = \App\Models\Member::select(['id', 'first_name', 'last_name', 'fiscal_code'])
|
|
|
+ ->where(function($query) {
|
|
|
+ $query->where('is_archived', false)
|
|
|
+ ->orWhereNull('is_archived');
|
|
|
+ })
|
|
|
+ ->where(function($query) {
|
|
|
+ $query->where('is_deleted', false)
|
|
|
+ ->orWhereNull('is_deleted');
|
|
|
+ })->get();
|
|
|
+ // $this->emit('reloadMembers');
|
|
|
+ $this->emit('refresh');
|
|
|
+ $this->newMemberFirstName = '';
|
|
|
+ $this->newMemberLastName = '';
|
|
|
+ $this->newMemberEmail = '';
|
|
|
+ $this->newMemberToComplete = false;
|
|
|
+ $this->newMemberFiscalCode = '';
|
|
|
+ $this->emit('saved');
|
|
|
+ //$this->validate();
|
|
|
+ $this->selectId++;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ $this->newMemberFiscalCodeExist = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public function updatedSupplierId() {
|
|
|
+ if (!$this->supplier_id) {
|
|
|
+ $this->supplier_id = null;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public function updatedMemberId() {
|
|
|
+
|
|
|
+ if ($this->member_id > 0)
|
|
|
+ {
|
|
|
+ $member = \App\Models\Member::findOrFail($this->member_id);
|
|
|
+ if (!$member->isAdult())
|
|
|
+ {
|
|
|
+ if($member->father_name != '')
|
|
|
+ $this->parent = $member->father_name . " (C.F. " . $member->father_fiscal_code . ")";
|
|
|
+ else if($member->mother_name != '')
|
|
|
+ $this->parent = $member->mother_name . " (C.F. " . $member->mother_fiscal_code . ")";
|
|
|
+ else
|
|
|
+ $this->parent = '';
|
|
|
+ }
|
|
|
+ $this->newMemberFirstName = '';
|
|
|
+ $this->newMemberLastName = '';
|
|
|
+ $this->newMemberEmail = '';
|
|
|
+ $this->newMemberToComplete = false;
|
|
|
+ $this->newMemberFiscalCode = '';
|
|
|
+ $this->newMemberFiscalCodeExist = false;
|
|
|
+ }
|
|
|
+ $this->emit('refresh');
|
|
|
+ }
|
|
|
}
|