further attempts to do POST of thirdparty contact, passing parent id causes problems + civility and profession fk's are not saved on POST

This commit is contained in:
Julie Lenaerts 2022-01-17 12:00:22 +01:00
parent 47615e2e5d
commit a31b74e0e5
3 changed files with 18 additions and 8 deletions

View File

@ -100,6 +100,7 @@ import Modal from 'ChillMainAssets/vuejs/_components/Modal.vue';
import OnTheFlyCreate from './Create.vue'; import OnTheFlyCreate from './Create.vue';
import OnTheFlyPerson from 'ChillPersonAssets/vuejs/_components/OnTheFly/Person.vue'; import OnTheFlyPerson from 'ChillPersonAssets/vuejs/_components/OnTheFly/Person.vue';
import OnTheFlyThirdparty from 'ChillThirdPartyAssets/vuejs/_components/OnTheFly/ThirdParty.vue'; import OnTheFlyThirdparty from 'ChillThirdPartyAssets/vuejs/_components/OnTheFly/ThirdParty.vue';
import { postThirdparty } from "ChillThirdPartyAssets/vuejs/_api/OnTheFly";
export default { export default {
name: 'OnTheFly', name: 'OnTheFly',
@ -219,16 +220,23 @@ export default {
if (this.action === 'addContact') { if (this.action === 'addContact') {
type = 'thirdparty' type = 'thirdparty'
data = this.$refs.castThirdparty.$data.thirdparty; data = this.$refs.castThirdparty.$data.thirdparty;
// console.log(data) // create the new contact here, bypassing saveFormOnTheFly() -> not working here?
console.log('addContact data', data)
postThirdparty(data)
.then(thirdparty => new Promise((resolve, reject) => {
this.newPriorSuggestion(thirdparty);
resolve();
}));
} else { } else {
type = this.$refs.castNew.radioType; type = this.$refs.castNew.radioType;
data = this.$refs.castNew.castDataByType(); data = this.$refs.castNew.castDataByType();
console.log(data)
} }
} else { } else {
throw 'error with object type'; throw 'error with object type';
} }
} }
console.log('type', type, 'data', data) // console.log('type', type, 'data', data)
// pass datas to parent // pass datas to parent
this.$emit('saveFormOnTheFly', { type: type, data: data }); this.$emit('saveFormOnTheFly', { type: type, data: data });

View File

@ -126,7 +126,7 @@ class ThirdParty implements TrackCreationInterface, TrackUpdateInterface
* @var Civility * @var Civility
* @ORM\ManyToOne(targetEntity=Civility::class) * @ORM\ManyToOne(targetEntity=Civility::class)
* ORM\JoinColumn(name="civility", referencedColumnName="id", nullable=true) * ORM\JoinColumn(name="civility", referencedColumnName="id", nullable=true)
* @Groups({"docgen:read", "read", "write", "docgen:read:3party:parent"}) * @Groups({"docgen:read", "docgen:read:3party:parent"})
* @Context(normalizationContext={"groups": "docgen:read"}, groups={"docgen:read:3party:parent"}) * @Context(normalizationContext={"groups": "docgen:read"}, groups={"docgen:read:3party:parent"})
*/ */
private ?Civility $civility = null; private ?Civility $civility = null;
@ -166,7 +166,7 @@ class ThirdParty implements TrackCreationInterface, TrackUpdateInterface
* @ORM\Column(name="id", type="integer") * @ORM\Column(name="id", type="integer")
* @ORM\Id * @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO") * @ORM\GeneratedValue(strategy="AUTO")
* @Groups({"read", "write", "docgen:read", "docgen:read:3party:parent"}) * @Groups({"read", "docgen:read", "docgen:read:3party:parent"})
*/ */
private ?int $id = null; private ?int $id = null;
@ -199,7 +199,7 @@ class ThirdParty implements TrackCreationInterface, TrackUpdateInterface
* *
* @ORM\ManyToOne(targetEntity="Chill\ThirdPartyBundle\Entity\ThirdParty", inversedBy="children") * @ORM\ManyToOne(targetEntity="Chill\ThirdPartyBundle\Entity\ThirdParty", inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id") * @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
* @Groups({"read", "write", "docgen:read"}) * @Groups({"docgen:read"})
* @Context(normalizationContext={"groups": "docgen:read:3party:parent"}, groups={"docgen:read"}) * @Context(normalizationContext={"groups": "docgen:read:3party:parent"}, groups={"docgen:read"})
*/ */
private ?ThirdParty $parent = null; private ?ThirdParty $parent = null;

View File

@ -154,8 +154,7 @@ export default {
return { return {
//context: {}, <-- //context: {}, <--
thirdparty: { thirdparty: {
type: 'thirdparty', type: 'thirdparty'
parent: this.parent.id
}, },
professions: [], professions: [],
civilities: [], civilities: [],
@ -213,7 +212,7 @@ export default {
getThirdparty(this.id).then(thirdparty => new Promise((resolve, reject) => { getThirdparty(this.id).then(thirdparty => new Promise((resolve, reject) => {
this.thirdparty = thirdparty; this.thirdparty = thirdparty;
this.thirdparty.kind = thirdparty.kind; this.thirdparty.kind = thirdparty.kind;
//console.log('get thirdparty', thirdparty); console.log('get thirdparty', thirdparty);
if (this.action !== 'show') { if (this.action !== 'show') {
if (thirdparty.address !== null) { if (thirdparty.address !== null) {
// bof! we force getInitialAddress because addressId not available when mounted // bof! we force getInitialAddress because addressId not available when mounted
@ -262,6 +261,9 @@ export default {
this.loadData(); this.loadData();
} }
if (this.action === 'addContact') { if (this.action === 'addContact') {
this.$data.thirdparty.kind = 'child'
// this.$data.thirdparty.parent = this.parent.id
this.$data.thirdparty.address = null
this.loadProfessions(); this.loadProfessions();
this.loadCivilities(); this.loadCivilities();
} }