added preview image inside challan, remove restric of payment date
This commit is contained in:
parent
3e3ff189c9
commit
9cd1d932b1
@ -119,7 +119,7 @@ export const FileView = ({ file, viewFile }) => {
|
|||||||
<span className="text-muted small text-truncate mb-n4">
|
<span className="text-muted small text-truncate mb-n4">
|
||||||
{file.fileName}
|
{file.fileName}
|
||||||
</span>
|
</span>
|
||||||
<span className="text-body-secondary small">
|
<span className="text-body-secondary small mt-2">
|
||||||
<Tooltip text={"Click on file"}>
|
<Tooltip text={"Click on file"}>
|
||||||
{" "}
|
{" "}
|
||||||
{file.fileSize ? formatFileSize(file.fileSize) : ""}
|
{file.fileSize ? formatFileSize(file.fileSize) : ""}
|
||||||
|
|||||||
@ -4,11 +4,11 @@ import { SpinnerLoader } from "../common/Loader";
|
|||||||
import { formatUTCToLocalTime } from "../../utils/dateUtils";
|
import { formatUTCToLocalTime } from "../../utils/dateUtils";
|
||||||
import { FileView } from "../Expenses/Filelist";
|
import { FileView } from "../Expenses/Filelist";
|
||||||
|
|
||||||
const DeliverChallanList = ({ purchaseId }) => {
|
const DeliverChallanList = ({ purchaseId, viewDocuments }) => {
|
||||||
const { data, isLoading, isError, error } = useDeliverChallane(purchaseId);
|
const { data, isLoading, isError, error } = useDeliverChallane(purchaseId);
|
||||||
if (isLoading) {
|
if (isLoading) {
|
||||||
return (
|
return (
|
||||||
<div className="d-flex justify-content-center align-items-center text-center vh-50">
|
<div className="d-flex justify-content-center align-items-center text-center vh-50">
|
||||||
<SpinnerLoader />
|
<SpinnerLoader />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
@ -56,7 +56,7 @@ const DeliverChallanList = ({ purchaseId }) => {
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
{item.attachment?.preSignedUrl && (
|
{item.attachment?.preSignedUrl && (
|
||||||
<FileView file={item.attachment} />
|
<FileView file={item.attachment} viewFile={viewDocuments} />
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -21,9 +21,11 @@ import SingleFileUploader from "../common/SigleFileUploader";
|
|||||||
import { localToUtc } from "../../utils/appUtils";
|
import { localToUtc } from "../../utils/appUtils";
|
||||||
import WarningBlock from "../InfoBlock/WarningBlock";
|
import WarningBlock from "../InfoBlock/WarningBlock";
|
||||||
import { FILE_UPLOAD_INFO } from "../../utils/staticContent";
|
import { FILE_UPLOAD_INFO } from "../../utils/staticContent";
|
||||||
|
import { usePurchaseContext } from "../../pages/purchase/PurchasePage";
|
||||||
|
|
||||||
const DeliveryChallane = ({ purchaseId }) => {
|
const DeliveryChallane = ({ purchaseId }) => {
|
||||||
const [file, setFile] = useState(null);
|
const [file, setFile] = useState(null);
|
||||||
|
const {setDocumentView} = usePurchaseContext()
|
||||||
|
|
||||||
const {
|
const {
|
||||||
register,
|
register,
|
||||||
@ -174,14 +176,16 @@ const DeliveryChallane = ({ purchaseId }) => {
|
|||||||
/>
|
/>
|
||||||
|
|
||||||
<div className="col-12 text-end my-3">
|
<div className="col-12 text-end my-3">
|
||||||
<button type="submit" className="btn btn-sm btn-primary px-4">
|
<button
|
||||||
|
type="submit"
|
||||||
|
className="btn btn-sm btn-primary px-4"
|
||||||
|
disabled={isPending}
|
||||||
|
>
|
||||||
{isPending ? "Please Wait..." : "Submit"}
|
{isPending ? "Please Wait..." : "Submit"}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{!isUploaded && (
|
{!isUploaded && <WarningBlock content={FILE_UPLOAD_INFO} />}
|
||||||
<WarningBlock content={FILE_UPLOAD_INFO} />
|
|
||||||
)}
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className="col-md-6 text-start">
|
<div className="col-md-6 text-start">
|
||||||
@ -190,7 +194,7 @@ const DeliveryChallane = ({ purchaseId }) => {
|
|||||||
<p className="fw-medium mb-0">History</p>
|
<p className="fw-medium mb-0">History</p>
|
||||||
</div>
|
</div>
|
||||||
<div className="overflow-auto " style={{ maxHeight: "420px" }}>
|
<div className="overflow-auto " style={{ maxHeight: "420px" }}>
|
||||||
<DeliverChallanList purchaseId={purchaseId} />
|
<DeliverChallanList purchaseId={purchaseId} viewDocuments={setDocumentView} />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -123,7 +123,16 @@ const PurchaseList = ({ searchString, isActive }) => {
|
|||||||
data?.data?.map((item, index) => (
|
data?.data?.map((item, index) => (
|
||||||
<tr key={item?.id || index}>
|
<tr key={item?.id || index}>
|
||||||
{visibleColumns.map((col) => (
|
{visibleColumns.map((col) => (
|
||||||
<td key={col.key} className={col.className || ""}>
|
<td
|
||||||
|
key={col.key}
|
||||||
|
className={`${col.className} cursor-pointer` || ""}
|
||||||
|
onClick={() =>
|
||||||
|
setViewPurchase({
|
||||||
|
isOpen: true,
|
||||||
|
purchaseId: item.id,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
>
|
||||||
{col.render ? col.render(item) : item[col.key] || "NA"}
|
{col.render ? col.render(item) : item[col.key] || "NA"}
|
||||||
</td>
|
</td>
|
||||||
))}
|
))}
|
||||||
|
|||||||
@ -20,7 +20,7 @@ import { SpinnerLoader } from "../common/Loader";
|
|||||||
import { formatUTCToLocalTime } from "../../utils/dateUtils";
|
import { formatUTCToLocalTime } from "../../utils/dateUtils";
|
||||||
import Avatar from "../common/Avatar";
|
import Avatar from "../common/Avatar";
|
||||||
|
|
||||||
const PurchasePayment = ({onClose, purchaseId }) => {
|
const PurchasePayment = ({ onClose, purchaseId }) => {
|
||||||
const {
|
const {
|
||||||
data: Purchase,
|
data: Purchase,
|
||||||
isLoading: isPurchaseLoading,
|
isLoading: isPurchaseLoading,
|
||||||
@ -93,16 +93,6 @@ const PurchasePayment = ({onClose, purchaseId }) => {
|
|||||||
size="md"
|
size="md"
|
||||||
name="paymentReceivedDate"
|
name="paymentReceivedDate"
|
||||||
control={control}
|
control={control}
|
||||||
minDate={
|
|
||||||
Purchase?.createdAt
|
|
||||||
? new Date(
|
|
||||||
new Date(Purchase?.createdAt).setDate(
|
|
||||||
new Date(Purchase?.createdAt).getDate() + 1
|
|
||||||
)
|
|
||||||
)
|
|
||||||
: null
|
|
||||||
}
|
|
||||||
maxDate={new Date()}
|
|
||||||
/>
|
/>
|
||||||
{errors.paymentReceivedDate && (
|
{errors.paymentReceivedDate && (
|
||||||
<small className="danger-text">
|
<small className="danger-text">
|
||||||
@ -283,9 +273,10 @@ const PurchasePayment = ({onClose, purchaseId }) => {
|
|||||||
{data?.length === 0 && (
|
{data?.length === 0 && (
|
||||||
<div className="d-flex justify-content-center algin-items-center text-center">
|
<div className="d-flex justify-content-center algin-items-center text-center">
|
||||||
<div>
|
<div>
|
||||||
|
<i className="bx bx-box"></i>
|
||||||
<i className='bx bx-box'></i>
|
<p className="text-secondary">
|
||||||
<p className="text-secondary">You don't have any payment yet.</p>
|
You don't have any payment yet.
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import DeliveryChallane from "../../components/purchase/DeliveryChallane";
|
|||||||
import PurchasePayment from "../../components/purchase/PurchasePayment";
|
import PurchasePayment from "../../components/purchase/PurchasePayment";
|
||||||
import { useHasUserPermission } from "../../hooks/useHasUserPermission";
|
import { useHasUserPermission } from "../../hooks/useHasUserPermission";
|
||||||
import { MANAGEPURCHASE_INVOICE } from "../../utils/constants";
|
import { MANAGEPURCHASE_INVOICE } from "../../utils/constants";
|
||||||
|
import PreviewDocument from "../../components/Expenses/PreviewDocument";
|
||||||
|
|
||||||
export const PurchaseContext = createContext();
|
export const PurchaseContext = createContext();
|
||||||
export const usePurchaseContext = () => {
|
export const usePurchaseContext = () => {
|
||||||
@ -40,6 +41,7 @@ const PurchasePage = () => {
|
|||||||
isOpen: false,
|
isOpen: false,
|
||||||
purchaseId: null,
|
purchaseId: null,
|
||||||
});
|
});
|
||||||
|
const [ViewDocument,setDocumentView] = useState({ IsOpen: false, Images: null })
|
||||||
|
|
||||||
const canCreatePurchase = useHasUserPermission(MANAGEPURCHASE_INVOICE);
|
const canCreatePurchase = useHasUserPermission(MANAGEPURCHASE_INVOICE);
|
||||||
|
|
||||||
@ -48,6 +50,7 @@ const PurchasePage = () => {
|
|||||||
setManagePurchase,
|
setManagePurchase,
|
||||||
setChallan,
|
setChallan,
|
||||||
setAddPayment,
|
setAddPayment,
|
||||||
|
setDocumentView
|
||||||
};
|
};
|
||||||
return (
|
return (
|
||||||
<PurchaseContext.Provider value={contextValue}>
|
<PurchaseContext.Provider value={contextValue}>
|
||||||
@ -170,6 +173,17 @@ const PurchasePage = () => {
|
|||||||
/>
|
/>
|
||||||
</GlobalModel>
|
</GlobalModel>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
{ViewDocument.IsOpen && (
|
||||||
|
<GlobalModel
|
||||||
|
isOpen
|
||||||
|
size="md"
|
||||||
|
key={ViewDocument.Images ?? "doc"}
|
||||||
|
closeModal={() => setDocumentView({ IsOpen: false, Images: null })}
|
||||||
|
>
|
||||||
|
<PreviewDocument files={ViewDocument.Images} />
|
||||||
|
</GlobalModel>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</PurchaseContext.Provider>
|
</PurchaseContext.Provider>
|
||||||
);
|
);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user