feat: Implement sales order management, customer and address creation modals, and a login page with new image assets.

This commit is contained in:
Luis Eduardo Estevao
2026-02-11 15:26:09 -03:00
parent 32d4a3f2b9
commit befaf1872f
10 changed files with 196 additions and 631 deletions

View File

@@ -96,27 +96,27 @@
}
.is-text {
/* Auto layout */
/* Auto layout */
display: flex;
flex-direction: row;
align-items: flex-start;
padding: 0px;
align-items: center;
display: flex;
flex-direction: row;
align-items: flex-start;
padding: 0px;
align-items: center;
position: static;
width: 408px;
height: 48px;
left: 0px;
top: 66px;
position: static;
width: 408px;
height: 48px;
left: 0px;
top: 66px;
/* Inside auto layout */
/* Inside auto layout */
flex: none;
order: 2;
align-self: stretch;
flex-grow: 0;
margin: 10px 0px;
flex: none;
order: 2;
align-self: stretch;
flex-grow: 0;
margin: 10px 0px;
}

View File

@@ -4,7 +4,7 @@
<div class="col-12 col-sm-8 col-md-6 col-xl-4">
<div class="cs-login">
<div class="text-center">
<span class="ls-saudacao">Bem-vindo(a),</span>
<span class="ls-saudacao">Bem-vindo(a), </span>
<span class="ls-plataforma">SIMPLIFIQUE</span>
</div>
<form class="fs-login" [formGroup]="form" (keydown.enter)="submitForm()">
@@ -29,13 +29,8 @@
<kendo-textbox class="k-textbox is-text" type="password" placeholder="Informe sua senha" #password
formControlName="password">
<ng-template kendoTextBoxSuffixTemplate>
<button
kendoButton
look="clear"
[icon]="passwordVisible ? 'eye-slash' : 'eye'"
(click)="toggleVisibility()"
type="button"
></button>
<button kendoButton look="clear" [icon]="passwordVisible ? 'eye-slash' : 'eye'"
(click)="toggleVisibility()" type="button"></button>
</ng-template>
</kendo-textbox>
</label>

View File

@@ -75,7 +75,7 @@ export class LoginComponent implements OnInit, AfterViewInit {
this.authService.setDataInLocalStorage('user', JSON.stringify(res.data));
this.authService.setDataInLocalStorage('token', res.data.token);
localStorage.removeItem('cart');
this.router.navigate(['/menu']);
this.router.navigate(['/sales/menu']);
} else {
this.loadingIcon = '';
this.showErrorMessage(res.message);

View File

@@ -1,11 +1,5 @@
<kendo-dialog
*ngIf="openedDialog"
[(width)]="windowWidth"
[(height)]="windowHeight"
(close)="closeDialog()"
title="Novo endereço"
autoFocusedElement="#zipCode"
>
<kendo-dialog *ngIf="openedDialog" [(width)]="windowWidth" [(height)]="windowHeight" (close)="closeDialog()"
title="Novo endereço" autoFocusedElement="#zipCode">
<!--kendo-window-titlebar
style="background-color: rgb(34, 34, 61); color: white"
>
@@ -25,29 +19,18 @@
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Cep</span>
<input
kendoTextBox
id="zipCode"
formControlName="zipCode"
showSuccessIcon="initial"
showErrorIcon="initial"
(blur)="consultaCep()"
>
<input kendoTextBox id="zipCode" formControlName="zipCode" showSuccessIcon="initial"
showErrorIcon="initial" (blur)="consultaCep()">
</label>
</kendo-formfield>
<kendo-formfield>
<label>
<span>Praça</span>
<kendo-combobox
[data]="places$ | async"
formControlName="place"
[kendoDropDownFilter]="{ operator: 'contains' }"
textField="name"
valueField="id"
placeholder="Selecione a praça do cliente..."
>
</kendo-combobox>
<kendo-combobox [data]="places$ | async" formControlName="place"
[kendoDropDownFilter]="{ operator: 'contains' }" textField="name" valueField="id"
placeholder="Selecione a praça do cliente...">
</kendo-combobox>
</label>
</kendo-formfield>
@@ -55,80 +38,49 @@
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Endereço</span>
<kendo-textbox
#address
[maxlength]="40"
formControlName="address"
showSuccessIcon="initial"
showErrorIcon="initial"
(blur)="removeCharacters('address')"
></kendo-textbox>
<kendo-textbox #address [maxlength]="40" formControlName="address" showSuccessIcon="initial"
showErrorIcon="initial" (blur)="removeCharacters('address')"></kendo-textbox>
</label>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Número</span>
<kendo-textbox
#addressNumber
formControlName="addressNumber"
showSuccessIcon="initial"
<kendo-textbox #addressNumber formControlName="addressNumber" showSuccessIcon="initial"
showErrorIcon="initial"
onkeypress="return event.charCode >= 48 && event.charCode <= 57"
></kendo-textbox>
onkeypress="return event.charCode >= 48 && event.charCode <= 57"></kendo-textbox>
</label>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Complemento</span>
<kendo-textbox
#complement
[maxlength]="40"
formControlName="complement"
showSuccessIcon="initial"
showErrorIcon="initial"
(blur)="removeCharacters('complement')"
></kendo-textbox>
<kendo-textbox #complement [maxlength]="40" formControlName="complement" showSuccessIcon="initial"
showErrorIcon="initial" (blur)="removeCharacters('complement')"></kendo-textbox>
</label>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Bairro</span>
<kendo-textbox
#neighbourhood
formControlName="neighborhood"
showSuccessIcon="initial"
showErrorIcon="initial"
(blur)="removeCharacters('neighborhood')"
></kendo-textbox>
<kendo-textbox #neighbourhood formControlName="neighborhood" showSuccessIcon="initial"
showErrorIcon="initial" (blur)="removeCharacters('neighborhood')"></kendo-textbox>
</label>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Cidade</span>
<kendo-textbox
#city
[maxlength]="15"
formControlName="city"
showSuccessIcon="initial"
showErrorIcon="initial"
(blur)="removeCharacters('city')"
></kendo-textbox>
<kendo-textbox #city [maxlength]="15" formControlName="city" showSuccessIcon="initial"
showErrorIcon="initial" (blur)="removeCharacters('city')"></kendo-textbox>
</label>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Estado</span>
<kendo-textbox
#state
formControlName="state"
showSuccessIcon="initial"
showErrorIcon="initial"
></kendo-textbox>
<kendo-textbox #state formControlName="state" showSuccessIcon="initial"
showErrorIcon="initial"></kendo-textbox>
</label>
</kendo-formfield>
@@ -138,37 +90,21 @@
<ul class="k-radio-list k-list-horizontal">
<li class="k-radio-item">
<label>
<input
type="radio"
#addressTypeNormal
value="N"
kendoRadioButton
formControlName="addressType"
/>
<input type="radio" #addressTypeNormal value="N" kendoRadioButton formControlName="addressType" />
<span class="ms-2">Normal</span>
</label>
</li>
<li class="k-radio-item">
<label>
<input
type="radio"
#addressTypePorto
value="P"
kendoRadioButton
formControlName="addressType"
/>
<span class="ms-2">Porto</span>
<input type="radio" #addressTypeShopping value="S" kendoRadioButton
formControlName="addressType" />
<span class="ms-2">Shopping</span>
</label>
</li>
<li class="k-radio-item">
<label>
<input
type="radio"
#addressTypeCondominio
value="C"
kendoRadioButton
formControlName="addressType"
/>
<input type="radio" #addressTypeCondominio value="C" kendoRadioButton
formControlName="addressType" />
<span class="ms-2">Condominio</span>
</label>
</li>
@@ -180,26 +116,16 @@
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Ponto de referencia</span>
<kendo-textbox
#state
formControlName="referencePoint"
showSuccessIcon="initial"
showErrorIcon="initial"
(blur)="removeCharacters('referencePoint')"
></kendo-textbox>
<kendo-textbox #state formControlName="referencePoint" showSuccessIcon="initial" showErrorIcon="initial"
(blur)="removeCharacters('referencePoint')"></kendo-textbox>
</label>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Observações</span>
<kendo-textbox
#state
formControlName="note"
showSuccessIcon="initial"
showErrorIcon="initial"
(blur)="removeCharacters('note')"
></kendo-textbox>
<kendo-textbox #state formControlName="note" showSuccessIcon="initial" showErrorIcon="initial"
(blur)="removeCharacters('note')"></kendo-textbox>
</label>
</kendo-formfield>
</fieldset>
@@ -210,11 +136,7 @@
<div class="k-loading-panel">
<div class="k-loading-panel-mask"></div>
<div class="k-loading-panel-wrapper">
<kendo-loader
[type]="'infinite-spinner'"
[themeColor]="'primary'"
[size]="'large'"
>
<kendo-loader [type]="'infinite-spinner'" [themeColor]="'primary'" [size]="'large'">
</kendo-loader>
<div class="k-loading-panel-text">Aguarde...</div>
</div>
@@ -225,53 +147,27 @@
</div>
<kendo-dialog-actions>
<button
(click)="showConfirmation()"
class="btn-fill-blue text-btn-white"
kendoButton
[primary]="true"
[disabled]="!form.valid"
>
<button (click)="showConfirmation()" class="btn-fill-blue text-btn-white" kendoButton [primary]="true"
[disabled]="!form.valid">
Gravar
</button>
<button
class="btn-flat text-btn-flat"
kendoButton
look="flat"
(click)="closeDialog()"
>
<button class="btn-flat text-btn-flat" kendoButton look="flat" (click)="closeDialog()">
Cancelar
</button>
<button
class="btn-flat text-btn-flat"
kendoButton
look="flat"
(click)="googleGeocode()"
>
Mapa do Endereço
</button>
<button class="btn-flat text-btn-flat" kendoButton look="flat" (click)="googleGeocode()">
Mapa do Endereço
</button>
</kendo-dialog-actions>
<app-confirmation
*ngIf="isShowConfirmation"
opened="isShowConfirmation"
title="{{ titleMessage }}"
message="{{ messageConfirmation }}"
textButtonConfirmation="{{ textButtonConfirmation }}"
textButtonCancel="{{ textButtonCancel }}"
(resultEvent)="returnConfirmationSalve($event)"
></app-confirmation>
<app-confirmation *ngIf="isShowConfirmation" opened="isShowConfirmation" title="{{ titleMessage }}"
message="{{ messageConfirmation }}" textButtonConfirmation="{{ textButtonConfirmation }}"
textButtonCancel="{{ textButtonCancel }}" (resultEvent)="returnConfirmationSalve($event)"></app-confirmation>
</kendo-dialog>
<kendo-dialog
*ngIf="showMap"
[height]="600"
[width]="800"
title="Confirme a localização do endereço"
(close)="MapCep(false)"
>
<kendo-dialog *ngIf="showMap" [height]="600" [width]="800" title="Confirme a localização do endereço"
(close)="MapCep(false)">
<agm-map [latitude]="latitude" [longitude]="longitude" [zoom]="zoom">
<agm-marker [latitude]="latitude" [longitude]="longitude"></agm-marker>
</agm-map>

View File

@@ -1,11 +1,5 @@
<kendo-dialog
*ngIf="openedDialog"
[(width)]="windowWidth"
[(height)]="windowHeight"
(close)="closeDialog()"
autoFocusedElement="#person"
title="Novo cliente"
>
<kendo-dialog *ngIf="openedDialog" [(width)]="windowWidth" [(height)]="windowHeight" (close)="closeDialog()"
autoFocusedElement="#person" title="Novo cliente">
<!--kendo-window-titlebar
style="background-color: rgb(34, 34, 61); color: white"
>
@@ -27,23 +21,11 @@
<div class="col-12 col-sm-8">
<div class="row">
<div class="col-1">
<input
type="radio"
value="true"
#company
formControlName="company"
kendoRadioButton
/>
<input type="radio" value="true" #company formControlName="company" kendoRadioButton />
</div>
<div class="col-5 text-start p-0">Jurídica</div>
<div class="col-1">
<input
type="radio"
value="false"
id="person"
formControlName="company"
kendoRadioButton
/>
<input type="radio" value="false" id="person" formControlName="company" kendoRadioButton />
</div>
<div class="col-5 text-start p-0">Física</div>
</div>
@@ -51,19 +33,11 @@
</div>
</div>
<kendo-formfield
showErrors="initial"
*ngIf="form.value['company'] == 'false'"
>
<kendo-formfield showErrors="initial" *ngIf="form.value['company'] == 'false'">
<label>
<span>Cpf</span>
<kendo-maskedtextbox
formControlName="cpfCnpj"
[mask]="cpfMask"
id="inputCpf"
(blur)="searchCustomerByDocument()"
required
>
<kendo-maskedtextbox formControlName="cpfCnpj" [mask]="cpfMask" id="inputCpf"
(blur)="searchCustomerByDocument()" required>
</kendo-maskedtextbox>
</label>
@@ -76,37 +50,22 @@
<kendo-formfield *ngIf="form.value['company'] == 'true'">
<label>
<span>Cnpj</span>
<kendo-maskedtextbox
#cnpj
formControlName="cpfCnpj"
[mask]="cnpjMask"
#inputCnpj
(blur)="searchCustomerByDocument()"
required
>
<kendo-maskedtextbox #cnpj formControlName="cpfCnpj" [mask]="cnpjMask" #inputCnpj
(blur)="searchCustomerByDocument()" required>
<kendo-loader *ngIf="loaderVisible" size="small">
</kendo-loader>
</kendo-maskedtextbox>
</label>
<kendo-formerror
>Erro: CNPJ deve ser informado para cliente pessoa
jurídica</kendo-formerror
>
<kendo-formerror>Erro: CNPJ deve ser informado para cliente pessoa
jurídica</kendo-formerror>
</kendo-formfield>
<kendo-formfield showErrors="initial">
<label>
<span>Nome</span>
<kendo-textbox
[maxlength]="40"
formControlName="name"
#firstName
required
showSuccessIcon="initial"
showErrorIcon="initial"
partner="^[a-zA-Z0-9._\b]+$"
(blur)="removeCharacters('name')"
></kendo-textbox>
<kendo-textbox [maxlength]="40" formControlName="name" #firstName required showSuccessIcon="initial"
showErrorIcon="initial" partner="^[a-zA-Z0-9._\b]+$"
(blur)="removeCharacters('name')"></kendo-textbox>
</label>
<kendo-formerror>Erro: Nome é obrigatório</kendo-formerror>
</kendo-formfield>
@@ -116,33 +75,15 @@
<!-- <div class="row d-flex flex-row"> -->
<div class="row w-100">
<div class="col-1">
<input
type="radio"
value="F"
#company
formControlName="gender"
kendoRadioButton
/>
<input type="radio" value="F" #company formControlName="gender" kendoRadioButton />
</div>
<div class="col-3 text-start p-0">Feminino</div>
<div class="col-1">
<input
type="radio"
value="M"
id="gender"
formControlName="gender"
kendoRadioButton
/>
<input type="radio" value="M" id="gender" formControlName="gender" kendoRadioButton />
</div>
<div class="col-3 text-start p-0">Masculino</div>
<div class="col-1">
<input
type="radio"
value="N"
id="gender"
formControlName="gender"
kendoRadioButton
/>
<input type="radio" value="N" id="gender" formControlName="gender" kendoRadioButton />
</div>
<div class="col-3 text-start p-0">Não declarado</div>
</div>
@@ -151,139 +92,80 @@
<kendo-formfield showHints="initial" showErrors="initial">
<label>
<span>Celular</span>
<kendo-maskedtextbox
#phoneNumber
formControlName="cellPhone"
[mask]="phoneNumberMask"
[value]="phoneNumberValue"
showSuccessIcon="initial"
showErrorIcon="initial"
></kendo-maskedtextbox>
<kendo-maskedtextbox #phoneNumber formControlName="cellPhone" [mask]="phoneNumberMask"
[value]="phoneNumberValue" showSuccessIcon="initial" showErrorIcon="initial"></kendo-maskedtextbox>
</label>
</kendo-formfield>
<kendo-formfield
*ngIf="form.value['company'] == 'true'"
showHints="initial"
showErrors="always"
>
<kendo-formfield *ngIf="form.value['company'] == 'true'" showHints="initial" showErrors="always">
<label>
<span>Inscrição Estadual</span>
<kendo-textbox
#numberState
formControlName="numberState"
showSuccessIcon="initial"
showErrorIcon="initial"
></kendo-textbox>
<kendo-textbox #numberState formControlName="numberState" showSuccessIcon="initial"
showErrorIcon="initial"></kendo-textbox>
</label>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>EMail</span>
<kendo-textbox
#email
formControlName="email"
showSuccessIcon="initial"
showErrorIcon="initial"
></kendo-textbox>
<kendo-textbox #email formControlName="email" showSuccessIcon="initial"
showErrorIcon="initial"></kendo-textbox>
</label>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Cep</span>
<kendo-textbox
#zipCode
maxlength="8"
formControlName="zipCode"
showSuccessIcon="initial"
showErrorIcon="initial"
(blur)="consultaCep()"
></kendo-textbox>
<kendo-textbox #zipCode maxlength="8" formControlName="zipCode" showSuccessIcon="initial"
showErrorIcon="initial" (blur)="consultaCep()"></kendo-textbox>
</label>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Endereço</span>
<kendo-textbox
#address
[maxlength]="40"
formControlName="address"
showSuccessIcon="initial"
showErrorIcon="initial"
(blur)="removeCharacters('address')"
></kendo-textbox>
<kendo-textbox #address [maxlength]="40" formControlName="address" showSuccessIcon="initial"
showErrorIcon="initial" (blur)="removeCharacters('address')"></kendo-textbox>
</label>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Número</span>
<kendo-textbox
onkeypress="return event.charCode >= 48 && event.charCode <= 57"
#addressNumber
formControlName="addressNumber"
showSuccessIcon="initial"
showErrorIcon="initial"
></kendo-textbox>
<kendo-textbox onkeypress="return event.charCode >= 48 && event.charCode <= 57" #addressNumber
formControlName="addressNumber" showSuccessIcon="initial" showErrorIcon="initial"></kendo-textbox>
</label>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Complemento</span>
<kendo-textbox
#complement
[maxlength]="40"
formControlName="complement"
showSuccessIcon="initial"
showErrorIcon="initial"
(blur)="removeCharacters('complement')"
></kendo-textbox>
<kendo-textbox #complement [maxlength]="40" formControlName="complement" showSuccessIcon="initial"
showErrorIcon="initial" (blur)="removeCharacters('complement')"></kendo-textbox>
</label>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Bairro</span>
<kendo-textbox
#neighbourhood
[maxlength]="40"
formControlName="neighborhood"
showSuccessIcon="initial"
showErrorIcon="initial"
(blur)="removeCharacters('neighborhood')"
></kendo-textbox>
<kendo-textbox #neighbourhood [maxlength]="40" formControlName="neighborhood" showSuccessIcon="initial"
showErrorIcon="initial" (blur)="removeCharacters('neighborhood')"></kendo-textbox>
</label>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Cidade</span>
<kendo-textbox
#city
[maxlength]="15"
formControlName="city"
showSuccessIcon="initial"
showErrorIcon="initial"
(blur)="removeCharacters('city')"
></kendo-textbox>
<kendo-textbox #city [maxlength]="15" formControlName="city" showSuccessIcon="initial"
showErrorIcon="initial" (blur)="removeCharacters('city')"></kendo-textbox>
</label>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Estado</span>
<kendo-textbox
#state
[maxlength]="2"
formControlName="state"
showSuccessIcon="initial"
showErrorIcon="initial"
(blur)="removeCharacters('state')"
></kendo-textbox>
<kendo-textbox #state [maxlength]="2" formControlName="state" showSuccessIcon="initial"
showErrorIcon="initial" (blur)="removeCharacters('state')"></kendo-textbox>
</label>
</kendo-formfield>
@@ -293,37 +175,21 @@
<ul class="k-radio-list k-list-horizontal">
<li class="k-radio-item">
<label>
<input
type="radio"
#addressTypeNormal
value="N"
kendoRadioButton
formControlName="addressType"
/>
<input type="radio" #addressTypeNormal value="N" kendoRadioButton formControlName="addressType" />
<span class="ms-2">Normal</span>
</label>
</li>
<li class="k-radio-item">
<label>
<input
type="radio"
#addressTypePorto
value="P"
kendoRadioButton
formControlName="addressType"
/>
<span class="ms-2">Porto</span>
<input type="radio" #addressTypeShopping value="S" kendoRadioButton
formControlName="addressType" />
<span class="ms-2">Shopping</span>
</label>
</li>
<li class="k-radio-item">
<label>
<input
type="radio"
#addressTypeCondominio
value="C"
kendoRadioButton
formControlName="addressType"
/>
<input type="radio" #addressTypeCondominio value="C" kendoRadioButton
formControlName="addressType" />
<span class="ms-2">Condominio</span>
</label>
</li>
@@ -335,14 +201,9 @@
<kendo-formfield>
<label>
<span>Ramo de atividade</span>
<kendo-combobox
[data]="ramos$ | async"
formControlName="ramo"
[kendoDropDownFilter]="{ operator: 'contains' }"
textField="name"
valueField="id"
placeholder="Selecione a ramo de atividade do cliente..."
>
<kendo-combobox [data]="ramos$ | async" formControlName="ramo"
[kendoDropDownFilter]="{ operator: 'contains' }" textField="name" valueField="id"
placeholder="Selecione a ramo de atividade do cliente...">
</kendo-combobox>
</label>
</kendo-formfield>
@@ -350,44 +211,29 @@
<kendo-formfield>
<label>
<span>Praça</span>
<kendo-combobox
[data]="places$ | async"
formControlName="place"
[kendoDropDownFilter]="{ operator: 'contains' }"
textField="name"
valueField="id"
placeholder="Selecione a praça do cliente..."
>
<kendo-combobox [data]="places$ | async" formControlName="place"
[kendoDropDownFilter]="{ operator: 'contains' }" textField="name" valueField="id"
placeholder="Selecione a praça do cliente...">
</kendo-combobox>
</label>
<kendo-formerror
>Erro: É obrigatório informar a praça do
cliente</kendo-formerror
>
<kendo-formerror>Erro: É obrigatório informar a praça do
cliente</kendo-formerror>
</kendo-formfield>
<kendo-formfield showHints="initial" showErrors="always">
<label>
<span>Data de nascimento</span>
<kendo-dateinput
#birthdate
[format]="format"
formControlName="birthdate"
showSuccessIcon="initial"
showErrorIcon="initial"
></kendo-dateinput>
<kendo-dateinput #birthdate [format]="format" formControlName="birthdate" showSuccessIcon="initial"
showErrorIcon="initial"></kendo-dateinput>
</label>
</kendo-formfield>
<kendo-formfield>
<label>
<span>Como conheceu a JURUNENSE?</span>
<kendo-combobox
[data]="listCommunicate"
formControlName="communicate"
<kendo-combobox [data]="listCommunicate" formControlName="communicate"
[kendoDropDownFilter]="{ operator: 'contains' }"
placeholder="Informe como o cliente conheceu a JURUNENSE..."
>
placeholder="Informe como o cliente conheceu a JURUNENSE...">
</kendo-combobox>
</label>
</kendo-formfield>
@@ -395,15 +241,9 @@
<kendo-formfield>
<label>
<span>Categoria</span>
<kendo-combobox
[data]="category$ | async"
formControlName="category"
(valueChange)="filterSubCategoria($event)"
[kendoDropDownFilter]="{ operator: 'contains' }"
textField="name"
valueField="id"
placeholder="Selecione a categoria do cliente..."
>
<kendo-combobox [data]="category$ | async" formControlName="category"
(valueChange)="filterSubCategoria($event)" [kendoDropDownFilter]="{ operator: 'contains' }"
textField="name" valueField="id" placeholder="Selecione a categoria do cliente...">
</kendo-combobox>
</label>
</kendo-formfield>
@@ -411,27 +251,16 @@
<kendo-formfield>
<label>
<span>Sub-Categoria</span>
<kendo-combobox
[data]="subCategories"
formControlName="subCategory"
[kendoDropDownFilter]="{ operator: 'contains' }"
textField="name"
valueField="id"
placeholder="Selecione a sub-categoria do cliente..."
>
<kendo-combobox [data]="subCategories" formControlName="subCategory"
[kendoDropDownFilter]="{ operator: 'contains' }" textField="name" valueField="id"
placeholder="Selecione a sub-categoria do cliente...">
</kendo-combobox>
</label>
</kendo-formfield>
<kendo-formfield>
<kendo-label
[for]="allow"
text="Permite envio de mensagens"
></kendo-label>
<kendo-switch
#allow
formControlName="notifications"
></kendo-switch>
<kendo-label [for]="allow" text="Permite envio de mensagens"></kendo-label>
<kendo-switch #allow formControlName="notifications"></kendo-switch>
</kendo-formfield>
</fieldset>
</form>
@@ -441,11 +270,7 @@
<div class="k-loading-panel">
<div class="k-loading-panel-mask"></div>
<div class="k-loading-panel-wrapper">
<kendo-loader
[type]="'infinite-spinner'"
[themeColor]="'primary'"
[size]="'large'"
>
<kendo-loader [type]="'infinite-spinner'" [themeColor]="'primary'" [size]="'large'">
</kendo-loader>
<div class="k-loading-panel-text">Aguarde...</div>
</div>
@@ -462,42 +287,21 @@
</div> -->
<kendo-dialog-actions>
<button
(click)="showConfirmation()"
class="btn-fill-blue text-btn-white"
kendoButton
[primary]="true"
[disabled]="!form.valid || inProcess"
>
<button (click)="showConfirmation()" class="btn-fill-blue text-btn-white" kendoButton [primary]="true"
[disabled]="!form.valid || inProcess">
Gravar
</button>
<button
class="btn-flat text-btn-flat"
kendoButton
look="flat"
(click)="closeDialog()"
>
<button class="btn-flat text-btn-flat" kendoButton look="flat" (click)="closeDialog()">
Cancelar
</button>
<button
class="btn-flat text-btn-flat"
kendoButton
look="flat"
(click)="googleGeocode()"
>
<button class="btn-flat text-btn-flat" kendoButton look="flat" (click)="googleGeocode()">
Mapa do endereço
</button>
</kendo-dialog-actions>
<app-confirmation
*ngIf="isShowConfirmation"
opened="isShowConfirmation"
title="{{ titleMessage }}"
message="{{ messageConfirmation }}"
textButtonConfirmation="{{ textButtonConfirmation }}"
textButtonCancel="{{ textButtonCancel }}"
(resultEvent)="returnConfirmationSalve($event)"
></app-confirmation>
<app-confirmation *ngIf="isShowConfirmation" opened="isShowConfirmation" title="{{ titleMessage }}"
message="{{ messageConfirmation }}" textButtonConfirmation="{{ textButtonConfirmation }}"
textButtonCancel="{{ textButtonCancel }}" (resultEvent)="returnConfirmationSalve($event)"></app-confirmation>
</kendo-dialog>
<!-- <kendo-dialog

View File

@@ -10,18 +10,18 @@
<button kendoButton class="new-order text-button" (click)="openNewOrder()">
Novo pedido
</button>
<button kendoButton class="button-flat text-button-flat mt-2" (click)="openDashTodaysale()">
<!-- <button kendoButton class="button-flat text-button-flat mt-2" (click)="openDashTodaysale()">
Dashboard Venda dia
</button>
<button kendoButton class="button-flat text-button-flat mt-2" (click)="openDashSeller()">
Dashboard Vendedor
</button>
</button> -->
<button kendoButton class="button-flat text-button-flat mt-2" (click)="openOrders()">
Pedidos de venda
</button>
<button kendoButton class="button-flat text-button-flat mt-2" (click)="openProductOrder()">
<!--button kendoButton class="button-flat text-button-flat mt-2" (click)="openProductOrder()">
Produtos Vendidos
</button>
</button> -->
<button kendoButton class="button-flat-blue text-button-flat-blue mt-2" (click)="openClose(true)">
Orçamentos pendentes
</button>

View File

@@ -9,13 +9,8 @@
<div class="col-md-6 col-sm-12">
<label>
<span>Filial de venda</span>
<kendo-combobox
[data]="store$ | async"
textField="shortName"
valueField="id"
placeholder="Selecione a filial de venda..."
(selectionChange)="selectedStore($event)"
></kendo-combobox>
<kendo-combobox [data]="store$ | async" textField="shortName" valueField="id"
placeholder="Selecione a filial de venda..." (selectionChange)="selectedStore($event)"></kendo-combobox>
</label>
</div>
<div class="col-md-6 col-sm-12 mt-3 mt-md-0">
@@ -33,16 +28,10 @@
<span class="d-block">Data do pedido</span>
<kendo-daterange class="d-flex gap-3 align-items-center">
<kendo-floatinglabel text="Início" id="dtinicio">
<kendo-dateinput
kendoDateRangeStartInput
[(value)]="filterPreOrder.start"
></kendo-dateinput>
<kendo-dateinput kendoDateRangeStartInput [(value)]="filterPreOrder.start"></kendo-dateinput>
</kendo-floatinglabel>
<kendo-floatinglabel text="Término" id="dtfim">
<kendo-dateinput
kendoDateRangeEndInput
[(value)]="filterPreOrder.end"
></kendo-dateinput>
<kendo-dateinput kendoDateRangeEndInput [(value)]="filterPreOrder.end"></kendo-dateinput>
</kendo-floatinglabel>
</kendo-daterange>
</label>
@@ -50,10 +39,7 @@
<div class="col-md-6 col-sm-12 mt-3 mt-md-0">
<label>
<span class="d-block">CPF / CNPJ</span>
<kendo-textbox
formControlName="document"
placeholder="Informe o CPF ou CNPJ do cliente"
></kendo-textbox>
<kendo-textbox formControlName="document" placeholder="Informe o CPF ou CNPJ do cliente"></kendo-textbox>
</label>
</div>
</div>
@@ -63,64 +49,43 @@
<div class="col-12">
<label class="w-100">
<span class="d-block">Nome do cliente</span>
<kendo-textbox
formControlName="nameCustomer"
placeholder="Informe o nome ou razão social do cliente"
></kendo-textbox>
<kendo-textbox formControlName="nameCustomer"
placeholder="Informe o nome ou razão social do cliente"></kendo-textbox>
</label>
</div>
</div>
<!-- Botão Pesquisar -->
<div class="mt-3 text-center">
<button kendoButton [disabled]="isLoading" [icon]="loadingIcon" (click)="getOrders()">Pesquisar</button>
<button kendoButton [disabled]="isLoading" [icon]="loadingIcon" (click)="getOrders()">Pesquisar</button>
</div>
</form>
</div>
<!-- Grid -->
<div class="col-12 mt-4 flex-fill">
<kendo-grid
[kendoGridBinding]="orders"
[sortable]="true"
[loading]="isLoading"
[height]="280"
(edit)="selectedOrder($event)"
(remove)="showItensOrder($event)"
>
<kendo-grid [kendoGridBinding]="orders" [sortable]="true" [loading]="isLoading" [height]="280"
(edit)="selectedOrder($event)" (remove)="showItensOrder($event)">
<kendo-grid-command-column title="Ações" width="190">
<ng-template kendoGridCellTemplate let-dataItem>
<div style="display: flex; align-items: center; gap: 10px;">
<button kendoGridEditCommand icon="edit"></button>
<button kendoGridRemoveCommand icon="binoculars"></button>
<button
kendoButton
icon="printer"
(click)="showItensOrder2(dataItem)"
></button>
<button
<button kendoButton icon="printer" (click)="showItensOrder2(dataItem)"></button>
<!-- <button
kendoButton
class="p-1"
(click)="openReceivePix(true, dataItem)"
>
<div class="logo-pix"></div>
</button>
</button> -->
</div>
</ng-template>
</kendo-grid-command-column>
<kendo-grid-column
*ngFor="let col of columns"
[field]="col.field"
[title]="col.title"
[width]="col.width"
[class]="{ 'text-end': col.textEnd }"
>
<ng-template
*ngIf="col.field == 'orderValue'"
kendoGridCellTemplate
let-dataItem
>
<kendo-grid-column *ngFor="let col of columns" [field]="col.field" [title]="col.title" [width]="col.width"
[class]="{ 'text-end': col.textEnd }">
<ng-template *ngIf="col.field == 'orderValue'" kendoGridCellTemplate let-dataItem>
<span>{{ dataItem.orderValue | currency }}</span>
</ng-template>
</kendo-grid-column>
@@ -129,57 +94,29 @@
</div>
<div *ngIf="showInformation">
<app-message-information
opened="true"
title="Pedido de venda"
[message]="messageInformation"
[information]="informationDescription"
(resultEvent)="closeInformation($event)"
></app-message-information>
<app-message-information opened="true" title="Pedido de venda" [message]="messageInformation"
[information]="informationDescription" (resultEvent)="closeInformation($event)"></app-message-information>
</div>
<div *ngIf="showInformationSeller">
<app-message-information
opened="true"
title="Pedido de venda"
message="Pedido não pode ser alterado!"
<app-message-information opened="true" title="Pedido de venda" message="Pedido não pode ser alterado!"
information="Pedido de outro vendedor, somente o vendedor responsável da venda poderá alterar o pedido."
(resultEvent)="closeInformationSeller($event)"
></app-message-information>
(resultEvent)="closeInformationSeller($event)"></app-message-information>
</div>
<div class="k-loading-panel" *ngIf="loadingPanelVisible">
<div class="k-loading-panel-mask"></div>
<div class="k-loading-panel-wrapper">
<kendo-loader
type="infinite-spinner"
themeColor="primary"
size="large"
></kendo-loader>
<kendo-loader type="infinite-spinner" themeColor="primary" size="large"></kendo-loader>
<div class="k-loading-panel-text">Loading...</div>
</div>
</div>
</div>
<kendo-dialog
title="Itens do pedido"
animation="zoom"
*ngIf="openedItensOrder"
(close)="closeModelItensOrder('Cancelar')"
[minWidth]="250"
[width]="1200"
[height]="450"
>
<kendo-grid
[kendoGridBinding]="orderItens"
style="width: 1150px"
[scrollable]="true"
>
<kendo-grid-column
field="productId"
title="Código"
[width]="70"
></kendo-grid-column>
<kendo-dialog title="Itens do pedido" animation="zoom" *ngIf="openedItensOrder"
(close)="closeModelItensOrder('Cancelar')" [minWidth]="250" [width]="1200" [height]="450">
<kendo-grid [kendoGridBinding]="orderItens" style="width: 1150px" [scrollable]="true">
<kendo-grid-column field="productId" title="Código" [width]="70"></kendo-grid-column>
<kendo-grid-column field="description" title="Descrição" [width]="250">
</kendo-grid-column>
<kendo-grid-column field="package" title="Embalagem" [width]="80">
@@ -188,32 +125,17 @@
</kendo-grid-column>
<kendo-grid-column field="local" title="Ambiente" [width]="100">
</kendo-grid-column>
<kendo-grid-column
[class]="{ 'text-end': true }"
field="price"
title="P.Venda"
[width]="80"
>
<kendo-grid-column [class]="{ 'text-end': true }" field="price" title="P.Venda" [width]="80">
<ng-template kendoGridCellTemplate let-dataItem>
<span>{{ dataItem.price | currency }}</span>
</ng-template>
</kendo-grid-column>
<kendo-grid-column
[class]="{ 'text-end': true }"
field="quantity"
title="Qtde"
[width]="60"
>
<kendo-grid-column [class]="{ 'text-end': true }" field="quantity" title="Qtde" [width]="60">
<ng-template kendoGridCellTemplate let-dataItem>
<span>{{ dataItem.quantity | number : "1.0-3" }}</span>
</ng-template>
</kendo-grid-column>
<kendo-grid-column
[class]="{ 'text-end': true }"
field="subTotal"
title="Valor Total"
[width]="80"
>
<kendo-grid-column [class]="{ 'text-end': true }" field="subTotal" title="Valor Total" [width]="80">
<ng-template kendoGridCellTemplate let-dataItem>
<span>{{ dataItem.subTotal | currency }}</span>
</ng-template>
@@ -221,39 +143,21 @@
</kendo-grid>
</kendo-dialog>
<kendo-dialog
title="Selecione o modelo do pedido"
animation="zoom"
*ngIf="openedModelPrintOrder"
(close)="closeModelPrintOrder('Cancelar')"
[minWidth]="250"
[width]="450"
>
<kendo-dialog title="Selecione o modelo do pedido" animation="zoom" *ngIf="openedModelPrintOrder"
(close)="closeModelPrintOrder('Cancelar')" [minWidth]="250" [width]="450">
<form class="k-form" [formGroup]="formModelOrder">
<kendo-formfield showHints="initial">
<label class="k-label">Selecione o modelo de pedido</label>
<ul class="k-radio-list">
<li class="k-radio-item">
<label>
<input
type="radio"
#bobina
value="B"
kendoRadioButton
formControlName="model"
/>
<input type="radio" #bobina value="B" kendoRadioButton formControlName="model" />
<span class="ms-2">Bobina</span>
</label>
</li>
<li class="k-radio-item">
<label>
<input
type="radio"
#bobina
value="A"
kendoRadioButton
formControlName="model"
/>
<input type="radio" #bobina value="A" kendoRadioButton formControlName="model" />
<span class="ms-2">Formulário A4</span>
</label>
</li>
@@ -262,56 +166,26 @@
</form>
<kendo-dialog-actions>
<button kendoButton (click)="closeModelPrintOrder('Não')">Cancelar</button>
<button
kendoButton
(click)="closeModelPrintOrder('Sim')"
themeColor="primary"
>
<button kendoButton (click)="closeModelPrintOrder('Sim')" themeColor="primary">
Imprimir
</button>
</kendo-dialog-actions>
</kendo-dialog>
<kendo-window
[top]="100"
[left]="50"
title="Pedido de venda"
[(state)]="windowState"
*ngIf="openedPrintOrder"
(close)="openClosePrintOrder(false)"
>
<stimulsoft-viewer-angular
[requestUrl]="urlPrintOrder"
[action]="'InitViewerOrder'"
[width]="'95%'"
[height]="'800px'"
></stimulsoft-viewer-angular>
<kendo-window [top]="100" [left]="50" title="Pedido de venda" [(state)]="windowState" *ngIf="openedPrintOrder"
(close)="openClosePrintOrder(false)">
<stimulsoft-viewer-angular [requestUrl]="urlPrintOrder" [action]="'InitViewerOrder'" [width]="'95%'"
[height]="'800px'"></stimulsoft-viewer-angular>
</kendo-window>
<kendo-window
[top]="100"
[left]="50"
title="Recibo de PIX"
[(state)]="windowState"
*ngIf="openedPrintReceivePix"
(close)="closePrintReceivePix('Não')"
>
<stimulsoft-viewer-angular
[requestUrl]="urlPrintCreditPix"
[action]="'InitViewerComprovantePix'"
[width]="'95%'"
[height]="'800px'"
></stimulsoft-viewer-angular>
<kendo-window [top]="100" [left]="50" title="Recibo de PIX" [(state)]="windowState" *ngIf="openedPrintReceivePix"
(close)="closePrintReceivePix('Não')">
<stimulsoft-viewer-angular [requestUrl]="urlPrintCreditPix" [action]="'InitViewerComprovantePix'" [width]="'95%'"
[height]="'800px'"></stimulsoft-viewer-angular>
</kendo-window>
<kendo-dialog
title="Recebimento via PIX"
animation="zoom"
*ngIf="showReceivePix"
(close)="closeReceivePix('Cancelar')"
[minWidth]="250"
[width]="450"
>
<kendo-dialog title="Recebimento via PIX" animation="zoom" *ngIf="showReceivePix" (close)="closeReceivePix('Cancelar')"
[minWidth]="250" [width]="450">
<div *ngIf="!showQrCode">
<form class="k-form" [formGroup]="formReceivePix">
<kendo-formfield showHints="initial">
@@ -364,11 +238,7 @@
</div>
<div class="row w-100 mb-3">
<div class="col-12">
<kendo-textbox
readonly="true"
[value]="qrCodePix"
[selectOnFocus]="true"
></kendo-textbox>
<kendo-textbox readonly="true" [value]="qrCodePix" [selectOnFocus]="true"></kendo-textbox>
</div>
</div>
<kendo-dialog-actions>

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 921 KiB

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 921 KiB